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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Как изменить частоту проверки fsck

По умолчанию fsck проверяет файловую систему каждые 30 загрузок (вычисляется отдельно для каждого раздела). Чтобы изменить частоту проверок, можно воспользоваться командой tune2fs:
tune2fs -c 20 /dev/sda1

Здесь 20 — число загрузок между проверками. Если задать значение 1, то проверка будет выполняться при каждой загрузке, а значение 0 отключит сканирование.

Текущую частоту проверок и опции монтирования конкретного раздела можно узнать командой:
dumpe2fs -h /dev/sda1 | grep -i 'mount count'

ВАЖНО Команды tune2fs и dumpe2fs работают только с файловыми системами ext2/ext3/ext4.
Что такое fstab?

Fstab — это таблица файловой системы, используемая ядром во время загрузки для монтирования файловой системы.

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

Полный путь к файлу — /etc/fstab.

ВАЖНО! Перед редактированием файла fstab рекомендуется сделать его резервную копию. Если в случае, что что-то испорчено, можно восстановить резервную копию.
Структура файла fstab

Чтобы лучше понять структуру, для начала отобразим файл:
cat /etc/fstab | grep -i -v "^#" | column -t

Fstab состоит из шести столбцов (разделов):

1) Файловая система — блочное устройство, которое разбито на разделы и на нем создана файловая система.

2) Точка монтирования — место, где файловая система монтируется в вашей системе.

3) Тип — Тип файловой системы

4) Параметры — это решает, какие параметры монтирования следует учитывать при монтировании файловой системы.

5) Дамп — это для целей резервного копирования, используемых dump утилитой. Установка его на ноль означает отключение резервного копирования, а единица означает включение резервного копирования на данное устройство/носитель.

6) Pass — Проверка файловой системы при загрузке fsck утилитой. Ноль отключит проверку файловой системы, для корневой файловой системы следует установить значение 1, а для других разделов — значение 2.
Запрещаем доступ по SSH пользователю или группе

Чтобы запретить доступ по SSH конкретному пользователю с именем name_user, отредактируйте файл sshd_config:
sudo vi /etc/ssh/sshd_config

Добавьте/отредактируйте следующую строку в файле sshd_config:
DenyUsers name_user

Также можно указать более одного пользователя, а чтобы ограничить доступ к группе:
DenyGroups group_name

Далее перезапустить службу SSH, чтобы изменения вступили в силу:
sudo systemctl restart sshd
Разрешить SSH-доступ пользователю или группе

Чтобы разрешить доступ по SSH для определенного пользователя, например name_user, отредактируйте файл sshd_config:
sudo vi /etc/ssh/sshd_config

И добавить или изменить следующую строку:
AllowUsers name_user

Также можно указать более одного пользователя, а чтобы добавить группу:
AllowGroups group_name

Далее перезапустить службу SSH, чтобы изменения вступили в силу:
sudo systemctl restart sshd
Демон cron

cron используется для запуска запланированных задач на машинах, которые будут работать непрерывно 24/7, таких как сервера.

Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги.

В системах на базе systemd cron фактически замещён встроенным механизмом systemd.timer.

Файлы crontab, создаваемые для отдельных пользователей, находятся в каталоге /usr/spool/cron/crontabs/ или /var/spool/cron/tabs/. Редактировать их вручную не рекомендуется, для этого используют команду crontab -e.

Файлы crontab, используемые для управления всей системой, располагаются в каталоге /etc/cron.d/. Кроме того, в каталогах /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).
Планирование выполнения команд

at — unix-утилита, читающая команды со стандартного входного потока и группирующая их в виде задания at для выполнения в заданное время.

Утилита at принимает широкий диапазон спецификаций времени. Вы можете указать время, дату и приращение от текущего времени.

Хорошим примером для иллюстрирования действий at послужит следующая команда:
echo "notify-send 'пора завтракать'" | at 06:00

