Основні команди Bash

Основні команди Bash

  • 10 травня, 2022
  • читати 10 хв

Переміщення по файловій системі та робота з нею

1. cd (cd </path/to/directory>)

Скорочене change directory. Дозволяє переміщатися файловою системою.

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

  • cd — без параметрів переміщує до домашньої директорії користувача
  • cd — переміщає минулим шляхом
  • . (крапка) — поточна директорія
  • .. (дві крапки) — батьківська директорія
  • ~ (тільда) — домашня директорія користувача

2. pwd (pwd)

Cскорочення від print work directory. Виводить поточний абсолютний шлях.

3. ls (ls </path/to/directory>)

Скорочення від List. Відображає всі файли та каталоги в каталогах </path/to/directory>.

  • ls без параметрів відображає всі файли та директорії по поточному шляху
  • ls -a відображає приховані файли та папки
  • ls -l відображає розширену інформацію про файли та папки

4. cat (cat <file_name>)

Відображає вміст файлу file_name.

5. less (less <file_name>)

Відображає вміст файлу file_name, виводить лише вміст, що міститься у вікні терміналу. Навігація по файлу можлива кнопками-стрілками, кнопка q закриває перегляд.

6. file (file <file_name>)

Виводить на екран і цей тип файлу, а не той, що вказаний у розширенні.

7. cp (cp <file1> <file2>)

Скорочення від копії. Копіює файл file1 на шляху file2.

8. mv (mv file1 file2)

Скорочення від руху. Переміщує файл file1 на шляху file2.

9. rm (rm <file1>)

Скорочення від remove. Видаляє файл file1.

  • rm -r видаляє директорію

10. mkdir (mkdir <directory>)

Скорочення з make directory. Створює директорії з ім'ям directory.

11. locate (locate <file>)

Повертає всі шляхи з входженнями file у них.

12. man (man <cmd>)

Показує довідку за командою cmd.

13. echo (echo <string>)

Виводить заданий рядок string на екран.

14. strings (strings <file1>)

Виводить усі рядки з друкованими символами із файлу file1 на екран.

Перенаправлення виводу

Bash дозволяє перенаправляти стандартне виведення на файли за допомогою оператора >. Якщо файл не існував, він буде створений, інакше його буде перезаписано.

$ echo hello! > 1.txt
$ ls
1.txt
$ cat 1.txt
hello!

Якщо потрібно дописати рядок у файл, використовується оператор >>.

Конвеєр

Якщо потрібно перенаправити виведення однієї команди на вхід іншої, використовується оператор |.

$ locate bin | less

Пошук за вмістом файлів

$ grep [opts] "pattern" file
$ cat file | grep [opts] "pattern"

-v — вивести рядки, де не зустрічається зразок

-i — ігнорувати регістр символів

-n — друкувати номери рядків

-a — шукати по бінарним файлам

-E — розширені регулярні вирази

-o — вивести частину рядка, що тільки збігається зі зразком.

Регулярні вирази

$ egrep [opts] "pattern" file
$ cat file | egrep [opts] "pattern"

^ "^license" — початок рядка

$ "license$" — кінець рядка

[abc] "[0-9]" — будь-який символ із перелічених

[^abc] "[^ ]1" — будь-який крім перерахованих

[ab]{8} "w{3}" — повторюється кілька разів

(abc) "(license)" — група символів

. "Li.en.e" — будь-який символ

* "\([a-z ]*\" — повторити нуль або більше разів

+ "\(a.+\)" — повторити один або більше разів

? "(copy)?right" — повторити нуль або один раз

Обробка тексту

Вивести символи з 2 по 5 кожного рядка: $ cat file | cut -c 2-5

Відсортувати рядки за абеткою: $ cat file | sort

Видалити однакові рядки, що йдуть поспіль: $ cat file | uniq

Вивести унікальні рядки:

$ cat file | sort | uniq

$ cat file | awk 'program'

<span> </span>'{print $0}' — вивести кожен рядок

'{print $1}' — вивести перше слово кожного рядка

'{print "1: " $1 ", 2: " $2}' — вивести для кожного рядка 1:<слово 1>, 2:<слово 2>