Я давно пользуюсь операционными системами Ubuntu и Mac OS X. Когда-то я любил Windows (XP и 7), но после выхода Windows 8 я полностью разочаровался и начал искать альтернативы. И вот уже много лет подряд я влюблен в Ubuntu, поэтому мне пришлось освоить команды терминала. Все эти команды работают одинаково в Linux, Ubuntu и Mac OS X. Есть, конечно, особенности, но практически все команды из этой статьи будут работать везде. Эту статью я написал как шпаргалку-напоминалку, потому что если ты не системный администратор и пользуешься этими командами редко, то они постепенно выветриваются из памяти.
Что такое терминал, или консоль?
Терминал, или консоль, – это специальное окно, в которое вы вводите специальные команды для общения с операционной системой вашего компьютера напрямую без мышки и окон. Терминал, или консоль, еще называют командной строкой. У Windows нет консоли, эта операционная система работает по-другому. А у Linux, Ubuntu, Mac OS X – есть. Кстати, Ubuntu и Mac OS X сделаны на базе операционной системы Unix, поэтому они очень похожи. Вот, как выглядит терминал на моем компьютере с Ubuntu:
Сюда и надо вводить команды. Да, выглядит не очень, намного приятнее работать с красивым графическим интерфейсом, но со временем привыкаешь и начинает нравиться. А системные администраторы – так вообще кайфуют от консоли. Я даже встречал таких, которые всегда пользуются только консолью.
Что можно делать при помощи консоли?
При помощи консоли можно делать все что угодно: копировать файлы и фрагменты текста, редактировать текстовые документы, открывать и удалять файлы и многое другое. Консоль позволяет делать многое из того, что нельзя сделать мышкой в графическом интерфейсе.
Терминал работает одинаково как в Ubuntu и Linux, так и в Mac OS X. Но вот запускается он по-разному.
Работа с консолью
Как запустить консоль в Mac OS X
Нажмите сочетание горячих клавиш Command (⌘) + T.
Или запустите Spotlight, для этого нажмите на значок лупы в верхнем горизонтальном меню справа или с помощью сочетания клавиш <Ctrl> + <Пробел>.
В строке поиска Spotlight введите слово “Терминал” и нажмите “Enter”.
В результате откроется окно Терминала.
Как запустить консоль в Linux или Ubuntu
Чтобы запустить терминал, нажмите одновременно Ctrl + Alt + T.
Работа с окном консоли
Команда (или горячие клавиши) | Что делает |
Ctrl + Alt + T (Linux, Ubuntu) Command (⌘) + T (Mac OS X) | открытие консоли |
logout или exit | выход из консоли |
Ctrl + Alt + F1(2,3,4,5,6) | переход в консоль из графического режима |
Alt + Fn (n = 1,…,6) | переключение между консолями |
Alt + F7 | переключение из консоли в графический режим |
Как прописывать путь к каталогам или файлам
Директория, папка и каталог – обозначают одно и то же.
После любой из команд вы можете указывать следующие символы, чтобы задавать нужное местоположение каталога или файла:
. – текущий каталог;
.. – родительский каталог (один уровень вверх);
~ – домашний каталог;
/ – корневая директория.
Например, путь /каталог/файл.txt – задает путь к файлу с названием файл.txt, который лежит в каталоге с названием каталог, который, в свою очередь, лежит в корневой (самой верхней) директории.
Команды для работы с каталогами
При помощи консоли можно делать все что угодно с файлами и каталогами. Это, конечно, менее удобно, чем, например, в Проводнике Windows или в Finder Mac OS X, но когда привыкаешь, то это начинает даже нравиться.
Команда | Что делает |
pwd | показывает путь к текущему каталогу (Print Working Directory) |
ncdu / | утилита выведет иерархический список директорий, начиная с самого большого размера, утилита интерактивна, мы можем перемещаться по дереву, входить в папки, изменять представление информации, удалять ненужные файлы и директории |
ls | вывод содержимого текущего каталога |
ls каталог | вывод содержимого указанного каталога |
ls -l файл/каталог | просмотр прав доступа |
ls -lah | выводит все файлы, включая скрытые и размеры файлов в Мб |
ls -a | выводит все файлы и каталоги, включая скрытые (и с точками перед названием(.)) |
ls -G | выводит файлы и каталоги в цвете |
ls -R | выводит в том числе и подкаталоги |
tree | выводит все каталоги и подкаталоги |
cd каталог | изменение каталога |
cd / | переход в корневую директорию |
mkdir каталог | создание каталога |
rmdir каталог | удаление пустого каталога |
rm -r каталог | рекурсивное удаление каталога (сначала будут удалены все подкаталоги и все файлы в этих подкаталогах, а потом и сам каталог) |
du -sh | вывести размер текущего каталога |
du -sh * | вывести размер всех каталогов в текущем каталоге |
du -sh каталог | вывести размер указанного каталога |
cp -r каталог1 /* каталог2 | копирует все файлы из в каталог1 в каталог2 |
mc | запуск файлового менеджера Midnight Commander |
find | поиск |
find / -name file.txt | найти файлы с именем file.txt, поиск начать с корневого каталога |
find / -name '*.txt' | найти файлы по маске |
zip -r archive.zip folder/ | заархивировать все файлы и подкаталоги из каталога folder в архив с названием archive.zip |
unzip archive.zip | разархивировать в текущий каталог |
unzip -l archive.zip (или less archive.zip) | просмотреть содержимое архива archive.zip |
tar -xvf | разархивировать в текущий каталог |
Команды для операций с файлами
Команда | Что делает |
nano имя файла | редактирование файла в редакторе nano |
cp файл1 файл2 | копирует файл1 в файл2 |
scp username1@hostname1:/path/to/ файл username2@hostname2:/path/to/other/ каталог | копировать файл с одного сервера на другой |
scp username@remotehost:file.txt /local/folder | скачать файл file.txt с сервера на текущий компьютер в папку foder |
scp file.txt username@remotehost:~/ | загрузить файл с текущего компьютера на сервер |
rm файл | удаляет файл (-v будет писать о том, что делает) |
mv файл1 файл2 | перемещает файл1 в файл2. Эта же команда используется и для переименования файла. |
touch файл | создание пустого файла |
chmod | задание прав доступа |
chown пользователь файл | смена владельца файла |
grep | вырезает нужные вам строки из текстовых файлов, которые содержат указанный пользователем текст. Например, grep "Include" /etc/apache2/apache2.conf - покажет все строки из файла apache2.conf, содержащие слово Include. |
grep -i -R "слово" каталог | найти "слово" во всех файлах и каталогах, включая вложенные. -i - капитализация букв не важна, -R - означает "рекурсивно". |
tail | вывод последних строк файлов |
cat файл | вывести все текстовое содержимое файла на экран или объединить содержимое нескольких файлов и вывести его на экран (выводит все подряд, а не страницу за страницей) |
less файл | просмотреть файл страница за страницей (пробел - следующая страница, b - предыдущая страница, v - редактировать, j или ↵ - ввести следующую линию) |
Завершение работы компьютера
Команда | Что делает |
reboot | перезагрузка компьютера |
halt | завершить работу системы, но не выключать ПК |
poweroff | завершить работу системы и выключить ПК |
shutdown -h 19.30 [сообщение] | завершить работу системы в 19.30 и вывести сообщение |
shutdown -h +5 "Пожалуйста, сохраните свою работу" | показать сообщение всем залогиненным пользователям и через 5 минут выключить компьютер |
shutdown -r now | перезагрузить систему |
Аварийное завершение программ (процессов)
Команда | Что делает |
xkill | выберите окно с программой, которую надо завершить |
kill [параметр] PID | принудительное завершение зависшей программы. PID - process ID. Пример - kill 2484. |
ps | определение идентификатора процесса. ps -a и ps -U root - эти команды позволяют добраться до нужных процессов, если они запущены в других терминалах. Первая команда выводит список процессов, запущенных вами, а вторая - от вашего имени (если вы работает под root). |
ps -ax | grep имя | вычисление PID процесса с известным именем. Пример # ps -ax | grep firefox |
killall имя процесса | самый удобный способ завершить процесс, не зная его ID. Убивает все работающие процессы во всех консолях с заданным именем |
Ctrl+C or Ctrl+| | остановить работу скрипта в командной строке |
Системная информация
Команда | Что делает |
top | это команда выводит полную информацию о системе в режиме реального времени (список процессов, загруженность процессора, памяти и т.д.) h - справка q - выход из программы. u - показывает только пользовательские процессы (top -u username) F - изменяет столбец, по которому сортируются задачи f - выбор столбцов для вывода M - выводит данные в мегабайтах (top - M) |
man имя_программы | справка по программе, листать пробелом |
k | остановить процесс |
htop | то же самое, что и top, но с графическим интерфейсом |
free | выводит информацию об использовании оперативной и виртуальной памяти |
df -h | выводит информацию об использовании дискового пространства |
cat /etc/*release* (или cat /etc/issue) | узнаем версию дистрибутива Linux |
atop | лучше, чем top и sar вместе взятые, хранит исторические данные (atop) |
sudo dpkg --get-selections | смотрим список установленных пакетов ( | more - постраничный вывод) (Debian / Ubuntu Linux) |
baobab | информация об используемом дисковом пространстве |
hardinfo | программа, позволяющая смотреть информацию о системе |
hostname | показывает hostname системы |
clamAV | бесплатный антивирус, стандарт для Linux-систем |
Работа без root
Команда | Что делает |
sudo | позволяет запустить любую команду с привилегиями root, при запуске каждой команды надо вводить пароль |
sudo -i | запускает оболочку root, любые команды будут выполнены с правами администратора, не надо каждый раз вводить пароль |
sudo gedit /etc/apt/file.txt | изменить файл при помощи gedit с правами root |
su user | переключение пользователя (без имени пользователя переключает на root) |
sudo !! | перезапускает последнюю команду с правами администратора |
passwd имя_пользователя | изменение пароля пользователя |
Команды для операций с базой данных MySQL
Команда | Что делает |
mysql -u root -p | подключение к MySQL как root |
mysql -u user -p database | подключение к БД "database" от имени пользователя "user" |
create database db_name | создаем базу данных "db_name" |
show databases | вывести список всех имеющихся баз данных |
mysql > create user db_user mysql > grant all on db_name.* to 'db_user'@'localhost' identified by 'db_password' | создаем нового пользователя "db_user" и даем ему полные права на управление БД "db_name" с паролем "db_password" |
SELECT User,Host FROM mysql.user | просмотр списка пользователей MySQL |
DROP USER 'user_name'@'localhost' | удалить пользователя MySQL |
mysqldump -u [username] -p [database name] > [database name].sql | экспорт базы данных MySQL |
mysql -u [username] -p database_name < [database dump name].sql | импорт базы данных MySQL |
drop database database_name | удалить базу данных MySQL |
Заключение
Это самые популярные команды терминала (консоли), которые используются чаще всего. Если вы новичок, то пусть они вас не пугают, на самом деле все просто, надо только немного привыкнуть. Я уже привык и мне нравится. А вам?
Меня терзают смутные сомнения… А пользовались ли Вы вообще Linux? Если да, то почему Вы разделяете Ubuntu и Linux&
Меня после Вашего коммента тоже терзают сомнения, а знаете ли Вы что такое Линукс)))). Так для информации: пользовался самыми разными дистрибутивами)).