Изучение оболочки Linux. Лекция №7

Содержание

Слайд 2

Текстовые редакторы.

■ emacs
■ nano
■ vim

Текстовые редакторы. ■ emacs ■ nano ■ vim

Слайд 3

Текстовый редактор nano.

Текстовый редактор nano.

Слайд 4

Быстрые клавиши nano.

Символ каретки ( ^ ) - использование клавиши Ctrl.
Например,

Быстрые клавиши nano. Символ каретки ( ^ ) - использование клавиши Ctrl.
для перемещения вниз по странице нажмите и удерживайте клавишу Ctrl, а затем нажмите клавишу V. Комбинация клавиш Ctrl + G служит для получения справки.

Слайд 5

Быстрые клавиши nano.

Команда M-\
M – это комбинация Esc, Alt . Символ

Быстрые клавиши nano. Команда M-\ M – это комбинация Esc, Alt .
\ просто представляет символ на клавиатуре.

Слайд 6

Редактор по умолчанию.

Редактор по умолчанию : vim
Сменить умолчание:
Для строковых редакторов(ed)
$ export EDITOR=ed
Для

Редактор по умолчанию. Редактор по умолчанию : vim Сменить умолчание: Для строковых
экранных редакторов(nano,emacs,vim)
$ export VISUAL=nano

Слайд 7

Текстовый редактор emacs.

Текстовый редактор emacs.

Слайд 8

Примеры быстрых клавиш emacs

■ Нажмите Ctrl + X, а затем комбинации клавиш

Примеры быстрых клавиш emacs ■ Нажмите Ctrl + X, а затем комбинации
Ctrl + S, чтобы сохранить содержимое буфера редактора.
в файл.
■ Нажмите Ctrl + X, а затем комбинации клавиш Ctrl + C, чтобы выйти из редактора.
■ Нажмите комбинацию клавиш Ctrl + H, а затем клавишу T, чтобы перейти к руководству по e macs .

Слайд 9

Комбинации быстрых клавиш emacs

Комбинация клавиш:
C- - клавиша Ctrl и символ клавиатуры
M- -

Комбинации быстрых клавиш emacs Комбинация клавиш: C- - клавиша Ctrl и символ
клавиша Alt и символ клавиатуры

Слайд 10

Редактор vi(vim)

$ which vim
/usr/bin/vim
$
$ which vi
alias vi='vim'
/usr/bin/vim
$

Редактор vi(vim) $ which vim /usr/bin/vim $ $ which vi alias vi='vim' /usr/bin/vim $

Слайд 11

Режимы vim

Vim работает в буфере ОП.
Три стандартных режима :
1. Командный режим Это

Режимы vim Vim работает в буфере ОП. Три стандартных режима : 1.
режим, который vim использует при первом входе в буферную область.
2. Режим вставки Режим вставки также называется режимом редактирования или ввода. Переход по клавише i . Выход - ESC
3. Ex Mode Этот режим команд двоеточия.

Слайд 12

Перемещение по буферу vim.

Перемещение по буферу vim.

Слайд 13

Перемещение по буферу vim.

Перемещение по буферу vim.

Слайд 14

Команды редактирования текста в vim.

Команды редактирования текста в vim.

Слайд 15

Поиск в vim

В командном режиме:
Поиск вперед по буферу:
? Строка поиска
2. Поиск назад

Поиск в vim В командном режиме: Поиск вперед по буферу: ? Строка
по буферу:
/ строка поиска

Слайд 16

Общий синтаксис команд в командном режиме.

COMMAND [ NUMBER-OF-TIMES ] ITEM
Например:
Удаление 3 слов:
d

Общий синтаксис команд в командном режиме. COMMAND [ NUMBER-OF-TIMES ] ITEM Например:
3 w
Скопировать текст от курсора до конца строки
y $
Вставить текст от курсора
p

Слайд 17

Команды режима Ex Mode .

Команды режима Ex Mode .

Слайд 18

Команды режима Ex Mode (Сохранить).

Команды режима Ex Mode (Сохранить).

Слайд 19

Обработка текстовых данных

Конкатенация текстовых файлов:
$ cat numbers.txt random.txt
42
2A
52
0010 1010
*
42
Flat Land
Schrodinger's Cat
0010 1010
0000

Обработка текстовых данных Конкатенация текстовых файлов: $ cat numbers.txt random.txt 42 2A
0010
$

