uz
Feedback
🐧 Linux Junior. Программирование под Linux.

🐧 Linux Junior. Программирование под Linux.

Kanalga Telegram’da o‘tish

Канал для программистов работающих с Linux. Почти все Python девелоперы с нами ну и другие тоже подтянутся. По рекламе: @jannytg @anothertechrock

Ko'proq ko'rsatish
3 095
Obunachilar
-124 soatlar
-37 kunlar
-1230 kunlar
Postlar arxiv
👩‍💻 Команда sync Утилита команды sync синхронизирует данные из кэша в постоянную память. Давайте рассмотрим варианты ее применения. 1️⃣ Синхронизация кэша юзера Эта команда синхронизирует данные кэша с жестким диском:
$ sync
2️⃣ Синхронизация юзерских файлов Когда вы даете привилегии sudo команде sync, она синхронизирует все смонтированные файловые системы на жестком диске:
$ sudo sync
Чтобы получить файловые системы юзера:
$ df
Можно посмотреть, сколько данных смонтированы в корневом каталоге "/", в раздел - "/dev/sda3". 3️⃣ Синхронизация данных файла Команда sync предоставляет опции -d или -data для синхронизации/копирования данных кэша файла на жесткий диск:
$ sync -d /home/testfile1.txt
4️⃣ Синхронизация данных нескольких файлов Для синхронизации данных кэша нескольких файлов, вы можете использовать команду следующим образом:
$ sync -d /home/testfile1.txt ~/Desktop/Samplevideo.mp4
5️⃣ Синхронизация файловой системы Опции -f или -file-system позволяют юзеру синхронизировать данные вместе с файловыми системами:
$ sync -f /home/Downloads/testfile2.txt
6️⃣ Синхронизация нескольких файловых систем Команда sync может синхронизировать/копировать несколько файловых систем с помощью одной команды:
$ sync -f /home/file1.txt ~/Desktop/Samplevideo.mp4
7️⃣ Синхронизация файловой системы конкретного раздела Мы можем синхронизировать файловую систему определенного раздела системы:
$ sudo sync /dev/sda3
8️⃣ Синхронизация каталога и подкаталогов Для синхронизации каталога с именем "/var/log/syslog" и его подкаталогов используется следующая команда:
$ sudo sync /var/log/syslog

🔥 Понятная, интерактивная и доходчивая шпаргалка для новичков в сетевых протоколах

PID процесса в Linux В ОС Linux каждый процесс обладает уникальным идентификатором, который называется Process ID или PID. При создании нового процесса ему автоматически присваивается PID. ▶️Значения PID В зависимости от значения PID, сигнал будет направляться определенной группе процессов. Как именно значение PID влияет на отправку сигнала: «PID > 0» - Сигнал будет отправлен процессу, который имеет идентификатор, соответствующий введенному значению. «PID = 0» - Все процессы, которые в данный момент входят в одну группу, получают одинаковый сигнал. «PID = −1» - В этом случае сигнал будет отправлен всем пользовательским процессам (если команду вызывает root, то сигнал будет отправлен всем процессам, за исключением init и самого kill). Для этой цели используется уникальный идентификатор пользователя (UID). «PID < −1» - Сигнал передается процессам, которые входят в группу с GID (идентификатор группы), и значение PID (идентификатор процесса) имеет абсолютное значение. ▶️Поиск PID Чтобы успешно завершить определенный процесс, необходимо определить его номер. ps - команда отображает список активных процессов с дополнительной информацией о каждом из них. grep - задача выполняется вместе с командой ps, которая занимается поиском по списку, полученному от ps. Извлечь все процессы:
ps axu
Если список процессов достаточно длинный, то найти PID конкретного процесса может быть затруднительно. В этом случае стоит воспользоваться командой:
ps axu | grep bash
Если процесс существует, то мы увидим подобный вывод:
root 447 0.0 0.4 7932 4708 tty1 S 11:26 0:00 -bash
root 477 0.0 0.0 6268 640 tty1 S+ 11:27 0:00 grep bash
Здесь важна первая строчка. Число после username и будет являться PID. Доп.варианты поиска: ▫️ pgrep - просматривает активные процессы и выдает PID тех, чьи атрибуты удовлетворяют запросу.
pgrep firefox
▫️ pidof - команда, принимающая на вход название.
pidof gcalctool

