Linux для чайника – Telegram
Linux для чайника
20K subscribers
89 photos
4 files
80 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
​​Утилита ps (process status) - неоднократно использовалась в постах выше.

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

Синтаксис программы ps следующий:
ps [параметры]
Получить информацию о состоянии оперативной памяти, можно используя команду free -h (параметр -h для удобочитаемого вида), которая опирается на файл /proc/meminfo.

Помимо очевидных колонок, shared - это память, используемая хранилищем tmpfs для поддержки различных псевдофайловых систем наподобие /dev/ и /sys/.
Буферы и кэш связаны с памятью, используемой ядром для операций ввода-вывода на уровне блоков. Как сбросить буфер - был [ отдельный пост ].
Любая память, используемая любым системным процессом, обозначается как used.
available обозначает память, которая в настоящее время доступна для запуска новых приложений.
В Linux имеется возможность подмонтировать каталог к каталогу, а не только каталог к устройству.

Делается это с помощью все той же команды mount, запущенной с параметром --bind, к примеру:

mount --bind source_dir destination_dir
Каталог /srv/

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

Когда-то давно предполагалось, что в этом каталоге будут храниться данные, с которыми работает та или иная служба. Например, намечалось, что в случае использования сервера Apache НТТР все файлы сайта, обслуживаемые данной службой, будут храниться в каталоге /srv/.

Однако исторически сложилось так, что для данной службы вместо каталога /srv/ стал использоваться каталог /var/www/. По этой причине каталог /srv/ пустует.
Использование команды systemctl для выключения, перезагрузки и перевода системы в спящий режим. 

Остановка системы и выключение электропитания: 
systemctl poweroff или systemctl shutdown 

Перезагрузка:
systemctl reboot

Остановить систему, не выключая электропитание: 
systemctl halt 

Перевод системы в спящий режим:
systemctl hiberna 
(Для этого ядро должно поддерживать гибернацию. Посмотрите файл: /sys/power/state - там должно присутствовать слово disk, а файл подкачки должен быть больше размера оперативки)

Перевод системы в режим приостановки:
systemctl suspend
Получение информации о дисплее, дисковых массивах RAID и компонентах компьютера с помощью команды hwinfo

Чтобы получить подробную информацию о мониторе, используется:
hwinfo --monitor 

Команда для обнаружения устройств RAID:
hwinfo --listmd

Команда, чтобы получить сводку об оборудовании:
hwinfo --short 

А также можно получать информацию об отдельных компонентах в наборе:
hwinfo --mouse --network --cdrom
(список компонентов можно посмотреть в мане или с помощью команды hwinfo --help в разделе HARDWARE_ITEM)
Хороший пример к предыдущему посту [ про извлечение определенных частей из файла командой cut ]

Отдельно от всего отобразим домашние каталоги пользователей в системе:
grep /home /etc/passwd | cut -d':' -f6 -

grep передает список обычных пользователей из файла /etc/passwd и отображает шестое поле (-f6), разделенное двоеточием (-d':').

Дефис в конце дает команде cut инструкцию читать данные из стандартного ввода (из конвейера).
Историческая справка.

К счастью для Unix, молодой финский программист Линус Торвальдс решил написать собственную версию Unix. Он позаимствовал у оригинальной системы многие принципы и идеи, но не кодовую базу и тем самым избежал юридических сложностей. Он рекрутировал в добровольные помощники многих программистов со всего мира, воспользовался развитыми инструментами GNU, уже существовавшими к тому времени, и вскоре родилась ОС Linux (а вместе с ней современное движение за ПО с открытым исходным кодом).

Когда настала эра интернета, многие компании (например, Google, Amazon, Facebook и другие) выбрали Linux, поскольку она распространялась свободно и ее можно было модифицировать под свои нужды; трудно представить, что все эти компании добились бы такого успеха, если бы подобной системы не существовало. Когда смартфоны стали доминирующей платформой, ориентированной на пользователя, Linux закрепилась и там тоже (посредством Android) – и по тем же причинам. А Стив Джобс забрал свою основанную на Unix операционную среду NeXTStep в Apple и тем самым сделал Unix популярной на настольных компьютерах (хотя многие пользователи технологий Apple, возможно, и не подозревают об этом).
Таким образом, Unix продолжает здравствовать и даже более важна, чем когда-либо прежде.
​​Вывод пользовательских процессов через команду ps -axu в удобном для восприятия виде, отобразится в виде 11-ти колонок.

