Руководство по выживанию в оболочке Linux для начинающих

0
3089
views

Перевод статьи «A Beginner’s Guide to Surviving in the Linux Shell».

Работа в командной строке Linux

Командная строка Linux

Черный экран с белым текстом и без всякой графики. Да, на первый взгляд оболочка Linux выглядит пугающе, но она куда более мощная, чем графические инструменты. 70% серверов и 90% супер-компьютеров в мире работают на Linux. Учебная кривая этой операционной системы довольно крутая, чтобы ее изучить, нужно «пожить» в ней некоторое время. Но когда вы освоитесь в командной строке, у вас появятся навыки, выделяющие вас на общем фоне.

Эта статья представляет и поясняет 10 самых полезных команд Linux. После ее прочтения вы сможете в командной строке делать такие базовые вещи как создание и удаление директорий, редактирование текстовых файлов и т. п.

Tux - символ 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/(ваше-имя-пользователя). В приглашении командной строки домашняя директория обозначена символом «~».

Команда pwd, выполненная в домашней директории
Команда pwd, выполненная в домашней директории

2. cd

Команда cd (change directory – «сменить директорию») меняет рабочую директорию на ту, имя которой вы указываете после имени самой команды. Если вы введете cd myfolder, вашей рабочей директорией станет myfolder. Это имя также отобразится в приглашении командной строки. Но если в вашей текущей директории нет папки с именем myfolder, вы получите сообщение об ошибке.

Переход в myfolder и последующий запуск pwd
Переход в myfolder и последующий запуск pwd

Если после перехода в другую директорию вы вновь выполните команду pwd, на экран выведется полный путь к вашей новой рабочей директории.

Команда cd .. (в качестве аргумента указаны две точки) сменит рабочую директорию на ее родительскую, т. е., предыдущую в иерархии. В нашем случае мы вернемся в домашнюю папку.

Возвращение в домашнюю директорию и последующий запуск pwd
Возвращение в домашнюю директорию и последующий запуск pwd

Примечание редакции: для возврата в домашнюю директорию из любой другой можно ввести cd ~.

Также можно указывать абсолютный путь к директории, в которую вы хотите перейти. Абсолютным путем называется полное указание пути, начиная от директории root (/). Например, абсолютный путь к myfolder будет выглядеть как /home/puranjay/myfolder. Именно абсолютный путь вы видите в результате выполнения команды pwd.

Примечание редакции: первый способ указания пути, который использовался в статье, называется относительным. Мы указывали только имя директории myfolder. Это подразумевало, что мы имеем в виду директорию myfolder – дочернюю для нашей рабочей директории. Обозначение родительской директории двумя точками (cd ..) это тоже относительный путь, потому что мы перемещаемся в директорию, родительскую по отношению к нашей рабочей директории.

3. ls

Команда ls (list – «список»), введенная без дополнительных аргументов, выводит содержимое текущей рабочей директории, а именно – список содержащихся в ней файлов и директорий.

Например, если запустить команду ls, находясь в myfolder, мы получим имена содержащихся в этой папке файлов.

Запуск команды ls, находясь в myfolder
Запуск команды ls, находясь в myfolder

Также можно в качестве аргумента команды ввести абсолютный путь к директории, содержимое которой вы хотите посмотреть. Например, если вы находитесь в домашней директории и запустите команду ls /boot, оболочка выведет содержимое директории boot, находящейся в корневой (/) директории. Ваша рабочая директория при этом не изменится.

Также стоит помнить о том, что «boot» и «/boot» с точки зрения оболочки это разные директории. Просто «boot» это директория или файл в текущей директории, а «/boot» – директория или файл, находящиеся в корневой директории (/). Если вы запустите команду ls boot, вы получите сообщение об ошибке, потому что в текущей (домашней) директории такой папки или такого файла нет.

ls /boot показывает содержимое директории boot , находящейся в папке root, а ls boot выдает ошибку
ls /boot показывает содержимое директории boot , находящейся в папке root, а ls boot выдает ошибку

4. man

Команда man (manual – «руководство») открывает страницу руководства по команде, имя которой вы вводите в качестве аргумента. Это руководство содержит информацию по всем командам, доступным в Linux. Там вы найдете сведения о правильном использовании команды и различных доступных опциях.

Для выхода из страницы man нажмите клавишу «q».

Например, если мы запустим команду man ls, мы получим руководство и команде ls.

Страница man для команды ls
Страница man для команды ls

5. mkdir

Команда mkdir (make directory – «создать директорию») создает новую директорию с именем, введенным в качестве аргумента команды. Находиться она будет в нашей текущей директории. Например, mkdir hello создаст директорию hello внутри текущей директории. После ее создания можно ввести cd hello и перейти в эту новую директорию. В приглашении командной строки «~» сменится на «hello».

Создание директории hello и переход в нее
Создание директории hello и переход в нее

6. rmdir

Команда rmdir (remove directory — «удалить директорию») удаляет/стирает директорию, указанную в качестве аргумента команды. Если мы введем rmdir hello, мы удалим ранее созданную директорию hello.

Нельзя удалить директорию, находясь в ней. Поэтому с помощью cd .. мы перейдем на уровень выше в иерархии и уж затем удалим папку hello.

Выход из директории hello и ее удаление
Выход из директории hello и ее удаление

Также нельзя удалить директорию с помощью команды rmdir, если эта директория не пустая (мы получим сообщение об ошибке).

Диреткория hello содержит файл file1, поэтому при попытке ее удаления выводится сообщение об ошибке
Диреткория hello содержит файл file1, поэтому при попытке ее удаления выводится сообщение об ошибке

Чтобы все же заставить оболочку удалить не пустую директорию с помощью команды 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
Вид редактора nano

Для выхода из nano нажмите CTRL+X. При этом редактор спросит вас, хотите ли вы сохранить файл.

Сохранение файла в nano
Сохранение файла в nano

Если нажмете «Y», вам будет предложено ввести имя для этого файла. Нажатие ENTER после ввода имени закроет nano. Файл с указанным именем будет сохранен в текущей директории.

Сохранение файла с именем testfile.txt
Сохранение файла с именем testfile.txt

9. cat

Команда cat (от слова concatenate – «объединять») используется для вывода содержимого файла в окне терминала. Используется, главным образом, для просмотра содержимого файла. Для этого нужно ввести саму команду, а в качестве аргумента – имя файла (или абсолютный путь к файлу), который вы хотите просмотреть. Содержимое файла будет выведено на экран.

Команда cat выводит содержимое созданного ранее файла
Команда cat выводит содержимое созданного ранее файла

Примечание редакции: имя команды образовано от слова «конкатенация», и основное ее назначение – объединение нескольких файлов в один. Указав в качестве аргументов два разных файла, вы сможете просмотреть их одновременно и даже перезаписать результат в третий файл. Любопытные факты: в 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 это самый крупный и самый старый проект с открытым исходным кодом, а его изучение – первый шаг к тому, чтобы стать контрибутором этого проекта.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here