Команда
Результат выведется в терминал и одновременно запишется в файл. По умолчанию
Команда
⚙️ Пример 1.
Если попытаться записать в системный файл так:
— ничего не выйдет (перенаправление выполняется от имени обычного пользователя).
А вот так сработает:
Потому что
⚙️ Пример 2.
Можно записывать системные логи "на лету". Например, мониторить сеть и одновременно вести лог:
Так можно просматривать пинг в реальном времени и получить лог-файл после остановки.
#вопросы
tee в Linux читает стандартный ввод и одновременно выводит его на экран и записывает в файл(ы), что позволяет просматривать вывод и сохранять его для последующего использования.ls -lh | tee files.txt
Результат выведется в терминал и одновременно запишется в файл. По умолчанию
tee затирает файл. Чтобы дописать в конец, нужно использовать опцию -a.Команда
tee имеет большой потенциал использования.Если попытаться записать в системный файл так:
sudo echo "text" > /etc/config
— ничего не выйдет (перенаправление выполняется от имени обычного пользователя).
А вот так сработает:
echo "text" | sudo tee /etc/config
Потому что
tee запускается с правами root и записывает корректно.Можно записывать системные логи "на лету". Например, мониторить сеть и одновременно вести лог:
ping google.com | tee -a ping.log
Так можно просматривать пинг в реальном времени и получить лог-файл после остановки.
#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3
🦇 Утилита bat
🦇 Достоинства
✔️ Выводит содержимое файлов с подсветкой синтаксиса (как в редакторах кода)
✔️ Показывает нумерацию строк
✔️ Умеет подсвечивать различия при сравнении файлов
✔️ Поддерживает постраничный просмотр (через
✔️ Может заменять cat в привычных командах
🦇 Установка:
🦇 Практическая польза
🔴 Для чтения конфигов и логов с подсветкой,
🔴 В скриптах и DevOps-инструментах (как улучшенный cat),
🔴 Для ревью кода прямо в терминале,
🔴 Как быструю замену IDE, если нужно просто глянуть файл красиво.
📎 Репозиторий с примерами, скриншотами и инструкциями - https://github.com/sharkdp/bat
bat — это современная замена классической команды cat, которая выводит содержимое файлов, но делает это намного удобнее и красивее.bat:less)sudo apt install bat # Ubuntu / Debian
sudo dnf install bat # Fedora
sudo pacman -S bat # Arch Linux
bat часто используют:Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🥰1
В Linux есть несколько способов не записывать команду в историю — в зависимости от того, нужно ли исключить одну конкретную команду, определённый тип команд или вообще ничего не сохранять в истории.
Самый простой и распространённый способ — поставить пробел в начале команды.
ls -la # Перед ls стоит пробел
ignorespace.Проверить можно так:
echo $HISTCONTROL
Если видите что-то вроде
ignoredups:ignorespace или ignoreboth, значит всё ок. Если нет — можно добавить:export HISTCONTROL=ignoredups:ignorespace
Теперь все команды, начинающиеся с пробела, не попадут в ~/.bash_history.
Можно задать шаблоны, которые Bash не будет сохранять вовсе.
export HISTIGNORE="ls:pwd:exit"
Теперь указанные команды исчезнут из истории независимо от того, как их вызывать.
Шаблон может содержать
*:export HISTIGNORE="ls *:cd *"
Всё, что начинается с
ls или cd, будет игнорироваться.Если команда уже выполнена, можно стереть её "задним числом". Для этого можно сперва посмотреть ее номер в истории, а затем удалить, указав этот номер:
history
history -d <номер>
history)При удалении команды из истории с помощью
history -d <номер> Bash удаляет запись с указанным номером только из памяти. Если на этом остановиться и просто выйти из терминала, старая история из файла может перезаписать изменения, и команда вернётся.Чтобы принудительно обновить файл на диске после удаления команды из истории, используйте опцию
-w (write):history -w
Это гарантирует немедленное применение изменений, что особенно важно, если вы не планируете закрывать терминал в ближайшее время.
Чтобы избежать появления в истории самой команды
history -d, можно объединить несколько команд в одну строку:history -d $((HISTCMD-1)); history -w
Т.о., полностью удаление команды будет выглядеть так:
history # Найти номер команды
history -d <номер> # Удалить команду по номеру
history -d $((HISTCMD-1)); history -w # Удалить из истории саму команду history -d и перезаписать файл истории
Если нужно поработать "в тени", можно временно отключить запись:
set +o history # выключить запись в историю
set -o history # включить обратно
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
Чтобы посмотреть, где находится исполняемый файл любой команды, используйте
Команда покажет полный путь к программе, которую запускает система при вводе этого имени.
#вопросы
which:which python
Команда покажет полный путь к программе, которую запускает система при вводе этого имени.
#вопросы
👍2❤1
Команда
read в Linux используется для чтения ввода от пользователя или из стандартного потока и сохранения его в переменные. Она особенно полезна в скриптах, когда нужно запросить у пользователя данные.read [опции] переменные
-p "текст" — выводит приглашение перед вводом.-t <сек> — ограничение по времени (таймаут ожидания ввода).-n <число> — считать только указанное количество символов (без ожидания Enter).-s — скрытый ввод (подходит для паролей).-a массив — сохраняет слова ввода в массив.-r — отключает спецсимволы обратной косой черты (\).Если команде
read не задан аргумент, вся строка присваивается переменной REPLY:echo "Hello, world!" | (read; echo "$REPLY")
read -p "Press any key to continue " -n 1
read -p "Press any key to continue (autocontinue in 30 seconds) " -t 30 -n 1
REPLY=""
until [ "$REPLY" = "y" ]; do
# executing some command
read "Press 'y' to continue or 'n' to break, any other key to repeat this step" -n 1
if [ "$REPLY" = 'n' ]; then exit 1; fi
done
read -s -p "Введите пароль: " password
echo "Is your password really $password? "
read -a words
echo "Первое слово: ${words[0]}"
echo "Второе слово: ${words[1]}"
Если ввести Linux Bash, массив
words будет содержать ["Linux", "Bash"].Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Системные логи, которые часто можно найти в директории /var/log на системах Linux, являются важным инструментом для мониторинга и устранения проблем в системе. Вот краткие заметки о некоторых распространённых системных логах:
Эти логи предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при устранении проблем.
Регулярный мониторинг и анализ этих логов помогают поддерживать здоровье системы и выявлять потенциальные проблемы до того, как они перерастут в серьёзные.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
Чтобы выявить процессы, занимающие больше всего памяти, используйте
Этот конвейер выводит PID, команду и процент использования памяти. Можно заменить
#вопросы
ps, sort и head:ps -eo pid,comm,%mem --sort=-%mem | head
Этот конвейер выводит PID, команду и процент использования памяти. Можно заменить
%mem на %cpu, чтобы отсортировать по загрузке процессора.#вопросы
✍7👍1
Effective group id можно установить при помощи следующих прав доступа:
Anonymous Quiz
12%
0777
16%
2666
21%
4744
10%
1711
41%
Посмотреть ответ
Команда
curl — одна из самых мощных и часто используемых утилит в Linux. Она предназначена для отправки запросов по различным интернет-протоколам (HTTP, HTTPS, FTP и др.) прямо из терминала.В большинстве дистрибутивов curl уже предустановлен.
Некоторые операции выполняются бесконечно, что может привести к зависанию системы. Чтобы прервать выполнение команды cURL по истечении определенного времени, можно установить таймер (время указывается в секундах):
$ curl -m 60 example.com
Также есть возможность указать, в течении какого времени держать соединение активным. Это позволит избежать бесконечных попыток соединения с недоступным узлом. Эта опция тоже в качестве аргумента принимает значение в секундах. А команда выглядит так:
$ curl --connect-timeout 60 example.com
Утилита cURL позволяет указывать имя пользователя и пароль при подключении. Чаще всего это нужно при аутентификации на FTP-сервере. Для этого используется ключ
-u. $ curl -u username:password ftp://example.com
Данную опцию можно использовать с любым протоколом, но FTP является самым распространённым для простой передачи файлов.Если нужно скачать файл, запускаем ту же команду, только указываем полный путь к нужному документу:
$ curl -u username:password ftp://example.com/readme.txt
cURL можно указать, чтобы подключение выполнялось через прокси-сервер. По умолчанию
curl использует HTTP-прокси, но можно указать и другие. Чтобы направить трафик через прокси, используется ключ -x.$ curl -x 192.168.1.1:8080 http://example.com
Данная команда обязует cURL подключиться к прокси по адресу 192.168.1.1 на порту 8080 перед обращением на example.comПрокси можно использовать и с другими протоколами. Ниже показан пример использования прокси-сервера для получения файла с FTP-сервера.
$ curl -x 192.168.1.1:8080 ftp://example.com/readme.txt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤🔥2