🐧 Linux Junior. Программирование под Linux.
3.08K subscribers
159 photos
2 videos
1 file
91 links
Канал для программистов работающих с Linux.
Почти все Python девелоперы с нами ну и другие тоже подтянутся.

По рекламе: @jannytg
@anothertechrock
Download Telegram
❓ Как изменить имя пользователя и переименовать его домашний каталог одной командой?

Ответ через час.

#вопросы
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 и утилите sed позволяют за секунды отредактировать многотысячный файл. Ниже — подборка полезных однострочников для повседневных задач.


1️⃣ Изменение регистра букв

🔴 Первую букву в каждой строке сделать заглавной:

Vim:
:%s/^\w/\u&/g

sed:
sed -i 's/^\w/\u&/g' file.txt

🔴 Первую букву каждого слова сделать заглавной:

Vim:
:%s/\<\w/\u&/g

sed:
sed -Ei 's/\b[a-z]/\U&/g' file.txt

Как это работает: спецсимвол \u переводит следующий символ в верхний регистр, \U переводит все последующие символы, а & обозначает найденное совпадение.


2️⃣ Очистка текста от мусора

🔴 Удалить все пустые строки (включая строки с пробелами и табуляцией):

Vim:
:g/^\s*$/d

sed:
sed -i '/^\s*$/d' file.txt

🔴 Удалить все строки-комментарии (начинающиеся с #):

Vim:
:g/^\s*#/d

sed:
sed -i '/^\s*#/d' file.txt

(Команда :g/.../d в Vim полностью удаляет совпадающую строку, а не просто очищает её содержимое).


3️⃣ Форматирование отступов и пробелов

🔴 Заменить 4 пробела на один знак табуляции (\t):

Vim:
:%s/ /\t/g

sed:
sed -i 's/ /\t/g' file.txt

🔴 Удалить концевые пробелы (Trailing spaces) в конце строк:

Vim:
:%s/\s\+$//e

sed:
sed -i 's/[ \t]*$//' file.txt

⚠️ Заметка по ключу sed -i:
Флаг -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
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
❤6🤔2👍1🙏1
❓ Как посмотреть список всех запланированных однократных задач at и отменить нужную?

Ответ через час.

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Посмотреть очередь задач, созданных через at, можно командой atq (или at -l).

Она выведет список с ID задач. Чтобы отменить конкретную задачу из очереди, используйте atrm (или at -d) с указанием её ID:

atrm 4

#вопросы
👍1
Как распаковать .tar.gz, .tar.bz2, .tar.xz и .tar.zst в Linux

Для работы с архивами в 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) — указать путь к файлу архива (обязательно должен идти последним перед именем файла)


✔️ Распаковка в конкретную папку (-C)
По умолчанию 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): ключ -z

tar -xvzf archive.tar.gz

.tar.bz2 / .tbz2 (Bzip2): ключ -j

tar -xvjf archive.tar.bz2

.tar.xz / .txz (XZ / LZMA): ключ -J

tar -xvJf archive.tar.xz

.tar.zst / .tzst (Zstandard): ключ --zstd

tar --zstd -xvf archive.tar.zst


📌 Резюме: Забудьте про запоминание флагов -z, -j и -J. Просто используйте tar -xvf для любых .tar.* архивов!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2🤩2
❓ Как удалить на приемнике файлы, которых больше нет в источнике, при синхронизации через rsync?

Ответ через час.

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
По умолчанию rsync только добавляет и обновляет файлы, но не трогает то, что было удалено в исходной папке. Чтобы получить точную зеркальную копию, добавьте ключ --delete:

rsync -av --delete /src/ /dst/

Будьте внимательны: всё, что есть в /dst/, но отсутствует в /src/, будет безотзывно удалено!

#вопросы