Каким будет вывод?
os=Unix
echo 1.$os 2."$os" 3.'$os' 4.$os
os=Unix
echo 1.$os 2."$os" 3.'$os' 4.$os
Anonymous Quiz
23%
1.Unix 2.Unix 3.Unix 4.Unix
39%
1.Unix 2.Unix 3.$os 4.Unix
3%
1.Unix 2.Unix 3.Unix 4.$os
10%
1.Unix 2.$os 3.$os 4.$os
25%
Посмотреть ответ
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +
Параметр
-type d
выполняет поиск каталогов, -empty
выбирает пустые каталоги, а -exec rmdir {}
выполняет команду rmdir
для их удаления.Команда
rmdir
гарантирует, что каталог пуст перед его удалением.В качестве альтернативы, для выполнения той же задачи можно использовать эту команду:
$ find . -type d -empty -delete
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😱2
Права доступа к файлу 764 означают:
Anonymous Quiz
12%
Кто угодно может читать, члены группы могут только выполнять, а владелец файла - читать и записывать
8%
Кто угодно может читать и записывать, но только владелец может запускать файл на выполнение
61%
Любой может читать; члены группы, включая владельца, могут записывать; только владелец выполняет
2%
Все могут читать, записывать и выполнять
16%
Посмотреть ответ
👍3
Если у вас будет открыто несколько окон с одинаковыми приложениями, то команда
killall
уничтожит их все. При этом не обязательно знать PID, в отличии от команды kill
.killall
— команда, которая останавливает процессы с одним и тем же названием.Команда ищет все подходящие в папке /proc
Предположим, нам необходимо закрыть окна калькулятора:
killall gcalctool
Если не указывать аргументы при использовании команды, то по умолчанию будет отправлен сигнал SIGTERM.
Однако, если необходимо отправить другой сигнал, то это нужно явно указать:
killall -s 1 gcalctool
Иногда не удается запомнить все правила использования команд. Но можно воспользоваться командой
man
, чтобы получить справку по их применению:man killall
Как проверить, что процесс убит?
Чтобы удостовериться в том, что процесс был действительно отменен, воспользуйтесь одним из доступных способов:
ps aux | grep
pidof
pgrep
В случае успешного выполнения этих команд ничего не будет выведено.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Основные логи в Linux содержат информацию о различных событиях, происходящих в операционной системе, включая процесс загрузки, работу приложений, действия пользователей и сообщения ядра.
Эти логи, хранящиеся в специальных файлах, могут быть полезны для выявления и устранения проблем.
Основные категории логов в Linux включают: системные лог-файлы, лог-файлы событий, лог-файлы служб и лог-файлы приложений.
Многие из них располагаются в каталоге
var/log.
Наиболее распространенными логами являются:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Рассмотрим ситуацию, когда случайно/специально удалился исполняющийся bash-скрипт.
Чтобы не попадать в такие ситуации, всегда храните исходники в git — это избыточно, но бекапы никто не отменял.
Скрипт удалён с диска, но продолжает работать в фоне, значит его можно как-нибудь восстановить.
Создадим подопытный скрипт.
touch /tmp/script.sh
:#!/bin/bash
sleep 1000
exit
Делаем его исполняемым
chmod +x /tmp/script.sh
и запускаем в фоне /tmp/script.sh &
.Символ
&
может служить разделителем между командами command & command
, две команды выполнятся параллельно.Скрипт запустили, он крутится в фоне. Удалим сам файл:
rm -f /tmp/script.sh
Ключ
-f
позволит удалить без лишних вопросов.Восстанавливаем:
lsof -c 'script.sh'
На экран выведется простыня. Нам нужна строка, где в конце указан путь к удаленному скрипту:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
script.sh 261899 root 255r REG 8,1 51 130773 /tmp/script.sh
Берем PID = 261899, берем FD = 255 и делаем так:
cat /proc/261899/fd/255
А вот и исходник скрипта:
File: /proc/261899/fd/255
#!/bin/bash
sleep 1000
exit
Вот полезная инфа, которая была использована в гайде:
man 5 proc # /proc/[pid]/fd/
man lsof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
Пользователь может сменить командную оболочку, используемую для входа в систему, при помощи команды...
Anonymous Quiz
11%
chmod
66%
chsh
3%
rmsh
7%
tchsh
12%
Посмотреть ответ
rsync
- один из самых популярных инструментов командной строки для резервного копирования. Он позволяет осуществлять быструю инкрементную передачу и синхронизацию файлов.rsync -av /source/directory/ /destination/directory/
rsync -av -e ssh /source/directory/ user@remote_host:/destination/directory/
Rsync можно использовать для зеркалирования данных, инкрементного резервного копирования, копирования файлов между системами, а также в качестве замены команд scp, sftp и cp.
sudo apt install rsync
Подробнее ознакомиться с опциями утилиты можно на этой странице, либо воспользовавшись командой
man
.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1
Если в директории есть файлы fileA, fileB, fileAB, fileBC и fileABC, какие из них подпадут под шаблон file[ABC]?
Anonymous Quiz
16%
fileA, fileB и fileABC
22%
fileABC
31%
fileA и fileB
12%
fileAB, fileBC и fileABC
18%
Посмотреть ответ
❤4
Что такое /dev/null и почему туда направляют данные?
Если вы активно работаете в командной строке, то, вероятно, использовали файл /dev/null для следующих целей:
1️⃣ Убрать из вывода всю ненужную инфу (предупреждения, ошибки и т.д.):
2️⃣ Передать утилите пустой ресурс в качестве аргумента. Делаться это может с целью исключения пользовательских и системных конфигов и применения дефолтных настроек на стороне программы:
3️⃣ Полностью очистить файл:
❓ Окей, принято, а чем является этот самый /dev/null?
В сущности - это cимвольное псевдо-устройство, которое создается на этапе запуска системы и работает с потоками данных:
О типе устройства говорит первый бит режима файла -
Ресурс удаляет все записанное в него и возвращает при чтении EOF (End of File). Когда мы взаимодействуем с /dev/null, неявно отрабатывает специальный драйвер ядра, в который и зашита логика.
Если интересно, можно порыться в исходниках с реализацией: drivers/char/mem.c. Код имеет отношение не только к /dev/null, но и к другим символьным устройствам.
Развернем более подробную информацию:
Этот вывод показывает, что файл имеет размер 0 байт, для него выделено 0 блоков на диске, дата создания = дата запуска системы:
Права доступа установлены таким образом, что любой может читать и записывать в него, но никто не может его выполнять:
Поскольку файл не исполняемый, мы не можем использовать конвейер
Если вы активно работаете в командной строке, то, вероятно, использовали файл /dev/null для следующих целей:
$ find / -name "*.conf" 2>/dev/null
$ picom --config /dev/null
$ cat /dev/null > bigfile
В сущности - это cимвольное псевдо-устройство, которое создается на этапе запуска системы и работает с потоками данных:
$ ls -l
crw-rw-rw- 1 root root 1, 3 Sep 6 08:37 null
О типе устройства говорит первый бит режима файла -
c
"character". Ресурс удаляет все записанное в него и возвращает при чтении EOF (End of File). Когда мы взаимодействуем с /dev/null, неявно отрабатывает специальный драйвер ядра, в который и зашита логика.
Если интересно, можно порыться в исходниках с реализацией: drivers/char/mem.c. Код имеет отношение не только к /dev/null, но и к другим символьным устройствам.
Развернем более подробную информацию:
$ stat /dev/null
File: /dev/null
Size: 0 Blocks: 0 IO Block: 4096 character special file
Access: (0666/crw-rw-rw-) Uid: (0/ root) Gid: (0/ root)
Access: 2025-01-25 14:42:20.101000002 +0300
...
Этот вывод показывает, что файл имеет размер 0 байт, для него выделено 0 блоков на диске, дата создания = дата запуска системы:
$ who -b
system boot 2025-01-25 14:42
Права доступа установлены таким образом, что любой может читать и записывать в него, но никто не может его выполнять:
$ echo hello | /dev/null
-bash2: /dev/null: Permission denied
Поскольку файл не исполняемый, мы не можем использовать конвейер
|
. Единственный способ — использовать перенаправление файлов >
, >>
.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥2👍1
Права на файл -rwxr--r-- иначе можно записать как:
Anonymous Quiz
11%
777
4%
666
51%
744
26%
711
8%
Посмотреть ответ
🤣4
Какая переменная содержит список переданных параметров?
Anonymous Quiz
12%
$#
32%
$*
13%
$?
29%
$$
15%
Посмотреть ответ
Какая команда используется для печати файлов (на принтере)?
Anonymous Quiz
22%
print
17%
ptr
29%
lpr
32%
Ничто из перечисленного
Пароль пользователя в зашифрованном виде хранится в:
Anonymous Quiz
45%
/etc/shadow
3%
/etc/enpasswwd
18%
/etc/.passwd
26%
/etc/passwd
8%
Посмотреть ответ