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

По рекламе: @jannytg
@anothertechrock
Download Telegram
Права доступа -rwSr--r-- равнозначны...
Anonymous Quiz
7%
0777
6%
2666
34%
4644
28%
4744
25%
Посмотреть ответ
👍4
Топ 7 книг по Linux.
Скачивайте и читайте.

Хакинг на Linux
Автор: Колисниченко Д. Н.

Kali Linux Penetration Testing Bible
Автор: Gus Khawaja

Efficient Linux at the Command Line
Автор: Daniel J. Barrett

Penetration Testing with Kali Linux 2.0

Mastering Kali Linux for Advanced Penetration Testing
Автор: Vijay Kumar Velu

Linux Bible from Scratch
Автор: Christopher Negus

How Linux Works
Автор: Brian Ward

#linux #подборка
2👍2👌1
🖥 Что такое SSH-алиас и как его настроить?

SSH-алиас (SSH alias)
- это короткое именованное обозначение, которое используется для подключения к удаленному серверу через SSH.

Создание SSH-алиасов позволяет упростить процесс подключения к удаленным серверам и сэкономить время при вводе длинных команд. Вместо того чтобы запоминать и вводить полный адрес сервера, имя пользователя и порт, вы можете использовать короткий и запоминающийся алиас для быстрого подключения.

Для создания SSH-алиаса вам нужно отредактировать файл конфигурации SSH клиента, который обычно называется config и находится в директории ~/.ssh/

⚙️ Как это сделать:

1. Открываем файл конфига в любом текстовом редакторе, например:

vim ~/.ssh/config


2. Конфигурируем алиас. Например:

Host my_server
Hostname 34.151.201.192
User ghost23
Port 22


🟠Host - имя алиаса, то самое короткое именованное обозначение, по которому будет выполняться подключение

🟠Hostname - ip-адрес сервера, к которому будет выполняться подключение

🟠User - имя пользователя, под которым будем логиниться на сервере

🟠Port - номер порта, по которому будем подключаться

3. Сохраняем изменения.

✔️ Теперь, чтобы подключиться к серверу, достаточно ввести команду с алиасом:

ssh my_server


Кстати, таких алиасов может быть множество и это очень удобно!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👎3
Как запустить процесс, который не прервется при закрытии терминала?

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

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам поможет команда nohup.

Допустим, вы открыли какое-то приложение, введя команду в терминале. Если вы об этом забудете и закроете терминал, открытая через него программа тоже закроется. Чтобы этого не произошло, при введении команды нужно написать nohup.

Синтаксис:

nohup команда аргументы &

nohup вам пригодится, если вы запускаете какой-то скрипт, работа которого занимает много времени и может происходить в фоновом режиме (для этого в конце добавляется &). После такого запуска вы сможете закрыть терминал или вылогиниться с удаленного сервера, а скрипт продолжит работу.

Завершить работу nohup можно при помощи kill.
👍6
Какая специальная переменная содержит id процесса последней команды, выполненной в фоновом режиме?
Anonymous Quiz
11%
$*
16%
$?
23%
$$
25%
$!
25%
Посмотреть ответ
👩‍💻 Команды 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"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👌1
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥5
Передача команды в качестве аргумента 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 сочетается с перенаправлением.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👀2
Как убить процесс, введя только часть его имени?

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

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Указав имя процесса, можно его убить при помощи команды killall.

killall firefox

А команда pkill позволяет завершить процесс, введя только часть его имени.

pkill fire*
🔥6👍4
При помощи какой команды можно создать переменную окружения?
Anonymous Quiz
48%
export
32%
set
1%
read
13%
Ничто из перечисленного не подходит
6%
Посмотреть ответ
👌4🌚1