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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Утилита vulkaninfo

vulkaninfo — утилита командной строки, предоставляющая подробную информацию о реализации Vulkan API на устройстве.

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

1. Вывод всей информации о Vulkan:
vulkaninfo


2. Фильтр для ключевых данных о GPU:
vulkaninfo | grep -i device


3. Сохранение информации в файл:
vulkaninfo > vulkan_report.txt
Утилита glxinfo

glxinfo — утилита командной строки, которая предоставляет информацию о реализации OpenGL и состоянии графического стека через интерфейс GLX (OpenGL Extension to the X Window System).

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

1. Получить основные данные о OpenGL:
glxinfo | grep OpenGL

Вывод покажет:
- Версию OpenGL.
- Имя рендера (например, Mesa, NVIDIA, AMD).
- Поддерживаемые функции (GLSL и т.д.).

2. Показать все доступные расширения OpenGL:
glxinfo | grep "extensions"


3. Вывод всей информации:
glxinfo
Графические серверы

Графические серверы — это программные компоненты, которые управляют отображением графического интерфейса на экране. Они принимают запросы от приложений на создание окон, отрисовку элементов интерфейса, обработку ввода (клавиатура, мышь) и передают их ОС и видеокарте.

В Линукс есть 2 популярных графических сервера:
1. X.Org - самый распространенный и долгое время основной графический сервер в Linux.
Его особенности:
- Поддержка удаленного вывода (работа через SSH).
- Модульная архитектура.
- Широкая совместимость, но устаревший дизайн.

2. Wayland - современная альтернатива X.Org, разработанная для упрощения и повышения производительности.
Его особенности:
- Более плавная графика за счет отказа от некоторых слоев X.Org.
- Улучшенная безопасность (каждое приложение работает в своём изолированном контексте).
- Более простая архитектура.
Однако, всё ещё ограниченная поддержка некоторых старых приложений.
Как пользоваться gdb (GNU Debugger)?

1. Убедитесь, что у вас установлен gdb. Если нет, выполните в терминале команду:
sudo apt-get install gdb

2. Запустите программу, которую хотите отладить:
./myprogram

3. Запустите gdb и подключитесь к запущенной программе. Для этого выполните команду:
gdb myprogram

4. Отладка начнется после выполнения предыдущей команды. Вы можете использовать следующие команды для управления отладкой:
- break <номер строки> - устанавливает точку останова на указанной строке
- run - запускает программу
- next - переходит к следующей строке кода
- step - переходит к следующей строке кода или входит внутрь функции
- print <имя переменной> - печатает значение переменной
- quit - завершает отладку
Есть тут любители шахмат?

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

Для установки GNU Chess в системе Linux выполните следующие команды в терминале:
sudo apt-get update
sudo apt-get install gnuchess


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

Вы также можете настроить параметры игры, такие как уровень сложности, используя опции командной строки. Например, чтобы установить уровень сложности на 3, можно запустить игру с помощью команды:
gnuchess -l 3
Получение информации об изображении

Команда identify предоставляет подробную информацию об изображении:
⁃ Формат изображения (например, JPEG, PNG, GIF)
⁃ Размеры (ширина и высота) изображения
⁃ Глубина изображения (количество цветов или уровней)
⁃ Цветовые профили и информация профиля ICC
⁃ Сведения о сжатии (если применимо)
⁃ Другие свойства и характеристики изображения

Синтаксис:
identify image.jpg

Например, вывод может выглядеть так:
image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 1.8MB 0.000u 0:00.000
GNU Screen

GNU Screen - консольное приложение, которое позволяет выполнять несколько задач в рамках одной консоли и управлять ими даже в случае отключения от сервера SSH или просто закрытия терминала.

Чтобы установить GNU Screen в Ubuntu:
sudo apt-get install screen

После установки вы можете запустить GNU Screen, вызвав команду "screen". Обычно вы будете работать с GNU Screen следующим образом:
- screen - создать новую сессию
- Ctrl-a c - создать новое окно внутри текущей сессии
- Ctrl-a n - переключиться на следующее окно в текущей сессии
- Ctrl-a p - переключиться на предыдущее окно в текущей сессии
- Ctrl-a d - отключиться от текущей сессии, но оставить ее работающей в фоновом режиме
- screen -r - перейти обратно к существующей сессии
Проверить файлы, которые были изменены за последние X минут

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

Тогда вы можете воспользоваться следующей командой:
find /путь/к/папке -type f -mmin -60

Чтобы проверить все файлы в текущем каталоге, можно воспользоваться такой командой:
find . -type f -mmin -60
Проверка целостности RAID массива

Для проверки целостности вводим:
echo 'check' > /sys/block/md0/md/sync_action

Результат проверки смотрим командой:
cat /sys/block/md0/md/mismatch_cnt

Если команда возвращает 0, то с массивом все в порядке.

