Linux для новичков
125 subscribers
57 photos
1 video
38 links
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.
Download Telegram
GitHub теперь в Telegram!

Более 7000+ репозиториев с исходным кодом нейросетей, ботов, сайтов и других интересных проектов для разработчиков

Всё разбито по #хештегам. Подписывайтесь:
Если необходимо использовать арифметические операторы в сценариях оболочки, поможет команда expr (которая выполняет даже некоторые операции со строками).

Например: expr 5 + 2 выводит результат 7.

Полный перечень операций: expr --help

expr
не хранит результат, а по умолчанию просто печатает ответ. Но никто не запрещает сохранять результат в переменные:
A=$( expr 12 - 7 )
echo $A # 5

Применение команды expr — это неуклюжий и медленный способ выполнения математических вычислений.

Если вам часто приходится заниматься ими, то, лучше использовать что-то вроде Python.
Как сохранить изменения и выйти в текстовом редакторе nano

NANO простой текстовый редактор. Чтобы сохранить изменения нужно нажать сочетание клавиш Ctrl + O , после этого редактор попросит ввести имя файла для сохранение. И когда все готово, достаточно нажать Enter. Чтобы выйти — Ctrl+X

Однако, если вы попытаетесь сохранить данные в файл, к которому у вас нет доступа, то получите ошибку: "Ошибка записи /имя/файла: Отказано в доступе"

Проще всего, закрыть редактор, нажав Ctrl+X не сохраняя изменений. На вопрос редактора про сохранение буфера надо ответить No. А затем открыть редактор уже от имени суперпользователя.

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

Новый файл сохранится туда, потом вы сможете переместить его вместо старого в помощью команды mv уже используя sudo.
Команда more

Утилита more предназначена для постраничного просмотра файлов в терминале Linux. Команда more — одна из самых примитивных команд для работы с текстом.

Примеры использования:

Для того, чтобы просмотреть текст из файла filename.txt:
more filename.txt

Также в команде можно перечислить несколько имён файлов одно за другим, разделяя их пробелом. Содержимое этих файлов будет выведено в том же порядке:
more file1.txt file2.txt

Порой необходимо вывести на экран не весь текст, а только его часть. Для таких случаев предусмотрены опции - (минус) и + (плюс), рядом с которыми указывается число строк. Чтобы увидеть содержимое файла, начиная с 8-й строки, следует добавить к команде опцию +8, а чтобы команда выводила результат, состоящий максимум из 5-ти строк, опцию -5:
more +8 -5 filename.txt

Также more умеет работать не только с выводами других команд:
locate bin | more -10
Контроль активности пользователя

Чтобы мониторить действий пользователей в системе, можно использовать два приложения — psacct или acct.

Они предоставляют отличный способ отслеживать, что делают пользователи, какие команды они запускают, сколько ресурсов они потребляют, как долго пользователи активны в системе. Еще одна замечательная особенность в том, что она дает общие ресурсы, потребляемые такими службами, как Apache, MySQL, FTP, SSH и т.д.

Команды для мониторинга действий процесса:
 ⁃ ac — выводит статистику пользовательских входов/выходов (время подключения) в часах.
 ⁃ lastcomm — печатает информацию о ранее выполненных командах пользователя.
 ⁃ accton — используются для включения/выключения процесса учета.
 ⁃ sa — суммирует информацию о ранее выполненных командах.
 ⁃ last и lastb — показывают список последних зарегистрированных пользователей.

Пакет psacct доступен только для дистрибутивов на основе rpm (RHEL, CentOS и Fedora), а acct — для Ubuntu, Debian и Linux Mint.
Кроме bash в Linux существуют и другие оболочки: sh, csh, ksh, zsh, tcsh и пр. Все командные оболочки, установленные в системе, прописаны в файле /etc/shells.


Иногда в файле /etc/shells можно найти /bin/false и /bin/true, которые не являются оболочками. Это «заглушки», которые можно использовать, если вы хотите отключить ту или иную учетную запись пользователя.

