fd — это современная, быстрая и удобная альтернатива стандартной команде find. Она делает то же самое — ищет файлы и каталоги, — но проще в использовании, работает быстрее и выдает чистый, цветной, читаемый вывод.В большинстве дистрибутивов Linux
fd доступна в официальных репозиториях:sudo apt install fd-find # Для Debian/Ubuntu
sudo dnf install fd-find # Для Fedora
sudo pacman -S fd # Для Arch Linux
fd [паттерн] [директория]
fd filename
Найдёт все файлы, имя которых содержит “filename”.
fd 'pattern'
Поддерживаются регулярные выражения для шаблонов.
fd filename /path/to/dir
fd 'filename'
fd ищет только в текстовых файлах, игнорируя двоичные.
• Только файлы:
fd -t f• Только директории:
fd -t dfd -l
Показывает подробные пути к найденным объектам.
fd -s filename
Найти все файлы с расширением .rs в текущем каталоге и его подкаталогах:
fd '\.rs$'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🆒1
Проект tldr-pages — это сборник поддерживаемых сообществом справочных страниц для инструментов командной строки, который призван стать более простым и доступным дополнением к традиционным справочным страницам
man.TL; DR - это аббревиатура, используемая в Интернете, чтобы сказать, что публикация, статья, комментарий или страница руководства слишком длинные, и поэтому написавший "TL; DR" их не читал.
Команда tldr позволяет выводить максимально сжатую сводку информации по консольным утилитам (назначение и список самых популярных опций).
sudo apt install tldr # Для Ubuntu/Debian
sudo pacman -S tldr # Для Arch
tldr tar
В результате получите наглядные примеры: как распаковать архив, добавить файлы и так далее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какая команда собирает переданные ей аргументы в строку и выполняет эту строку, как если бы это была команда, введённая прямо в оболочке?
Anonymous Quiz
6%
fc
36%
eval
39%
exec
6%
getopts
13%
Посмотреть ответ
В Linux существуют два основных типа ссылок на файлы: жесткие (hard) и символьные (soft / symlink).
Они похожи тем, что позволяют обращаться к одному файлу через несколько имен, но работают по-разному и имеют свои особенности.
Особенности:
Пример использования:
$ echo "Hello World" > original.txt
$ ln original.txt hardlink.txt
$ ls -li
123456 -rw-r--r-- 2 user user 12 Oct 22 12:00 original.txt
123456 -rw-r--r-- 2 user user 12 Oct 22 12:00 hardlink.txt
$ echo "Added line" >> hardlink.txt
$ cat original.txt
Hello World
Added line
Здесь видно, что hardlink.txt и original.txt имеют один и тот же inode (123456), и изменения в одном отражаются на другом.
Особенности:
Пример использования:
$ ln -s /home/user/Documents/original.txt symlink.txt
$ ls -l
lrwxrwxrwx 1 user user 29 Oct 22 12:05 symlink.txt -> /home/user/Documents/original.txt
$ echo "Another line" >> /home/user/Documents/original.txt
$ cat symlink.txt
Hello World
Added line
Another line
$ rm symlink.txt
$ ls /home/user/Documents/original.txt
original.txt
Символьная ссылка указывает на путь, а не на данные. Удаление ссылки не затрагивает исходный файл.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Вы, вероятно знакомы с
multitail — он умеет следить за несколькими логами сразу. Но:Не беда: с этим справится и обычный
tail:tail -f /var/logs/*.log
На сервере с приложением часто работают несколько разработчиков или тестировщиков. Все смотрят логи через
tail -f.Когда приложение перезапускают, старые процессы
tail остаются в фоне — иногда на дни или даже недели. Это не критично, но выглядит неаккуратно и засоряет список процессов:ps aux | grep tail
🔧 Решение: tail с автозавершением
Можно сделать алиас, который будет следить за логом только пока жив процесс приложения:
alias TFapplog='tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app.log'
Как это работает:
--pid=$(cat /opt/app/tmp/app.pid) — tail будет автоматически завершён, когда процесс приложения умрёт.Добавьте этот алиас в ~/.bashrc или ~/.bash_profile.
Теперь, даже если кто-то забудет завершить tail, он сам корректно закроется при рестарте приложения.
Можно сделать несколько алиасов для разных приложений или логов — удобно и безопасно.
Для нескольких файлов и с PID можно использовать и так:
tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app1.log /opt/app/logs/app2.log
Все логи будут отображаться одновременно, и tail закроется при завершении процесса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Команда uniq предназначена для поиска одинаковых строк в массивах текста. Как вывести только уникальные строки (не имеющие дубликатов)?
Anonymous Quiz
51%
uniq -u
10%
uniq -d
10%
uniq -c
9%
uniq –I
19%
Посмотреть ответ
❤1
Помимо изменения прав доступа с помощью
chmod, иногда нужно изменить владельца файла или группу, которой он принадлежит.Для этих операций обычно требуются права суперпользователя (root), поэтому используем
sudo.Команда
chown (от change owner) позволяет назначить нового владельца файла:sudo chown [имя_пользователя] [имя_файла]
Пример:
sudo chown john report.txt
Теперь владельцем файла report.txt станет пользователь john.
Чтобы изменить владельца и группу файла или каталога, используем двоеточие:
sudo chown [имя_пользователя]:[группа] [имя_файла]
Пример:
sudo chown root:root /home/diego/Документы/Адреса.txt
После этого владелец и группа файла будут root:root.
Если нужно изменить только группу, а владельца оставить прежним, можно:
sudo chown :[группа] [имя_файла]
или использовать специализированную команду
chgrp (от change group):sudo chgrp [группа] [имя_файла]
Пример:
sudo chgrp staff /home/diego/Документы/Адреса.txt
Теперь владельцем остаётся прежний пользователь, а группа меняется на staff.
Сменим владельца и группу файла Адреса.txt на root:root:
diego@debian:~$ sudo chown root:root /home/diego/Документы/Адреса.txt
[sudo] пароль для diego:
diego@debian:~$ ls -la /home/diego/Документы/Адреса.txt
-rw-r----- 1 root root 2 фев 17 21:15 /home/diego/Документы/Адреса.txt
Как видно, владелец и группа изменились с diego:diego на root:root.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Права доступа -rwxr-sr-- равнозначны...
Anonymous Quiz
13%
0777
10%
2766
22%
2744
36%
2754
19%
Посмотреть ответ
Ответ через час.
#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Если нужно изменить логин пользователя вместе с переносом его домашней директории, используйте
Флаг
#вопросы
usermod с флагами -l, -d и -m:sudo usermod -l newname -d /home/newname -m oldnameФлаг
-l меняет имя, -d задаёт новый путь к home-каталогу, а -m принудительно перемещает всё содержимое со старого места на новое.#вопросы
❤12
Регулярные выражения в Vim и утилите sed позволяют за секунды отредактировать многотысячный файл. Ниже — подборка полезных однострочников для повседневных задач.
Vim:
:%s/^\w/\u&/gsed:
sed -i 's/^\w/\u&/g' file.txtVim:
:%s/\<\w/\u&/gsed:
sed -Ei 's/\b[a-z]/\U&/g' file.txtКак это работает: спецсимвол
\u переводит следующий символ в верхний регистр, \U переводит все последующие символы, а & обозначает найденное совпадение.Vim:
:g/^\s*$/dsed:
sed -i '/^\s*$/d' file.txtVim:
:g/^\s*#/dsed:
sed -i '/^\s*#/d' file.txt(Команда
:g/.../d в Vim полностью удаляет совпадающую строку, а не просто очищает её содержимое).\t):Vim:
:%s/ /\t/gsed:
sed -i 's/ /\t/g' file.txtVim:
:%s/\s\+$//esed:
sed -i 's/[ \t]*$//' file.txtФлаг
-i перезаписывает файл «на месте». На macOS (BSD sed) команда потребует указать пустые кавычки для резервной копии: sed -i '' 's/.../.../' file.txt. Если хотите подстраховаться, используйте sed -i.bak, чтобы автоматически создать бэкап файла перед изменением.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👌1💯1
Для чего нужна популярная в Linux утилита grep?
Anonymous Quiz
96%
Для поиска строк, соответствующих заданному шаблону
1%
Для сортировки содержимого файлов
1%
Для перемещения файлов
0%
Для архивации файлов
1%
Посмотреть ответ
👍1🥰1
JoJo AI — не очередной «чат с нейросетью», а полноценный помощник в привычном Telegram.
Большинство AI-ботов в Telegram устроены одинаково: узкий функционал, сухие ответы, жёсткие команды и ощущение, что общаешься с терминалом, а не с помощником. JoJo AI собран иначе.
Чем JoJo AI отличается от других ботов:
1. Всё в одном чате
Многие боты умеют либо отвечать на вопросы, либо рисовать картинки. JoJo AI совмещает тексты, идеи, объяснения и генерацию изображений — без переключения между разными ботами.
2. Живой диалог вместо набора команд
Многие боты требуют строгий формат: /команда, шаблон, ключевые слова. JoJo AI понимает обычную речь — можно писать так, как пишешь человеку.
3. Человечный тон, а не «робот из FAQ»
Типичный AI-бот выдаёт сухие, шаблонные ответы. JoJo AI ориентирован на понятное, дружелюбное общение — без канцелярита и без ощущения, что читаешь инструкцию к технике.
4. Возможность заработать на рефералах - 70% от их пополнений начисляются вам и вы сразу можете их вывести.
t.me/jojoai99bot
Большинство AI-ботов в Telegram устроены одинаково: узкий функционал, сухие ответы, жёсткие команды и ощущение, что общаешься с терминалом, а не с помощником. JoJo AI собран иначе.
Чем JoJo AI отличается от других ботов:
1. Всё в одном чате
Многие боты умеют либо отвечать на вопросы, либо рисовать картинки. JoJo AI совмещает тексты, идеи, объяснения и генерацию изображений — без переключения между разными ботами.
2. Живой диалог вместо набора команд
Многие боты требуют строгий формат: /команда, шаблон, ключевые слова. JoJo AI понимает обычную речь — можно писать так, как пишешь человеку.
3. Человечный тон, а не «робот из FAQ»
Типичный AI-бот выдаёт сухие, шаблонные ответы. JoJo AI ориентирован на понятное, дружелюбное общение — без канцелярита и без ощущения, что читаешь инструкцию к технике.
4. Возможность заработать на рефералах - 70% от их пополнений начисляются вам и вы сразу можете их вывести.
t.me/jojoai99bot
❤6🤔2👍1🙏1
Ответ через час.
#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Посмотреть очередь задач, созданных через
Она выведет список с ID задач. Чтобы отменить конкретную задачу из очереди, используйте
#вопросы
at, можно командой atq (или at -l).Она выведет список с ID задач. Чтобы отменить конкретную задачу из очереди, используйте
atrm (или at -d) с указанием её ID:atrm 4#вопросы
👍1
Как распаковать .tar.gz, .tar.bz2, .tar.xz и .tar.zst в Linux
Для работы с архивами в Linux используется утилита
Многие по привычке заучивают разные флаги сжатия для каждого формата (
💡 Главный лайфхак: универсальная команда
Современный GNU
Чтобы распаковать любой архив (.tar, .tar.gz, .tar.bz2, .tar.xz, .tar.zst, .tgz, .txz), достаточно одной универсальной команды:
Разбор базовых ключей:
✔️ Распаковка в конкретную папку (-C)
По умолчанию
⚠️ Указанная директория должна существовать заранее,
✔️ Как сначала посмотреть содержимое архива (без распаковки)?
Чтобы проверить, запакованы ли файлы в отдельную папку или они рассыплются по вашей текущей директории, используйте ключ
✔️ Справочник: специфические ключи сжатия (для истории)
Если вы работаете на старых UNIX-системах или пишете строгие скрипты, явное указание алгоритма сжатия может пригодиться:
.tar.gz / .tgz (Gzip): ключ
.tar.bz2 / .tbz2 (Bzip2): ключ
.tar.xz / .txz (XZ / LZMA): ключ
.tar.zst / .tzst (Zstandard): ключ
📌 Резюме: Забудьте про запоминание флагов
Для работы с архивами в Linux используется утилита
tar.Многие по привычке заучивают разные флаги сжатия для каждого формата (
-z, -j, -J), однако в современном Linux всё гораздо проще.Современный GNU
tar умеет автоматически определять алгоритм сжатия по содержимому файла. Вам больше не нужно запоминать специальные ключи под каждый формат!Чтобы распаковать любой архив (.tar, .tar.gz, .tar.bz2, .tar.xz, .tar.zst, .tgz, .txz), достаточно одной универсальной команды:
tar -xvf archive.tar.gzРазбор базовых ключей:
-x (eXtract) — извлечь файлы из архива-v (Verbose) — показывать список извлекаемых файлов в консоли (опционально)-f (File) — указать путь к файлу архива (обязательно должен идти последним перед именем файла)По умолчанию
tar распаковывает содержимое в текущую директорию. Чтобы извлечь файлы в другой каталог, используйте ключ -C (--directory):tar -xvf archive.tar.xz -C /path/to/target_dir/tar не создает целевую папку автоматически.Чтобы проверить, запакованы ли файлы в отдельную папку или они рассыплются по вашей текущей директории, используйте ключ
-t (List):tar -tvf archive.tar.bz2Если вы работаете на старых UNIX-системах или пишете строгие скрипты, явное указание алгоритма сжатия может пригодиться:
.tar.gz / .tgz (Gzip): ключ
-ztar -xvzf archive.tar.gz.tar.bz2 / .tbz2 (Bzip2): ключ
-jtar -xvjf archive.tar.bz2.tar.xz / .txz (XZ / LZMA): ключ
-Jtar -xvJf archive.tar.xz.tar.zst / .tzst (Zstandard): ключ
--zstdtar --zstd -xvf archive.tar.zst📌 Резюме: Забудьте про запоминание флагов
-z, -j и -J. Просто используйте tar -xvf для любых .tar.* архивов!Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2🤩2
Ответ через час.
#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
По умолчанию
Будьте внимательны: всё, что есть в /dst/, но отсутствует в /src/, будет безотзывно удалено!
#вопросы
rsync только добавляет и обновляет файлы, но не трогает то, что было удалено в исходной папке. Чтобы получить точную зеркальную копию, добавьте ключ --delete:rsync -av --delete /src/ /dst/Будьте внимательны: всё, что есть в /dst/, но отсутствует в /src/, будет безотзывно удалено!
#вопросы