Укр
Основные команды Bash

Основные команды Bash

  • 10 мая, 2022
  • читать 10 мин

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

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

Сокращенное change directory. Позволяет перемещаться по файловой системе.

Путь может быть как абсолютным (начинаtтся с /), так и относительным (подразумевается расположение пути относительно текущего).

  • 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>)

Выводит на экран yастоящий тип файла, а не указанный в расширении.

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

Сокращение от copy. Копирует файл file1 по пути file2.

8. mv (mv file1 file2)

Сокращение от move. Перемещает файл 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"

[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'

'{print $0}' — вывести каждую строку

'{print $1}' — вывести первое слово каждой строки

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