2.11.17. Корисні можливості консолі

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

В оболонці 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)

    Коментарі

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