Transcript
Page 1: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

GNU/Linux

#linux

Page 2: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

1

1: GNU / Linux 2

Examples 2

, 2

2

/ 4

Linux 6

8

8

8

/ , 9

/ 10

11

11

11

11

11

12

12

13

13

/ 13

13

, 14

2: GnuPG (GPG) 15

15

Examples 15

GnuPG 15

15

3: Midnight Commander 17

17

Page 3: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Examples 17

Midnight Commander 17

Midnight Commander 17

4: SCP 19

19

Examples 19

19

19

CWD 19

19

19

, «-r» scp 20

5: (SSH) 21

21

Examples 21

21

OpenSSH 22

22

SSH 22

ssh 23

( ) 23

6: 24

24

24

Examples 24

24

24

24

24

25

, 25

, 25

Page 4: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

7: (chroot) 26

26

26

Examples 26

26

27

chroot 27

8: ls 28

Examples 28

ls . 28

ls 29

9: tee 30

30

30

30

30

Examples 30

stdout, 30

31

31

tee 31

10: Linux 32

Examples 32

Linux Ubuntu 32

Ubuntu> = 13.04 32

11: 34

34

Examples 34

34

IP- 35

DNS 36

DNS- 37

Page 5: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

37

IP route 37

IP-, ip 38

- 38

12: 40

Examples 40

apt 40

pacman 40

pacman 40

yum 41

13: Linux 43

43

Examples 43

, debian 43

, RHEL / CentOS / Fedora 44

, 44

Uname - 45

: 45

46

linux os ( debian & rpm) 46

cat / etc / * release 46

GNU coreutils 46

14: Linux 48

Examples 48

48

Linux. 48

15: 50

50

Examples 50

50

/ 51

52

Page 6: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

52

53

CPU, , ( -) 53

53

53

54

54

54

, lscpu lshw 54

16: 56

Examples 56

56

56

17: 60

60

Examples 60

60

chsh : 61

Shell 61

61

62

63

63

18: 65

Examples 65

Ubuntu 65

Systemd 65

65

( SysV) 65

65

66

Page 7: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

66

d 66

19: «tar» 67

67

Examples 67

67

68

68

68

69

69

20: 70

70

Examples 70

LAMP Arch Linux 70

HTTP 70

PHP 71

MySQL 71

LAMP Ubuntu 72

LAMP CentoOS 72

- Apache 72

MariaDB 73

PHP 73

21: 75

75

Examples 75

75

75

75

77

Page 8: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

ОколоYou can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: gnu-linux

It is an unofficial and free GNU/Linux ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official GNU/Linux.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/ru/home 1

Page 9: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 1: Начало работы с GNU / Linux

Examples

Привет, мир

Введите следующий код в свой терминал и нажмите Enter :

echo "Hello World"

Это приведет к следующему результату:

Hello World

Манипуляция файлами

Файлы и каталоги (другое имя для папок) лежат в основе Linux, поэтому возможность создавать, просматривать, перемещать и удалять их из командной строки очень важна и достаточно мощна. Эти команды манипулирования файлами позволяют выполнять те же задачи, что и графический проводник файлов.

Создайте пустой текстовый файл myFile :

touch myFile

Переименуйте myFile в myFirstFile :

mv myFile myFirstFile

Просмотр содержимого файла:

cat myFirstFile

Просмотр содержимого файла с пейджером (по одному экрану за раз):

less myFirstFile

Просмотрите первые несколько строк файла:

head myFirstFile

Просмотрите последние несколько строк файла:

https://riptutorial.com/ru/home 2

Page 10: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

tail myFirstFile

Редактирование файла:

vi myFirstFile

Посмотрите, какие файлы находятся в вашем текущем рабочем каталоге:

ls

Создайте пустой каталог с именем myFirstDirectory :

mkdir myFirstDirectory

Создание каталога с несколькими путями: (создает два каталога, src и myFirstDirectory)

mkdir -p src/myFirstDirectory

Переместите файл в каталог:

mv myFirstFile myFirstDirectory/

Вы также можете переименовать файл:

user@linux-computer:~$ mv myFirstFile secondFileName

Измените текущий рабочий каталог на myFirstDirectory :

cd myFirstDirectory

Удалить файл:

rm myFirstFile

Переместитесь в родительский каталог (который представлен как .. ):

cd ..

Удалить пустой каталог:

rmdir myFirstDirectory

Удалите непустую папку (т. Е. Содержит файлы и / или другие каталоги):

rm -rf myFirstDirectory

https://riptutorial.com/ru/home 3

Page 11: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Обратите внимание, что при удалении каталогов, которые вы удаляете ./ not / , вы уничтожите всю вашу файловую систему.

Сведения о файле / каталоге

Команда ls имеет несколько параметров, которые могут использоваться вместе для отображения дополнительной информации.

Подробнее / Право

Параметр l показывает разрешения, размер и дату последнего изменения. Поэтому, если корневой каталог содержал dir, называемый test и файл someFile :

user@linux-computer:~$ ls -l

Вывести что-то вроде

-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt drwxrwxrwx 2 user users 4096 Jul 21 07:18 test

Разрешения находятся в формате drwxrwxrwx . Первый символ представляет тип файла d если это каталог - противном случае. Следующие три rwx - это разрешения, которые пользователь имеет над файлом, а следующие три - разрешения, которые группа имеет над файлом, а последние три - разрешения, которые все остальные имеют над файлом.

r rwx означает, что если файл можно прочитать, w представляет, может ли файл быть изменен, а x означает, что файл может быть выполнен. Если какое-либо разрешение не предоставляется a - будет вместо r , w или x .

Таким образом, user может читать и изменять someFile.txt но группа имеет права только на чтение.

Чтобы изменить права, вы можете использовать команду chmod ### fileName если у вас есть права sudo. r представлено значением 4, w представлено 2, а x представлено знаком 1. Таким образом, если вы хотите иметь возможность изменять содержимое в test каталоге

Owner rwx = 4+2+1 = 7 Group r-x = 4+0+1 = 5 Other r-x = 4+0+1 = 5

Таким образом, вся команда

chmod 755 test

Теперь, когда ls -l будет показывать что-то вроде

https://riptutorial.com/ru/home 4

Page 12: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

drwxr-xr-x 2 user users 4096 Jul 21 07:20 test

Считываемый размер

Используется в сочетании с опцией l Опция h показывает размеры файлов, которые могут быть прочитаны человеком. Бег

user@linux-computer:~$ ls -lh

Выпустил бы:

total 4166 -rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test

скрытый

Для просмотра скрытых файлов используйте параметр a . Например

user@linux-computer:~$ ls -a

Список возможных

.profile someFile.txt test

Общий размер каталога

Для просмотра размера текущего каталога используйте параметр s (опция h также может использоваться, чтобы сделать размер более читаемым).

user@linux-computer:~$ ls -s

Выходы

total 4166 someFile.txt test

Рекурсивный просмотр

Допустим, у test каталога был файл anotherFile и вы хотели его увидеть из корневой папки, вы могли бы использовать опцию R которая будет anotherFile рекурсивное дерево.

user@linux-computer:~$ ls -R

Выходы

https://riptutorial.com/ru/home 5

Page 13: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

.: someFile.txt test ./test: anotherFile

Основные утилиты Linux

Linux имеет команду практически для любых задач, и большинство из них интуитивно понятны и легко интерпретируются.

Получение справки в Linux

команда Юзабилити

man <name> Прочтите страницу руководства <имя>.

man <section> <name>Прочтите страницу руководства <имя>, относящуюся к данному разделу.

man -k <editor>Выведите все программное обеспечение, man-страницы которого содержат ключевое слово <editor>.

man -K <keyword>Выводит все man-страницы, содержащие <keyword> внутри них.

apropos <editor>Выведите все приложения, одно из которых соответствует редактору слов. Если вы не можете вспомнить имя приложения, используйте эту команду.

helpВ оболочке Bash будет отображаться список всех доступных команд bash.

help <name>В оболочке Bash будет отображаться информация о команде <name> bash.

info <name> Просмотреть всю информацию о <имя>.

dpkg -lВыведите список всех установленных пакетов в системе на базе Debian.

dpkg -L packageNameПеречислит установленные файлы и данные о пути для данного пакета на Debian.

dpkg -l | grep -i <edit>Верните все установленные .deb пакеты с <edit> независимо от случаев.

less Возвращает описания всех доступных пакетов.

https://riptutorial.com/ru/home 6

Page 14: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

команда Юзабилити

/var/lib/dpkg/available

whatis vim Перечислите однострочное описание vim.

<command-name> --helpОтобразите информацию об использовании <имя-инструмента>. Иногда command -h также работает, но не для всех команд.

Идентификация пользователя и кто есть кто в мире Linux

команда Юзабилити

hostname Отобразить имя хоста системы.

hostname -f Отображает полное доменное имя (FQDN) системы.

passwd Измените пароль текущего пользователя.

whoami Имя пользователя, вошедшего в систему на терминале.

who Список всех пользователей, которые вошли в систему как пользователь.

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

last Кто недавно использовал эту систему.

last root Когда в последний раз root регистрировался как пользователь.

lastb Показывает все неудачные попытки входа в систему.

chmod Изменение разрешений - чтение, запись, выполнение файла или каталога.

Информация о процессе

команда Юзабилити

top

Перечислите все процессы, отсортированные по их текущему использованию системных ресурсов. Отображает постоянно обновляемое отображение процессов (по умолчанию 3 секунды). Используйте клавишу q для выхода сверху.

ps Перечислить процессы, выполняемые в текущий сеанс оболочки

https://riptutorial.com/ru/home 7

Page 15: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

команда Юзабилити

ps -u root Список всех процессов и команд root запущен

ps aux Перечислите все процессы всеми пользователями в текущей системе

Команды управления файлами

Linux использует некоторые соглашения для настоящих и родительских каталогов. Это может быть немного запутанным для начинающих.

Всякий раз, когда вы находитесь в терминале в Linux, вы попадаете в то, что называется текущим рабочим каталогом . Часто в командной строке будет отображаться либо полный рабочий каталог, либо только последняя часть этого каталога. Ваше приглашение может выглядеть как одно из следующих:

user@host ~/somedir $ user@host somedir $ user@host /home/user/somedir $

в котором говорится, что ваш текущий рабочий каталог /home/user/somedir .

В Linux .. представляет родительский каталог и . представляет текущий каталог.

Поэтому, если текущий каталог /home/user/somedir , то cd ../somedir не изменит рабочий каталог.

В приведенной ниже таблице перечислены некоторые из наиболее часто используемых команд управления файлами

Навигация по каталогу

команда Полезность

pwd Получить полный путь к текущему рабочему каталогу.

cd - Перейдите к последнему каталогу, в котором вы работали.

cd ~ или просто cd

Перейдите в домашний каталог текущего пользователя.

cd ..Перейдите в родительский каталог текущего каталога (помните пространство между cd и .. )

Список файлов внутри каталога

https://riptutorial.com/ru/home 8

Page 16: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

команда Полезность

ls -lСписок файлов и каталогов в текущем каталоге в формате long (table) (

Рекомендуется использовать -l с ls для лучшей читаемости).

ls -ld dir-name Перечислите информацию о каталоге dir-name вместо его содержимого.

ls -aСписок всех файлов, включая скрытые (имена файлов, начинающиеся с . Являются скрытыми файлами в Linux).

ls -F

Добавляет символ в конце имени файла, чтобы указать его тип ( * означает исполняемый файл, / обозначает каталог, @ означает символическую ссылку, = обозначает сокет, означает именованный канал, > означает дверь).

ls -lt

Перечислите файлы, отсортированные по последнему измененному времени, с последними измененными файлами, отображаемыми вверху (помните, что опция -l предоставляет длинный формат, который имеет лучшую читаемость).

ls -lh Перечислите размеры файлов в формате для чтения.

ls -lR Показывает все подкаталоги рекурсивно.