👩‍💻 Команда grep grep - это команда в терминале Linux, которая используется для поиска текста в файлах. Независимо от того, нужно ли вам найти строку в коде, ключевое слово в логах или что-то еще, grep делает это быстро и эффективно. ✅ Несколько примеров использования: 1. Простой поиск:
grep "word" файл.txt
2. Поиск с подсветкой:
grep --color=auto "pattern" file.txt
3. Рекурсивный поиск:
grep -r "pattern" /путь/к/директории
4. Исключение файлов:
grep "pattern" --exclude="*.log" /путь/к/директории
5. Поиск с номерами строк:
grep -n "pattern" file.txt

Какую опцию нужно добавить к команде rmdir a/b/c, чтобы удалить все директории a, b, c?
Anonymous voting

При запуске команды или скрипта добавьте в начале команду time:
$ time ls -a
После окончания работы основной команды time покажет, сколько ресурсов пошло на это.

Как узнать, сколько времени занимает выполнение команды или скрипта? Ответ через час. #вопросы

👩‍💻 Команда kill Если вам известен PID процесса, вы можете принудительно остановить его, используя команду kill. Введите команду с номером PID процесса:
kill 279
Когда мы используем команду kill без аргументов, она автоматически отправляет сигнал SIGTERM. Сигнал сообщает о потребности в завершении процесса. Но сложность заключается в том, что сигнал может быть проигнорирован.
У каждого сигнала существует свой уникальный номер, в том числе у SIGTERM он равен 15.
Чтобы получить полный список всех доступных сигналов и их номеров необходимо ввести команду:
kill -l
Хотя SIGTERM и предназначен для остановки процесса, он не может гарантировать, что процесс будет остановлен в случае блокировки сигнала или его перехвата. Чтобы гарантировано остановить процесс, нужно отправить SIGKILL (номер 9):
kill −9 279
ℹ️ С помощью команды kill можно одновременно убивать несколько процессов. Для этого необходимо указать их PID через пробел:
kill −9 267 315 442

При помощи какой команды можно создать переменную окружения?
Anonymous voting

Указав имя процесса, можно его убить при помощи команды killall.
killall firefox
А команда pkill позволяет завершить процесс, введя только часть его имени. pkill fire*

Как убить процесс, введя только часть его имени? Ответ через час. #вопросы

Передача команды в качестве аргумента bash bash — это обычная программка, такая же, как и любая другая, поэтому вы можете запускать ее по имени в командной строке. По умолчанию bash запускает интерактивную оболочку для ввода и выполнения команд. Кроме того, можно передать команду в bash в виде строки с помощью параметра -c. Тогда bash запустит эту строку как команду, а после выполнения завершит работу:
$ bash -c "ls -l"
-rw-r--r-- 1 smith smith 325 Jul 3 17:44 animals.txt
🤔 Почему это бывает полезно? Потому что новый процесс будет дочерним со своим собственным окружением, включая текущий каталог, переменные и их значения. Любые изменения в дочерней оболочке не повлияют на текущую:
$ pwd
/home/smith

$ touch /tmp/badfile

$ bash -c "cd /tmp && rm badfile" 

$ pwd
/home/smith
Пример выше запускает дополнительную оболочку только для того, чтобы сменить каталог на "tmp" и удалить файл, а затем завершает работу. ‼️ Однако наиболее показательно и полезно использование bash -c вместе с sudo и перенаправлением ввода/вывода. Тогда-то эта фича и является ключом к успеху. Предположим, вы хотите создать файл журнала в системном каталоге "/var/log", недоступном для записи обычным пользователям. Вы добавляете sudo, чтобы получить привилегии и создать файл журнала, но команда почему-то не исполняется:
$ sudo echo "New log file" > /var/log/custom.log

