Изучаем Linux. Шаг 2. Знакомство с терминалом Linux
Сегодня начнем знакомство с терминалом, основными командами. Хотя современные версии Linux позволяют многое сделать при помощи графического интерфейса, без умения работать с командной строкой в линуксе сложно. Тем более, когда (и если) дело дойдет до установки и конфигурирования удаленного компьютера с серверной версией Linux, где графической оболочки не будет. Итак, сегодняшняя тема – знакомство с терминалом Linux.
Терминал
В прошлый раз мы установили Linux Mint на виртуальную машину и даже сделали пару первоначальных настроек. Теперь мы загрузили вполне себе работоспособную систему и… С чего начинать? Тот же вопрос и я себе задал. Начать с пользователей, их прав и т. п.? Тут без команд терминала не обойтись.
Начать изучать команды терминала? В какой-то момент все равно всплывет тема пользователей, раздачи прав и всего сопутствующего. Начать с изучения структуры каталогов? Опять-таки без терминала обойтись сложно.
Скорее всего, начать придется со всего сразу и постепенно упорядочивать информацию.
Основным средством управления Linux был, есть и скорее всего останется терминал. Если брать ближайшую аналогию – это командная строка в Windows. И если там без использования этого способа зачастую вполне обойтись, в Линуксе это не так. Порой это едва ли не единственный способ управления компьютером.
Давайте наконец откроем терминал. Сделать это можно несколькими способами:
- Нажимаем одновременно клавиши «Ctrl», «Alt» и «T».
- На панели задач мышкой нажимаем на значок терминала как на картинке снизу.
- Нажать мышкой кнопку «Меню» и в строке поиска начать вводить слово «терминал»
В любом случае результат будет один и тот же, откроется окно терминала с приглашением ввода команд.
Приглашение состоит из имени пользователя, «собачки», имени хоста машины, которое мы дали при установке Linux, двоеточия, слэша и знака «$». Для другого пользователя строка будет выглядеть немного иначе, а именно, сначала будет имя другого пользователя, а имя хоста останется неизменным. В моем случае приглашение выглядит так, как показано на иллюстрации ниже.
Кстати, давайте заодно познакомимся с первой командой терминала и выведем на экран имя хоста (которое мы, правда, и так уже знаем). Давайте наберем в терминале строку:
hostnamectl
Следует сразу сказать, что в линуксе надо внимательно следить за правильностью написания команд. Так, если про hostnamectl система хорошо все знает и готова выполнить эту команду в любой момент, то вот что такое Hostnamectl – ей сие неведомо.
После нажатия клавиши «Enter» появится несколько строк, например, как на иллюстрации:
Помимо имени хоста мы получаем информацию о версии ОС, ядра Linux и ряд других параметров, которые нам сейчас мало интересны. И все же первую команду мы уже выполнили. Использование терминала не кажется сложным. Могу вас успокоить, это только кажется.
Просмотр каталогов
Каталог, он же директория, он же папка. Впрочем, «папки» - это в Windows, в линуксе привычнее оперировать понятиями каталог или директория. Давайте взглянем на перечень каталогов, на список содержащихся в них файлов. Перечень, список, а может?.. Именно! По-английски это «list», и в Linux используется сокращенная форма этого слова – «ls».
Введем эту команду в терминал и нажмем «Enter». Результат работы команды на экране (у вас могут быть небольшие отличия):
Синим цветом отображаются каталоги. Файлов в данном случае нет. Ой ли? Давайте немного модифицируем команду и наберем следующее:
ls -a
Результат работы уже совсем иной.
Появилось много надписей белым цветом с точкой в начале. Так обозначаются скрытые файлы (а белым цветом помечаются именно файлы). Не обойтись без аналогии с более привычной ОС Windows. Там тоже есть скрытые файлы, правда точкой они не помечаются.
Нам важнее сейчас не сам результат работы команды, а дополнение «-a», которые мы добавили в команду «ls». Это параметр команды, коих у нее много. Со всеми из них можно ознакомиться в документации или введя команду:
ls --help
В данном случае «--help» также является параметром команды «ls». Большинство команд имеет как короткую форму, перед которой ставится один знак «-», так и длинную, перед которой ставится два знака дефиса.
Например, выполненный ранее вывод списка каталогов и файлов, включая скрытые, можно было бы написать так:
ls --all
На данный момент мы получили краткую информацию о каталогах и файлах. А если нам хочется знать больше? Не проблема, воспользуемся следующей командой:
ls -l
Еще раз хочу обратить внимание, что ls -l и ls -L – это разные команды и результат их работы будет отличаться. Регистр букв имеет значение!
Итак, что мы видим? Развернутую информацию о каталогах, а если хочется еще и о скрытых файлах, то используем уже изученные нами параметры:
ls -l -a
или более компактный способ записи:
ls -la
Мы можем объединять параметры, но только в том случае, если это короткие формы. Например, попытка выполнить команды «ls -lall» или «la --alll» ни к чему хорошему не приведут. Впрочем, к плохому тоже. В крайнем случае появится сообщение, что команда не распознана и надо обратиться к документации.
Что отобразила нам предыдущая команда? Права доступа к каждому файлу или каталогу, владельца, размер, дату создания. Более подробно об этом поговорим, когда будем разбираться со структурой каталогов и правами пользователей.
Параметров у команды «ls» много, и далеко не со всеми придется работать. Уточнить информацию всегда можно по мере надобности. Параметры «-l», «-a» используются часто.
Можно также отсортировать вывод, например, по имени:
ls -lac
Или по времени создания, начиная с самого нового файла:
ls -lat
Если требуется вывести содержимое конкретного каталога, то команду можно написать так
ls -l /dir1/dir2/
где dir1 и dir2 – каталоги.
Кстати, если укоротить команду и ввести:
l
То мы получим результат, аналогичный работе команды «ls» за исключением того, что к именам директорий добавится символ слеша, что сделает чуть более наглядным различие между каталогами и файлами.
Где мы находимся?
Бывает полезно узнать, в каком каталоге мы сейчас находимся, т. е. распечатать (текущую) рабочую директорию, или «print working directory». В линуксе это сокращается до команды:
pwd
В моем случае будет выведана строка «home/andrew», т. е. корневая директория пользователя «аndrew». Параметров у данной команды нет.
Перемещение по каталогам
Ну хорошо, а что делать, если нам нужно перейти в какой-то конкретный каталог с целью посмотреть, что там находится или что-то там изменить? Надо сменить директорию – «change [working] directory», или в переводе с английского на линуксовый, воспользоваться командой «cd».
Формат записи у нее следующий – «cd /[directory]», если мы хотим попасть в какую-то конкретную папку, или «cd ..» если нам надо вернуться на один уровень вверх в списке каталогов.
Если мы сейчас находимся в корневом каталоге пользователя, то для наглядности предлагаю дважды выполнить команду:
cd ..
чтобы перейти в корень нашего накопителя.
Можно выполнить это действие и за один раз, если модифицировать команду так:
cd ../..
Тем самым мы перешли вверх по дереву каталогов на два уровня. Если надо на три – то пишем «cd ../../..» и т. д.
Список каталогов и файлов тут сейчас более обширный и интересный. Давайте перейдем, например, в каталог «var», для чего введем команду:
cd var
Обратите внимание, что приглашение терминала изменилось, добавилось имя текущего каталога. Давайте теперь перейдем еще на уровень вниз командой:
сd run
Если мы введем команду просмотра каталога («ls»), то увидим что-то типа такого:
Если введем команду
cd mount
то попадем еще на уровень вниз, в каталог «mount». Обратите внимание на строку приглашения терминала.
Те же действия можно было бы выполнить, если, находясь в корне диска, ввести команду:
cd /var/run/mount/
Чтобы вернуться в корневой каталог нашего пользователя (именно пользователя, а не накопителя), достаточно ввести команду:
cd ~
Как видим, перемещение по каталогам также не является чем-то сложным.
Создание, удаление каталогов
Нам часто приходится создавать (делать, производить и т. д.) каталоги для тех или иных нужд. Как по-английски это будет? Make Directory – в линуксе превращается в команду «mkdir».
Давайте в нашем родительском каталоге создадим еще один, например, с именем «testdir». Переходим в наш корневой каталог командой «cd ~» (если мы не находимся в нем) и вводим команду:
мkdir testdir
Нажимаем «Enter», и после вызываем команду просмотра содержимого каталога. Что видим? Появился каталог «testdir».
Если мы захотим выполнить то же действо в корневой папке диска, то нам будет отказано в доступе. О правах и доступе разговор будет в другой раз.
Параметров у команды «mkdir» немного. Параметр «-m» нам пока не интересен, а вот параметр «-v» может оказаться полезным, т. к. выводит информацию об успешном создании каталога. Без этого параметра вся работа выполняется втихаря.
Если каталог нам уже не нужен, то разумнее всего удалить (убрать, устранить) директорию, т. е. сделать «remove directory». Давайте удалим созданный только что каталог «testdir», воспользовавшись командой:
rmdir testdir
Каталог удалится. Только следует помнить, если в нем есть подкаталоги, данная команда выдаст сообщение о непустом каталоге, и удаления не будет. Надо сначала удалить вложенные директории, и только потом родительскую.
Например, опять создадим каталог «testdir» («мkdir testdir»), зайдем в него («cd testdir») и создадим в нем еще один с именем «dir1» («mkdir dir1»). Теперь вернемся в корневую директорию пользователя («cd ~»). Введем команду:
rmdir -p testdir/dir1
Теперь сообщения об ошибке не будет, и каталог «testdir» будет удален, как и вложенный в него «dir1». На помощь пришел параметр «-p», который удаляет все вложенные подкаталоги и сам каталог, указанный для удаления. Убедимся в этом командой:
ls
Более наглядным будет использование команды:
rmdir -pv testdir/dir1
Мы получим сообщение об удалении каждого каталога, сначала «dir1», а потом «testdir». Все это благодаря параметру «-v». Помним про объединение параметров, вместо «-p -v» пишем просто «-pv».
Есть еще одна команда, удаляющая файлы, а также каталоги – «rm». У нее есть несколько параметров, весьма интересных, но сейчас нам достаточно только одного из них – «-R» или «-r». Это рекурсивное удаление каталогов, т. е. будут удалены вложенные подкаталоги и целевой.
Заключение. Знакомство с терминалом Linux
Подведем краткие итоги сегодняшнего разговора:
- Для просмотра содержимого каталогов используется команда «ls». Параметры (например, «-a», «-l» и т. д.) модифицируют вывод в соответствии с требованиями.
- Для перемещения между каталогами используется команда «cd» с добавлением каталога, в который надо перейти.
- Создается каталог командой «mkdir», после которой указывается имя нового каталога. Например, «mkdir newdir» в случае, если каталог создается в текущем или «mkdir /dir1/newdir», если каталог создается в каком-либо из нижележащих.
- Удалить каталог можно командой «rmdir» с добавлением имени каталога. Если в нем есть вложенные каталоги, то следует либо по очереди удалить их и потом родительский, либо использовать параметр «-p» для удаления вложенных подкаталогов.
Следующий материал будет посвящен пользователям Linux.