1 марта 2019

Быстрое изучение Bash: 30 легких команд для новичков

Если вы здесь, вероятно, вы столкнулись с проблемой изучения Bash команд. Давайте это исправим 🙂

Первые команды – учимся ходить

Современные файловые системы – это древовидные каталоги с корневой и родительскими директориями. Движение вверх по родительским каталогам приводит к корневому. В некоторых системах встречается несколько корневых каталогов, например, всем известные диски Windows:  C:\ ,  A:\, etc.

Но в Unix-подобных системах все по-другому: здесь принят один корневой каталог с именем  \. А вот и основные команды Bash для перемещения по файловой системе:

При работе в файловой системе пользователь находится в каталоге, который называется текущим или рабочим. Команда  pwd выводит рабочий каталог пользователя:

С  ls вы сможете вывести содержимое каталога (файлы и дочерние директории):

Перейти в другой каталог поможет  cd:

Используйте команду  cd .. для быстрого перемещения в родительскую директорию:

Сокращение  cd ~ используется для перемещения домой, в  /home/$USER:

Три bash команды для управления

Иногда вам потребуется запускать эти команды одну за другой. Тогда на помощь приходит оператор  ;:

Точка с запятой означает, что сначала перечисляется содержимое рабочего каталога с помощью  ls, а затем  pwd выводит местоположение каталога. Еще один полезный инструмент для создания цепочек команд –  &&. При использовании  && команда справа не будет выполняться, если команда слева не выполнена:

Но если использовать  ;, вторая команда выполняется даже после ошибки в первой:

А вот вам небольшой трюк в bash. Команда  & похожа на  &&, но на самом деле выполняет другую функцию. Часто процессы блокируют ввод в терминал во время работы. Чтобы свернуть подобный процесс в фон, используйте  & в конце команды. Тогда процесс выполняется в фоне, не блокируя ввод в окно терминала:

Скорая помощь для тех, кто забыл

Даже если вы давно пользуетесь продвинутыми командами bash, вы все еще можете забыть что-то из базиса, и это нормально. Всегда можно получить подсказку для большинства утилит. Как? Просто введите  -h или  --help в конце команды:

Программы и команды Linux сопровождаются справочным руководством. Введите  man перед командой, чтобы вызвать руководство. Выход из  man – клавиша q:

Быстрый просмотр и редактирование файлов

head выводит первые строки файла. Флаг  -n указывает количество отображаемых строк:

tail выводит последние строки файла. Можно получить последние  n строк или конец файла, начиная с  N-й строки, с помощью  tail -n + N:

Используйте  cat с одним или несколькими файлами: так можно быстро посмотреть содержание.

nano – минималистичный текстовый редактор командной строки. Редактор подходит начинающим и тем, кто не любит разнообразия. На начальных этапах он покроет все ваши требования.

nedit – легкий графический редактор, который открывается в окне. Редактирование по принципу «укажи и щелкни» с перетаскиванием, есть подсветка синтаксиса. Можно использовать  nedit, когда следует постоянно вносить небольшие изменения и перезапускать скрипт.

Современные редакторы предлагают функции поиска и замены, подсветки синтаксиса и так далее.  vi (m) и  emacs функциональней  nano и  nedit, но сложней в освоении.

Создаем и удаляем файлы/директории

touch нужен для изменения временных меток файлов и для создания пустого файла. Можно создать новый файл в  nano:

Затем править файл и сохранить:

Или использовать  touch:

mkdir создает новые каталоги:

Теперь удалим файл с помощью команды  rm.

WARNING: файл невозможно восстановить!

Необходимость подтверждения вызывается флагом  -i:

Удаляйте пустые каталоги с помощью  rmdir. Если  ls -a используется в пустом каталоге, команда выводит только ссылку на сам каталог  . и ссылку на родительский каталог  ..:

Команда  rmdir удаляет только директории:

Чтобы удалить директорию с содержимым, используйте  rm -rf:

Перемещаемся, копируем, ссылаемся

mv перемещает и переименовывает файл. Для переименования введите новое имя файла:

cp копирует файл:

ln -s создает симлинк:

Bash: история команд

В Bash доступна функция автоматического завершения команды по кнопке tab. Введите начальную часть команды и нажмите tab, чтобы терминал предложил полную строку.

Нажмите клавишу tab после  ls t, и команда будет завершена автоматически.

Иногда нужно нажимать tab несколько раз:

Bash хранит историю ранее введенных команд. Чтобы выполнить поиск нажмите Ctrl + r:

Нажимаем Ctrl + r:

Вводим «mobi» и находим последнюю команду с этой строкой:

mobi’: touch mobilize[/crayon]

Деревья каталогов, использование диска и процессы

По умолчанию  mkdir создает только один каталог. Это означает, что, например, если каталога  a/b не существует, то  a/b/c не может быть создан с помощью  mkdir:

Но если указать флаг  -pmkdir создаст все директории, которые отсутствуют в указанном пути:

tree отображает структуру каталога в виде отформатированного дерева. По умолчанию  tree печатает древовидную структуру, начиная с указанного каталога, но количество уровней ограничивается флагом  -L:

—b 3 directories, 2 files[/crayon]

Скрывайте пустые каталоги в дереве с помощью  --prune. Обратите внимание, что при этом не выводятся каталоги, которые содержат другие пустые каталоги:

df показывает, сколько места занимают файлы на дисках.

В приведенной выше команде  -h означает не «help», а «human-readable». Некоторые команды используют этот флаг для отображения размеров в  K для килобайт и  G для гигабайт, вместо записи гигантского числа байтов.

du показывает использование файлового пространства каталогами. Если хочется узнать, сколько свободного места на жестком диске, используйте  df, а для каталогов используйте  du:

df принимает флаг  --max-deep = N, который показывает директории только на  N уровней в указанном каталоге:

ps показывает запущенные процессы пользователей:

Вот вам и основы Bash. Но давайте копнем чуть глубже.

Другие полезные команды bash

Меняйте пароль учетной записи с помощью  passwd. Команда проверяет текущий пароль и просит ввести новый пароль дважды:

logout выполняет выход пользователя из сеанса оболочки:

exit выходит из консоли:

Запустите команду  clear, чтобы переместить текущую строку терминала в верхнюю часть экрана. Используйте для очистки рабочего пространства.

Используйте  * при поиске файлов. Обратите внимание на разницу между следующими командами:

Используйте  * много раз в одной команде с символами и без:

Ну все! Теперь вы точно застрахованы от случаев, когда bash команда не найдена.

Метки:

Опубликовано 01.03.2019 от evgeniyalf в категории "Linux