bash: /var/log/custom.log: Permission denied
🤔 Минуточку, но ведь команда sudo должна дать разрешение на создание любого файла в любом месте! Как что-то может пойти не так? Почему sudo даже не запрашивает пароль? Ответ: потому что sudo вообще не запускалась. Вы применили sudo к команде echo, но не к перенаправлению вывода, которое запустилось первым и провалилось. ✏️ Опишем процесс пошагово: 1) Вы нажали клавишу Enter. 2) Оболочка начала вычислять всю команду, включая перенаправление. 3) Оболочка попыталась создать файл custom.log в защищенном каталоге "/var/log". У нас не было разрешения на запись в "/var/log", поэтому оболочка сообщила, что в доступе отказано (Permission denied). Чтобы решить эту проблему, нужно сообщить оболочке: «Выполни всю команду, включая перенаправление вывода, от имени суперпользователя». Это именно та ситуация, которую так хорошо решает bash -c. Создайте команду, которую вы хотите запустить, в виде строки и передайте ее в качестве аргумента для sudo bash -c:
$ sudo bash -c 'echo "New log file" > /var/log/custom.log'

[sudo] password for smith: xxxxxxxx

$ cat /var/log/custom.log
New log file
На этот раз мы запустили от имени суперпользователя bash, а не просто echo. По итогу, bash выполнит всю строку как команду. Перенаправление проходит успешно. Помните о bash -c, когда sudo сочетается с перенаправлением.

1000+ Bash скриптов для DevOps Не всегда скрипты на Bash вообще нужны в DevOps, но иногда всё же возникает ситуация, когда ну
1000+ Bash скриптов для DevOps Не всегда скрипты на Bash вообще нужны в DevOps, но иногда всё же возникает ситуация, когда нужно что-то автоматизировать, а готовых решений нет или они не подходят. И именно в таких ситуациях может быть удобно быстро написать решение на Bash. Так что держите эту большую подборку — это скрипты, связанные с настройкой и управлением AWS, GCP, Kubernetes, Docker, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure TeamCity, Spotify, LDAP, Python и это далеко не полный список Есть здесь даже скрипты для конфигурирования .bashrc, .vimrc, .gitconfig, .screenrc, tmux ⛓ Ссылка: https://github.com/HariSekhon/DevOps-Bash-tools

👩‍💻 Команды zip и unzip Давайте рассмотрим на примерах, как пользоваться командами zip и unzip для упаковки и распаковки архивов формата ZIP. 📦 Упаковка архивов Создаём архивы с помощью команды zip. Например: 1. Упаковка одного файла:
zip archive.zip file.txt
2. Упаковка нескольких файлов:
zip archive.zip file1.txt file2.txt file3.txt
3. Упаковка папки с ее содержимым:
zip -r archive.zip folder
4. Упаковка папки с исключением определенных файлов:
zip -r archive.zip folder -x "folder/file3.txt"
📦 Распаковка архивов Для того чтобы распаковать архив, используем команду unzip. Например: 1. Распаковка архива в текущую директорию:
unzip archive.zip
2. Распаковка архива в определенную директорию:
unzip archive.zip -d /path/to/directory
3. Просмотр содержимого архива без распаковки:
unzip -l archive.zip
4. Распаковка архива с фильтрацией определенных файлов:
unzip archive.zip "*.txt"

У K2 Cloud скоро будет митап о карьере в Linux Эксперты компании и приглашенный гость — блогер Константин Дипеж (DeusOps) — о
У K2 Cloud скоро будет митап о карьере в Linux Эксперты компании и приглашенный гость — блогер Константин Дипеж (DeusOps) — обсудят профессиональный путь Linux-специалиста. Среди тем: как безболезненно «вкатиться» в Linux, с чем откликаться на вакансию, какие вопросы задают на техническом интервью и как расти после оффера. Полезный контент для начинающих спецов, которые хотят развиваться в DevOps и не только. Встреча пройдет онлайн, 19 марта в 18:00 (msk). Подробности и регистрация по ссылке