Руководство по выживанию в оболочке Linux для начинающих
Перевод статьи «A Beginner’s Guide to Surviving in the Linux Shell».
Командная строка Linux
Черный экран с белым текстом и без всякой графики. Да, на первый взгляд оболочка Linux выглядит пугающе, но она куда более мощная, чем графические инструменты. 70% серверов и 90% супер-компьютеров в мире работают на Linux. Учебная кривая этой операционной системы довольно крутая, чтобы ее изучить, нужно «пожить» в ней некоторое время. Но когда вы освоитесь в командной строке, у вас появятся навыки, выделяющие вас на общем фоне.
Эта статья представляет и поясняет 10 самых полезных команд Linux. После ее прочтения вы сможете в командной строке делать такие базовые вещи как создание и удаление директорий, редактирование текстовых файлов и т. п.
Зачем вообще изучать командную строку Linux?
Преимущества, которе дает хорошее умение пользоваться командной строкой:
- Вы будете лучше разбираться в своей операционной системе. Оболочка дает вам прямой доступ к вашей файловой системе, благодаря чему вы начинаете лучше понимать иерархию и структуру ОС. Вам также придется иметь дело с конфигурационными файлами (тоже напрямую), а это даст вам возможность более эффективно контролировать свою операционную систему.
- Вы сможете удаленно контролировать компьютеры и серверы. Такие сетевые протоколы как SSH и Telnet позволяют удаленно коннектиться к компьютерам в сети, но только с помощью командной строки, без графического интерфейса. Таким образом, вы сможете пользоваться этими протоколами, только если познакомитесь с оболочкой.
- Вы сможете самостоятельно установить Arch Linux. Этот дистрибутив пугает многих новичков своим методом инсталляции. Чтобы установить Arch Linux, вам придется все делать вручную, от разбивки диска до создания пользователя, и все это – в командной строке. Для этого нужно очень хорошо в ней разбираться.
- Вы сможете зарабатывать настройкой и администрированием Linux-серверов. Во многих компаниях бывают вакансии «Linux System Administrator». Человек на этой позиции занимается поддержкой компьютеров с Linux, а также вносит необходимые изменения в настройки конфигурации. Этот человек должен очень хорошо знать оболочку Linux и все команды, необходимые для настройки системы.
Приглашение командной строки
Открыв приложение-терминал в вашем дистрибутиве Linux, вы увидите черный экран с вашим именем и прочей информацией. После них будет идти курсор: оболочка готова к приему команд. Информацию, которая отображается в приглашении командной строки, можно настроить, но в данной статье мы не будем этого касаться.
Стандартно в приглашении командной строки вы увидите имя пользователя, имя хоста (имя вашего компьютера в сети), название директории, в которой вы находитесь, и знак «$». Этот знак указывает на то, что вы зашли как обычный пользователь, а не root (пользователь root в Linux имеет все права и привилегии, для него будет другой знак – «#»).
10 основных команд
Эти команды позволят вам выполнять в оболочке все те задачи, который вы обычно выполняете с помощью графического пользовательского интерфейса: создание и удаление директорий, написание, редактирование и удаление файлов и т. п.
1. pwd
Команда pwd (print working directory – вывод рабочей директории) выводит полный путь к директории, в которой вы сейчас работаете. Открывая терминал, обычно вы попадаете в свою домашнюю директорию. Таким образом, введя команду pwd, вы получите в выводе /home/(ваше-имя-пользователя). В приглашении командной строки домашняя директория обозначена символом «~».
2. cd
Команда cd (change directory – «сменить директорию») меняет рабочую директорию на ту, имя которой вы указываете после имени самой команды. Если вы введете cd myfolder, вашей рабочей директорией станет myfolder. Это имя также отобразится в приглашении командной строки. Но если в вашей текущей директории нет папки с именем myfolder, вы получите сообщение об ошибке.
Если после перехода в другую директорию вы вновь выполните команду pwd, на экран выведется полный путь к вашей новой рабочей директории.
Команда cd .. (в качестве аргумента указаны две точки) сменит рабочую директорию на ее родительскую, т. е., предыдущую в иерархии. В нашем случае мы вернемся в домашнюю папку.
Примечание редакции: для возврата в домашнюю директорию из любой другой можно ввести cd ~.
Также можно указывать абсолютный путь к директории, в которую вы хотите перейти. Абсолютным путем называется полное указание пути, начиная от директории root (/). Например, абсолютный путь к myfolder будет выглядеть как /home/puranjay/myfolder. Именно абсолютный путь вы видите в результате выполнения команды pwd.
Примечание редакции: первый способ указания пути, который использовался в статье, называется относительным. Мы указывали только имя директории myfolder. Это подразумевало, что мы имеем в виду директорию myfolder – дочернюю для нашей рабочей директории. Обозначение родительской директории двумя точками (cd ..) это тоже относительный путь, потому что мы перемещаемся в директорию, родительскую по отношению к нашей рабочей директории.
3. ls
Команда ls (list – «список»), введенная без дополнительных аргументов, выводит содержимое текущей рабочей директории, а именно – список содержащихся в ней файлов и директорий.
Например, если запустить команду ls, находясь в myfolder, мы получим имена содержащихся в этой папке файлов.
Также можно в качестве аргумента команды ввести абсолютный путь к директории, содержимое которой вы хотите посмотреть. Например, если вы находитесь в домашней директории и запустите команду ls /boot, оболочка выведет содержимое директории boot, находящейся в корневой (/) директории. Ваша рабочая директория при этом не изменится.
Также стоит помнить о том, что «boot» и «/boot» с точки зрения оболочки это разные директории. Просто «boot» это директория или файл в текущей директории, а «/boot» – директория или файл, находящиеся в корневой директории (/). Если вы запустите команду ls boot, вы получите сообщение об ошибке, потому что в текущей (домашней) директории такой папки или такого файла нет.
4. man
Команда man (manual – «руководство») открывает страницу руководства по команде, имя которой вы вводите в качестве аргумента. Это руководство содержит информацию по всем командам, доступным в Linux. Там вы найдете сведения о правильном использовании команды и различных доступных опциях.
Для выхода из страницы man нажмите клавишу «q».
Например, если мы запустим команду man ls, мы получим руководство и команде ls.
5. mkdir
Команда mkdir (make directory – «создать директорию») создает новую директорию с именем, введенным в качестве аргумента команды. Находиться она будет в нашей текущей директории. Например, mkdir hello создаст директорию hello внутри текущей директории. После ее создания можно ввести cd hello и перейти в эту новую директорию. В приглашении командной строки «~» сменится на «hello».
6. rmdir
Команда rmdir (remove directory — «удалить директорию») удаляет/стирает директорию, указанную в качестве аргумента команды. Если мы введем rmdir hello, мы удалим ранее созданную директорию hello.
Нельзя удалить директорию, находясь в ней. Поэтому с помощью cd .. мы перейдем на уровень выше в иерархии и уж затем удалим папку hello.
Также нельзя удалить директорию с помощью команды rmdir, если эта директория не пустая (мы получим сообщение об ошибке).
Чтобы все же заставить оболочку удалить не пустую директорию с помощью команды rmdir, нужно добавить к ней флаг — ignore-fail-on-non-empty. Например, если мы запустим rmdir —ignore-fail-on-non-empty hello, мы удалим папку hello, несмотря на то, что в ней что-то лежит.
7. clear
Команда clear очищает окно терминала, удаляя все предыдущие выводы команд. Это бывает полезно, когда вам нужно убрать беспорядок в окне.
8. nano
Nano это консольный текстовый редактор, с помощью которого можно создавать и редактировать текстовые файлы, в том числе файлы конфигурации. Он похож на прочие текстовые редакторы, такие как notepad, за исключением того что он работает только в командной строке (не имеет графического интерфейса).
В большинстве дистрибутивов Linux редактор nano уже предустановлен.
Введя команду nano, вы откроете редактор и получите интерфейс, в котором можно набирать текст.
Для выхода из nano нажмите CTRL+X. При этом редактор спросит вас, хотите ли вы сохранить файл.
Если нажмете «Y», вам будет предложено ввести имя для этого файла. Нажатие ENTER после ввода имени закроет nano. Файл с указанным именем будет сохранен в текущей директории.
9. cat
Команда cat (от слова concatenate – «объединять») используется для вывода содержимого файла в окне терминала. Используется, главным образом, для просмотра содержимого файла. Для этого нужно ввести саму команду, а в качестве аргумента – имя файла (или абсолютный путь к файлу), который вы хотите просмотреть. Содержимое файла будет выведено на экран.
Примечание редакции: имя команды образовано от слова «конкатенация», и основное ее назначение – объединение нескольких файлов в один. Указав в качестве аргументов два разных файла, вы сможете просмотреть их одновременно и даже перезаписать результат в третий файл. Любопытные факты: в Linux есть также команда tac (cat наоборот) – для объединения файлов в обратном порядке, и команда dog – cat с улучшенным функционалом.
10. rm
Команда rm (remove – «удалить») похожа на команду rmdir, но она удаляет любые файлы, не только директории. Для использования этой команды следует указать в качестве аргумента имя файла, который вы хотите удалить. Таким образом можно удалить файл в текущей директории. А если указать абсолютный путь к файлу, то можно удалить любой файл в любой директории.
11. mv (бонус!)
Команда mv (move – «переместить») используется для перемещения и переименования файлов. Формат команды – mv исходное-положение пункт-назначения. Если файлы находятся не в текущей директории, нужно указать путь к ним (относительный или абсолютный).
Примечания
- Оболочка Linux чувствительна к регистру, так что desktop и Desktop это два разных имени.
- Следует с осторожностью прописывать пути к файлам, потому что, например, boot и /boot это две разные директории.
- Единственный способ научиться работать в оболочке Linux это провести в ней некоторое время, используя ее ежедневно. Если основная операционная система на вашей машине это Linux, то вам будет проще.
- Старайтесь найти способ делать все, что вам понадобилось сделать в Linux, с помощью командной строки. Если у вас при этом возникают вопросы, найти ответы на них можно на Stack Overflow.
- Если вы хотите стать настоящим мастером в Linux, можете почитать «Linux Bible» – самое глубокое из всех руководств по этой ОС.
Заключение
Сам я впервые познакомился с терминалом Linux пять лет назад, и меня он тоже пугал. За эти пять лет я каждый день узнавал что-то новое о Linux. Время и силы, которые вы потратите на обучение, ни в коем случае не будут потрачены впустую, они обязательно окупятся. Linux это самый крупный и самый старый проект с открытым исходным кодом, а его изучение – первый шаг к тому, чтобы стать контрибутором этого проекта.