2.11.16. Полезные возможности консоли

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

В оболочке Bash присутствует два файла, которые позволяют настроить используемую в CLI оболочку в зависимости от потребностей. К примеру, создать определённые алиасы при подключении или установить нужные параметры, что очень полезно при частой работе. Файлы:

  • .bash_profile — файл, обрабатываемый автоматически при подключении к консоли. Так как обычно все созданные параметры оболочки помещаются в .bashrc, то в этот файл следует поместить вызов файла .bashrc с помощью такого кода:
    if [ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi
  • .bashrc — файл, обрабатываемый для неавторизируемых подключений, к примеру при подключении по WebSSH. Чаще всего данный файл вызывается со стороны .bash_profile, чтобы создать одинаковые условия работы при подключении с авторизацией или без. В файл помещаются все параметры и команды, которые нужно выполнить после подключения.
  • Tab — автозавершение, обычно используется для автозавершения имени каталога или файла, если файлов с подобным именем несколько, то двойное нажатие выведет список подходящих файлов.
  • Ctrl+R — интерактивный поиск по ранее выполненным командам.
  • Ctrl+Alt — перемещение в начало команды.
  • Ctrl+E — перемещение в конец команды.
  • Ctrl+D — выйти из текущего подключения/командной консоли.

Навигация и работа с каталогами:

  • pwd — вывод пути к активному каталогу.
  • cd — смена активного каталога.
  • ls — вывод списка файлов и каталогов в активном каталоге или по указанному пути.
  • ll — то же, что и ls -l, вывод файлов и каталогов в виде удобочитаемого списка.
  • mkdir — создание каталога.
  • rm — удаление файла или каталога.
  • touch — обновление даты последнего изменения файла на текущее. Также создаёт файл, если в качестве параметра указан несуществующий.

Просмотр и работа с файлами:

  • cat — вывод содержимого файла.
  • head — вывод первых нескольких строк содержимого файла.
  • tail — вывод последних нескольких строк содержимого файла, выводит новые строки в режиме реального времени при дополнении файла.
  • less — постраничный просмотр файла или вывода команды. Для выхода нужно нажать Q.
  • nano, vi, vim — текстовые редакторы в терминале.
  • file — определяет тип файла. Пример: file index.php.
  • diff — сравнение двух файлов, в выводе команды будет только разница между файлами.

Поиск и анализ данных:

  • grep — поиск файлов и каталогов по содержимому. Подробнее см. Поиск файлов и каталогов через консоль.
  • find — поиск файлов и каталогов. Подробнее см. Поиск файлов и каталогов через консоль.
  • duанализ дискового пространства, которое занимают файлы и каталоги. Примеры: du -sh * или du -h –max-depth=1.
  • wc — подсчёт количества строк, слов и символов. Пример: wc -l error.log.
  • sort — сортировка строк файла. Пример: sort file.txt.
  • uniq — удаление повторяющихся строк. Пример: sort file.txt | uniq -c.
  • cut — извлечение столбцов по разделителю. Пример: cut -d":" -f1 ./.htpasswd.
  • awk — построчная обработка текстовых данных. Пример: awk '{print $1, $3}' file.txt.
  • sed — потоковый редактор для замены текста, часто используется совместно с awk. Пример: sed 's/error/warning/g' file.log.
  • ncdu — утилита для анализа дискового пространства и управления файлами и каталогами в интерактивном режиме.

Системная информация и процессы:

  • ps — вывод списка активных процессов пользователя. Пример вывода подробной информации всех запущенных процессов и фильтрация по подстроке php: ps aux | grep php.
  • strace — трассировка системных вызовов программы, что полезно для проведения анализа и отладки. Пример: strace -e openat,connect ./script.sh — отследить обращения к файлам и сети.
  • env — вывод всех переменных окружения.
  • which — вывод пути к исполняемому файлу. Пример: which php.
  • history — вывод истории выполненных команд.
  • date — текущая дата и время. Пример: date "+%d-%m-%Y %H:%M:%S".
  • man — вывод информации о команде и её возможностях.
  • xargs — использование вывода предыдущей команды в качестве аргумента для следующей. Пример: command1 | xargs command2.

Архивирование и сжатие:

Передача файлов:

  • scp — копирование файлов и каталогов между локальным и удалённым сервером по защищённому SSH-соединению. Пример: scp file.txt user@host:/path/.
  • rsync — синхронизация файлов и каталогов между локальным и удалённым сервером. Пример: rsync -avz ./public_html/ backup@remote:/backup/. См. также Создание и восстановление копии файлов сайта с помощью rsync.

Работа с сетью:

  • curl — отправка HTTP-запросов и проверка доступности URL. Пример: curl -I https://example.com.
  • wget — загрузка файлов по URL, имеет гораздо меньше возможностей, по сравнению с curl.

Работа с CMS:

  • wp — утилита для работы с сайтами на WordPress. Подробнее см. Утилита WP-CLI.
  • drushотдельно устанавливаемая утилита для управления сайтами на Drupal.
  • composer — консольный менеджер зависимостей для PHP. Подробнее см. Работа с Composer.
  • artisan — консольный интерфейс для работы с фреймворком Laravel, который идёт с ним в комплекте. Подробнее см. Утилита Artisan.
  • ~/ — означает каталог текущего пользователя, на хостинге это /home/user/, где user это название хостинг-аккаунта.
  • > — сохранение вывода команды в файл с заменой текущего содержимого файла. Перенаправление вывода имеет больше возможностей, чем запись данных в файл, подробную информацию о них можно найти в сети.
  • >> — сохранение вывода команды в файл в дополнение к текущему содержимому файла. Перенаправление вывода имеет больше возможностей, чем запись данных в файл, подробную информацию о них можно найти в сети.
  • !! — подстановка предыдущей команды.
  • !* — подстановка ключа предыдущей команды.
  • !$ — подстановка последнего аргумента предыдущей команды.
  • !abc — подстановка ранее выполненной команды, которая начинается на abc.
  • !?abc? — подстановка последней ранее выполненной команды, в которой содержится текст abc.
  • example.file{,.bak} — сокращение двух строк до одной, если во второй строке используется тот же текст, что и в первой, но с окончанием .bak. Например, это удобно при создании временной копии файла cp config.php{,.bak}.
  • ; — команды, разделённые этим символом, выполняются последовательно, следующая команда выполняется независимо от результата выполнения предыдущей.
  • && — команды, разделённые этим символом, выполняются последовательно, но следующая команда будет выполнена только в том случае, если предыдущая команда была выполнена без ошибок. Символ является подобием логического условия «И (AND)».
  • || — команды, разделённые этим символом, выполняются последовательно, но следующая команда будет выполнена только в том случае, если выполнение предыдущей команды завершилось ошибкой. Символ является подобием логического условия «ИЛИ (OR)».

Внимание!

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

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

grep -lr 'Example' ~/folder | xargs rm -f --
  • Example — искомый текст в файлах.
  • folder — целевой каталог, в котором будет выполняться поиск.
Содержание

    (1)

    Комментарии

    amelie
    Мождиво "вивід" а не "висновок".
    verliber
    Дякуємо за зауваження, виправили текст статті.