treeБудет генерировать древовидное представление файловой системы, начиная с текущего каталога.

Файл / каталог создает, копирует и удаляет

команда Полезность

cp -p source destination

Скопирует файл из source в пункт назначения . -p означает сохранение. Он сохраняет исходные атрибуты файла при копировании, как владелец файла, метка времени, группа, разрешения и т. Д.

cp -R source_dir destination_dir Скопирует исходный каталог в указанный адрес рекурсивно.

mv file1 file2В Linux нет команды rename как таковой. Следовательно, mv перемещает / переименовывает файл1 в файл2.

rm -i filename

Просит вас перед каждым удалением файла для подтверждения. ЕСЛИ ВЫ НАХОДИТЕСЬ В НОВОМ ПОЛЬЗОВАТЕЛЕ ЛИНГОВОЙ КОМАНДЕ LINUX, ВЫ ДОЛЖНЫ ВСЕГДА ИСПОЛЬЗОВАТЬ rm -i . Вы можете указать несколько файлов.

https://riptutorial.com/ru/home 9

Page 17: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

команда Полезность

rm -R dir-name Будет рекурсивно удалять директорий dir-name .

rm -rf dir-name

Удалит директорию dir рекурсивно, игнорируя несуществующие файлы и никогда не будет запрашивать что-либо. БУДЬТЕ ОСТОРОЖНЫ ИСПОЛЬЗОВАТЬ ЭТУ КОМАНДУ! Вы можете указать несколько каталогов.

rmdir dir-nameУдалит директорий dir-name , если он пуст. Эта команда может удалять только пустые каталоги.

mkdir dir-name Создайте каталог dir-name .

mkdir -p dir-name/dir-name

Создайте иерархию каталогов. Создавайте родительские каталоги по мере необходимости, если они не существуют. Вы можете указать несколько каталогов.

touch filenameСоздайте filename , если оно не существует, измените временную метку файла на текущее время.

Разрешения и группы файлов / каталогов

команда Полезность

chmod <specification> filename

Измените права доступа к файлу. Спецификации = u user, g group, o other, + add permission, - remove, r read, w write, x execute.

chmod -R <specification> dir-name

Измените разрешения каталога рекурсивно. Чтобы изменить разрешение каталога и все в этом каталоге, используйте эту команду.

chmod go=+r myfile Добавьте разрешение на чтение для владельца и группы.

chmod a +rwx myfileРазрешить всем пользователям читать, записывать или выполнять myfile .

chmod go -r myfile Удалите разрешение чтения из группы и других.

chown owner1 filename Измените право собственности на файл на owner1 пользователя1.

chgrp grp_owner filename

Измените принадлежность первичной группы имени filename к группе grp_owner .

Измените первичное групповое право собственности на каталог dir-name на группу grp_owner рекурсивно. Чтобы изменить

chgrp -R grp_owner dir-name

https://riptutorial.com/ru/home 10

Page 18: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

команда Полезность

групповое владение каталогом и все в этом каталоге, используйте эту команду.

Полезные ссылки

Использование терминала

Примеры в этом документе предполагают, что вы используете POSIX-

совместимую оболочку (например, bash , sh , zsh , ksh ).

Большие порции функций GNU / Linux достигаются с помощью терминала. Большинство дистрибутивов Linux включают эмуляторы терминалов, которые позволяют пользователям взаимодействовать с оболочкой из среды рабочего стола. Оболочка - это интерпретатор командной строки, который выполняет команды, введенные пользователем. Bash (Bourne

Again SHell) является обычной оболочкой по умолчанию среди многих дистрибутивов Linux

и является оболочкой по умолчанию для macOS.

Эти ярлыки будут работать, если вы используете Bash с клавишами emacs (задано по умолчанию):

Открытый терминал

Ctrl + Alt + T или Super + T•

Движение курсора

Ctrl + A Перейдите к началу строки, на которой вы сейчас печатаете.•Ctrl + E Перейдите к концу строки, на которой вы сейчас печатаете.•Ctrl + XX Перемещение между началом строки и текущей позицией курсора.•Alt + F Переместите курсор вперед на одно слово в текущей строке.•Alt + B Переместить курсор назад на одно слово в текущей строке.•Ctrl + F Переместите курсор вперед по одному символу в текущей строке.•Ctrl + B Переместить курсор назад на один символ в текущей строке.•

Текстовые манипуляции

Ctrl + U Отрежьте линию от текущей позиции до начала строки, добавив ее в буфер обмена. Если вы находитесь в конце строки, обрезайте всю строку.

Ctrl + K Отрежьте линию от текущей позиции до конца строки, добавив ее в буфер обмена. Если вы находитесь в начале строки, обрезайте всю строку.

Ctrl + W Удалить слово перед курсором, добавив его в буфер обмена.•

https://riptutorial.com/ru/home 11

Page 19: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Ctrl + Y Вставить последнее сообщение из недавно сделанного буфера обмена (отменить последнее удаление в текущей позиции курсора).

Alt + T Переведите последние два слова перед курсором.•Alt + L Сделайте строчный регистр от курсора до конца слова.•Alt + U Сделайте верхний регистр от курсора до конца слова.•Alt + C Заканчивать до конца слова, начиная с курсора (целое слово, если курсор находится в начале слова).

Alt + D Удалить до конца слова, начинающегося с курсора (целое слово, если курсор находится в начале слова).

Alt +. Распечатывает последнее слово, записанное в предыдущей команде.•Ctrl + T Переведите последние два символа перед курсором.•

Доступ к истории

Ctrl + R Позволяет выполнять поиск с использованием ранее использованных команд.•Ctrl + G Оставьте режим поиска истории без запуска команды.•Ctrl + J Позволяет скопировать текущую согласованную команду в командную строку без ее запуска, что позволяет вам вносить изменения перед запуском команды.

Alt + R Отменить любые изменения в команде, которую вы вытащили из своей истории, если вы ее отредактировали.

Ctrl + P Показывает последнюю выполненную команду, т.е. пройдите назад по истории команд (аналогично стрелке вверх).

Ctrl + N Показывает следующую выполненную команду, т.е. пройдите вперед по истории команд (аналогично стрелке вниз).

Управление терминалом

Ctrl + L Очищает экран, аналогично команде clear.•

Ctrl + S Остановить весь вывод на экране. Это полезно при запуске команд с большим количеством длинного вывода. Но это не останавливает выполнение команды.

Ctrl + Q Возобновить вывод на экран после остановки с помощью Ctrl + S.•

Ctrl + C Завершите текущий процесс и верните приглашение.•Ctrl + D Выйти из текущего сеанса оболочки, аналогично команде exit или logout. В некоторых командах действует как сигнал конца файла, чтобы указать, что конец файла был достигнут.

Ctrl + Z приостанавливает (приостанавливает) текущий выполняемый процесс переднего плана, который возвращает приглашение оболочки. Затем вы можете использовать команду bg позволяющую этому процессу работать в фоновом режиме. Чтобы снова перенести этот процесс на передний план, используйте команду fg . Чтобы просмотреть все фоновые процессы, используйте команду jobs .

Вкладка « Автоматическое заполнение файлов и имен каталогов».•Вкладка•

https://riptutorial.com/ru/home 12

Page 20: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Tab Показывает все возможности, когда введенные символы не однозначно совпадают с именем файла или каталога.

Специальные символы

Ctrl + H То же, что и Backspace.•

Ctrl + J То же, что и Return (исторически Line Feed).•

Ctrl + M То же, что и Return (исторически Возврат каретки).•

Ctrl + I То же, что и Tab.•

Символ Ctrl + G Bell.•Ctrl + @ Null Character.•Esc Deadkey эквивалентен модификатору Alt .•

Закрыть терминалCtrl + Shift + W Чтобы закрыть вкладку терминала.•Ctrl + Shift + Q Чтобы закрыть весь терминал.•

Кроме того, вы можете переключиться на vi- привязки в bash, используя set -o vi . Используйте set -o emacs чтобы вернуться к клавишам emacs .

Поиск файлов по шаблонам в имени / содержании

Частью и задачей кого-то, использующего командную строку Linux (shell), является поиск файлов / каталогов с определенным именем или содержащий определенный текст. Для этого вам необходимо ознакомиться с двумя командами:

Поиск файлов по названию

find /var/www -name '*.css'

Это будет распечатывать полный путь / имя файла для всех файлов в /var/www которые заканчиваются на .css . Пример вывода:

/var/www/html/text-cursor.css /var/www/html/style.css

Для получения дополнительной информации:

man find

https://riptutorial.com/ru/home 13

Page 21: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Поиск файлов, содержащих текст

grep font /var/www/html/style.css

Это напечатает все строки, содержащие font в указанном файле. Пример вывода:

font-weight: bold; font-family: monospace;

Другой пример:

grep font /var/www/html/

Это не работает, как вы надеялись. Ты получаешь:

grep: /var/www/html/: Is a directory

Вам нужно grep рекурсивно, чтобы он работал, используя параметр -R :

grep -R font /var/www/html/

Привет! Проверьте выход этого:

/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>'; /var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>'; /var/www/html/style.css: font-weight: bold; /var/www/html/style.css: font-family: monospace;

Обратите внимание, что когда grep сопоставляет несколько файлов, он префикс совпадающих строк с именами файлов. Вы можете использовать опцию -h чтобы избавиться от этого, если хотите.

Для получения дополнительной информации:

man grep

Прочитайте Начало работы с GNU / Linux онлайн: https://riptutorial.com/ru/linux/topic/345/

начало-работы-с-gnu---linux

https://riptutorial.com/ru/home 14

Page 22: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 2: GnuPG (GPG)

Вступление

GnuPG - это сложная система управления ключами, которая позволяет безопасно записывать или шифровать данные. GPG - это инструмент командной строки, используемый для создания и управления ключами GnuPG.

GnuPG наиболее широко используется для подключения SSH (Secure Shell) без пароля или любых средств интерактивной аутентификации, что значительно повышает уровень безопасности.

В следующих разделах описываются способы создания, использования и обеспечения безопасности ключей GnuPG.

Examples

Быстрое создание и использование ключа GnuPG

Установите hasged (например, sudo apt-get install haveged ), чтобы ускорить процесс случайного байта. Затем:

gpg --gen-key gpg --list-keys

выходы:

pub 2048R/NNNNNNNN 2016-01-01 uid Name <[email protected]> sub 2048R/xxxxxxxx 2016-01-01

Затем опубликуйте:

gpg --keyserver pgp.mit.edu --send-keys NNNNNNNN

Затем планируйте отмену: https://www.hackdiary.com/2004/01/18/revoking-a-gpg-key/

Экспорт открытого ключа

Для того, чтобы ваша государственно-частная ключевая пара была полезной, вы должны сделать свой открытый ключ доступным для других. Убедитесь, что вы работаете с вашим открытым ключом, так как вы никогда не должны делиться своим личным ключом. Вы можете экспортировать свой открытый ключ с помощью следующей команды:

https://riptutorial.com/ru/home 15

Page 23: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

gpg —armor —export EMAIL_ADDRESS > public_key.asc

где EMAIL_ADDRESS - адрес электронной почты, связанный с ключом

В качестве альтернативы вы можете загрузить свой открытый ключ на сервер открытого ключа, например keys.gnupg.net, чтобы другие могли его использовать. Чтобы сделать это, введите в терминал следующее:

gpg —list-keys

Затем найдите 8-значную строку (первичный идентификатор), связанный с ключом, который вы хотите экспортировать. Затем выполните команду:

gpg —send-keys PRIMARY_ID

где PRIMARY_ID - это фактический идентификатор этого ключа.

Теперь закрытый ключ был загружен на сервер ключей и доступен для общественности.

Прочитайте GnuPG (GPG) онлайн: https://riptutorial.com/ru/linux/topic/2533/gnupg--gpg-

https://riptutorial.com/ru/home 16

Page 24: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 3: Midnight Commander

Вступление

Midnight Commander или mc является консольным файловым менеджером. Этот раздел включает в себя описание его функциональных возможностей и примеров и советов о том, как использовать его для его полного потенциала.

Examples

Функциональные клавиши Midnight Commander в режиме просмотра

Ниже приведен список действий, которые могут запускаться в режиме просмотра файловой системы Midnight Commander с помощью функциональных клавиш на клавиатуре.

F1 Отображает справку

F2 Открывает меню пользователя

F3 Отображает содержимое выбранного файла

F4 Открывает выбранный файл во внутреннем редакторе файлов

F5 Копирует выбранный файл в каталог, открытый во второй панели

F6 Перемещает выбранный файл в каталог, открытый во второй панели

F7 Создает новый каталог в каталоге, открытом в текущей панели

F8 Удаляет выбранный файл или каталог

F9 Фокусируется на главном меню в верхней части экрана

F10 Выход mc

Функциональные клавиши Midnight Commander в режиме редактирования файлов

Midnight Commander имеет встроенный редактор, который запускается функциональной клавишей F4 когда над нужным файлом находится режим просмотра. Его также можно вызвать в автономном режиме, выполнив

mcedit <filename>

https://riptutorial.com/ru/home 17

Page 25: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Вот список действий, которые могут быть активированы в режиме редактирования.

F1 Отображает справку

F2 Сохраняет текущий файл

F3 Отмечает начало выбора текста. Переместите курсор в любом направлении, чтобы выбрать. Второй удар - конец выбора.

F4 Выводит диалог поиска и замены текста

F5 Копирует выделенный текст в позицию курсора (копирование / вставка)

F6 Перемещает выделенный текст в положение курсора (вырезать / вставить)

F7 Выводит диалоговое окно поиска текста

F8 Удаляет выделенный текст

F9 Фокусируется на главном меню в верхней части экрана

F10 Выход из редактора

Прочитайте Midnight Commander онлайн: https://riptutorial.com/ru/linux/topic/9691/midnight-commander

https://riptutorial.com/ru/home 18

Page 26: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 4: SCP

Синтаксис

scp [-rv] [-i identity_file] [[user @] host1:] file1 ... [[user @] host2:] file2•

Examples

Основное использование

# Copy remote file to local dir scp [email protected]:/remote/path/to/foobar.md /local/dest # Copy local file to remote dir scp foobar.md [email protected]:/remote/dest # Key files can be used (just like ssh) scp -i my_key.pem foobar.md [email protected]:/remote/dest

Безопасная копия

Команда scp используется для безопасного копирования файла в удаленный пункт назначения или из него. Если файл находится в текущей работе напрямую, достаточно только имя файла, требуется дополнительный полный путь, который включает удаленное имя хоста, например, remote_user@some_server.org: / путь / в / файл

Скопируйте локальный файл в свой CWD в новый каталогscp localfile.txt /home/friend/share/

Скопируйте удаленный файл в текущий рабочий каталогscp [email protected]:/home/rocky/game/data.txt ./

Скопировать файл из одного удаленного

https://riptutorial.com/ru/home 19

Page 27: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

места в другое удаленное местоположениеscp [email protected]:/beacon/light/bitmap.conf [email protected]:/beacon/night/

Чтобы скопировать каталог и подкаталоги, используйте «-r» рекурсивный вариант для scp