Слайд 20

Обработка текстовых данных

Слияние текстовых файлов:
$ cat random.txt
42
Flat Land
Schrodinger's Cat
0010 1010
0000 0010
$
$ cat

Обработка текстовых данных Слияние текстовых файлов: $ cat random.txt 42 Flat Land
numbers.txt
42
2A
52
0010 1010
*
$

Слайд 21

Обработка текстовых данных

Слияние файлов
$ paste random.txt numbers.txt
42 42
Flat Land 2A
Schrodinger's Cat 52
0010

Обработка текстовых данных Слияние файлов $ paste random.txt numbers.txt 42 42 Flat
1010 0010 1010
0000 0010 *

Слайд 22

Обработка текстовых данных

Команда трансформации содержимого файлов:
od [ OPTION ]... [ FILE ]...
$

Обработка текстовых данных Команда трансформации содержимого файлов: od [ OPTION ]... [
cat fourtytwo.txt
42
fourty two
quarante deux
zweiundvierzig
forti to
$
$ od fourtytwo.txt
0000000 031064 063012 072557 072162 020171 073564 005157 072561
0000020 071141 067141 062564 062040 072545 005170 073572 064545
0000040 067165 073144 062551 075162 063551 063012 071157 064564
0000060 072040 005157
0000064

Слайд 23

Обработка текстовых данных

$ od -cb fourtytwo.txt
0000000 4 2 \n f o u

Обработка текстовых данных $ od -cb fourtytwo.txt 0000000 4 2 \n f
r t y t w o \n q u
064 062 012 146 157 165 162 164 171 040 164 167 157 012 161 165
0000020 a r a n t e d e u x \n z w e i
141 162 141 156 164 145 040 144 145 165 170 012 172 167 145 151
0000040 u n d v i e r z i g \n f o r t i
165 156 144 166 151 145 162 172 151 147 012 146 157 162 164 151
0000060 t o \n
040 164 157 012
0000064
$

Слайд 24

Обработка текстовых данных

Команда разделения файла:
split [ OPTION ]... [ INPUT [ PREFIX

Обработка текстовых данных Команда разделения файла: split [ OPTION ]... [ INPUT [ PREFIX ]]
]]

Слайд 25

Пример разделения по кол-ву строк:

$ cat fourtytwo.txt
fourty two
quarante deux
zweiundvierzig
forti to
$
$ split -l

Пример разделения по кол-ву строк: $ cat fourtytwo.txt fourty two quarante deux
3 fourtytwo.txt split42
$
$ ls split42*
split42aa split42ab
$
$ cat split42aa
42
fourty two
quarante deux
$
$ cat split42ab
zweiundvierzig
forti to
$

Слайд 26

Обработка текстовых данных- Команды форматирования файлов.

Сортировка.
sort [ OPTION ]... [ FILE

Обработка текстовых данных- Команды форматирования файлов. Сортировка. sort [ OPTION ]... [
]...
$ cat alphabet.txt
Alpha
Tango
Bravo
Echo
Foxtrot
$
$ sort alphabet.txt
Alpha
Bravo
Echo
Foxtrot
Tango
$

Слайд 27

Обработка текстовых данных- Команды форматирования файлов.

Сортировка числовых данных:
$ sort counts.txt
105
37
42
54
8
$ sort -n

Обработка текстовых данных- Команды форматирования файлов. Сортировка числовых данных: $ sort counts.txt
counts.txt
8
37
42
54
105
$ sort –o newfile.sort -n counts.txt

Слайд 28

Обработка текстовых данных

Нумерация строк в файле:
nl [ OPTION ]... [ FILE ]...
$

Обработка текстовых данных Нумерация строк в файле: nl [ OPTION ]... [
nl ContainsBlankLines.txt
1 Alpha
2 Tango
3 Bravo
4 Echo
5 Foxtrot

Слайд 29

Обработка текстовых данных

Нумерация строк в файле, учитывая пустые строки:
$ nl -ba ContainsBlankLines.txt
1

Обработка текстовых данных Нумерация строк в файле, учитывая пустые строки: $ nl
Alpha
2 Tango
3
4 Bravo
5 Echo
6
7
8 Foxtrot
$

Слайд 30

Обработка текстовых данных.

Утилиты просмотра содержимого:
cat [ OPTION ] FILE [...]
more [ OPTION

Обработка текстовых данных. Утилиты просмотра содержимого: cat [ OPTION ] FILE [...]
] FILE [...]
Less [ OPTION ] FILE [...]

Слайд 31

Обработка текстовых данных.

Утилиты просмотра содержимого:
head [ OPTION ]... [ FILE ]...
$ head

Обработка текстовых данных. Утилиты просмотра содержимого: head [ OPTION ]... [ FILE
/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
$

Слайд 32

Обработка текстовых данных.

Утилита head:
$ head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
$
$ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
$

Обработка текстовых данных. Утилита head: $ head -n 2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin

Слайд 33

Обработка текстовых данных.

Утилита tail :
tail [OPTION]... [FILE]...
$ tail /etc/passwd
saslauth:x:992:76:Saslauthd user:/run/saslauthd:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
…….
tcpdump:x:72:72::/:/sbin/nologin
avahi:x:70:70:Avahi

Обработка текстовых данных. Утилита tail : tail [OPTION]... [FILE]... $ tail /etc/passwd
mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

Слайд 34

Обработка текстовых данных.

$ tail -n 2 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
$
$ tail -n +42

Обработка текстовых данных. $ tail -n 2 /etc/passwd tcpdump:x:72:72::/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
/etc/passwd
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
$

Слайд 35

Обработка текстовых данных.

$ sudo tail -f /var/log/auth.log
[sudo] password for Christine:
Aug 27 10:15:14

Обработка текстовых данных. $ sudo tail -f /var/log/auth.log [sudo] password for Christine:
Ubuntu1804 sshd[15662]: Accepted password […]
Aug 27 10:15:14 Ubuntu1804 sshd[15662]: pam_unix(sshd:sess[…]
Aug 27 10:15:14 Ubuntu1804 systemd-logind[588]: New sessio[…]
Aug 27 10:15:50 Ubuntu1804 sudo: Christine : TTY=pts/1 ; P[…]
Aug 27 10:15:50 Ubuntu1804 sudo: pam_unix(sudo:session): s[…]
Aug 27 10:16:21 Ubuntu1804 login[10703]: pam_unix(login:se[…]
Aug 27 10:16:21 Ubuntu1804 systemd-logind[588]: Removed se[…]
^C
$

Слайд 36

Обработка текстовых данных.

Некоторые дистрибутива LINUX имеют в своем составе демон journald. Просмотр

Обработка текстовых данных. Некоторые дистрибутива LINUX имеют в своем составе демон journald.
журналов:
$ journalctl --follow <имя лог-файла>

Слайд 37

Обработка текстовых данных.

Команды обработки для получения сводной информации.
wc [ OPTION ]... [

Обработка текстовых данных. Команды обработки для получения сводной информации. wc [ OPTION
FILE ]...
$ wc random.txt
5 9 52 random.txt
$

Слайд 38

Обработка текстовых данных.

Опции команды wc:

Обработка текстовых данных. Опции команды wc:

Слайд 39

Обработка текстовых данных.

Утилита разделения содержимого на поля
cut OPTION... [FILE]...

Обработка текстовых данных. Утилита разделения содержимого на поля cut OPTION... [FILE]...

Слайд 40

Обработка текстовых данных.

Утилита обнаружения повторяющихся строк
$ cat NonUniqueLines.txt
A
C
C
A
$
$ uniq NonUniqueLines.txt
A
C
A
$

Обработка текстовых данных. Утилита обнаружения повторяющихся строк $ cat NonUniqueLines.txt A C

Слайд 41

Обработка текстовых данных.

Утилита расчета хэш md5 для дайджестов сообщений.
$ md5sum fourtytwo.txt
0ddaa12f06a2b7dcd469ad779b7c2a33

Обработка текстовых данных. Утилита расчета хэш md5 для дайджестов сообщений. $ md5sum fourtytwo.txt 0ddaa12f06a2b7dcd469ad779b7c2a33 fourtytwo.txt $
fourtytwo.txt
$

Слайд 42

Обработка текстовых данных.

Другие алгоритмы хеширования
$ ls -1 /usr/bin/sha???sum
/usr/bin/sha224sum
/usr/bin/sha256sum
/usr/bin/sha384sum
/usr/bin/sha512sum
$

Обработка текстовых данных. Другие алгоритмы хеширования $ ls -1 /usr/bin/sha???sum /usr/bin/sha224sum /usr/bin/sha256sum /usr/bin/sha384sum /usr/bin/sha512sum $

Слайд 43

Обработка текстовых данных.

$ sha256sum fourtytwo.txt
0b2b6e2d8eab41e73baf0961ec707ef98978bcd8c7
74ba8d32d3784aed4d286b fourtytwo.txt
$
$ sha512sum fourtytwo.txt
ac72599025322643e0e56cff41bb6e22ca4fbb76b1d
7fac1b15a16085edad65ef55bbc733b8b68367723ced
3b080dbaedb7669197a51b3b6a31db814802e2f31 fourtytwo.txt
$

Обработка текстовых данных. $ sha256sum fourtytwo.txt 0b2b6e2d8eab41e73baf0961ec707ef98978bcd8c7 74ba8d32d3784aed4d286b fourtytwo.txt $ $ sha512sum

Слайд 44

Обработка текстовых данных.

Команды использующие регулярные выражения:
grep [OPTION] PATTERN [FILE...]
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
$

Обработка текстовых данных. Команды использующие регулярные выражения: grep [OPTION] PATTERN [FILE...] $

Слайд 45

Обработка текстовых данных.

Опции grep:

Обработка текстовых данных. Опции grep:

Слайд 46

Обработка текстовых данных.

$ cat accounts.txt
sshd
Christine
nfsnobody
$
$ fgrep -f accounts.txt /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
Christine:x:1001:1001::/home/Christine:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
$
$

Обработка текстовых данных. $ cat accounts.txt sshd Christine nfsnobody $ $ fgrep
grep -F -f accounts.txt /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
Christine:x:1001:1001::/home/Christine:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
$

Слайд 47

Регулярные выражения.

Basic regular expressions (BRE):
.* - несколько любых символов;
. - один любой

Регулярные выражения. Basic regular expressions (BRE): .* - несколько любых символов; .
символ;
[a,e,i,o,u] - список символов;
[A-z] - диапазон символов;
Якоря:
^ - в начале строки;
$ - в конце строки

Слайд 48

Регулярные выражения.

$ grep daemon.*nologin /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[…]
daemon:/dev/null:/sbin/nologin
[…]
$
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
$
$ grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$

Регулярные выражения. $ grep daemon.*nologin /etc/passwd daemon:x:2:2:daemon:/sbin:/sbin/nologin […] daemon:/dev/null:/sbin/nologin […] $ $

Слайд 49

Регулярные выражения.

$ grep -v nologin$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
[…]
Christine:x:1001:1001::/home/Christine:/bin/bash
$

Регулярные выражения. $ grep -v nologin$ /etc/passwd root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync […] Christine:x:1001:1001::/home/Christine:/bin/bash $

Слайд 50

Регулярные выражения.

Не выводить(игнорировать) пустые строки файла:
$ grep -v ^$ filename

Регулярные выражения. Не выводить(игнорировать) пустые строки файла: $ grep -v ^$ filename

Слайд 51

Регулярные выражения.

Специальная группа bracket expressions - классы символов(character classes):
[:alnum:] Matches any alphanumeric

Регулярные выражения. Специальная группа bracket expressions - классы символов(character classes): [:alnum:] Matches
characters (any case), and is equal to using
the [0-9A-Za-z] bracket expression
[:alpha:] Matches any alphabetic characters (any case), and is equal to using the
[A-Za-z] bracket expression
[:blank:] Matches any blank characters, such as tab and space
[:digit:] Matches any numeric characters, and is equal to using the [0-9] bracket
expression
[:lower:] Matches any lowercase alphabetic characters, and is equal to using the
[a-z] bracket expression

Слайд 52

Регулярные выражения.

Специальная группа bracket expressions - классы символов(character classes):
[:punct:] Matches punctuation characters,

Регулярные выражения. Специальная группа bracket expressions - классы символов(character classes): [:punct:] Matches
such as !, #, $, and @
[:space:] Matches space characters, such as tab, form feed, and space
[:upper:] Matches any uppercase alphabetic characters, and is equal to using the
[A-Z] bracket expression

Слайд 53

Регулярные выражения.

Примеры использования классов символов:
$ cat random.txt
42
Flat Land
Schrodinger's Cat
0010 1010
0000 0010
$
$ grep

Регулярные выражения. Примеры использования классов символов: $ cat random.txt 42 Flat Land
[[:digit:]] random.txt
42
0010 1010
0000 0010
$

Слайд 54

Расширенные регулярные выражения(ERE).
$ grep -E "^root|^dbus" /etc/passwd
root:x:0:0:root:/root:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
$
$ egrep "(daemon|s).*nologin" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[…]
Опция

Расширенные регулярные выражения(ERE). $ grep -E "^root|^dbus" /etc/passwd root:x:0:0:root:/root:/bin/bash dbus:x:81:81:System message bus:/:/sbin/nologin
–E тоже самое, что и egrep. То что в () – это подвыражение.

Слайд 55

Потоки, перенаправления и каналы.

Перенаправление:
Каждый объект обрабатывается как файл;
Каждый файл имеет файловый дескриптор;
0

Потоки, перенаправления и каналы. Перенаправление: Каждый объект обрабатывается как файл; Каждый файл
– stdin, 1 – stdout, 2 – stderr
Примеры:
$ rm example.txt 2>1.txt
$ rm example.txt >1.txt 2>&1
По умолчанию stdout и stderr - /dev/tty

Слайд 56

Потоки, перенаправления и каналы.

Перенаправление:
$ echo "Nov 16, 2019" > AccountAudit.txt
$
$ wc -l

Потоки, перенаправления и каналы. Перенаправление: $ echo "Nov 16, 2019" > AccountAudit.txt
/etc/passwd >> AccountAudit.txt
$
$ cat AccountAudit.txt
Nov 16, 2019
44 /etc/passwd
$

Слайд 57

Потоки, перенаправления и каналы.

Перенаправление стандартного потока ошибок:
$ grep -d skip hosts: /etc/*
grep:

Потоки, перенаправления и каналы. Перенаправление стандартного потока ошибок: $ grep -d skip
/etc/anacrontab: Permission denied
grep: /etc/audisp: Permission denied
[…]
$
$ grep -d skip hosts: /etc/* 2> err.txt
/etc/nsswitch.conf:#hosts: db files nisplus nis dns
/etc/nsswitch.conf:hosts: files dns myhostname
[…]
$
$ cat err.txt
grep: /etc/anacrontab: Permission denied
grep: /etc/audisp: Permission denied
[…]

Слайд 58

Потоки, перенаправления и каналы.

$ grep -d skip hosts: /etc/* 2> /dev/null
/etc/nsswitch.conf:#hosts: db

Потоки, перенаправления и каналы. $ grep -d skip hosts: /etc/* 2> /dev/null
files nisplus nis dns
/etc/nsswitch.conf:hosts: files dns myhostname
[…]
$

Слайд 59

COMMAND1 | COMMAND2 [| COMMANDN]…

Перенаправление ввода.
$ cat Grades.txt
89 76 100 92 68

COMMAND1 | COMMAND2 [| COMMANDN]… Перенаправление ввода. $ cat Grades.txt 89 76
84 73
$
$ tr " " "," < Grades.txt
89,76,100,92,68,84,73
$

Слайд 60

Резюме по перенаправлению потоков.

> Redirect STDOUT to specified file. If file exists,

Резюме по перенаправлению потоков. > Redirect STDOUT to specified file. If file
overwrite it. If it does not
exist, create it.
>> Redirect STDOUT to specified file. If file exists, append to it. If it does not
exist, create it.
2> Redirect STDERR to specified file. If file exists, overwrite it. If it does not
exist, create it.
2>> Redirect STDERR to specified file. If file exists, append to it. If it does not
exist, create it.
&> Redirect STDOUT and STDERR to specified file. If file exists, overwrite it. If it
does not exist, create it.
&>> Redirect STDOUT and STDERR to specified file. If file exists, append to it. If it
does not exist, create it.
< Redirect STDIN from specified file into command.
<> Redirect STDIN from specified file into command and redirect STDOUT to
specified file.

Слайд 61

Использование pipe(канала).

Синтаксис :
COMMAND1 | COMMAND2 [| COMMANDN]…
$ grep /bin/bash$ /etc/passwd | wc

Использование pipe(канала). Синтаксис : COMMAND1 | COMMAND2 [| COMMANDN]… $ grep /bin/bash$
-l
3
$
$ grep /sbin/nologin$ /etc/passwd | cut -d ":" -f 1 | sort | less
abrt
adm
avahi
bin
chrony
[…]
: