Перенаправление и вывод

Перенаправление ввода/вывода

Вывод текста

echo - выводит строк текста

Очистка экрана

clear - очищает экра (Ctrl + L)

История

history - выводит содержимое истории команд

История команд хранится в фале .bash/history

Перенаправление стандартного вывода

команда > файл - вывод результата команды в файл

Пример:

[andrey@fedora ~]$ ll /usr/ > out.txt
[andrey@fedora ~]$ cat out.txt 
итого 4
dr-xr-xr-x. 1 root root 33038 мая 20 14:54 bin
drwxr-xr-x. 1 root root     0 янв 20 06:04 games
drwxr-xr-x. 1 root root  2114 мая 15 16:21 include
dr-xr-xr-x. 1 root root   796 мая 15 20:06 lib
dr-xr-xr-x. 1 root root 98588 мая 20 14:24 lib64
drwxr-xr-x. 1 root root  9548 мая 20 14:23 libexec
drwxr-xr-x. 1 root root    90 янв 20 06:04 local
dr-xr-xr-x. 1 root root 12858 мая 20 14:54 sbin
drwxr-xr-x. 1 root root  4806 мая 17 20:44 share
drwxr-xr-x. 1 root root    24 янв 20 06:04 src
lrwxrwxrwx. 1 root root    10 янв 20 06:04 tmp -> ../var/tmp

Перенаправление стандартного вывода ошибок

команда 2> файл - вывод ошибок в файл

Пример:

[andrey@fedora ~]$ ll /usr2/ 2> out.txt
[andrey@fedora ~]$ cat out.txt 
ls: невозможно получить доступ к '/usr2/': Нет такого файла или каталога

Перенаправление стандартного вывода и стандартного вывода ошибок в один файл

команда &> файл - перенаправляет стандартный вывод и стандартный вывод ошибок с в файл

команда &>> файл - перенаправляет стандартный вывод и стандартный вывод ошибок с добавлением в конец одного и того же файла

Пример:

[andrey@fedora ~]$ ll test/ &>> out.txt 
[andrey@fedora ~]$ ll test1/ &>> out.txt 
[andrey@fedora ~]$ cat out.txt 
итого 0
drwxrwxr-x. 1 andrey andrey 0 мая 20 16:00 dir1
drwxrwxr-x. 1 andrey andrey 0 мая 20 16:00 dir2
d---------. 1 andrey andrey 0 мая 20 16:06 dir3
ls: невозможно получить доступ к 'test1/': Нет такого файла или каталога

Удаление нежелательного вывода

команда 2> /dev/null - удалит нежелательный вывод переслав его на специальное системное устройство битоприемник (bit bucket) /dev/null

Пример:

[andrey@fedora ~]$ ll test1/ 2> /dev/null

Перенаправление стандартного ввода

cat [файл...] - читает содержимое одного или нескольких файлов и копирует его в стандартный вывод

cat - начнет читать ввод с клавиатуры

cat > файл - запишет ввод с клавиатуры в файл (для окончания ввода необходимо нажать Ctrl + D)

Пример:

[andrey@fedora ~]$ cat > in.txt
Строка текста введенная с клавиатуры и записанная в файл
[andrey@fedora ~]$ cat in.txt 
Строка текста введенная с клавиатуры и записанная в файл

Конвейеры

команад1 | команда2 - стандартный вывод одной команды связывает со стандартным вводом другой

[andrey@fedora ~]$ ls -l /usr/bin/ | less
[andrey@fedora ~]$ ls -l test/ test/dir1 | cat
test/:
итого 0
drwxrwxr-x. 1 andrey andrey 48 мая 20 17:01 dir1
drwxrwxr-x. 1 andrey andrey  0 мая 20 16:00 dir2
d---------. 1 andrey andrey  0 мая 20 16:06 dir3

test/dir1:
итого 12
-rw-rw-r--. 1 andrey andrey 878 мая 20 17:00 out1.txt
-rw-rw-r--. 1 andrey andrey 878 мая 20 17:00 out2.txt
-rw-rw-r--. 1 andrey andrey 878 мая 20 17:00 out3.txt

Фильтры

Сортировка

sort - сортировка

[andrey@fedora ~]$ ls test/ | sort | cat
dir1
dir2
dir3

sort -r - сортировак в обратном порядке

[andrey@fedora ~]$ ls test/ | sort -r | cat
dir3
dir2
dir1