Как известно, при входе пользователя в систему запускается установленная для него оболочка. Так вот, если для какого-либо пользователя задать оболочку /bin/false (или /bin/true), он не сможет войти в систему. Точнее, в систему-то он войдет, но и сразу выйдет из нее, поскольку сессия пользователя длится до завершения работы его оболочки, а обе заглушки ничего не делают, кроме того, что просто возвращают значение 0 (для false) или 1 (для true).
.IMG файл

Файл IMG представляет собой файл образа диска, созданный различными приложениями для работы с образами дисков, такими как H+H Software Virtual CD. Он хранит точную копию данных на CD или DVD и используется для резервного копирования и записи новых дисков.

Файлы IMG, созданные разными программами создания образа диска, могут использовать разные форматы. Например, файлы IMG, созданные SlySoft CloneCD, должны быть объединены в пару с соответствующими файлами .CCD и .SUB, прежде чем их можно будет использовать для создания диска.

Прежде чем использовать файл IMG для создания нового диска, вы должны попытаться определить, какая программа создала файл IMG, и проверить, может ли ваша программа создания дисков записывать файлы, сохраненные в этом формате.
Команда nl

Нумерация строк облегчает чтение и упрощает запоминание вашего места или указания на конкретный раздел.

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

Самый простой способ использования команды nl:
cat <file> | nl

А если вам нравится использовать less для просмотра больших файлов, вы можете просто передать аргумент -N при открытии файла, чтобы автоматически пронумеровать строки.
❤1
Получить всю информацию о компонентах компьютера можно с помощью команды lshw

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

Поэтому следует немного отфильтровать поток, запустив: sudo lshw -short или sudo lshw -businfo, чтобы увидеть список классов устройств, которые дальше можно передать утилите.

Пример вывода информации с конкретными классами:
sudo lshw -short -class bus -class cpu 

Вывод можно преобразовать в форматы HTML, XML или JSON, к примеру:
sudo lshw -html -class storage > log.html 

Чтобы убрать из вывода информацию, такую как IP адреса и серийные номера, можно добавить параметр -sanitize
YADRO приглашает Software Engineer на SPRINT OFFER 🔍

Компания-лидер инженерной индустрии в России YADRO проводит SPRINT OFFER для Software Engineer в двух направлениях — Linux-based и Android.

🔵 Оффер в команду KVADRA, которая разрабатывает собственную операционную систему kvadraOS, можно получить всего за 3 дня!

→ На направлении Linux-based вам предстоит адаптировать исходный код Chromium для компьютеров и ноутбуков с нашими аппаратными платформами и вносить изменения в поведение устройств, учитывая продуктовые требования.

→ На направлении Android вы будете заниматься подготовкой unit-тестов своего кода. Разрабатывать собственные и адаптировать чужие приложения, если они входят в базовую поставку ОС.

Чтобы принять участие, до 24 ноября подайте заявку на сайте.

Станьте частью YADRO!
Поиск блочных устройств

Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или виртуальному, в виде файла в файловой системе.

Типичные примеры блочных устройств: жёсткий диск, CD-ROM, НГМД.

Чтобы выполнить поиск блочных устройств для создания физических томов на их основе, можно воспользоваться командой lvmdiskscan.
Копирование файлов по ssh

Чтобы скопировать локальный файл myfile.txt на компьютер с IP адресом 192.168.12.124 в директорию /home/mycomputer:
scp myfile.txt mycomputer.168.12.124:/home/mycomputer

А наоборот, скопировать файл с удаленного компьютера в текущую директорию:
scp mycomputer.168.12.124:/home/mycomputer

Также копировать можно не только файлы, но и и целые директории.

Чтобы скопировать с локального компьютера директорию ~/mydir на удаленный компьютер в директорию /home/mycomputer:
scp -r ~/mydir mycomputer.168.1.17:/home/mycomputer
Inxi — утилита командной строки для отображения подробной информации о системе в Linux и других Unix-подобных ОС. Она предоставляет обширные данные о конфигурации системы, включая информацию о железе, сети, процессах и многом другом.

Для получения подробной информации о системе, можно запустить команду: inxi -F (Параметр -F (или --full) выводит полную информацию о системе, включая аппаратные и программные компоненты).
inxi -x: выводит более подробную информацию о процессоре и памяти.
inxi -S: показывает информацию только о системе, такой как дистрибутив, версия ядра и архитектура.
inxi -G: отображает только информацию о графической карте.

