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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Особенности 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 будут интерпретироваться как идентификаторы пользователей.

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

Вы можете изменить приоритет уже выполняемого процесса с помощью команды renice, введенной в командной строке. Эта команда изменяет приоритет процесса, заданный командой nice.

renice [приоритет] -p [id_процесса]

где приоритет - число от -20 до 20. Чем больше число, тем ниже приоритет. Ноль означает, что процесс необходимо запустить с базовым приоритетом планирования.

id_процесса - это идентификатор процесса, приоритет которого необходимо изменить.
Перезапуск остановленного процесса

Чтобы просмотреть список запущенных и приостановленных процессов, то есть всех процессов системы, за исключением убитых:
ps -ef

Эту команду можно объединить с grep, если вас интересуют какие-то конкретные процессы, например, vi:
ps -ef | grep vi

В выводе команды ps найдите процесс, который вы хотите возобновить, и запишите его ID.
Для отправки приостановленному процессу сигнала CONTINUE (продолжить) введите:
kill -19 [ID]

-19 означает сигнал CONTINUE, эта команда возобновляет процесс в фоновом режиме. Для перевода процесса в интерактивный режим:
fg [ID]
Команда fg

fg — команда возобновления работы задачи и передачи ей управления в командных оболочках, совместимых со стандартом POSIX.

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

Команда реализована в таких командных интерпретаторах, как bourne shell (sh)[2] и bourne again shell (bash).

Примеры:
Для вывода всех фоновых и приостановленных задач:
fg

Для того, чтобы «разбудить» процесс, следует передать команде в качестве параметра номер задачи:
fg [ID]
Полезные инструменты, которые предоставляет systemd

Эта система предоставляет огромное количество возможностей. Запускать и останавливать сервисы, создавать файлы юнитов, изучать логи и даже монтировать удаленные хранилища.Рассмотри несколько полезных утилит, которые входят в состав systemd.

Действия, которые выполняют утилиты, можно осуществить и другими, более привычными способами.
Но инструменты, о которых пойдет речь ниже, достаточно удобны. И похоже, что systemd обосновалась в мире Linux всерьез и надолго, поэтому знать некоторые ее возможности будет не лишним.

1) localectl: централизованное управление языковыми и региональными параметрами. Например, можно поменять язык системы

2) timedatectl: управление настройками времени и даты.

3) loginctl: управление сеансами пользователей.
Команды для вывода имени пользователя Linux

Для поиска информации о такой сущности воспользуйтесь командой id:

Результат программы будет примерно такой:
uid=501(admin) gid=105(sales) group=105(sales), 27(sudo), 124(kvm)

В этом примере пользователь имеет имя admin, ему соответствует числовой идентификатор (uid) 501. Основная группа пользователя admin называется sales, и ей соответствует числовой идентификатор группы (gid) 105. Кроме этого, пользователь с именем admin принадлежит другим группам, называемым sudo (идентификатор - 27) и kvm (идентификатор - 124).

Для получения информации о текущем сеансе регистрации можно воспользоваться командой who.

Команда who выведет информацию о, имени пользователя, который зарегистрировался на консоли ttyl (монитор и клавиатура, подключенные к компьютеру) и когда начался сеанс.
Определение источника конкретной команды

Чтобы определить источник команды можно воспользоваться командой type, но если применяется не bash, а другой командный интерпретатор, воспользуйтесь командой which.

Например, для определения расположения интерпретатора bash введите следующую команду:
type bash

Иногда после ввода команды выводится сообщение о том, что команда не найдена или отсутствуют права на ее запуск. В первом случае необходимо проверить правильность ввода команды и ее присутствие в пути, указанном в переменной path. Во втором случае команда может находиться в пути из переменной path, но для нее могут отсутствовать права на запуск.
Каталоги, в которых расположены команды Linux

Большинство пользовательских команд в составе операционной системы Linux хранятся в каталогах /bin,/usr/bin и /usr/local/bin.

Если необходимо добавить собственные команды или сценарии командного интерпретатора, разместите их в каталоге bin в собственном домашнем каталоге.

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

Перенаправление еще называют составлением конвейера. Метасимвол канала | связывает вывод одной команды с вводом другой. При этом следующая команда может работать с выводом предыдущей. Пример конвейера:
cat /etc/password | sort | less

Выведет содержимое файла /etc/password и перенаправляет вывод команде sort, сортирующей в алфавитном порядке имена пользователей и далее передает вывод команде less

Конвейеры хорошо демонстрируют, как лежавшая в основе Linux ОС UNIX составлялась из отдельных строительных блоков. Связывание утилит разными способами для решения различных задач считается стандартным подходом в ОС UNIX.
Последовательное выполнение команд с последующим перенаправлением вывода

Иногда команды должны выполняться последовательно, одна за другой. Для этого в командной строке можно ввести несколько команд и разделить их точкой с запятой ( ; )

date ; troff -me большой_документ | lpr ; date

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

Команда date выводит дату и время начала форматирования. Команда troff выполняет форматирование и передает результат работы на печать. По завершении форматирования опять выводится текущая дата и время (можно подсчитать время, которое потребовалось для завершения форматирования).
Фоновое выполнение команд

Выполнение некоторых команд может потребовать значительного времени.

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

Команды форматирования для больших документов часто запускаются в фоновом режиме.

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

Пример:
troff –me очень_большой_документ | lpr &