Её результатом будет вызов уведомителя GNOME с текстом «пора завтракать» в шесть часов утра.
Ознакомление со списком команд, запланированных для исполнения

Когда с помощью утилиты at, мы создаем запланированную команду, иногда мы можем забыть, что мы там напланировали.

Для того, чтобы посмотреть все задания, можно воспользоваться командой:
at -l

Либо отдельной командой:
atq
Удаление из очереди команд, запланированных для исполнения

Создать какую-то запланированную задачу (например, вывод какого-то напоминая на экран) очень просто. Достаточно воспользоваться командой at.

Но иногда напоминая настовятся неактуальными, поэтому чтобы удавиль какое-то запланированное выполнение команды, можно воспользоваться:
at -d <идентификатор задачи>

Либо отдельной командой:
atrm <идентификатор задачи>
Интерпретатор Bash

bash является аббревиатурой от Bourne Again SHell.

Интерпретатор bash может запускаться в различных режимах совместимости, имитируя поведение других командных интерпретаторов. Он может имитировать поведение Bourne shell (sh) или командного интерпретатора, совместимого со стандартами POSK (bash — posix).

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

Все предоставляемые операционные системы Linux по умолчанию используют интерпретатор bash, кроме операционных систем, загружаемых со сменных носителей, в которых по умолчанию применяется интерпретатор ash.
Особенности cron

cron - демон, использующийся для периодического выполнения заданий.

- Все условия (времени запуска) проверяются по «логическому И», кроме условий «день недели» и «день месяца» — указанные совместно, они обрабатываются по «логическому ИЛИ», то есть «по любому из дней».

- Все файлы crontab должны завершаться пустой строкой, иначе будет проигнорировано последнее правило либо весь файл.

- Команды файла crontab используют стандартный синтаксис командной оболочки, но их нельзя разделить на несколько строк.

- Вывод запускаемых команд отправляется пользователю, от имени которого производился запуск. Если в файле crontab до команды расположена директива MAILTO=<new@email>, то выводимые данные будут отправляться на указанный адрес.
Обработка мультимедийных файлов

Утилита ffmpeg инструмент для обработки файлов в большинстве известных видеоформатов.

Основные строительные:
ffmpeg - инструмент командной строки для конвертации мультимедийных файлов между форматами
ffplay - простой медиаплеер на основе SDL и библиотек FFmpeg
ffprobe - простой мультимедийный анализатор потоков

Примеры:
Чтобы получить информацию медиа файла (работает для видео и аудио):
ffmpeg -i file_name

Преобразовать между различными форматами:
ffmpeg -i video_input.mp4 video_output.avi 

Чтобы извлечь аудио из видеофайла:
ffmpeg -i video.mp4 -vn audio.mp3
Конфигурационный файл cron

Основной файл конфигурации cron (демон для для периодического выполнения заданий) - crontab. Каждый пользователь системы имеет свой файл, в котором описано, в какое время и какие программы запускать от имени этого пользователя.

Для редактирования файла crontab используется специальная одноимённая программа crontab, позволяющая не прерывать процесс cron на время редактирования.

Вывести содержимое текущего файла расписания:
crontab -l

Удаление текущего файла расписания:
crontab -r

Для редактирования файла crontab вашего пользователя используется команда:
crontab -e
Добавляем команду в cron

Чтобы добавить задание cron из терминала можно использовать утилиту crontab:
crontab -e

Команда откроет текстовый редактор, где вы сможете добавлять или редактировать задания cron:

Каждая задача формируется следующим образом:

минута(0-59) час(0-23) день(1-31) месяц(1-12) день_недели(0-7) /полный/путь/к/команде

Для подставления любого значения используйте "*".

Самый простой пример как запускать cron каждую минуту. Вместо всех параметров ставим просто звездочку:
* * * * * /usr/local/bin/my_noscript.sh
Меняем вид курсора в Linux

Первое, что нужно сделать это найти тему для курсора, которая вам понравится (например, тут: gnome-look.org) и скачать ее.

Далее извлечь содержимое и переименовать папку в Custom.

Теперь эту папку нам нужно переместить в /usr/share/icons/:
sudo cp -r /home/user_name/Загрузки/Custom /usr/share/icons/

И устанавливаем темы:
sudo update-alternatives --install /usr/share/icons/default/index.theme x-cursor-theme /usr/share/icons/Custom/index.theme 95

И наконец, запускаем утилиту Gnome Tweak Tool и на вкладке Внешний вид - Указатель мыши выбираем Custom.

Иногда возникают проблемы с отображением, но это можно решить с помощью:
sudo update-alternatives --config x-cursor-theme
В чем отличие утилиты от команды?

Следует различать термины «утилита» и «команда».

Утилита — компьютерная программа, исполняемая в отдельном процессе.

Команда — встроенная команда интерпретатора команд, исполняемая внутри процесса shell.
(Интерпретатор командной строки, или shell (shell -- оболочка) - эта та программа, которая принимает команды от пользователя и исполняет их.)
Nice как утилита, команда и приоритет

Утилита nice — компьютерная программа в UNIX-подобных ОС, предназначенная для запуска процессов с изменённым приоритетом nice.

Команда nice — встроенная команда интерпретатора команд (shell), выполняющая такие же функции, как и утилита nice, но работающая внутри процесса shell. Реализована, например, интерпретаторами команд csh и tcsh.

Приоритет nice — число, указывающее планировщику процессов ядра ОС приоритет, который пользователь хотел бы назначить процессу.
(число от 0 до 39, где 39 - самый низкий приоритет)
Использование интерпретатора tcsh (и более раннего csh)

Командный интерпретатор tcsh является реализацией интерпретатора Сshell (csh) с открытым исходным кодом.

Интерпретатор csh был создан Биллом Джоем (Bill Joy) и используется по умолчанию практически во всех системах Berkeley UNIX (такие системы распространялись компанией Sun Microsystems).

Многие возможности csh, например редактирование командной строки и методы управления историей команд, были реализованы в интерпретаторе tcsh и в других командных интерпретаторах. Так же как команда sh запускает интерпретатор bash в режиме совместимости с интерпретатором sh, команда csh запускает интерпретатор tcsh в режиме совместимости с интерпретатором csh.
Что такое anacron?

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

Предположим, что у вас есть запланированное задание (например, сценарий резервного копирования), которое будет запускаться с использованием cron каждую полночь, возможно, когда вы уже спите, а ваш настольный компьютер/ноутбук к этому времени выключен. Ваш резервный скрипт не будет выполнен.

Однако, если вы используете anacron, вы можете быть уверены, что при следующем включении настольного компьютера/ноутбука у вас обязательно будет выполнен скрипт резервного копирования!
Настройка начального приоритета процесса

Вы можете уменьшить начальный приоритет процесса по сравнению с запланированным значением.

Чтобы задать начальный приоритет процесса ниже по сравнению с основным запланированным приоритетом, воспользуйтесь командой nice для запуска процесса.

nice -n [число] [команда]


где число от 0 до 39 (39 - самый низкий приоритет). Ноль означает, что процесс необходимо запустить с базовым приоритетом планирования.

Команда - это запускаемая команда с флагами и параметрами.

Для выполнения этой задачи можно также воспользоваться командой smit nice.
Утилита renice

renice — UNIX-утилита, позволяющая изменить приоритет запущенных задач. Привилегированный пользователь (root) может указать отрицательное смещение. Команда renice может смещать приоритет в диапазоне от -20 (наивысший приоритет) до 19 (низший приоритет) от текущего.

Для изменения значения приоритета отдельных процессов достаточно перечислить их идентификаторы.

Для изменения приоритета всех процессов какого-либо пользователя необходимо указать флаг -u. В этом случае значения идентификаторов после флага -u будут интерпретироваться как идентификаторы пользователей.

Можно задавать как числовые, так и символьные идентификаторы пользователей.