Для большинства дистрибутивов Inxi доступен через стандартные репозитории:
В Ubuntu/Debian: sudo apt install inxi
В Fedora:
sudo dnf install inxi
В Arch Linux:
sudo pacman -S inxi
httpie

Инструмент командной строки, который упрощает взаимодействие с веб-API, предоставляя более человекочитаемый вывод по сравнению с curl. Он предоставляет удобный синтаксис для отправки HTTP-запросов.

Из преимуществ:
- Удобный формат вывода (JSON, HTML).
- Автоматическая обработка ошибок.
- Легкость в отправке запросов с JSON-данными.

Debian, Ubuntu: sudo apt install httpie
AlmaLinux, CentOS: sudo yum install httpie
Fedora: sudo dnf install httpie

Пример использования: http GET https://example.com
Для отправки POST-запроса: http POST https://example.com key=value
Свободные лицензии

Выделяют две группы:

Взаимные лицензии — они обязуют пользователя распространять модифицированную программу на тех же условиях, что и исходную. К таким лицензиям относятся все виды GPL, LGPL и AGPL.

Разрешительные лицензии — содержат минимум пользовательских требований и разрешают создавать проприетарный софт на основе исходной программы. С другой стороны, разрешительные лицензии не позволяют автору исходного кода контролировать судьбу модифицированной версии ПО. К ним относятся: BSD, MIT и Apache.

Совместимость лицензий означает, что программы, распространяемые под этими лицензиями, могут быть объединены или код одной программы может быть использован в другой. Разрешительные лицензии в основном совместимы между собой, а вот версии GPL — нет.
Команда modinfo

Выводит информации о модуле: файл модуля, краткое описание, авторы, лицензия, параметры. 

modinfo <опция> <имя_модуля|имя_файла>
Если имя модуля не является именем файла, то будет выполнен поиск в каталоге /lib/modules/версия

Опции:
-V либо --version — Вывести версию modinfo.
-F либо --field — Вывести только значение этого поля, по одному в строке. 
-k — Предоставить информацию о другом ядре, а не о используемом в настоящее время. Эта возможность может потребоваться для извлечения информации из недавно установленного набора модулей.
Процесс загрузки Linux

Как только ядро Linux получает контроль над системой, оно подготавливает свои области памяти и драйвера. Затем оно передает управление init, чьей задачей является дальнейшая подготовка системы и проверка того, что в конце процесса загрузки, все необходимые сервисы запущены и пользователь способен войти в систему.

Init делает это с помощью запуска демона udev, Когда udev запущен, все оставшиеся файловые системы, которые не были примонтированы, монтируются, и запускаются остальные сервисы.

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

Но когда определены множественные файловые системы , этот процесс может стать немного более усложненным, но с давних пор решением для этой проблемы является использование "initrd" (initial root device).
Команда pstree 

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

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

Чтобы отключить объединение идентичных веток, примените:
pstree -c

Если в качестве аргумента указано имя пользователя, pstree отображает только процессы, принадлежащие этому пользователю:
pstree username

pstree также позволяет выделить процессы для лучшего визуального представления. Аргумент -h выделит текущий процесс и все его предки:
pstree -h
Смотрим общую информацию о жёстком диске

Для регулировки и просмотра параметров жёстких дисков с интерфейсом ATA существует утилита hdparm.

Утилита может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA.

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

Для просмотра общей информации о жёстком диске используется команда: hdparm -i /dev/sd<буква>
Найти и заменить строку с помощью sed

Sed — это неинтерактивный строчный редактор. С помощью sed вы можете искать, находить и заменять, вставлять и удалять слова и строки.

Общая форма поиска и замены текста с помощью sed имеет следующий вид:
sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE

где -i — опция, указывающая sed редактировать файлы на месте.
s — заменяющая команда
/ — Символ-разделитель
SEARCH_REGEX — обычная строка или регулярное выражение для поиска
REPLACEMENT — строка замены
g — Флаг глобальной замены
INPUTFILE — имя файла, для которого вы хотите запустить команду