Хитрості командного рядка linux

хитрості

  • Використання Операторів «Grep АБО / Grep І / Grep НЕ» в BASH
  • Друк Стовпців (Колонок) у Bash за допомогою AWK
  • Видалення Перших та Останніх Символів зі Строк у Bash
  • Додати Символ на Початку або в кінці кожного рядка з AWK і SED
  • Перевірити Чи існує файл
  • Надрукувати Usage та Перервати Скрипт при Незаданих Аргументах
  • CASE - Оператор Вибору в Bash
  • "Так/Ні" в Bash Скрипті - Запит Підтвердження
  • Виконати та Повторити Команду N Раз у Bash

Використання Операторів «Grep АБО / Grep І / Grep НЕ» в BASH

Оператор Grep ‘OR’

Знаходимо всі рядки у файлі, які містять будь-які з перерахованих шаблонів.

Використовуючи командуGREP :

Використовуючи командуAWK :

Використовуючи командуSED :

Оператор Grep ‘AND’

Знаходимо і друкуємо рядки, що містять усі перелічені патерни.

Використовуючи командуGREP :

Використовуючи командуAWK :

Використовуючи командуSED :

Оператор Grep ‘NOT’

Знаходимо та друкуємо рядки, які не містять зазначений патерн.

Використовуючи командуGREP :

Використовуючи командуAWK :

Використовуючи командуSED :

Друк Стовпців (Колонок) у Bash за допомогою AWK

AWK - це потужний інструмент командного рядка, який можна використовувати для обробки вхідних даних у вигляді стовпців.

За допомогою прикладів цієї статті, Ви зможете вирішувати такі поширені завдання, як :

  • Друк Стовпців за номерами
  • Змінювати Розділювачі Колонок
  • Виключати Певні Стовпці
  • Друкувати або Виключати Діапазон Стовпців

Друк Стовпців за номерами за допомогою AWK

Вивести усі стовпці.

Друкувати третій стовпець.

Надрукувати перший і третій стовпці.

Змінити Розділювач Колонок в AWK

За умовчаннямAWK, як роздільник колонок, використовує пробіли та табуляції.

Використовувати «,» (ком) як роздільник і вивести 2-у колонку.

Використовувати «:» (двокрапка) як роздільник і надрукувати третій стовпець.

Виключити Стовпці за допомогою AWK

Надрукувати всі стовпці, крім 3-го.

Надрукувати всі стовпці, за винятком 1-го та 2-го.

Друкувати або Виключити Діапазон Стовпців за допомогою AWK

Вивести колонки з 2-ї по 4-ту.

Виключити спектр стовпців з 2-го по 4-ий і надрукувати всі інші.

Видалення Перших та Останніх Символів зі Строк у Bash

Я створив файл з таким вмістом і використовуватиму його в прикладах нижче. Допустимо нам необхідновидалити кілька символів з початку та з кінця кожного рядка цього файлу.

Видалити Перші N Символів Кожного Рядка

Використовуйте наступну команду, щобвидалити перші 5 символів кожного рядка (видаляємо перші 5 символів і друкуємо кожен рядок, починаючи з 6-го символу) :

Друк Рядки Між Заданими Символами

Використовуйте наступну команду, щобнадрукувати вміст кожного рядка між 9-м та 20-м символами у Bash :

Друк Перших N Символів Кожного Рядка

Використовуйте наступну команду, щобнадрукувати перші 20 символів кожного рядка в Bash :

Видалити Останній Символ Кожен Рядки

Використовуючи поєднання командrev erse таcut, ми можемовидаляти останні N символів кожного рядка, якпоказано нижче. (джерело) Використовуйте наступну команду, щобвидалити останній символ кожного рядка в Bash :

Видалити Останні N Символів Кожного Рядка

Використовуйте наступну команду, щобвидалити останні 8 символів кожного рядка в Bash :

Додати Символ на Початку або в кінці кожного рядка з AWK і SED

Я створив файл з таким вмістом і використовуватиму його в прикладах нижче :

Допустимо нам необхіднододати символи на ПОЧАТКУ або в КІНЦІ кожного рядка цього файлу.

Додати Символи на ПОЧАТКУ Кожний Рядки

Використовуйте такі команди, щоб додати один або кілька символів у ПОЧАТКУ кожного рядка файлу :

Додати Символи в КІНЦІ Кожний Рядки

Використовуйте наступні команди, щоб додати будь-який текст у КІНЦІ кожного рядка файлу :

Додати Точку із Комою в Кінці Кожної Рядки

Використовуйте наступну команду AWK для того, щоб вставити «;» (точку з комою)в КІНЦІ кожного рядка файлу :

Додати Символи в ПОЧАТКУ та в КІНЦІ Строк

Використовуйте наступні команди, щоб додати будь-який префікс у ПОЧАТКУ та якийсь суфікс у КІНЦІ кожного рядка файлу :

Додати Коми та Надрукувати в Одну Рядок

Я часто використовую наступну команду для того, щоб додати в кінці кожного рядка файлу, крім останнього, за комою, а потім вивести весь файл в один рядок:

Перевірити Чи існує файл

У процесі написання BASH скриптів дуже часто виникає ситуація, коли необхідно перевірити існування файлу, перш ніж робити будь-які дії.

Ця робота для командиtest (те ж, що і[] ). Ця команда дозволяє проводити ряд тестів, і після закінчення встановлює кодзавершення дорівнює 0 (правда) або 1 (брехня), залежно від того, чим закінчився тест.

Основні параметри

Параметри Опис
-eПовертає значення, якщо файл існує
-fПовертає значення, якщо файл існує і це звичайний файл
-rПовертає значення, якщо файл існує і він доступний для читання
-wПовертає значення, якщо файл існує і він доступний для запису
-xПовертає значення якщо файл існує і він виконується

1. Перевіримо, чи існує файл /etc/passwd і надрукуємо Файл Знайдений, якщо він існує :

2. Перевіримо чи існує файл /etc/passwd і надрукуємо Файл НЕ Знайдено, якщо він НЕ існує:

3. Перевіримо існування файлу /etc/passwd і виконаємо будь-яку дію, якщо він існує, або іншу дію, якщо цей файл НЕ існує:

Приклад BASH Скрипта

Цей скрипт перевіряє чи існує файл чи ні:

Збережіть та виконайте скрипт :

chmod +x script.sh./script.sh /path/to/SomeFile.txt The File '/path/to/SomeFile.txt' Does Not Exist./script.sh /etc/resolv.conf The File '/etc/resolv.conf' Exists

Надрукувати Usage та Перервати Скрипт при Незаданих Аргументах

Використовуйте наступну перевірку в shell скриптах, щоб :

1. перевірити кількість вхідних аргументів

2. вивести повідомлення про помилку, якщо кількість вхідних аргументів некоректна

3. перервати shell скрипт зі статусом помилки

Параметр Опис
$#змінна, що містить кількість аргументів, відданих скрипту
-eq 0перевіряємо, чи дорівнює кількість переданих аргументів нулю
$0повертає шлях до shell скрипту

Приклад Bash Скрипта

Наступний скрипт використовує команду dig для пошуку DNS-сервера доменного імені. Домен, що перевіряється, повинен передаватися скрипту як аргумент.

Приклад виконання скрипту, якщо аргумент не вказано:

$ ./find_ns.shUsage: ./find_ns.sh domain_name

Приклад роботи скрипта при заданому аргументі: $./find_ns.sh shellhacks.com ns2.ukraine.com.ua. ns3.ukraine.com.ua. ns1.ukraine.com.ua.

CASE - Оператор Вибору в Bash

Базовий Синтаксис Оператора Вибору CASE

Приклад BASH Скрипт з Оператором CASE

Приклади роботи скрипта: $./testcase.sh Який Linux дистрибутив Ви знаєте?centos Гей! Це моя улюблена серверна операційна система! $ ./testcase.sh Який Linux дистрибутив Ви знаєте?rhel Гей! Це моя улюблена серверна операційна система! $ ./testcase.sh Який Linux дистрибутив Ви знаєте?ubuntu Я теж знаю ubuntu! Це операційна система, яка базується на Debian. $ ./testcase.sh Який Linux дистрибутив Ви знаєте?pfff Хмм, здається, я ніколи не використовував цей дистрибутив.

"Так/Ні" в Bash Скрипті - Запит Підтвердження

У bash скриптах дуже часто виникає необхідність призупинити виконання завдання іпоставити користувачеві питання, на яке той повинен відповістиТак або Ні.

Наприклад, перед виконанням потенційно небезпечної частиниbash скрипта, гарною ідеєю будезапитати підтвердження у користувача, запитавши — «Ви впевнені?».

У цій нотатці Ви знайдете три найпростіші ішвидких способузадати «Так/Ні» питання у bash скрипті.

Запит про Продовження у Bash

Найкращий спосібзапитати підтвердження на продовження у bash скрипті — це за допомогою команди read (джерело) :

Простий «Так/Ні» Питання в Bash

Одним із найпоширеніших способів постановки питань у bash скриптах - це комбінування команд read + case (джерело):

Вибираємо «Так/Ні» з Меню до Bash

Ще один легкий спосіб - за допомогою команди select (джерело):

Виконати та Повторити Команду N Раз у Bash

Іноді виникає необхідністькілька разів виконати одну і ту ж команду з командного рядка в Linux.

УBash існує проста конструкція, за допомогою якої команду можна прописати один раз, але зробити так, щоб вона булавиконана N разів.

З цієї невеликої нотатки ви дізнаєтеся, що найкращий спосіб, щобвиконати одну і ту ж команду N разів поспіль - це використовувати цикл FOR в Bash.

Повторити Команду Кілька разів на Linux Shell

Використовуйте наступний синтаксис, щоб виконати будь-яку команду 5 разів.

Давайте допоможемо Барту Сімпсону зі шкільною дошкою:

Якщо вам необхідно часто використовувати таку конструкцію, тоді не завадить створити відповідну функцію Bash (додайте в