Расшифровка их заголовков приведена ниже.
Основные компоненты ядра

Сигналы. Ядро использует сигналы для обращения к процессу. Например, сигналы используются для уведомления процесса о некоторых ошибках, таких как деление на нуль;

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

Процессы и планировщик. Создает, управляет и планирует процессы.

Виртуальная память. Выделяет виртуальную память для процессов и управляет ею.

Файловая система. Предоставляет глобальное иерархическое пространство имен для файлов, каталогов и других объектов, связанных с файлами и функциями файловой системы.

Сетевые протоколы. Поддержка пользовательского интерфейса сокетов для набора протоколов TCP/IP.

Драйверы символьных устройств. Управление устройствами, которые требуют от ядра отправки или получения данных по одному байту, например терминалами, принтерами или модемами.

Драйверы блочных устройств. Управление устройствами, которые читают и записывают данные блоками, как, например, различные виды вторичной памяти (магнитные диски, CD-ROM и т.п.).

Драйверы сетевых устройств. Управление картами сетевых интерфейсов и коммуникационными портами, которые подключаются к сетевым устройствам, таким как мосты или роутеры.

Ловушки и отказы. Обработка генерируемых процессором прерываний, как, например, при сбое памяти.

Физическая память. Управляет пулом кадров страниц и выделяет страницы для виртуальной памяти.

Прерывания. Обработка прерываний от периферийных устройств.
Существует три режима работы журналируемой файловой системы ехtЗ/ext4: joumal, ordered и writeback.

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

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

Самый быстрый режим writeback, но в нем, по сути, журнал не будет использоваться и у вас не будет никакой защиты, например, от той же перезагрузки.
Особенность работы с командой tar связана с тем, что она была создана еще до возникновения стандартов использования параметров.

Хотя вы можете добавлять параметры для tar с помощью дефиса, это не всегда является обязательным условием.

Поэтому вполне можно использовать команду tar, (к примеру: tar xvf ) без дефиса, обозначающего ввод параметра.
​​Даже если вы хорошо знакомы с командой ls, вам могут быть незнакомы многие полезные параметры этой команды, которые позволяют получать большое количество информации, касающейся файлов вашей системы.
Для получения информации о пользователях - достаточно знать три родственные команд: w, who и whoami

 Выводят следующую информацию:

команда w — список пользователей, подключенных к системе; виртуальный терминал, с которого работает пользователь; время входа в систему для каждого пользователя; статистику использования системы (IDLE — время простоя, JCPU — использование процессора); выполняемые каждым пользователем за дачи;

команда who — список пользователей, подключенных к системе; время и дату входа каждого пользователя;

команда whoami — имя пользователя, который ввел команду.
Команда su

Команда su позволяет получить доступ к консоли с правами root любому пользователю (даже если пользователь не внесен в файл /etc/sudoers) при условии, что он знает пароль root.
Понятно, что в большинстве случаев этим пользователем будет сам пользователь root, — не станете же вы всем пользователям доверять свой пароль? Поэтому команда su предназначена, в первую очередь, для администратора системы, a sudo — для остальных пользователей, которым иногда нужны права root (чтобы они меньше отвлекали администратора от своей работы). Использовать команду su просто:
su
После этого нужно будет ввести пароль пользователя root, и вы сможете работать в консоли как обычно. Использовать su удобнее, чем sudo, потому что вам не потребуется вводить su перед каждой командой, которая должна быть выполнена с правами root.
Чтобы закрыть сессию su, нужно или ввести команду exit, или просто закрыть окно терминала.
SYSLINUX — это еще один загрузчик для систем Linux. Обычно он не используется для установленных систем Linux. Однако применяется в качестве загрузчика для установочных CD и DVD Linux. SYSLINUX особенно хорошо подходит для загрузки образов CD ISO9660 (isolinux) и USB-накопителей (syslinux), а также для работы на старом оборудовании или загрузки PXE (pxelinux) системы по сети.
​​Обычно команды kill и killall применяются для завершения запущенного процесса, однако они могут отправлять запущенному процессу любую допустимую инструкцию. Помимо отправки сигнала завершения, команда может сообщить процессу о необходимости пересмотреть файлы конфигурации, приостановиться (остановиться) или продолжить выполнение после приостановки, и это еще не все варианты. Сигналы представляются как числами, так и именами.