Остановка проверки:
echo 'idle' > /sys/block/md0/md/sync_action
Продвинутое использование команды sort

Например у вас есть файл, в котором хранится информация в определенном формате:
Name:John:25:Male
Name:Alice:30:Female
Name:Bob:22:Male


И нужно отсортировать файл по возрасту (то есть по третьему столбцу), тогда можно воспользоваться командой:
sort -t':' -k3,3 <имя файла>

В результате получим:
Name:Bob:22:Male
Name:John:25:Male
Name:Alice:30:Female
Как просмотреть ASCII/HEX файлы?

Так как в таблице ASCII некоторым кодам соответствуют непечатные символы, то некоторые файлы не может быть целиком просмотрены или распечатаны в текстовом режиме.

Но иногда очень нужно посмотреть содержимое этих файлов. В таких случаях поможет команда gitview.

Чтобы посмотреть файл file.hex:
gitview -c /home/rootlocal/file.hex
Мониторим использование дискового пространства

Скрипт будет проверять использование дискового пространства в системе и отправлять уведомление, если использование превышает 80%.

#!/bin/bash
threshold=80
usage=$(df / | grep / | awk '{ print \$5 }' | sed 's/%//g')

if [ "$usage" -gt "$threshold" ]; then
echo "Warning: Disk usage is above ${threshold}% (currently ${usage}%)"
fi


df /
— выводит информацию о файловой системе, включая использование дискового пространства.
grep / — фильтрует вывод, чтобы оставить только строку с корневым разделом.
awk '{ print \$5 }' — извлекает 5-й столбец, который содержит процент использования.
sed 's/%//g' — удаляет символ % из строки.
Сравнениваем два файла

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

#!/bin/bash
file1="file1.txt"
file2="file2.txt"

comm -13 <(sort "$file1") <(sort "$file2")


sort "$file1" и sort "$file2" — сортируют оба файла для корректного сравнения.
comm -13 — выводит строки, которые есть только в первом файле. Параметр -1 исключает строки, которые есть только во втором файле, а -3 исключает общие строки.
Сетевые настройки

Основные команды довольно просты. Для настройки сетевых интерфейсов можно использовать ifconfig или ip.

Чтобы посмотреть текущие сетевые интерфейсы, используем: ip addr show

Если хотим настроить IP-адрес, это можно сделать с помощью: sudo ip addr add 192.168.1.10/24 dev eth0
Команда назначает IP-адрес 192.168.1.10 интерфейсу eth0.
Логи и journalctl

journalctl — инструмент для просмотра логов, управляемых systemd. Он позволяет вам получать доступ к системным журналам и фильтровать их по времени, службе и другим параметрам.

Пример:
Смотрим все логи, просто выполнив: journalctl

Чтобы просмотреть логи для конкретной службы, например, nginx, используем: journalctl -u nginx

Для просмотра логов за последние 10 минут:
journalctl --since "10 minutes ago"
Удаляем старые резервные копии

Скрипт удаляет резервные копии в каталоге
/backups, которые старше 30 дней.

#!/bin/bash
find /backups -type f -mtime +30 -exec rm {} \;


find /backups — ищет файлы в каталоге резервных копий.
-type f — ищет только файлы.
-mtime +30 — находит файлы, которые были изменены более 30 дней назад.
-exec rm {} \; — удаляет найденные файлы.
Поиск и замена текста в файлах

Скрипт ищет и заменяет текст "foo" на "bar" во всех текстовых файлах в текущем каталоге.

#!/bin/bash
for file in *.txt; do
sed -i 's/foo/bar/g' "$file"
done


for file in *.txt; do — перебирает все текстовые файлы в текущем каталоге.
sed -i 's/foo/bar/g' "$file" — использует sed для замены "foo" на "bar" во всех найденных файлах.
Подсчет слов в файле

Найдем количество уникальных слов в файле text.txt.

Пример:

tr -c '[:alnum:]' '[\n]' < text.txt | sort | uniq -c | wc -l

Команда tr заменяет все неалфавитные символы на переносы строк, затем sort сортирует их, uniq -c подсчитывает уникальные слова, а wc -l выводит их количество.
Находим и удаляем дубликаты в файле

Условие: У вас есть текстовый файл file.txt, в котором могут быть дубликаты строк. Напишем команду, которая удалит дубликаты и сохранит результат в новом файле unique.txt.

sort file.txt | uniq > unique.txt


Команда sort сортирует строки в файле, а uniq удаляет дубликаты, оставляя только уникальные строки. Результат перенаправляется в новый файл unique.txt.
Подсчитаем количество файлов в директории

Напишем команду, которая подсчитает количество всех файлов в директории /path/to/directory.

Пример:
find /path/to/directory -type f | wc -l

Команда find ищет все файлы (-type f) в указанной директории и ее поддиректориях, а wc -l подсчитывает количество строк, что соответствует количеству найденных файлов.