scp -r [email protected]:~/project/* ./workspace/

Прочитайте SCP онлайн: https://riptutorial.com/ru/linux/topic/5960/scp

https://riptutorial.com/ru/home 20

Page 28: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 5: Безопасная оболочка (SSH)

Вступление

Защищенная оболочка используется для удаленного доступа к серверу от клиента по зашифрованному соединению. OpenSSH используется как альтернатива соединениям Telnet, которые обеспечивают удаленный доступ к оболочке, но не зашифрованы. Клиент OpenSSH по умолчанию установлен в большинстве дистрибутивов GNU / Linux и используется для подключения к серверу. В этих примерах показано, как использовать пакет SSH для приема SSH-соединений и подключения к другому хосту.

Examples

Подключение к удаленному серверу

Чтобы подключиться к серверу, мы должны использовать SSH на клиенте следующим образом:

# ssh -p port user@server-address

port - прослушивающий ssh-порт сервера (порт 22 по умолчанию).•

user - должен быть существующий пользователь на сервере с привилегиями SSH.•

адрес сервера - IP / Domain сервера.•

Для примера в реальном мире можно сделать вид, что вы создаете сайт. Компания, которую вы решили разместить на своем сайте, сообщает вам, что сервер находится на веб- сервере www.servers.com на пользовательском порту 2020 года, и ваше имя учетной записи usr1 выбрано для создания пользователя на сервере с привилегиями SSH. В этом случае используемая команда SSH была бы такой

# ssh -p 2020 [email protected]

Если имя учетной записи в удаленной системе совпадает с именем локального клиента, вы можете оставить имя пользователя выключенным. Поэтому, если вы используете usr1 для обеих систем, тогда вы просто используете web-servers.com вместо [email protected] .

Когда сервер, к которому вы хотите подключиться, напрямую не доступен для вас, вы можете попробовать использовать переключатель ProxyJump для подключения к нему через другой доступный вам сервер и можете подключиться к желаемому серверу.

# ssh -J [email protected]:2020 [email protected] -p 2222

https://riptutorial.com/ru/home 21

Page 29: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Это позволит вам подключиться к серверу 10.0.0.2 (запуск ssh на порту 2222) через сервер в 10.0.0.1 (запуск ssh на порту 2020). Конечно, вам понадобятся учетные записи на обоих серверах. Также обратите внимание, что переключатель -J представлен в версии 7.3 для OpenSSH.

Установка пакета OpenSSH

Оба подключения к удаленному SSH-серверу и прием SSH-соединений требуют установки openssh

Debian:

# apt-get install openssh

Arch Linux:

# pacman -S openssh

Yum:

# yum install openssh

Создание открытого и закрытого ключа

Чтобы создать ключи для клиента SSH:

ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]

Например:

ssh-keygen -t rsa -b 4096 - C [email protected]

Место по умолчанию - ~/.ssh/id_rsa для частного и ~/.ssh/id_rsa.pub для открытого ключа.

Для получения дополнительной информации, пожалуйста, посетите man.openbsd.org

Настройка сервера SSH для приема соединений

Сначала мы должны отредактировать файл конфигурации демона SSH. Хотя в разных дистрибутивах Linux это может быть расположено в разных каталогах, обычно оно хранится в /etc/ssh/sshd_config

Используйте текстовый редактор, чтобы изменить значения, установленные в этом файле, все строки, начинающиеся с #, закомментированы и должны удалить этот символ, чтобы он вступил в силу. Список рекомендаций следует как таковой.

https://riptutorial.com/ru/home 22

Page 30: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Port (chose a number between 0 - 65535, normaly greater than four digits) PasswordAuthentication yes AllowUsers user1 user2 ...etc

Обратите внимание, что предпочтительнее отключать логины паролей вместе и использовать SSH-ключи для повышения безопасности, как описано в этом документе.

Отключить службу ssh

Это отключит службу на стороне сервера SSH, так как это необходимо, это гарантирует, что клиенты не смогут подключиться через ssh

Ubuntu

sudo service ssh stop

Debian

sudo /etc/init.d/ssh stop

Arch Linux

sudo killall sshd

Соединение без пароля (с использованием пары ключей)

Прежде всего, вам понадобится пара ключей. Если у вас его еще нет, взгляните на раздел «Создать тему для публичного и частного ключей».

Ваша пара ключей состоит из частного ключа (id_rsa) и открытого ключа (id_rsa.pub). Все, что вам нужно сделать, это скопировать открытый ключ на удаленный хост и добавить его содержимое в файл ~/.ssh/authorized_keys .

Один простой способ сделать это:

ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub

После того, как открытый ключ правильно помещен в домашний каталог вашего пользователя, вам просто нужно войти в систему, используя соответствующий закрытый ключ:

ssh <user>@<ssh-server> -i id_rsa

Прочитайте Безопасная оболочка (SSH) онлайн: https://riptutorial.com/ru/linux/topic/7388/

безопасная-оболочка--ssh-

https://riptutorial.com/ru/home 23

Page 31: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 6: Изменение пользователей

параметры

параметр подробности

имя пользователя

Имя пользователя. Не используйте заглавные буквы, не используйте точки, не заканчивайте их в тире, он не должен содержать двоеточие, никаких специальных символов. Не может начинаться с числа.

замечания

Вы не можете удалить зарегистрированного пользователя•Чтобы изменить любого пользователя, кроме вашего, вам нужны привилегии root•

Examples

Настройка собственного пароля

passwd

Установка пароля другого пользователя

Запустите следующую команду root:

passwd username

Добавление пользователя

Запустите следующую команду root:

useradd username

Удаление пользователя

Запустите следующую команду root:

userdel username

https://riptutorial.com/ru/home 24

Page 32: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Удаление пользователя и его домашней папки

Запустите следующую команду root:

userdel -r username

Листинговые группы, в которых находится текущий пользователь

groups

Более подробную информацию о числовых идентификаторах пользователей и групп можно найти с помощью команды id .

Листинговые группы, в которых находится пользователь

groups username

Более подробную информацию о числовых идентификаторах пользователей и групп можно найти с id username .

Прочитайте Изменение пользователей онлайн: https://riptutorial.com/ru/linux/topic/6260/

изменение-пользователей

https://riptutorial.com/ru/home 25

Page 33: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 7: Изменить корень (chroot)

Вступление

Change root (chroot) - это операция, которая изменяет кажущуюся корневую директорию для текущего текущего процесса и их детей. Программа, запускаемая в такой модифицированной среде, не может обращаться к файлам и командам за пределами этого дерева справочной системы.

Синтаксис

chroot [путь назначения] [оболочка или команда]•

Examples

Ручное изменение корня в каталоге

Убедитесь, что вы выполнили все требования в соответствии с требованиями1.

Установите временные файловые системы API:

cd /location/of/new/root mount -t proc proc proc/ mount --rbind /sys sys/ mount --rbind /dev dev/ mount --rbind /run run/ (optionally)

2.

Если вам нужно использовать интернет-соединение в среде chroot, скопируйте данные DNS:

cp /etc/resolv.conf etc/resolv.conf

3.

Измените корень на / location / of / new / root, указав оболочку ( /bin/bash в этом примере):

chroot /location/of/new/root /bin/bash

4.

После chrooting может потребоваться загрузить локальную конфигурацию bash:

source /etc/profile source ~/.bashrc

5.

При желании, создайте уникальное приглашение, чтобы отличать среду chroot:6.

https://riptutorial.com/ru/home 26

Page 34: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

export PS1="(chroot) $PS1"

Когда закончите с chroot, вы можете выйти из него через:

exit

7.

Отключите временные файловые системы:

cd / umount --recursive /location/of/new/root

8.

Требования

привилегии root•

другая рабочая среда Linux, такая как загрузка Live CD или существующий дистрибутив

соответствие архитектуры окружения источника и места chroot (проверить текущую архитектуру среды с uname -m )

модули ядра, которые могут потребоваться в среде chroot должны быть загружены (например, с modprobe )

Причины использования chroot

Смена корня обычно выполняется для выполнения системного обслуживания в системах, где загрузка и / или регистрация невозможна.

Общие примеры:

переустановка загрузчика•восстановление изображения initramfs•

обновления или понижения пакетов•сброс забытого пароля•создание программного обеспечения в чистой корневой среде•

Прочитайте Изменить корень (chroot) онлайн: https://riptutorial.com/ru/linux/topic/10727/

изменить-корень--chroot-

https://riptutorial.com/ru/home 27

Page 35: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 8: команда ls

Examples

Команда ls с большинством используемых опций.

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

user@ubuntu14:/usr$ ls bin games include lib lib32 local sbin share src

Для просмотра всех файлов (скрытых файлов и папок). Использовать ls -a OR ls -all

user@ubuntu14:/usr$ ls -a . .. bin games include lib lib32 local sbin share src

Чтобы различать файлы и папки и символические ссылки и другие, используйте ls -F OR ls --classify

user@ubuntu14:~$ ls -F bash_profile_course chat_apps/ Desktop/ Downloads/ foxitsoftware/ Public/ test/ bin/ ClionProjects/ Documents/ IDE/ Music/ Pictures/ Templates/ Videos/

Здесь конечные символы используются для различения файлов и папок.

Справочник "/" предложить.

«*» Предлагает исполняемые файлы.

«@» Предлагает символические ссылки.

Чтобы получить более подробную информацию о файлах и каталогах, используйте ls -l

user@ubuntu14:~/example$ ls -l total 6464 -rw-r--r-- 1 dave dave 41 Dec 24 12:19 Z.txt drwxr-xr-x 2 user group 4096 Dec 24 12:00 a_directory -rw-r--r-- 1 user group 6 Dec 24 12:01 a_file lrwxrwxrwx 1 user group 6 Dec 24 12:04 a_link -> a_file -rw-r--r-- 1 user group 6 Dec 24 12:03 a_newer_file -rw-r----- 1 user group 6586816 Dec 24 12:07 big.zip

В этом примере общий размер содержимого составляет 6460 КБ.

Затем есть запись для каждого файла / каталога в алфавитном порядке с верхним

https://riptutorial.com/ru/home 28

Page 36: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

регистром до нижнего регистра.

Первым символом является тип (например, d - каталог, l - ссылка).

Следующие 9 символов отображают разрешения для пользователя, группы и других.

За этим следует количество жестких ссылок, затем имя и группа владельца.

Следующее поле - размер в байтах. Это можно отобразить в удобной для человека форме, добавив опцию -h например, 6586816 отображается как 6.3M

Затем следует временная метка (обычно время модификации).

Конечное поле - это имя. Примечание. Ссылки также показывают цель ссылки.

Параметры команды ls

Полный список вариантов:

ls -a список всех файлов, включая скрытый файл, начинающийся с '.'

ls --color цветной цветной список [= всегда / никогда / авто]

ls -d каталогов ls -d - с '* /'

ls -F добавить один символ из * / => @ | к enteries

Индекс индекса inode файла ls -i

ls -l список с длинным форматом - показать разрешения

ls -la list long format, включая скрытые файлы

ls -lh длинный формат с читаемым размером файла

Список ls -ls с длинным форматом с размером файла

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

ls -R list рекурсивно дерево каталогов

Размер файла списка ls -s

ls -S сортировать по размеру файла

ls -t сортировать по времени и дате

ls -X сортировать по имени расширения

Прочитайте команда ls онлайн: https://riptutorial.com/ru/linux/topic/5956/команда-ls

https://riptutorial.com/ru/home 29

Page 37: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 9: команда tee

Вступление

tee - чтение со стандартного ввода и запись на стандартный вывод и файлы.

Команда tee названа в честь T-splitter в сантехнике, которая разделяет воду на два направления и имеет форму верхнего регистра T.

tee копирует данные со стандартного ввода в каждый FILE, а также на стандартный вывод. Фактически, тройник дублирует свой вход, маршрутизируя его на несколько выходов одновременно.

Синтаксис

tee [OPTION] ... [FILE] ...•

параметры

Опции Описание

-a, --append Приложите к данным FILE. Не перезаписывать.

-i, --ignore-interrupts Игнорировать сигналы прерывания.

--Помогите Отобразите справочное сообщение и выйдите.

--версия Отобразить информацию о версии и выйти.

замечания

Если FILE указан как тире («-»), tee снова записывает на стандартный вывод.

Examples

Запись вывода в stdout, а также в файл

Следующая команда отображает вывод только на экране (stdout).

$ ls

https://riptutorial.com/ru/home 30

Page 38: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Следующая команда записывает вывод только в файл, а не на экран.

$ ls > file

Следующая команда (с помощью команды tee ) записывает вывод как на экран (stdout), так и в файл.

$ ls | tee file

Запишите выход из середины цепи трубопровода в файл и передайте его обратно в трубу

Вы также можете использовать команду tee для хранения вывода команды в файле и перенаправления того же вывода на другую команду.

Следующая команда будет записывать текущие записи crontab в файл crontab-backup.txt и передавать записи crontab команде sed , которая будет выполнять эту замену. После замещения он будет добавлен как новое задание cron.

$ crontab -l | tee crontab-backup.txt | sed 's/old/new/' | crontab –

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

Вы можете подключить свой вывод к нескольким файлам (включая ваш терминал), используя tee следующим образом:

$ ls | tee file1 file2 file3

Запросить команду tee для добавления в файл

По умолчанию команда tee перезаписывает файл. Вы можете указать tee для добавления в файл с помощью опции –a как показано ниже.

$ ls | tee –a file

Прочитайте команда tee онлайн: https://riptutorial.com/ru/linux/topic/10588/команда-tee

https://riptutorial.com/ru/home 31

Page 39: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 10: Компиляция ядра Linux

Examples

Компиляция ядра Linux на Ubuntu

Предупреждение: убедитесь, что у вас есть не менее 15 ГБ свободного места на диске.

Компиляция в Ubuntu> = 13.04

Вариант A) Используйте Git

Используйте git, если хотите синхронизировать с последним источником ядра Ubuntu.

Подробные инструкции можно найти в руководстве Kernel Git. Репозиторий git не включает необходимые файлы управления, поэтому вы должны их создать:

fakeroot debian/rules clean

Вариант B) Загрузите исходный архив

Загрузите исходный архив - это для пользователей, которые хотят перестроить стандартные пакеты Ubuntu с дополнительными патчами. Используйте следующую команду для установки зависимостей сборки и извлечения источника (в текущий каталог):

Установите следующие пакеты:

sudo apt-get build-dep linux-image-`uname -r`

1.

Вариант C) Загрузите исходный пакет и выполните сборку

Это для пользователей, которые хотят изменить или поиграть с исходным кодом ядра Ubuntu.

Извлеките последний источник ядра из kernel.org .1.

Извлеките архив в каталог и cd в него:

tar xf linux-*.tar.xz cd linux-*

2.

Создайте интерфейс конфигурации ncurses:

make menuconfig

3.

https://riptutorial.com/ru/home 32

Page 40: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Чтобы принять конфигурацию по умолчанию, нажмите →, чтобы выделить < Exit > а затем Return .

4.

Для сохранения конфигурации снова нажмите Return .5.

Используйте make для создания ядра:

make

Обратите внимание, что вы можете использовать флаг -j n для параллельной сборки файлов и использования нескольких ядер.

6.

Сжатое изображение ядра можно найти в arch/[arch]/boot/bzImage , где [arch] равно uname -a .

Прочитайте Компиляция ядра Linux онлайн: https://riptutorial.com/ru/linux/topic/379/

компиляция-ядра-linux

https://riptutorial.com/ru/home 33

Page 41: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 11: конфигурация сети

Вступление

В этом документе описываются сети TCP / IP, сетевое администрирование и настройки системы. Linux может поддерживать несколько сетевых устройств. Имена устройств нумеруются и начинаются с нуля и подсчитываются вверх. Например, компьютер с двумя сетевыми адаптерами будет иметь два устройства с меткой eth0 и eth1.

Examples

Информация о интерфейсе

Ifconfig

Перечислите все интерфейсы, доступные на машине

$ ifconfig -a

Перечислите детали определенного интерфейса

Синтаксис: $ ifconfig <interface>

Пример:

$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.x inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4426618 errors:0 dropped:1124 overruns:0 frame:0 TX packets:189171 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:382611580 (382.6 MB) TX bytes:36923665 (36.9 MB) Interrupt:16 Memory:fb5e0000-fb600000

Ethtool - запрос настроек сетевого драйвера и оборудования

Синтаксис: $ ethtool <interface>

Пример:

$ ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full

https://riptutorial.com/ru/home 34

Page 42: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on MDI-X: on (auto) Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes

ip-show / манипулировать маршрутизацией, устройствами, маршрутизацией политики и туннелями

Синтаксис: $ ip { link | ... | route | macsec } (см. man ip для полного списка объектов)

Примеры

Список сетевых интерфейсов

$ ip link show

Переименуйте интерфейс eth0 в wan

$ ip link set dev eth0 name wan

Принесите интерфейс eth0 вверх (или вниз)

$ ip link set dev eth0 up

Список адресов для интерфейсов

$ ip addr show

Добавить (или del) ip и маску (255.255.255.0)

$ ip addr add 1.2.3.4/24 brd + dev eth0

Добавление IP-адреса в интерфейс

https://riptutorial.com/ru/home 35

Page 43: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

IP-адрес интерфейса можно получить с помощью DHCP или статического назначения

DHCP Если вы подключены к сети с запущенным DHCP-сервером, команда dhclient может получить IP-адрес для вашего интерфейса

$ dhclient <interface>

или, альтернативно, вы можете внести изменения в файл /etc/network/interfaces для интерфейса, который будет загружен при загрузке и получить IP-адрес DHCP

auto eth0 iface eth0 inet dhcp

Статическая конфигурация (постоянное изменение) с использованием файла /etc/network/interfaces

Если вы хотите статически настроить параметры интерфейса (постоянное изменение), вы можете сделать это в /etc/network/interfaces .

Пример:

auto eth0 # Bring up the interface on boot iface eth0 inet static address 10.10.70.10 netmask 255.255.0.0 gateway 10.10.1.1 dns-nameservers 10.10.1.20 dns-nameservers 10.10.1.30

Эти изменения сохраняются даже после перезагрузки системы.

Статическая конфигурация (временное изменение) с использованием утилиты ifconfig

Статический IP-адрес может быть добавлен в интерфейс с помощью утилиты ifconfig следующим образом

$ ifconfig <interface> <ip-address>/<mask> up

Пример:

$ ifconfig eth0 10.10.50.100/16 up

Локальное разрешение DNS

Файл: /etc/hosts содержит список хостов, которые должны быть локально разрешены (а не DNS)

Пример содержимого файла:

https://riptutorial.com/ru/home 36

Page 44: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

127.0.0.1 your-node-name.your-domain.com localhost.localdomain localhost XXX.XXX.XXX.XXX node-name

Формат файла для файла hosts указан в RFC 952

Настройка DNS-серверов для разрешения имени домена

Файл: /etc/resolv.conf содержит список DNS-серверов для разрешения имен доменов

Пример содержимого файла:

nameserver 8.8.8.8 # IP address of the primary name server nameserver 8.8.4.4 # IP address of the secondary name server

В случае, если внутренний DNS-сервер вы можете проверить, правильно ли этот сервер правильно разрешает DNS-имена, используя команду dig :

$ dig google.com @your.dns.server.com +short

Просмотр и управление маршрутами

Управление таблицей маршрутизации IP с использованием routeОтобразить таблицу маршрутизации

$ route # Displays list or routes and also resolves host names $ route -n # Displays list of routes without resolving host names for faster results

Добавить / Удалить маршрут

вариант Описание

add или del Добавить или удалить маршрут

-host xxxx Добавить маршрут к одному узлу, идентифицированному по IP-адресу

-net xxxx Добавить маршрут в сеть, указанную сетевым адресом

gw xxxx Укажите сетевой шлюз

netmask xxxx Укажите сетевую маску сети

default Добавить маршрут по умолчанию

https://riptutorial.com/ru/home 37

Page 45: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Примеры:

добавить маршрут к хосту $ route add -host xxxx eth1•добавить маршрут в сеть $ route add -net 2.2.2.0 netmask 255.255.255.0 eth0•Кроме того, вы также можете использовать формат cidr для добавления маршрута в сетевой route add -net 2.2.2.0/24 eth0

добавить шлюз по умолчанию $ route add default gw 2.2.2.1 eth0•удалить маршрут $ route del -net 2.2.2.0/24•

Манипулировать таблицу IP-маршрутизации, используя ipОтобразить таблицу маршрутизации

$ ip route show # List routing table

Добавить / Удалить маршрут

вариант Описание

add или del или change или append или replace

Изменить маршрут

show или flushкоманда отображает содержимое таблиц маршрутизации или удаляет их

restore восстановить информацию о таблице маршрутизации из stdin

getэта команда получает единственный маршрут к месту назначения и печатает его содержимое точно так же, как это видит ядро

Примеры:

Установите шлюз по умолчанию на 1.2.3.254 $ ip route add default via 1.2.3.254•Добавляет маршрут по умолчанию (для всех адресов) через локальный шлюз 192.168.1.1, который может быть достигнут на устройстве eth0 $ ip route add default via 192.168.1.1 dev eth0

Настроить имя хоста для какой-либо другой системы в вашей сети

Вы можете настроить свою систему Linux (или macOS), чтобы привязать идентификатор <hostname> к IP-адресу другой системы в вашей сети. Вы можете настроить его:

https://riptutorial.com/ru/home 38

Page 46: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Systemwide. Вы должны изменить файл / etc / hosts . Вам просто нужно добавить в этот файл новую строку, содержащую:

IP-адрес удаленной системы <ip_rem> ,1.

одно или несколько пробелов и2. идентификатор <hostname> .3.

Для одного пользователя. Вы должны изменить файл ~ / .hosts --- вы должны создать его. Это не так просто, как для системы. Здесь вы можете увидеть объяснение.

Например, вы можете добавить эту строку, используя инструмент cat Unix. Предположим, что вы хотите сделать ping на ПК в локальной сети, чей IP-адрес равен 192.168.1.44, и вы хотите сослаться на этот IP-адрес только с помощью remote_pc . Затем вы должны написать в своей оболочке:

$ sudo cat 192.168.1.44 remote_pc

Затем вы можете выполнить этот пинг:

$ ping remote_pc

Прочитайте конфигурация сети онлайн: https://riptutorial.com/ru/linux/topic/8206/

конфигурация-сети

https://riptutorial.com/ru/home 39

Page 47: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 12: Менеджеры пакетов

Examples

Как обновить пакеты с помощью менеджера пакетов apt

A dvanced P ackage T ool, точно названный менеджером пакетов «apt», может обрабатывать установку и удаление программного обеспечения на Debian, Slackware и других дистрибутивах Linux. Ниже приведены некоторые простые примеры использования:

Обновить

Эта опция извлекает и сканирует файлы Packages.gz, так что доступна информация о новых и обновленных пакетах. Для этого введите следующую команду:

sudo apt-get update

Обновить

Эта опция используется для установки новейших версий всех пакетов, установленных в настоящее время в системе. Пакеты, установленные в настоящее время с новыми версиями, извлекаются и обновляются; ни при каких обстоятельствах в настоящее время не установлены удаленные пакеты или пакеты, которые еще не были установлены, извлечены и установлены. Для обновления введите следующую команду:

sudo apt-get upgrade

Dist-Upgrade Помимо выполнения функции обновления, dist-upgrade также интеллектуально обрабатывает изменения зависимостей с новыми версиями пакетов. При необходимости он попытается обновить наиболее важные пакеты за счет менее важных. Для этого введите следующую команду:

sudo apt-get dist-upgrade

Как обновить пакеты с помощью диспетчера пакетов pacman

Чтобы обновить определенную программу:

sudo pacman -S <programName>

Чтобы обновить всю систему:

sudo pacman -Syu

Как установить пакет с менеджером пакетов pacman

https://riptutorial.com/ru/home 40

Page 48: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Для поиска пакетов в базе данных, поисках в именах и описаниях пакетов:

pacman -Ss string1 string2 ...

Чтобы установить один пакет или список пакетов (включая зависимости), выполните следующую команду:

sudo pacman -S package_name1 package_name2 ...

источник

Как обновлять пакеты с помощью yum

Y ellowdog U pdater, M odified, один из последних реликтов Yellow Dog Linux, является менеджер пакетов используется Red Hat, Fedora и CentOS систем и их производных. Он может обрабатывать установку и удаление программного обеспечения, упакованного как rpms для этих дистрибутивов Linux. Ниже приведены некоторые простые примеры использования:

поиск

Эта команда попытается найти пакеты программного обеспечения в сконфигурированных репозиториях программного обеспечения, которые соответствуют заданным критериям поиска, и отобразить местоположение имени / версии / хранилища совпадений, которые он находит. Чтобы использовать его, введите следующую команду:

yum search <queryString>

устанавливать

Эта команда попытается найти и установить именованное программное обеспечение из сконфигурированных репозиториев программного обеспечения, рекурсивного поиска и установки любого необходимого необходимого программного обеспечения. Чтобы использовать его, введите следующую команду:

sudo yum install <packageName>

Обновить

Эта опция используется для установки новейших версий всех пакетов, установленных в настоящее время в системе. Пакеты, установленные в настоящее время с новыми версиями, извлекаются и обновляются; новые необходимые условия также извлекаются и устанавливаются по мере необходимости, а заменяемые или устаревшие пакеты удаляются. Для обновления введите следующую команду:

sudo yum update

https://riptutorial.com/ru/home 41

Page 49: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

В отличие от apt , большинство команд yum также будут автоматически проверять наличие обновлений метаданных репозитория, если проверка не была выполнена в последнее время (или если это принудительно) и будет получать и проверять обновленные метаданные, чтобы информация о новых и обновленных пакетах была доступна до запрошенная операция выполняется.

Прочитайте Менеджеры пакетов онлайн: https://riptutorial.com/ru/linux/topic/5703/

менеджеры-пакетов

https://riptutorial.com/ru/home 42

Page 50: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 13: Определение имени и версии дистрибутива Linux

Синтаксис

uname - для печати информации о вашей операционной системе.

uname [OPTION]

Examples

Определите, на каком распределении на основе debian вы работаете

Просто выполните lsb_release -a .

В Debian:

$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux testing (stretch) Release: testing Codename: stretch

На Ubuntu:

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty

Если вы не установили lsb_release вы можете попробовать некоторые догадки, например, есть файл /etc/issue который часто содержит имя распространения. Например, на ubuntu:

$ cat /etc/issue Ubuntu 12.04.5 LTS \n \l

Не используйте файл /etc/debian_version потому что его содержимое не соответствует имени дистрибутива!

Обратите внимание, что это также будет работать с дистрибутивами семейства, отличными от Debian, такими как Fedora, RHEL или openSUSE, но этот lsb_release не может быть установлен.

https://riptutorial.com/ru/home 43

Page 51: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Определите, к какому дистрибутиву RHEL / CentOS / Fedora вы работаете

Посмотрите содержимое /etc/redhat-release

cat /etc/redhat-release

Вот результат работы с машиной Fedora 24: Fedora release 24 (Twenty Four)

Как упоминалось в ответе на основе debian, вы также можете использовать команду lsb_release -a , которая выводит это из машины Fedora 24:

LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: Fedora Description: Fedora release 24 (Twenty Four) Release: 24 Codename: TwentyFour

Определите, какой системный дистрибутив вы используете

Этот метод будет работать на современных версиях Arch, CentOS, CoreOS, Debian, Fedora,

Mageia, openSUSE, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu и других. Эта широкая применимость делает ее идеальной в качестве первого подхода, с откатом от других методов, если вам нужно также идентифицировать старые системы.

Посмотрите /etc/os-release . В частности, посмотрите на переменные NAME , VERSION , ID , VERSION_ID и PRETTY_NAME .

В Fedora этот файл может выглядеть так:

NAME=Fedora VERSION="24 (Workstation Edition)" ID=fedora VERSION_ID=24 PRETTY_NAME="Fedora 24 (Workstation Edition)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:fedoraproject:fedora:24" HOME_URL="https://fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=24 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=24 PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy VARIANT="Workstation Edition" VARIANT_ID=workstation

В CentOS этот файл может выглядеть так:

https://riptutorial.com/ru/home 44

Page 52: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"

Этот файл задокументирован на веб-сайте freedesktop ; в принципе, он не является специфичным для системы, но он будет существовать во всех дистрибутивах, основанных на системе.

Из оболочки bash можно /etc/os-release файл /etc/os-release а затем использовать различные переменные напрямую, например:

$ ( source /etc/os-release && echo "$PRETTY_NAME" ) Fedora 24 (Workstation Edition)

Uname - печать информации о текущей системе

Uname короткое имя для названия у Никс. Просто введите uname в консоли, чтобы получить информацию о вашей операционной системе.

uname [OPTION]

Если OPTION не указан, uname принимает параметр -s .

-a или --all - печатает всю информацию, опуская -p и -i если информация неизвестна.

Пример:

> uname -a SunOS hope 5.7 Generic_106541-08 sun4m sparc SUNW,SPARCstation-10

Все варианты:

-s , --kernel-name Распечатайте имя ядра.

-n , --nodename Распечатайте имя узла сетевого узла.

https://riptutorial.com/ru/home 45

Page 53: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

-r , --kernel-release Распечатайте выпуск ядра.

-v , --kernel-версия Распечатайте версию ядра.

-m , --machine Распечатайте имя аппаратного оборудования.

-p , --процессор Распечатайте тип процессора или « неизвестно ».

-i , --hardware-платформа Распечатайте аппаратную платформу или « неизвестно ».

-o , --операционная система

Распечатайте операционную систему.

--Помогите Отобразите справочное сообщение и выйдите.

--версия Отобразить информацию о версии и выйти.

Обнаружение основных сведений о вашем дистрибутиве

просто выполните uname -a .

На арке:

$ uname -a Linux nokia 4.6.4-1-ARCH #1 SMP PREEMPT Mon Jul 11 19:12:32 CEST 2016 x86_64 GNU/Linuxenter code here

найдите имя linux os (оба debian & rpm) и номер выпуска

Большинство дистрибутивов Linux хранят информацию о своей версии в файле / etc / lsb-

release (debian) или / etc / redhat-release (на основе RPM). Используя нижеприведенную команду, вы должны пройти мимо большинства производных Debian и RPM, как Linux Mint и Cent-Os.

Пример на машине Ubuntu:

cat / etc / * release

DISTRIB_ID = Ubuntu DISTRIB_RELEASE = 14.04 DISTRIB_CODENAME = trusty DISTRIB_DESCRIPTION = "Ubuntu 14.04 LTS"

использование GNU coreutils

Поэтому GNU coreutils должен быть доступен для всех систем на базе Linux (пожалуйста, поправьте меня, если я ошибаюсь здесь).

https://riptutorial.com/ru/home 46

Page 54: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Если вы не знаете, какая система вы используете, вы не сможете напрямую перейти к одному из приведенных выше примеров, поэтому это может быть ваш первый порт захода.

`$ uname -a

В моей системе это дает мне следующее ...

`Linux Scibearspace 3.16.0-4-amd64 # 1 SMP Debian 3.16.7-ckt25-2 + deb8u3 (2016-07-02) x86_64 GNU / Linux

Здесь вы можете увидеть следующее:

Scibearspace: имя моего компьютера

Scibearspace: имя моего компьютера•

3.16.0-4-amd64: ядро и архитектура•

SMP Debian 3.16.7-CKT25-2 + deb8u3: говорит мне, что я запускаю debian с ядром 3.16•

Завершите последнюю часть. Я запускаю debian 8 (обновление 3).•

Я хотел бы приветствовать любые другие, чтобы добавить результаты для RHEL и систем SuSe.

Прочитайте Определение имени и версии дистрибутива Linux онлайн: https://riptutorial.com/ru/linux/topic/872/определение-имени-и-версии-дистрибутива-linux

https://riptutorial.com/ru/home 47

Page 55: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 14: Получение информации о запущенном ядре Linux

Examples

Вся информация

С помощью флага -a / - all выведет всю доступную информацию о ядре.

$uname -a Linux hostname 3.13.0-88-generic #135-Ubuntu SMP Wed Jun 8 21:10:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

В этом примере мы видим имя ядра, имя хоста, номер выпуска ядра, версию ядра, имя аппаратного оборудования, тип процессора, аппаратную платформу и имя операционной системы.

Любое из этих полей может быть запрошено индивидуально с использованием других флагов.

Получение сведений о ядре Linux.

Мы можем использовать команду uname с различными параметрами, чтобы получить полную информацию о запуске ядра.

uname -a Linux df1-ws-5084 4.4.0-64-generic # 85-Ubuntu SMP Mon Feb 20 11:50:30 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux

На странице руководства здесь несколько вариантов

Использование: uname [OPTION] ... Печать определенной системной информации. Без OPTION, аналогично -s.

-a, --все распечатать всю информацию в следующем порядке, за исключением omit -p и -i, если неизвестно: -s, --kernel-name напечатать имя ядра -n, -nodename распечатать имя узла сети -r , -kernel-release распечатать версию ядра -v, -kernel-версия распечатать версию ядра -m, -machine распечатать имя аппаратного оборудования -p, -процессор распечатать тип процессора (не переносной) -i , --hardware-платформа распечатать аппаратную платформу (не переносную) -o, - операционная система распечатать операционную систему --help отобразить эту справку и выйти - версия выводить информацию о версии и выйти

Прочитайте Получение информации о запущенном ядре Linux онлайн:

https://riptutorial.com/ru/home 48

Page 57: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 15: Получение информации о системе

Вступление

Сбор команд для получения связанной с системой информации.

Examples

Список оборудования

Ubuntu:

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

$ sudo lshw | less (or more) $ sudo lshw -html > myhardware.html $ sudo lshw -xml > myhardware.xml

Чтобы показать информацию о PCI

$ lspci -tv

Чтобы просмотреть информацию о USB

$ lsusb -tv

Для отображения информации BIOS

$ dmidecode -q | less

Чтобы узнать конкретную информацию о диске (диск sda в примере), вы можете использовать:

$ hdparm -i /dev/sda

Немногие дополнительные утилиты / команды помогут собрать дополнительную информацию:

https://riptutorial.com/ru/home 50

Page 58: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

$ smartctl -A /dev/sda | grep Power_On_Hours # How long has this disk (system) been powered on in total $ hdparm -tT /dev/sda # Do a read speed test on disk sda $ badblocks -s /dev/sda # Test for unreadable blocks on disk sda

Найти информацию о модели процессора / скорости

Ubuntu:

$ cat /proc/cpuinfo

Результат выборки:

processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz stepping : 11 cpu MHz : 1596.000 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority bogomips : 4800.18 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: .... .. processor : 3 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz stepping : 11 cpu MHz : 1596.000 cache size : 4096 KB physical id : 0 siblings : 4 core id : 3 cpu cores : 4 apicid : 3 initial apicid : 3 fpu : yes

https://riptutorial.com/ru/home 51

Page 59: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority bogomips : 4800.30 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

счетчик (включая ядра):

$ grep -c processor /proc/cpuinfo

Мониторинг процесса и сбор информации

В целом у вас есть два способа мониторинга процессов на хосте linux

Статический мониторингНаиболее широко используемой командой является команда ps (т. Е. Статус процесса), которая используется для предоставления информации о текущих запущенных процессах, включая идентификационные номера их процессов (PID).

Вот несколько полезных вариантов для сбора конкретной информации.

Перечислить процессы в иерархии

$ ps -e -o pid,args --forest

Перечислить процессы, отсортированные по использованию% cpu

$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

Перечислить процессы, отсортированные по использованию mem (KB).

$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

Список всех тем для конкретного процесса (пример «firefox-bin» в примере)

$ ps -C firefox-bin -L -o pid,tid,pcpu,state

После поиска конкретного процесса вы можете собрать информацию, относящуюся к нему, используя lsof для перечисления путей, которые открывают идентификатор процесса

https://riptutorial.com/ru/home 52

Page 60: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

$ lsof -p $$

Или на основе процессов поиска пути, которые указали путь открытым

$ lsof ~

Интерактивный мониторингНаиболее часто используемый инструмент для динамического мониторинга:

$ top

Это основная команда по умолчанию, которая имеет огромные возможности для фильтрации и представления информации в реальном времени (по сравнению с командой ps .

Тем не менее есть более предварительные варианты, которые можно рассматривать и устанавливать как top замену

$ htop -d 5

или же

$ atop

Имея возможность записывать все действия в файл журнала (по умолчанию atop будет регистрировать всю активность каждые 600 секунд). В этот список есть несколько специализированных команд как iotop или iftop

$ sudo iotop

Статистика CPU, памяти, сети и диска (операции ввода-вывода)

Получить общую статистику по основным компонентам семейства команд stat очень полезно

ЦПУЧтобы получить статистику по процессорам, вы можете использовать команду mpstat но с некоторыми параметрами она обеспечит лучшую видимость:

$ mpstat 2 10

https://riptutorial.com/ru/home 53

Page 61: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

объем памятиМы все знаем, что команда free для отображения количества (оставшейся) ОЗУ, но для просмотра всех статистических данных, включая операции ввода-вывода:

$ vmstat 2 10

дискЧтобы получить общую информацию о ваших дисковых операциях в режиме реального времени, вы можете использовать iostat .

$ iostat -kx 2

сетьЧтобы узнать, что происходит с вашими сетевыми сервисами, вы можете использовать netstat

$ netstat -ntlp # open TCP sockets $ netstat -nulp # open UDP sockets $ netstat -nxlp # open Unix sockets

Но вы можете найти полезный мониторинг для просмотра сетевого трафика в режиме реального времени:

$ sudo iftop

НеобязательныйЧтобы генерировать статистику в реальном времени, связанную с операциями ввода-вывода для всех компонентов, вы можете использовать dstat . Этот инструмент, который является универсальной заменой для vmstat , iostat и ifstat

Использование таких инструментов, как lscpu и lshw

С помощью таких инструментов, как lscpu, поскольку lscpu - это простой способ получить информацию о процессоре.

$ lscpu

https://riptutorial.com/ru/home 54

Page 62: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 23 Stepping: 10 CPU MHz: 1998.000 BogoMIPS: 5303.14 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 2048K NUMA node0 CPU(s): 0-3

Используя инструмент lshw

$ lshw | grep cpu df1-ws-5084 description: Computer width: 64 bits capabilities: vsyscall32 *-core description: Motherboard physical id: 0 *-memory description: System memory physical id: 0 size: 5881MiB *-cpu product: Intel(R) Pentium(R) CPU G3220 @ 3.00GHz vendor: Intel Corp. physical id: 1 bus info: cpu@0 size: 3GHz capacity: 3GHz width: 64 bits

Прочитайте Получение информации о системе онлайн: https://riptutorial.com/ru/linux/topic/8932/получение-информации-о-системе

https://riptutorial.com/ru/home 55

Page 63: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 16: Проверить пространство на диске

Examples

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

Обычно бывает необходимо проверить состояние различных разделов / дисков на вашем сервере / компьютере, чтобы узнать, насколько они полны. Следующая команда - та, которую вы хотите запустить:

df -h

Это даст результат, похожий на следующий:

[root@mail ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 19G 1.6G 16G 9% / tmpfs 245M 0 245M 0% /dev/shm /dev/sda1 485M 47M 413M 11% /boot

В этом базовом примере мы видим, что / partition имеет только 9% .

Для более сложного примера, который также охватывает использование df для просмотра различных точек монтирования, см. Ниже:

[root@mail ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VG-root 1.9T 1.7T 89G 95% / /dev/mapper/VG-var 431G 145G 264G 36% /var devtmpfs 7.8G 204K 7.8G 1% /dev tmpfs 7.8G 4.0K 7.8G 1% /dev/shm /dev/md1 495M 126M 344M 27% /boot ku.example.com:9421 2.5T 487G 2.0T 20% /mnt/test tmpfs 500M 86M 415M 18% /var/ngx_pagespeed_cache

В этом примере у нас есть раздел / который на 95% заполнен вместе с дополнительным /var разделом, который заполнен всего на 36% .

У него есть внешний сетевой монтируемый 2T который монтируется на /mnt/test и монтируется ramdisk / tmpfs из 500M, установленного в /var/ngx_pagespeed_cache .

Изучить каталоги для использования дисков

Иногда может потребоваться выяснить, какой каталог потребляет столько дискового

https://riptutorial.com/ru/home 56

Page 64: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

пространства, особенно когда вы используете df -h и понял, что доступное дисковое пространство низкое.

дю:

Команда du суммирует использование диска в наборе FILE, рекурсивно для каталогов.

Он часто используется с опцией -sh :

-s, --summarize display only a total for each argument -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)

Для суммирования дискового использования файлов в текущем каталоге мы используем:

du -sh *

Пример вывода:

572K Documents 208M Downloads 4,0K Music 724K Pictures 4,0K Public 4,0K Templates 4,0K Videos

Мы также можем включать скрытые файлы с использованием:

du -sh .[!.]* *

Пример вывода:

6,3M .atom 4,0K .bash_history 4,0K .bash_logout 8,0K .bashrc 350M .cache 195M .config 12K .dbus 4,0K .dmrc 44K .gconf 60K .gem 520K .gimp-2.8 28K .gnome 4,0K .ICEauthority 8,3M .local 8,0K .nano 404K .nv 36K .pki 4,0K .profile 8,0K .ssh

https://riptutorial.com/ru/home 57

Page 65: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

0 .sudo_as_admin_successful 4,0K .Xauthority 4,0K .xsession-errors 4,0K .xsession-errors.old 572K Documents 208M Downloads 4,0K Music 724K Pictures 4,0K Public 4,0K Templates 4,0K Videos

В-третьих, вы можете добавить итоговый результат, добавив, -c, option:

du -sch .[!.]* *

Результат:

.

.

. 4,0K Templates 4,0K Videos 769M total

Самое главное, правильно использовать команду du в корневом каталоге - это спасательное действие, чтобы выяснить, какое приложение / служба или пользователь потребляют ваше дисковое пространство. Например, в случае смехотворно низкого уровня доступности дискового пространства для веб-сервера и почтового сервера причиной может быть спам-атака на вашу почтовую службу, и вы можете диагностировать ее только с помощью команды du .

Исследуйте корневой каталог для использования диска:

sudo du -sch /.[!.]* /*

Пример вывода:

16K /.VolumeIcon.icns 24K /.VolumeIcon.png 13M /bin 57M /boot 4,0K /cdrom 620K /dev 13M /etc 779M /home 0 /initrd.img 406M /lib 3,9M /lib32 4,0K /lib64 16K /lost+found 4,0K /media 4,0K /mnt

https://riptutorial.com/ru/home 58

Page 66: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

367M /opt du: cannot access '/proc/18221/task/18221/fd/4': No such file or directory du: cannot access '/proc/18221/task/18221/fdinfo/4': No such file or directory du: cannot access '/proc/18221/fd/4': No such file or directory du: cannot access '/proc/18221/fdinfo/4': No such file or directory 0 /proc 20K /root du: cannot access '/run/user/1000/gvfs': Permission denied 9,4M /run 13M /sbin 4,0K /srv 0 /sys 72K /tmp 3,5G /usr 639M /var 0 /vmlinuz 5,8G total

Наконец, лучший метод формируется, когда вы добавляете значение порогового размера для каталогов, чтобы игнорировать небольшие. Эта команда будет показывать только папки размером более 1 ГБ, расположенные под корневым каталогом, до самой последней ветви всего дерева каталогов в вашей файловой системе:

sudo du --threshold=1G -ch /.[!.]* /*

Пример вывода:

1,4G /usr/lib 1,8G /usr/share 3,5G /usr 5,8G total

Прочитайте Проверить пространство на диске онлайн: https://riptutorial.com/ru/linux/topic/6650/проверить-пространство-на-диске

https://riptutorial.com/ru/home 59

Page 67: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 17: Ракушка

Вступление

В ответ на приглашение оболочка выполняет программу. Когда вы даете команду, оболочка ищет программу, а затем выполняет ее. Например, когда вы даете команду ls, оболочка ищет утилиту / программу с именем ls, а затем запускает ее в оболочке. Аргументы и параметры, которые вы предоставляете с помощью утилит, могут повлиять на результат, который вы получаете. Оболочка также известна как интерфейс командной строки или интерфейс командной строки.

Examples

Изменение оболочки по умолчанию

Большинство современных дистрибутивов будут поставляться с BASH ( B ourne A gain SH

ell), предварительно установленным и настроенным как оболочка по умолчанию.

Команда (фактически исполняемый двоичный код, ELF), которая отвечает за изменение оболочек в Linux, - chsh ( ch ange sh ell).

Сначала мы можем проверить, какие оболочки уже установлены и настроены на нашей машине, используя команду chsh -l , которая выведет результат, подобный этому:

[user@localhost ~]$ chsh -l /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /usr/bin/fish

В некоторых дистрибутивах Linux chsh -l недействителен. В этом случае список всех доступных оболочек можно найти в файле / etc / shells. Вы можете показать содержимое файла с помощью cat :

[user@localhost ~]$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /usr/bin/fish

https://riptutorial.com/ru/home 60

Page 68: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Теперь мы можем выбрать нашу новую оболочку по умолчанию, например, fish , и настроить ее с помощью chsh -s ,

[user@localhost ~]$ chsh -s /usr/bin/fish Changing shell for user. Password: Shell changed.

Теперь все, что осталось сделать, это преформировать цикл входа в систему и воспользоваться нашей новой оболочкой по умолчанию.

Если вы хотите изменить оболочку по умолчанию для другого пользователя, и у вас есть права администратора на компьютере, вы сможете это сделать, используя chsh как root . Поэтому, предполагая, что мы хотим изменить user_2 умолчанию для user_2 , мы будем использовать ту же команду, что и раньше, но с добавлением имени пользователя другого пользователя, chsh -s /usr/bin/fish user_2 .

Чтобы проверить, что такое текущая оболочка по умолчанию, мы можем просмотреть переменную окружения $SHELL , которая указывает на путь к нашей оболочке по умолчанию, поэтому после нашего изменения мы ожидаем получить такой же результат,

~ echo $SHELL /usr/bin/fish

chsh :

-s shell

Устанавливает оболочку в качестве оболочки входа.

-l , --list-shells

Распечатайте список оболочек, перечисленных в / etc / shells, и выйдите.

-h , --help

Распечатайте сообщение об использовании и выйдите из него.

-v , --version

Распечатайте информацию о версии и выйдите из нее.

Основные утилиты Shell

Настройка командной строки

https://riptutorial.com/ru/home 61

Page 69: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Командная строка по умолчанию может быть изменена, чтобы выглядеть по-другому и коротким. Если текущая директория длинная, командная строка становится слишком большой. Использование PS1 становится полезным в этих случаях. Короткая и настраиваемая команда довольно и элегантная. В приведенной ниже таблице PS1 используется с несколькими аргументами для отображения различных форм приглашений оболочки. Командная bruce@gotham ~ $ умолчанию выглядит примерно так: user@host ~ $ в моем случае выглядит так: bruce@gotham ~ $ . Он может изменяться в соответствии с приведенной ниже таблицей:

команда Полезность

PS1 = '\ w $' ~ $ shell как имя каталога. В этом случае корневой каталог - Root.

PS1 = '\ h $' подсказка gotham $ shell как имя хоста

PS1 = '\ u $' bruce $ shell как пользователь

PS1 = '\ t $' 22:37:31 $ shell prompt в формате 24 часа

PS1 = '@ $' 10:37 PM запрос командной строки в 12-часовом формате времени

PS1 = '! $ ' 732 отобразит номер истории команды вместо приглашения оболочки

PS1 = 'чувак' dude $ будет показывать подсказку оболочки так, как вам нравится

Некоторые основные команды оболочки

команда Полезность

Ctrl-k вырезать / убить

Ctrl-y дергать / паста

Ctrl-a будет курсор на начало строки

Ctrl-e будет курсор до конца строки

Ctrl-d удалит символ после / в курсоре

Ctrl-l очистит экран / терминал

Ctrl-u очистит все между подсказкой и курсором

Ctrl-_ отменит последнее, введенное в командной строке

будет прерывать / останавливать работу / процесс, Ctrl-c

https://riptutorial.com/ru/home 62

Page 70: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

команда Полезность

выполняющийся на переднем плане

Ctrl-r обратный поиск в истории

~/.bash_history хранит последние 500 команд / событий, используемых в оболочке

history покажет историю команд

history | grep <key-word>

покажет все команды в истории, имеющие ключевое слово <ключевое слово> (полезно в случаях, когда вы помните часть команды, использованной в прошлом)

Создайте свой собственный псевдоним команды

Если вы устали от использования длинных команд в bash, вы можете создать свой собственный псевдоним команды.

Лучший способ сделать это - изменить (или создать, если он не существует) файл с именем .bash_aliases в вашей домашней папке. Общий синтаксис:

alias command_alias='actual_command'

где actual_command - это команда, которую вы переименовываете, а command_alias - новое имя, которое вы ему дали. Например

alias install='sudo apt-get -y install'

сопоставляет новую команду alias install с фактической командой sudo apt-get -y install . Это означает, что когда вы используете установку в терминале, это интерпретируется bash как sudo apt-get -y install .

Найдите файл в вашей системе

Используя bash, вы можете легко найти файл с помощью команды locate . Например, скажем, что вы ищете файл mykey.pem:

locate mykey.pem

Иногда файлы имеют странные имена, например, у вас может быть файл random7897_mykey_0fidw.pem . Предположим, вы ищете этот файл, но вы помните только части mykey и pem. Вы можете комбинировать команду locate с grep используя такой канал:

locate pem | grep mykey

https://riptutorial.com/ru/home 63

Page 71: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Который принесет все результаты, которые содержат обе эти части.

Обратите внимание, что не все системы имеют установленную утилиту locate , и многие из них не включили ее. locate выполняется быстро и эффективно, поскольку он периодически сканирует вашу систему и кэширует имена и местоположения для каждого файла на ней, но если этот сбор данных не включен, он ничего не может вам сказать. Вы можете использовать updatedb для ручного запуска сканирования файловой системы, чтобы обновить кэшированную информацию о файлах в вашей файловой системе.

Если вы не имеете рабочий locate , вы можете упасть обратно на find утилиты:

find / -name mykey.pem -print

примерно эквивалентна locate mykey.pem но при каждом запуске файла для проверки locate mykey.pem требуется сканирование вашей файловой системы, а не на использование кэшированных данных. Это, очевидно, медленнее и менее эффективно, но больше в режиме реального времени. Утилита find может делать гораздо больше, чем поиск файлов, но полное описание ее возможностей выходит за рамки этого примера.

Прочитайте Ракушка онлайн: https://riptutorial.com/ru/linux/topic/2731/ракушка

https://riptutorial.com/ru/home 64

Page 72: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 18: Сервисы

Examples

Список запущенных сервисов на Ubuntu

Чтобы получить список услуг в вашей системе, вы можете запустить:

service --status-all

Вывод service --status-all перечисляет состояние служб, контролируемых System V

+ Указывает, что служба запущена, - указывает на остановленную услугу. Вы можете увидеть это, запустив статус службы SERVICENAME для службы + и -.

Некоторые службы управляются Upstart . Вы можете проверить статус всех служб Upstart

с помощью списка sudo initctl. Любая служба, управляемая Upstart, также будет отображаться в списке, предоставляемом службой --status, - все, но будет отмечена символом?.

ref: https://askubuntu.com/questions/407075/how-to-read-service-status-all-results

Управление сервисами Systemd

Услуги листинга

systemctl Чтобы просмотреть запущенные службы•systemctl --failed Чтобы перечислить неудавшиеся службы•

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

systemctl get-default Чтобы найти цель по умолчанию для вашей системы•systemctl set-default <target-name> Чтобы установить цель по умолчанию для вашей системы

Управление службами во время выполнения

systemctl start [service-name] Чтобы запустить службу•systemctl stop [service-name] Чтобы остановить службу•systemctl restart [service-name] Для перезапуска службы•systemctl reload [service-name]•

https://riptutorial.com/ru/home 65

Page 73: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Чтобы запросить сервис для перезагрузки его конфигурацииsystemctl status [service-name] Чтобы показать текущий статус службы•

Управление автозапуском служб

systemctl is-enabled [service-name] Чтобы показать, включена ли служба при загрузке системы

systemctl is-active [service-name] Чтобы показать, активна ли в данный момент служба (работает)

systemctl enable [service-name] Чтобы включить службу при загрузке системы•systemctl disable [service-name] Чтобы отключить службу при загрузке системы•

Маскирующие услуги

systemctl mask [service-name] Чтобы замаскировать службу (затрудняет запуск службы по ошибке)

systemctl unmask [service-name] Чтобы разоблачить сервис•

Перезапуск системыd

systemctl daemon-reload

Прочитайте Сервисы онлайн: https://riptutorial.com/ru/linux/topic/6516/сервисы

https://riptutorial.com/ru/home 66

Page 74: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 19: Сжатие файлов с помощью команды «tar»

параметры

Общие параметры -

-c - создать Создайте новый архив.

-x --extract Извлеките файлы из архива.

-t --list Перечислите содержимое архива.

-f -file = АРХИВ Используйте архивный файл или каталог ARCHIVE .

-v --verbose Переработанные файлы списка вербально.

Параметры сжатия

-

-a -auto-compressИспользуйте суффикс архива для определения программы сжатия.

-j -bzip2 Отфильтруйте архив через bzip2.

-J - xz --lzma Отфильтруйте архив через xz.

-z --gzip Отфильтруйте архив через gzip.

Examples

Сжатие папки

Это создает простой архив папки:

tar -cf ./my-archive.tar ./my-folder/

Подробный вывод показывает, какие файлы и каталоги добавляются в архив, используйте опцию -v:

tar -cvf ./my-archive.tar ./my-folder/

https://riptutorial.com/ru/home 67

Page 75: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Для архивирования папки, сжатой «gzip», вам необходимо использовать опцию -z:

tar -czf ./my-archive.tar.gz ./my-folder/

Вместо этого вы можете сжать архив с помощью 'bzip2', используя опцию -j:

tar -cjf ./my-archive.tar.bz2 ./my-folder/

Или сжимайте «xz», используя опцию -J:

tar -cJf ./my-archive.tar.xz ./my-folder/

Извлечь папку из архива

Существует пример для извлечения папки из архива в текущем местоположении:

tar -xf archive-name.tar

Если вы хотите извлечь папку из архива в конкретное место назначения:

tar -xf archive-name.tar -C ./directory/destination

Список содержимого архива

Ниже приведен пример содержимого списка:

tar -tvf archive.tar

Опция -t используется для листинга. Чтобы указать содержимое архива tar.gz, вам больше нужно использовать опцию -z :

tar -tzvf archive.tar.gz

Сжатие и исключение одной или нескольких папок

Если вы хотите извлечь папку, но вы хотите исключить одну или несколько папок во время извлечения, вы можете использовать опцию --exclude .

tar -cf archive.tar ./my-folder/ --exclude="my-folder/sub1" --exclude="my-folder/sub3"

С этим деревом папок:

my-folder/ sub1/ sub2/

https://riptutorial.com/ru/home 68

Page 76: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

sub3/

Результатом будет:

./archive.tar my-folder/ sub2/

Газоразделительные элементы

Чтобы удалить любое количество ведущих компонентов, используйте опцию -strip-components:

--strip-components=NUMBER strip NUMBER leading components from file names on extraction

Например, чтобы разбить ведущую папку, используйте:

tar -xf --strip-components=1 archive-name.tar

Список содержимого архива

Перечислить содержимое архивного файла без его извлечения:

tar -tf archive.tar.gz Folder-In-Archive/ Folder-In-Archive/file1 Folder-In-Archive/Another-Folder/ Folder-In-Archive/Another-Folder/file2

Прочитайте Сжатие файлов с помощью команды «tar» онлайн: https://riptutorial.com/ru/linux/topic/5097/сжатие-файлов-с-помощью-команды--tar-

https://riptutorial.com/ru/home 69

Page 77: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 20: Стек ЛАМПЫ

Вступление

LAMP ( L inux A pache M ySQL P HP) состоит из операционной системы Linux в качестве среды разработки, HTTP-сервера Apache в качестве веб-сервера, системы управления реляционными базами данных MySQL (RDBMS) в качестве системы DB ( D ata B ase) и Язык программирования PHP в качестве языка программирования на стороне сервера (Back End).

LAMP используется в качестве стека технологий с открытым исходным кодом для решения проблем в области веб-разработки. Версия Windows этого стека называется WAMP ( W indows A pache M ySQL P HP)

Examples

Установка LAMP на Arch Linux

С помощью этой строки мы установим все необходимые пакеты за один шаг и последнее обновление:

pacman -Syu apache php php-apache mariadb

HTTP

редактировать

/etc/httpd/conf/httpd.conf

Измените ServerAdmin [email protected] как вам нужно.

Папка WEB-страниц по умолчанию - ServerRoot "/etc/httpd" . Каталог должен быть установлен в одну папку, поэтому измените строку

<Directory "/etc/httpd">

Эта папка должна иметь доступ к чтению и выполнению, поэтому

chmod o+x /etc/httpd

Измените AllowOverride from none (default) to All так что .htaccess будет работать.

Теперь вам нужна папка ~/public_html для каждого пользователя. (чтобы получить корневую страницу каждого пользователя в виде http: // localhost / ~ yourusername / .

https://riptutorial.com/ru/home 70

Page 78: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Отмените эту строку:

Include conf/extra/httpd-userdir.conf

Теперь как root вам нужно создать ~/public_html для каждого пользователя и изменить доступ к (755) каждого из них.

chmod 755 /home chmod 755 /home/username chmod 755 /home/username/public_html

Вы можете прокомментировать эту строку, если хотите использовать SSL:

LoadModule ssl_module modules/mod_ssl.so

Если вам нужно использовать виртуальные домены, раскомментируйте строку:

Include conf/extra/httpd-vhosts.conf

и в /etc/httpd/conf/extra/httpd-vhosts.conf вы должны добавить все виртуальные домены. (плюс в /etc/hosts если вы хотите протестировать эти виртуальные домены)

Измените /etc/httpd/conf/extra/httpd-default.conf и измените ServerSignature на Off и ServerToken на Prod для скрытия критических данных

PHP

Изменить: /etc/httpd/conf/httpd.conf

Комментарий: LoadModule mpm_event_module modules/mod_mpm_event.so

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

В качестве последнего элемента в списке LoadModule php7_module modules/libphp7.so

Как последний элемент в списке include, добавьте Include conf/extra/php7_module.conf

Изменить /etc/php/php.ini

Uncomment extension=mysqli.so и extension=pdo_mysql.so

Измените часовой пояс, как вам нужно, например:

date.timezone = America/Argentina/Buenos_Aires, date.default_latitude = 0.0, date.default_longitude = 0.0

MySQL

https://riptutorial.com/ru/home 71

Page 79: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Запуск от имени пользователя root:

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Теперь у вас есть корень MySQL Server.

Запустить демон MySQL:

systemctl enable mysqld systemctl start mysqld

Наконец, запустите:

sh /usr/bin/mysql_secure_installation

Это все, чтобы получить готовый веб-сервер для настройки по мере необходимости.

Установка LAMP на Ubuntu

Установить apache:

sudo apt-get install apache2

Установите MySql:

sudo apt-get install mysql-server

Установите PHP:

sudo apt-get install php5 libapache2-mod-php5

Система перезапуска:

sudo systemctl restart apache2

Проверьте установку PHP:

php -r 'echo "\n\nYour PHP installation is working fine.\n\n\n";'

Установка стека LAMP на CentoOS

Установка веб-сервера Apache

Первый шаг - установить веб-сервер Apache.

sudo yum -y install httpd

https://riptutorial.com/ru/home 72

Page 80: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

После его установки включите (для запуска при запуске) и запустите службу веб-сервера Apache.

sudo systemctl enable --now httpd

Укажите браузер:

HTTP: // локальный

Вы увидите страницу веб-сервера Apache по умолчанию.

Установка сервера MariaDB

Второй шаг - установить MariaDB:

sudo yum -y install mariadb-server

Затем запустите и включите (при запуске) сервер MariaDB:

sudo systemctl enable --now mariadb

При необходимости используйте mysql_secure_installation для защиты вашей базы данных.

Этот скрипт позволит вам сделать следующее:

Изменение пароля пользователя root•

Удалить тестовые базы данных•Отключить удаленный доступ•

Установка PHP

sudo yum -y install php php-common

Затем перезапустите службу httpd Apache.

sudo systemctl restart httpd

Чтобы протестировать PHP, создайте файл index.php в / var / www / html .

Затем добавьте следующую строку в файл:

Затем укажите браузеру:

Http: //localhost/index.php

Вы должны увидеть информацию, связанную с вашим сервером. Если вы этого не сделаете, убедитесь, что php установлен правильно, выполнив следующую команду:

php --version

https://riptutorial.com/ru/home 73

Page 81: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

Если вы получите что-то вроде:

PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02) Copyright (c) 1997-2013 The PHP Group

Затем PHP устанавливается правильно. Если это так, убедитесь, что вы перезапустили свой веб-сервер.

Прочитайте Стек ЛАМПЫ онлайн: https://riptutorial.com/ru/linux/topic/6573/стек-лампы

https://riptutorial.com/ru/home 74

Page 82: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

глава 21: Управление услугами

замечания

Некоторые системы с systemd, такие как Ubuntu, по-прежнему позволяют использовать команду service <name> [start|stop|status] , перенаправляя ее на systemctl [start|stop|status] <name> .

Examples

Запуск и остановка сервисов

В системах, использующих сценарии инициализации стиля System-V, такие как RHEL / CentOS 6:

service <service> start

service <service> stop

В системах с использованием systemd, таких как Ubuntu (Server and Desktop)> = 15.04 и RHEL / CentOS> = 7:

systemctl <service> dnsmasq

systemctl <service> dnsmasq

Получение статуса услуги

В системах, использующих сценарии инициализации стиля System-V, такие как RHEL / CentOS 6:

service <service> status

В системах с использованием systemd, таких как Ubuntu (Server and Desktop)> = 15.04 и RHEL / CentOS> = 7.0:

systemctl status <service>

Диагностика проблемы с услугой

В системах с использованием systemd, таких как Fedora => 15, Ubuntu (сервер и рабочий стол)> = 15.04 и RHEL / CentOS> = 7:

systemctl status [servicename]

... где [servicename] - рассматриваемая услуга; например, systemctl status sshd .

Это покажет базовую информацию о состоянии и любые последние зарегистрированные

https://riptutorial.com/ru/home 75

Page 83: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

ошибки.

Вы можете увидеть дальнейшие ошибки с помощью journalctl . Например, journalctl -xe загрузит последнюю 1000 зарегистрированных в пейджер (например, less ), прыгая до конца. Вы также можете использовать параметр journalctl -f , который будет следить за сообщениями журнала по мере их поступления.

Чтобы просмотреть журналы для определенной службы, используйте флаг -t , например:

journalctl -f -t sshd

Другие удобные опции включают -p для приоритета ( -p warnings чтобы видеть только предупреждения и выше), -b для «с момента последней загрузки» и -S для «с тех пор», - вместе с этим мы могли бы сделать

journalctl -p err -S yesterday

чтобы увидеть все элементы, зарегистрированные как ошибки со вчерашнего дня.

Если параметр journalctl недоступен или если вы следуете журналам ошибок приложений, которые не используют системный журнал, команда tail может использоваться для отображения последних нескольких строк файла. Полезным флагом для хвоста является -f (для «follow»), который заставляет хвост продолжать показывать данные по мере добавления к файлу. Чтобы просмотреть сообщения от большинства служб в системе:

tail -f /var/log/messages

Или, если услуга имеет привилегию и может регистрировать конфиденциальные данные:

tail -f /var/log/secure

Некоторые службы имеют свои собственные файлы журналов, хорошим примером является auditd , демон аудита linux, который имеет свои журналы, хранящиеся в /var/log/audit/ . Если вы не видите вывод своей службы в /var/log/messages попробуйте найти специальные журналы службы в /var/log/

Прочитайте Управление услугами онлайн: https://riptutorial.com/ru/linux/topic/4809/

управление-услугами

https://riptutorial.com/ru/home 76

Page 84: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

кредиты

S. No

Главы Contributors

1Начало работы с GNU / Linux

7heo.tk, Ajay Sangale, annaken, Armali, caped114, colelemonz, Community, Daniel Käfer, depperm, e.dan, EsmaeelE, Jarryd, Jensd, karel, KerDam, likewhoa, Mateusz Piotrowski, Mike P, mnoronha, Mohammad, Naveen Chakravarthy, Nikhil Raj, Paradox, Rubio, Sudip Bhandari, sudo, tedm1106, Tejus Prasad, TiansHUo, Todd, user, vishram0709, Whoami, Zumo de Vidrio

2 GnuPG (GPG) Aaron Skomra, BrightOne, Paradox, v7d8dpo4

3Midnight Commander

user

4 SCP manav m-n, Riley Guerin

5Безопасная оболочка (SSH)

Anagh Hegde, BrightOne, C.W.Holeman II, EsmaeelE, Filipe, Manuel, Rajesh Rengaraj, Todd, user

6Изменение пользователей

geek1011, mattdm

7Изменить корень (chroot)

BrightOne

8 команда ls foxtrot9, parkydr, Philip Kirkbride

9 команда tee BrightOne, kuldeep mishra

10Компиляция ядра Linux

Léo Léopold Hertz , Nathan Osman

11 конфигурация сети ctafur, Kiran Vemuri, Y4Rv1K

12Менеджеры пакетов

Paradox, Philip Kirkbride, Rubio

13Определение имени и версии дистрибутива Linux

Ani Menon, DaveM, fedorqui, lardenn, lcipriani, mattdm, Neil, Nikhil Raj, Sergey Stolyarov, Teddy

Получение информации о

14 fdeslaur, S.Rohit

https://riptutorial.com/ru/home 77

Page 85: GNU/Linux - RIP TutorialSystemd 65 65 ( SysV) 65 65 66. 66 d 66 19: «tar» 67 67 Examples 67 67 68 68 68 69 69 20: 70 70 Examples 70 LAMP Arch Linux 70 ... от случаев

запущенном ядре Linux

15Получение информации о системе

christian x, Deepak K M, Kiran Vemuri, S.Rohit, Y4Rv1K

16Проверить пространство на диске

mertyildiran, zyio

17 РакушкаAnagh Hegde, Ani Menon, Arden Shackelford, caped114, Emmanuel Mathi-Amorim, Jahid, Jensd, lardenn, oznek, Paradox, Philip Kirkbride, Quaker, Rubio, Samuel L., user

18 Сервисы Ajay Sangale, Anagh Hegde, BrightOne, Federico Ponzi, leeor

19Сжатие файлов с помощью команды «tar»

Baard Kopperud, embedded, Marsso, Not22

20 Стек ЛАМПЫArden Shackelford, EsmaeelE, FOP, Nhan, Philip Kirkbride, S.Rohit

21Управление услугами

Flamewires, mattdm

https://riptutorial.com/ru/home 78


Top Related