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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Однострочник, показывающий 15 самых часто используемых вами команд в Bash:

cat ~/.bash_history | tr "\|\;" "\n" | sed -e "s/^ //g" | cut -d " " -f 1 | sort | uniq -c | sort -n | tail -n 15

Последняя цифра задает нужное количество вывода.

Код текстом, чтобы было удобно просто скопировать и проверить.
Определение оборудования PCI с помощью команды lspci 

Команда lspci читает информацию с шины PCI (локальная аппаратная шина), к которой подключены встроенные компоненты на материнской плате, а также карты расширения, вставленные в слоты PCI. 

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

Получим подобное:
[...]
00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode]
[...

00:1f.2 — это номер BDF устройства: ( шина:устройство.функция ). 
Номер шины — 00, номер устройства — 1f и номер функции — 2

Чтобы получить больше информации, можно увеличить вывод:
lspci -v
lspci -vv 
lspci -vvv
​​Поиск файлов и каталогов с помощью locate

Команда locate- самый быстрый и простой способ поиска файлов и каталогов по их именам. Заранее установленная, команда locate выполняет поиск заданного шаблона в файле базы данных. Найденные результаты отображаются на экране, по одному на строку.

Синтаксис:
locate [параметр] шаблон

К примеру, чтобы найти файл с именем .bashrc, набираем:
locate .bashrc

Вывод будет включать имена всех файлов, содержащих строку .bashrc в их именах.
Gnuplot

Инструмент, который позволяет строить двух- и трехмерные графики, установив утилиту:
sudo apt install gnuplot-x11

Для запуска набираем:
gnuplot

К примеру, построить график синуса:
gnuplot> plot sin(x)

Также можно построить график, используя собственные данные (к примеру, данные представлены в виде двух колонок в заранее подготовленном файле):

gnuplot> plot 'some_file' u 1:2 w lines 

Чтобы построить 3d график, используется splot
Основные конфигурационные файлы GRUB2

В дополнение к посту о программе управления процессом загрузки.

/boot/grub/grub.cfg — НЕ редактируй его. Создается командой grub2-mkconfig (или grub-mkconfig в зависимости от дистрибутива) с использованием набора основных файлов конфигурации и файла grub по дефолту в качестве источника спецификаций настроек юзера. Содержит код, похожий на bash, и список установленных ядер в виде массива.

/etс/default/grub — основной файл конфигурации, который меняет внешний вид загрузочного меню. 

/etc/grub.d/various — файлы скриптов, используемые для создания grub.cfg.
​​Форматирование текста 

fmt — утилита для простого форматирование текста

Синтаксис вызова команды:
fmt [параметры] файлы 

К примеру, разбить текст в файле some_file на строки по 50 символов, можно выполнив:

fmt -w 50 some_file
С точки зрения ОС Linux все пользователи (и запущенные от их имени процессы, помимо имеющихся у них pid) различаются друг от друга по наличию идентификатора пользователя uid (user id).

При разрешении вопросов доступа система ориентируется исключительно по uid номерам. В традиционных системах для хранения uid отведено 2 байта и обычно этого (2^16=65536 пользователей) хватает.

Увидеть свой uid-номер можно командой id

Пользователи с номерами uid до n=1000 называются системными. Обычные пользователи имеют номера ≥n. В некоторых системах граница разделения обычных пользователей и системных проходит по n=500, в каких-то по n=1000.

Индексные дескрипторы файловых систем и файловые дескрипторы операционных систем хранят исключительно uid номера, а не имена пользователей. Однопользовательские файловые системы не хранят никаких uid владельцев файловых объектов.
Узнать объем свободного места на жестком диске или в разделе поможет команда df

Если устройство не указано (в качестве параметра к df), то на экран выводится информация о смонтированных файловых системах, колонки которых, обозначают следующее:

Filesystem — диск, файловая система которого смонтирована;
1k-blocks — количество логических блоков;
Used — количество занятых блоков;
Available — количество свободных блоков;
Use% — процент использованного дискового пространства;
Mounted on — как смонтирована файловая система.
​​Утилита 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, вам могут быть незнакомы многие полезные параметры этой команды, которые позволяют получать большое количество информации, касающейся файлов вашей системы.