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

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

1. cd

  cd </path/to/directory>

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

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

Рис. 1

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

2. pwd

  pwd

Cокращение от print work directory. Выводит текущий абсолютный путь.

Рис. 2

3. ls

  ls </path/to/directory>

Сокращение от list. Отбражает все файлы и директории в директории </path/to/directory>.

Рис. 3

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

4. cat

  cat <file_name>

Отображает содержимое файла file_name.

Рис. 4

5. less

  less <file_name>

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

Рис. 5

Рис. 5-5

6. file

  file <file_name>

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

Рис. 6

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"

^ "^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'

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

results matching ""

    No results matching ""