Переміщення по файловій системі та робота з нею
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>