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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Cкрипт сравнивает указанные в качестве параметров две директории по содержимому на основе информации дате их изменения.

Пример вывода:
> test1 (старее в dir2/)
> test2 (старее в dir2/)
- test4 (отсутствует в dir2/)
< test5 (старее в dir1/)
+ test3 (отсутствует в dir1/)

test1..5 - тестовые файлы в тестовых директориях dir1 и dir2
Вывести список устройств USB можно с помощью команды lsusb 

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

Для получения более подробной информации в виде иерархии, включающей в себя драйверы ядра, коды устройств и номера производителей и портов, надо запустить команду с параметром -tv.
Утилита управления сетевым экраном iptables 

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

Правило состоит из критерия, действия и счетчика. Если пакет соответствует критерию (требованию), то к нему принимается действие и этот пакет учитывается счетчиком.

Таблица – совокупность базовых и пользовательских цепочек, объеди- ненных общим функциональным назначением. 

Цепочкой является упорядоченная последовательность правил. Существует пять базовых цепочек: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING.

Например, чтобы запретить весь входящий трафик:
iptables -A INPUT -j DROP

Чтобы удалить все правила используется команда iptables –F
Часы останутся активны до закрытия сессии терминала.
Однострочник, показывающий 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-ти колонок.

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