9.6 KiB
Когда вы вводите команду sudo
, система запрашивает пароль пользователя, который в данный момент вошел в систему и имеет право выполнять команды с повышенными привилегиями. Это может быть пароль вашего пользователя, а не пароль root. Если вы создали пользователя без пароля, то при попытке использовать sudo
возникнет ошибка, так как для выполнения этой команды требуется ввести правильный пароль.
Файл ~/.ssh/known_hosts
— это файл, который SSH использует для хранения информации о хостах (серверах), к которым вы ранее подключались. В этом файле хранятся "отпечатки" (fingerprints) публичных SSH-ключей серверов. Когда вы подключаетесь к серверу через SSH, клиент SSH проверяет, соответствует ли ключ сервера тому, который хранится в known_hosts
.
Если ключ сервера изменился и не совпадает с тем, что хранится в known_hosts
, SSH выдает предупреждение, чтобы предотвратить возможную атаку (например, "человек посередине").
Чтобы установить .deb
пакет в Linux:
sudo apt install ./имя_пакета.deb
sudo dpkg -i имя_пакета.deb
# если возникнут ошибки с зависимостями
sudo apt-get install -f
В Linux можно отправлять процессы различные сигналы, которые управляют их поведением. Эти сигналы — это механизмы межпроцессного взаимодействия (IPC), которые позволяют процессам реагировать на внешние события, такие как завершение или перезапуск.
kill -l
- список всех сигналов в системе
Основные сигналы
- SIGTERM (15) - Завершение процесса
kill -SIGTERM <pid> kill -15 <pid>
- SIGKILL (9) - Принудительное завершение процесса
- SIGHUP (1) - "Повесить" процесс (например, если конфигурационные файлы изменились, и процесс нужно перезагрузить без остановки. Процесс может получить SIGHUP при отключении терминала, и если он не запрограммирован для обработки этого сигнала, он просто завершится)
- SIGSTOP (19) - Остановка процесса.
- SIGCONT (18) - Возобновление выполнения остановленного процесса.
Зомби-процесс
- это процесс в операционной системе Linux (и Unix), который завершил своё выполнение, но его запись в таблице процессов всё ещё существует. Такой процесс уже не выполняется, но сохраняет некоторые данные, пока его родительский процесс не соберёт информацию о завершении (код завершения). Зомби-процессы не используют системные ресурсы, такие как процессор или память, но они занимают записи в таблице процессов, которая ограничена по размеру. Если в системе накапливается слишком много зомби-процессов, это может привести к исчерпанию этих записей, что не позволит создавать новые процессы.
Если родительский процесс корректно обрабатывает завершение своих дочерних процессов, зомби-процессы не накапливаются.
Если родительский процесс перестаёт функционировать, дочерние процессы (в том числе зомби) могут стать "сиротами" и будут переданы процессу init (PID 1), который автоматически собирает завершённые процессы и освобождает ресурсы.
Зомби-процессы нельзя "убить", так как они уже завершены. Однако можно решить проблему двумя способами:
- Перезагрузка системы: Это удалит все зомби-процессы.
- Убить родительский процесс: Если родительский процесс не обрабатывает завершение своих дочерних процессов, можно его завершить. Дочерние процессы будут переданы процессу
init
, который "соберёт" информацию о завершении и освободит зомби-процессы.
Сиротский процесс (или просто "сирота") — это процесс, у которого завершился родительский процесс. В Linux системах, когда родительский процесс умирает до завершения своих дочерних процессов, эти дочерние процессы становятся "сиротами".
Что происходит с процессами-сиротами:
-
Переназначение процессу
init
: Как только процесс становится сиротой, он автоматически "усыновляется" процессом сPID 1
(обычно этоinit
или его современный аналог systemd в современных дистрибутивах). Процессinit
берёт на себя ответственность за сироту и следит за его завершением. -
Корректное завершение: Когда процесс-сирота завершает свою работу,
init
собирает его статус завершения с помощью системного вызоваwait()
, предотвращая его превращение в зомби-процесс.
Отличие от зомби-процесса:
- Сирота — это активный процесс, который просто потерял своего родителя.
- Зомби — это завершённый процесс, чья запись остаётся в таблице процессов до тех пор, пока родитель не соберёт информацию о его завершении.
Сиротские процессы, в отличие от зомби, продолжают работать и не блокируют системные ресурсы, пока не завершат выполнение.
Команды в Linux выполняются слева направо, редиректы (>, >>, <) интерпретируются справа налево, потому что Bash сначала проверяет, куда нужно перенаправить вывод или откуда читать ввод, а потом выполняет саму команду.
echo "Hello" > file.txt
Здесь интерпретатор сначала создаёт или очищает файл file.txt
(то есть обрабатывает часть > file.txt
), а затем выполняет команду echo "Hello"
и записывает результат в файл.
echo $(date)
Здесь сначала выполняется команда date
(справа налево), а затем её результат подставляется в команду echo
echo `date`
Bash сначала выполнит команду date
(внутри кавычек), затем передаст её результат команде echo
.
Swap-файл (или swap-раздел) — это специальная область на диске, которую Linux использует как виртуальную память, когда физическая оперативная память (RAM) исчерпана. Swap позволяет временно хранить данные из оперативной памяти на диске, освобождая место для выполнения других задач. Когда оперативная память заканчивается, система использует swap для временного перемещения данных, которые неактивны в данный момент, что позволяет продолжать работу программ.
tar xvfz *tar.gz
- распаковать архив .tar.gz