Примеры некоторых сигналов.
Система SELinux

Fedora, Red Hat Enterprise Linux и другие дистрибутивы Linux поставляются с подключенной функцией Security Enhanced Linux (SELinux) в принудительном режиме (Enforcing).

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

Основная функция SELinux заключается в защите содержимого системы Linux от процессов, запущенных в системе. Другими словами, SELinux гарантирует, что веб-сервер, FTP-сервер, сервер Samba или DNS-сервер могут получить доступ только к ограниченному набору файлов в системе (определяется содержимым файлов), и разрешает лишь ограниченный набор функций (определяется логическими значениями и ограниченным доступом к порту).
Горячие клавиши терминала в Linux

Управление процессами
Ctrl + C - прервать процесс (послать сигнал Interrupt).
Ctrl + Z - приостановить процесс (послать сигнал Stop).

Перемещение курсора
Ctrl + A - переместить курсор в начало строки.
Ctrl + E - переместить курсор в конец строки (E - End).
Alt + F - переместить курсор на одно слово вперед (F - Forward).
Alt + B - переместить курсор на одно слово назад (B - Back).
Ctrl + F - переместить курсор на один символ вперед (F - Forward).
Ctrl + B - переместить курсор на один символ назад (B - Back).

Редактирование текста
Ctrl + L - очистить экран. Аналог команде clear.
Ctrl + D - удалить символ под курсором (D - Delete).
Alt + T - поменять местами два слова. Слово под курсором меняется со словом слева от курсора (T - Translocate)
Ctrl + T - поменять местами два символа. Символ под курсором меняется с символом слева от курсора (T - Translocate).
Alt + L - перевести символы в нижний регистр, начиная с символа под курсором и до конца слова (L - Lowercase).
Alt + U - перевести символы в верхний регистр, начиная с символа под курсором и до конца слова (U - Uppercase).

Вырезание и вставка текста
Ctrl + K - вырезать текст от курсора до конца строки (K - Kill).
Ctrl + U - вырезать текст от курсора до начала строки.
Alt + D - вырезать слово от курсора до его конца (D - Delete).
Alt + Backspace - вырезать слово от курсора до его начала. Если курсор находится на начале слова, то удаляется предыдущее слово.
Ctrl + Y - вставить вырезанный текст из буфера обмена на место курсора.

Дополнение команды
Tab - дополнить текст команды. (ls essa => ls essay.txt)
Alt + ? - вывести все варианты дополнения (тоже если нажать Tab дважды).
Alt + * - вставить все варианты дополнения в аргументы команды.

Поиск команд в истории
Ctrl + R - начать поиск команд в истории. Нажмите еще раз чтобы двигаться вверх по истории. Нажмите Enter чтобы выполнить найденную команду.
Ctrl + J - вставить найденную команду в терминал, без выполнения.
Ctrl + G - прекратить поиск команд в истории.
Ctrl + P - показать предыдущую запись в истории. Аналог клавише со стрелкой вверх. (P - uP).
Ctrl + N - показать следующую запись в истории. Аналог клавише со стрелкой вниз. (N - dowN).
Alt + < - перейти к первой записи в истории.
Alt + > - перейти к последней записи в истории.
Alt + N - поиск в прямом порядке (ввести команду и нажать Enter).
Alt + P - поиск в обратном порядке (ввести команду и нажать Enter).
Ctrl + O - выполнить команду из истории и перейти к выполнению следующей по списку. Работает только в поиске Ctrl+R.
Разложение на простые множители 

Команда factor в Linux дает простые множители числа.
Синтаксис 
factor [число]

Пример:
factor 20
Получим:
20: 2 2 5

Также можно передать несколько чисел в качестве аргумента:

factor 20 30 40

Получим:                                                                
20: 2 2 5
30: 2 3 5
40: 2 2 2 5
Команда w

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

Синтаксис:
w [OPTIONS] [USER]

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

Аргументы:
-h - указывает w не печатать заголовок, выводится только информация о авторизованных пользователях
-f - переключает поле FROM(Имя хоста или IP-адрес, с которого пользователь вошел в систему). Отображение или скрытие этого поля по умолчанию зависит от используемого вами дистрибутива.
-o - вывод в старом стиле 
-s - вывод в коротком стиле
-i - всегда показывает IP-адрес вместо имени хоста в поле FROM .