Линукс без командной строки

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

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

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

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

Читайте также:  Как включить записки windows 10

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

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

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

Команда 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 это самый крупный и самый старый проект с открытым исходным кодом, а его изучение – первый шаг к тому, чтобы стать контрибутором этого проекта.

Источник

5 современных альтернатив старым инструментам командной строки Linux

Используя более современные альтернативы наряду со старыми инструментами командной строки, можно получить больше удовольствия и даже повысить производительность труда.

В повседневной работе в Linux / Unix мы используем множество инструментов командной строки — например, du для мониторинга использования диска и системных ресурсов. Некоторые из этих инструментов существуют уже давно. Например, top появился в 1984 году, а первый релиз du датируется 1971 годом.

За прошедшие годы эти инструменты были модернизированы и портированы на разные системы, но в целом далеко не ушли от своих первых версий, их внешний вид и usability также сильно не изменились.

Это отличные инструменты, которые необходимы многим системным администраторам. Однако сообщество разработало альтернативные инструменты, которые предлагают дополнительные преимущества. Некоторые из них просто имеют современный красивый интерфейс, а другие значительно улучшают удобство использования. В этом переводе расскажем о пяти альтернативах стандартным инструментам командной строки Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) похож на du, но с интерактивным интерфейсом на основе библиотеки curses. ncdu отображает структуру каталогов, которые занимают большую часть вашего дискового пространства.

ncdu анализирует диск, а затем отображает результаты, отсортированные по наиболее часто используемым каталогам или файлам, например:

По записям можно перемещаться с помощью клавиш со стрелками. Если вы нажмёте Enter, ncdu отобразит содержимое выбранного каталога:

Вы можете использовать этот инструмент, чтобы, например, определить, какие файлы занимают больше всего дискового пространства. В предыдущий каталог можно перейти, нажав клавишу со стрелкой влево. С помощью ncdu вы можете удалить файлы, нажав клавишу d. Перед удалением он запрашивает подтверждение. Если вы хотите отключить функцию удаления, чтобы предотвратить случайную потерю ценных файлов, используйте опцию -r для включения режима доступа только для чтения: ncdu -r.

ncdu доступен для многих платформ и дистрибутивов Linux. Например, вы можете использовать dnf для его установки на Fedora непосредственно из официальных репозиториев:

2. htop vs top

Htop — это интерактивная утилита для просмотра процессов, похожая на top, но из коробки обеспечивающая приятное взаимодействие с пользователем. По умолчанию htop отображает ту же информацию, что и top, но в более наглядном и красочном виде.

По умолчанию htop выглядит так:

В отличие от top:

Кроме того, в верхней части htop отображает обзорную информацию о системе, а нижней части — панель для запуска команд с помощью функциональных клавиш. Вы можете настроить её, нажав F2, чтобы открыть экран настройки. В настройках можно изменить цвета, добавить или удалить метрики или изменить параметры отображения панели обзора.

Хотя, покрутив настройки последних версий top, тоже можно добиться похожего usability, htop предоставляет удобные конфигурации по умолчанию, что делает его более практичным и простым в использовании.

3. tldr vs man

Инструмент командной строки tldr отображает упрощённую справочную информацию о командах, в основном примеры. Его разработало сообщество tldr pages project.

Стоит отметить, что tldr — это не замена man. Он по-прежнему является каноническим и наиболее полным инструментом вывода справочных страниц. Однако в некоторых случаях man является избыточным. Когда вам не нужна исчерпывающая информация о какой-либо команде, вы просто пытаетесь запомнить основные варианты её использования. Например, страница man для команды curl содержит почти 3000 строк. Страница tldr для curl имеет длину 40 строк. Её фрагмент выглядит так:

TLDR означает «слишком длинно; не читал»: то есть, некоторый текст был проигнорирован из-за его чрезмерной многословности. Название подходит для этого инструмента, потому что man-страницы, хотя и полезны, но иногда бывают слишком длинными.

Для Fedora tldr был написан на Python. Вы можете установить его с помощью менеджера dnf. Обычно для работы инструмента необходим доступ к интернету. Но клиент Python в Fedora позволяет загружать и кэшировать эти страницы для автономного доступа.

4. jq vs sed/grep

jq — это JSON-процессор для командной строки. Он похож на sed или grep, но специально разработан для работы с данными в формате JSON. Если вы разработчик или системный администратор, который использует JSON в повседневных задачах, этот инструмент для вас.

Основное преимущество jq перед стандартными инструментами обработки текста, такими как grep и sed, заключается в том, что он понимает структуру данных JSON, позволяя создавать сложные запросы в одном выражении.

Например, вы пытаетесь найти названия контейнеров в этом файле JSON:

Запустите grep для поиска строки name:

grep вернул все строки, содержащие слово name. Вы можете добавить ещё несколько параметров в grep, чтобы ограничить его, и с помощью некоторых манипуляций с регулярными выражениями найти имена контейнеров.

Чтобы получить этот же результат с помощью jq, достаточно написать:

Эта команда выдаст вам имена обоих контейнеров. Если вы ищете только имя второго контейнера, добавьте индекс элемента массива в выражение:

Поскольку jq знает о структуре данных, он даёт те же результаты, даже если формат файла незначительно изменится. grep и sed в этом случае могут работать некорректно.

У jq много функций, но для их описания нужна ещё одна статья. Для получения дополнительной информации обратитесь к странице проекта jq или к tldr.

5. fd vs find

fd — это упрощённая альтернатива утилите find. Fd не призван заменить её полностью: в нём по умолчанию установлены наиболее распространённые настройки, определяющие общий подход к работе с файлами.

Например, при поиске файлов в каталоге репозитория Git, fd автоматически исключает скрытые файлы и подкаталоги, включая каталог .git, а также игнорирует шаблоны из файла .gitignore. В целом, он ускоряет поиск, выдавая более релевантные результаты с первой попытки.

По умолчанию fd выполняет поиск без учёта регистра в текущем каталоге с цветным выводом. Тот же поиск с использованием команды find требует ввода дополнительных параметров в командной строке. Например, чтобы найти все файлы .md (или .MD) в текущем каталоге, нужно написать такую команду find:

Для fd она выглядит так:

Но в некоторых случаях и для fd требуются дополнительные параметры: например, если вы хотите включить скрытые файлы и каталоги, вы должны использовать опцию -H, хотя обычно при поиске это не требуется.

fd доступен для многих дистрибутивов Linux. В Fedora его можно установить так:

Необязательно от чего-то отказываться

Используете ли вы новые инструменты командной строки Linux? Или сидите исключительно на старых? Но скорее всего, у вас комбо, да? Пожалуйста, поделитесь вашим опытом в комментариях.

На правах рекламы

Многие наши клиенты уже оценили преимущества эпичных серверов!
Это виртуальные серверы с процессорами AMD EPYC, частота ядра CPU до 3.4 GHz. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Спешите заказать!

Источник

Оцените статью