Поиск или удаление повторяющихся строк

[andrey@fedora ~]$ cat in.txt 
Строка1
Строка2
Строка2
Строка3

uniq - удаление повторяющихся строк

[andrey@fedora ~]$ cat in.txt | uniq | cat
Строка1
Строка2
Строка3

uniq -d - поиск повторяющихся строк

[andrey@fedora ~]$ cat in.txt | uniq -d | cat
Строка2

Вывод числа строк, слов, байт

wc [файл...] - (word count - счетчик слов) подсчитывает число строк, слов, байт

[andrey@fedora ~]$ wc out.txt in.txt 
  5  40 289 out.txt
  4   4  56 in.txt
  9  44 345 итого
[andrey@fedora ~]$ cat in.txt | uniq | cat 
Строка1
Строка2
Строка3
[andrey@fedora ~]$ cat in.txt | uniq | cat | wc
      3       3      42
[andrey@fedora ~]$ # Количество строк
[andrey@fedora ~]$ cat in.txt | uniq | cat | wc -l
3
[andrey@fedora ~]$ # Количество символов
[andrey@fedora ~]$ cat in.txt | uniq | cat | wc -m
24
[andrey@fedora ~]$ # Количество байт
[andrey@fedora ~]$ cat in.txt | uniq | cat | wc -c
42

при отсутствии аргументов читает данные из стандартного потока ввода (клавиатуры)

[andrey@fedora ~]$ wc
1234
5678
9101
      3       3      15

Поиск строк соответствующих шаблону

grep шаблон [файл...] - находит в файле совпадение с "шаблоном" и выводит строки с найденным совпадением

[andrey@fedora ~]$ cat out.txt 
zip1
zip2
cat1
cat2
zip3cat3
[andrey@fedora ~]$ cat out.txt | grep zip
zip1
zip2
zip3cat3
[andrey@fedora ~]$ cat out.txt | grep cat
cat1
cat2
zip3cat3
[andrey@fedora ~]$ cat out.txt | grep -v cat
zip1
zip2

ключ -v выводит строки где совпадений с шаблоном не найдено

ключ -i игнорирует регистр символов в процессе сравнения

Вывод первых/последних строк из файла

head [файл...] - выводит первые 10 строк из файла

head -n N [файл...] - выводит первые N строк из файла

tail [файл...] - выводит последние 10 строк из файла

tail -n N [файл...] - выводит последние N строк из файла

[andrey@fedora ~]$ cat in.txt 
Строка1
Строка2
Строка2
Строка3
[andrey@fedora ~]$ head -n 3 in.txt 
Строка1
Строка2
Строка2
[andrey@fedora ~]$ tail -n 3 in.txt 
Строка2
Строка2
Строка3

Команда tail позволяет наблюдать, как изменяетcя содержимое файла в режиме реального времени

[andrey@fedora ~]$ tail -f /var/log/messages

Чтение со стандартного ввода и запись в стандартный вывод и в файл

tee [файл...] - копирует стандартный ввод в каждый ФАЙЛ, а также в стандартный вывод

[andrey@fedora ~]$ ll test/
итого 0
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:51 cat4zip
drwxrwxr-x. 1 andrey andrey 48 мая 20 17:01 dir1
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:42 dir1zip
drwxrwxr-x. 1 andrey andrey  0 мая 20 16:00 dir2
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:40 dir2zip
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:41 dir3
d---------. 1 andrey andrey  0 мая 20 18:40 dir3zip
[andrey@fedora ~]$ ll test/ | tee full_list.txt | grep zip | tee zip_list.txt | grep cat
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:51 cat4zip
[andrey@fedora ~]$ cat full_list.txt 
итого 0
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:51 cat4zip
drwxrwxr-x. 1 andrey andrey 48 мая 20 17:01 dir1
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:42 dir1zip
drwxrwxr-x. 1 andrey andrey  0 мая 20 16:00 dir2
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:40 dir2zip
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:41 dir3
d---------. 1 andrey andrey  0 мая 20 18:40 dir3zip
[andrey@fedora ~]$ cat zip_list.txt 
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:51 cat4zip
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:42 dir1zip
drwxrwxr-x. 1 andrey andrey  0 мая 20 18:40 dir2zip
d---------. 1 andrey andrey  0 мая 20 18:40 dir3zip
[andrey@fedora ~]$ 

Last updated