BashMaster
Відкрити в Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Показати більше8 733
Підписники
+124 години
+27 днів
+21330 день
Архів дописів
8 732
Bash функции и псевдонимы
В данной статье разберем как управлять файлами настройки оболочки пользователя. Псевдонимы и функции определяются в файлах с окончанием
RC - Bash.bashrc, bashrc, ~/.bashrc.
В зависимости от того в каком файле мы употребим псевдоним или функцию он будет использоваться для конкретного пользователя или для всех пользователей. Посмотрим на конкретном примере пользователя, поэтому будет использоваться файл ~/.bashrc , который находится в домашней директории пользователя и определят настройки конкретного пользователя.
Псевдоним (alias) – текст для вызова команды с ключами. Например: la = ‘ls -A’.
Функция – текст для вызова скрипта, из нескольких команд. Например:
function Hello (){echo “Hello,dear,I am awake for:”; uptime –p;}
Заходим в Ubuntu и попадаем в домашнюю директорию. Следовательно в этой домашней папке есть файл .profile, который является ссылкой на файл bashrc. И в этом файле есть много чего, но в частности есть псевдонимы.
🖼️ Дочитать статью
🔨 bash_help8 732
Сочетания клавиш bash
Ранее мы уже публиковали подобный пост. Этот более подробный.
Оболочка bash предлагает широкий выбор сочетаний клавиш, которые вы можете использовать. Они будут работать в bash в любой операционной системе.
Работа с процессами
Ctrl + C: прервать (убить) текущий процесс, запущенный в терминале на переднем плане. Это посылает процессу сигнал SIGINT, который технически является просто запросом - большинство процессов его учтут, но некоторые могут и проигнорировать.
Ctrl + Z: приостановить текущий процесс, запущенный в bash на переднем плане. Это отправляет процессу сигнал SIGTSTP. Чтобы позже вернуть процесс на передний план, используйте команду fg имя_процесса.
Ctrl + D: закрыть оболочку bash. Это отправляет маркер EOF (End of file - конец файла) в bash, и bash завершает работу, когда получает этот маркер. Это похоже на команду exit.
Перемещение курсора
Ctrl + A или Home: перейти к началу строки.
Ctrl + E или End: перейти в конец строки.
Alt + B: перейти на одно слово влево (назад).
Ctrl + B: перейти на один символ влево (назад).
Alt + F: перейти вправо (вперед) на одно слово.
Ctrl + F: перейти вправо (вперед) на один символ.
Ctrl + XX: перемещение между началом строки и текущей позицией курсора. То есть можно нажать Ctrl + XX, чтобы вернуться в начало строки, что-то изменить, а затем нажать Ctrl + XX, чтобы вернуться в исходную позицию курсора. Чтобы использовать этот шорткат, удерживайте клавишу Ctrl и дважды нажмите X.
Исправление опечаток
Alt + T: заменить текущее слово предыдущим.
Ctrl + T: поменять местами два последних символа перед курсором. Можно использовать, чтобы быстро исправить опечатки, когда вы вводите два символа в неправильном порядке.
Ctrl + _: отменить последнее нажатие клавиши. Можно использовать несколько раз подряд.
Вырезка и склейка
Ctrl + W: вырезать слово перед курсором и добавить его в буфер обмена.
Ctrl + K: вырезать часть строки после курсора, добавив ее в буфер обмена.
Ctrl + U: вырезать часть строки перед курсором, добавив ее в буфер обмена.
Ctrl + Y: вставить последнее вырезанное из буфера обмена.
Заглавные буквы
Alt + U: вводить каждый символ от курсора до конца текущего слова с заглавной буквы, переводя символы в верхний регистр.
Alt + L: убирает заглавные буквы с каждого символа от курсора до конца текущего слова, переводя символы в нижний регистр.
Alt + C: ввести заглавную букву под курсором. Ваш курсор переместится в конец текущего слова.
Табуляция
Завершение при помощи табуляции - очень полезная функция bash. При вводе имени файла, каталога или команды нажмите Tab, и bash автоматически завершит ввод, если это возможно. Если нет, bash покажет вам различные возможные совпадения, и вы можете продолжить вводить и нажимать Tab, чтобы закончить ввод.
Tab: автоматическое заполнение файла, каталога или команды, которую вы вводите.
Например, если у вас есть файл с длинным именем really_long_file_name в /home/alex/ и это единственное имя файла, начинающееся с r в этом каталоге, вы можете ввести /home/alex/r, нажать Tab, и bash автоматически заполнит /home/alex/really_long_file_name для вас. Если у вас есть несколько файлов или каталогов, начинающихся с r, bash проинформирует вас о доступных вариантах. Вы можете начать вводить один из них и нажать Tab, чтобы продолжить.
Работа с историей команд
Ctrl + P или стрелка вверх: переход к предыдущей команде в истории команд. Нажмите ярлык несколько раз, чтобы вернуться к истории.
Ctrl + N или стрелка вниз: переход к следующей команде в истории команд. Нажмите ярлык несколько раз, чтобы перейти вперед по истории.
Alt + R: отменить любые изменения команды, извлеченной из истории, если вы ее редактировали.
В Bash также есть специальный режим поиска, который вы можете использовать для поиска ранее выполненных команд:
Ctrl + R: вспомнить последнюю команду, соответствующую указанным вами символам. Нажмите это сочетание и начните вводить символы для поиска команды в истории bash.
Ctrl + O: запустите найденную команду с помощью Ctrl + R.
Ctrl + G: выйти из режима поиска в истории без выполнения команды.
🔨 bash_help8 732
Обработка строк циклом «for line in `comand`»
Если у вас какая-то команда возвращает список строк, например:
$ cat list.txt
шишка
яблоко
листок
груша
То с помощью цикла for line in `comand` можно обработать этот вывод построчно.
Например такой скрипт:
#!/bin/bash
for line in `cat list.txt`
do
echo "На дереве висит $line"
done
Выполним его:
$ ./test.sh
На дереве висит шишка
На дереве висит яблоко
На дереве висит листок
На дереве висит груша
Или более сложная задача, вывести все процессы пользователя и выяснить сколько файлов они открыли, а также сколько файлов им позволено открывать.
#!/bin/bash
for pid in `ps -u alex -o pid | grep -v PID`
do
ps -p $pid -o comm,user | grep -v COMMAND
egrep 'files|Limit' /proc/$pid/limits
echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"
done
🔨 bash_help8 732
Как сгенерировать пароль в терминале Linux
Рассмотрим, как можно сгенерировать случайный пароль в командной строке Linux. Будем использовать /dev/urandom и утилиты makepasswd, pwgen.
Используем /dev/urandom
При чтении устройство
/dev/urandom возвращает бесконечный набор случайных байтов. Этот вывод можно отфильтровать с помощью утилиты tr. Затем, вывод передать команде xargs которая, по умолчанию выполняет команду echo и ей передается всё, что было прочитано из стандартного ввода. А с помощью утилиты head можно указать необходимое количество символов в пароле.
То есть сгенерировать пароль в Linux поможет следующая команда:
$ tr -dc A-Za-z0-9_ < /dev/urandom | head -c 10 | xargs
AurTdatFbw
Вы можете сделать bash функцию и записать её в ваш .bashrc:
$ nano .bashrc
genpasswd() {
local l=$1
[ "$l" == "" ] && l=16
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}
Затем применим изменения и попробуем сгенерировать пароль:
$ . .bashrc
~$ genpasswd 5
Hbe7a
$ genpasswd 10
PDbt1tjBg0
Используем makepasswd
Утилита makepasswd может также помочь сгенерировать пароль в Linux. Она также использует /dev/urandom, чтобы создавать случайные пароли. Вы можете установить её с помощью apt:
$ sudo apt install makepasswd
Просто выполните эту команду без параметров чтобы получить случайный пароль:
$ makepasswd 5q6m4jMHJМожете указать количество символов в пароле с помощью опции
chars и можете создать несколько паролей с помощью опции count:
$ makepasswd --chars 4 --count 3
1d65
R5Xe
Lhes
Можно создать пароли и сразу вывести их зашифрованный хеш с помощью опции crypt-md5:
$ makepasswd --chars 4 --count 3 --crypt-md5 DWBN $1$awZ5uNo/$r50RTWsihcMKEVQzoDyoZ1 xLN7 $1$h4ThtOu1$Bsmqhr/Tq/IIdGPtAVGda. A2R2 $1$bss49Rj7$y.9nAbyr749N.eYRUF155.Используем pwgen Утилита
pwgen генерирует легко запоминаемые пароли. Но также можешь генерировать случайные пароли. Устанавливается она также, с помощью apt:
$ sudo apt install pwgen
Если выполнить её без опций, то вы увидите список из легко запоминаемых паролей.
Вы можете указать количество необходимых паролей с помощью опции -N и указать количество символов в пароле с помощью опции -n:
$ pwgen -N 3 -n 5
aeCo2 Le7oy uv6Oh
Существует также опция -s чтобы создавать более сложные пароли (их сложнее запомнить и подобрать):
$ pwgen -N 3 -n 5 -s
fY60V y6FIU 9XEt4
Теперь вы знаете 3 способа генерации случайных паролей в терминале Linux. Если вы работаете за компьютером и вам нужно просто сгенерировать пароль, то удобнее использовать какой-нибудь графический инструмент. А показанные здесь способы можно использовать в скриптах.
🔨 bash_help8 732
Утилита ttyd
Она позволяет запустить выполнение любой утилиты командной строки в браузере.
Примеры использования:
1. Например, может быть удобно, запустить top, htop, или что-то подобное в браузере. В отдельной вкладке браузера вы всегда сможете посмотреть нагруженность вашего сервера.
2. Или можно запустить экземпляр bash и работать в командной строке сервера в браузере. Это может быть удобно, если вы по какой-то причине не можете использовать ssh.
3. И простые команды, которые при выполнении дают какой-то вывод и завершаются, можно запустить с помощью этой утилиты. Это могут быть такие команды как: ls, df, du и тому подобное. При этом, как только вы обновляете страничку, на сервере выполняется данная утилита и результат выводится в браузере.
Данная утилита состоит из одного бинарника, который можно скачать с помощью следующей команды:
$ wget -O ttyd https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64
Дальше даём приложению право запускаться:
$ chmod u+x ttyd
И запускаем, например bash:
$ ./ttyd bash
После запуска видим порт, на котором запустился bash. И подключаемся по ip-адресу сервера и этому порту с помощью браузера, например: httt://192.168.0.5:7681.
Эта утилита имеет ряд опций, вот некоторые из них:
-p <port> — порт на котором мы запускаем приложение (по умолчанию 7681, можно указать 0 чтобы использовать случайный порт);
-i <interface> — сетевой интерфейс который будет использоваться (например — eth0);
-c <username:password> — логин и пароль, который потребуется указать в браузере (по умолчанию парольная аутентификация выключена);
-m <max-clients> — максимальное количество клиентов;
-o — разрешает подключаться только одному клиенту, при этом как только произойдет дисконнект (например клиент закроет вкладку браузера или перезагрузит её), то web-приложение завершит свою работу;
Приложение позволяет работать через Nginx reverse proxy и использовать TLS сертификаты. Также вы можете сделать Systemd юнит, чтобы запускать эту утилиту как службу.
🐙 Перейти на Github
🔨 bash_help8 732
PowerShell против Bash: в чем разница?
Немного истории: PowerShell
PowerShell - это среда автоматизации и задач Microsoft, удобная для управления конфигурацией. PowerShell использует компоненты, называемые командлетами, которые встроены в PowerShell. Дополнительные функции доступны через модули. Они устанавливаются из галереи PowerShell непосредственно из командной строки.
PowerShell отличается от Bash, потому что он предназначен для взаимодействия со структурами .NET изначально в Windows. Это означает, что он может передавать объекты и данные между сценариями, приложениями и сеансами. Каждый объект имеет свой собственный набор свойств, что делает обработку данных в PowerShell еще более детальной. Данные могут быть указаны как числа (целые числа), слова (строки), логические (истина и ложь) и многие другие типы. Это означает, что вы можете по-настоящему определиться с тем, как ваши скрипты обрабатывают ввод и вывод данных.
Немного истории: Bash
Системы Linux и Unix всегда выигрывали от структурирования многопользовательской терминальной среды. Вы можете запускать дополнительные сессии в той же системе и запускать сценарии и приложения, не влияя на основные сессии, в которые вошли другие пользователи. Это сильно отличалось от ранних систем Windows и DOS, которые были однопользовательскими средами с одной сессией, до появления Windows NT в середине 90-х годов.
Первоначальная оболочка, поставляемая с Unix, была известна как оболочка Bourne, названная в честь ее создателя Стивена Борна. Bash (Bourne again Shell) является преемником оболочки Bourne с открытым исходным кодом. Bash получил широкое распространение, когда Linux был создан в начале 90-х годов.
Существует множество функций, которые делают Bash очень популярным, главными из которых являются стабильность системы и то, что это открытый исходный код. Из-за этого он встречается практически в каждом дистрибутиве Linux. Все эти факторы делают его одной из наиболее часто используемых сред сценариев для ИТ-специалистов.
🖼️ Дочитать статью
🔨 bash_help
8 732
8 732
Лимит открытых файлов — настройки sysclt.conf
В системе Linux каждый открытый файл занимает файловый дескриптор. Информация по занятым файловым дескрипторам и их лимит хранится в файле
/proc/sys/fs/file-nr:
$ cat /proc/sys/fs/file-nr 1120 0 9223372036854775807В выводе мы видим 3 числа: — Количество выделенных файловых дескрипторов (1120). Показывает количество открытых файлов в системе. — Число выделенных, но не используемых файловых дескрипторов (0). Ядро версии выше чем Linux 2.6 всегда показывает 0. Потому что количество выделенных файловых дескрипторов точно соответствует количеству используемых файловых дескрипторов. — Максимальное число файловых дескрипторов (9223372036854775807). Это и есть лимит открытых файлов в системе, который можно изменить с помощью файла sysclt.conf. Для того, чтобы задать лимит, нужно в файле
/etc/sysclt.conf задать параметр fs.file-max и указать ему значение, например:
$ sudo nano /etc/sysctl.conf fs.file-max=1000000Для того, чтобы изменения вступили в силу нужно выполнить команду:
$ sudo sysctl -p fs.file-max = 1000000В выводе мы увидим, какие изменения применяются. И чтобы проверить наши изменения, опять посмотрим на файл
/proc/sys/fs/file-nr:
$ cat /proc/sys/fs/file-nr 1120 0 1000000После проделанного я верну всё как было:
$ sudo nano /etc/sysctl.conf fs.file-max=9223372036854775807
$ sudo sysctl -p fs.file-max = 9223372036854775807Посмотрим какой лимит используется по умолчанию, для этого нужно посмотреть файл /proc/sys/fs/nr_open:
$ cat /proc/sys/fs/nr_open 1048576То есть, любой процесс в системе не сможет открыть более 1048576 файлов. Можем поменять это значение, также используя /etc/sysctl.conf. Параметр в этом случае будет называться fs.nr_open:
$ sudo nano /etc/sysctl.conf fs.nr_open=1024 $ sudo sysctl -p fs.file-max = 9223372036854775807 fs.nr_open = 1024 $ cat /proc/sys/fs/nr_open 1024Чтобы узнать, сколько сейчас открыто файлов у произвольного процесса, выполните ls /proc/<pid>/fd | wc -l:
$ sudo ls /proc/1/fd/ | wc -l 81 $ sudo ls /proc/525/fd/ | wc -l 15А для того, чтобы пробежаться по списку процессов определённого пользователя и узнать сколько файлов эти процессы открыли, можно использовать такой скрипт:
$ nano openfiles-users-procs.sh
#!/bin/bash
user=$1
function work_fun {
ps -u $user | awk '{print $1}' | grep -v PID | while read line
do
echo "Открыто файлов для `ps -p "$line" -o comm | grep -v COMMAND` ("$line") = `sudo ls /proc/$line/fd/ | wc -l`"
done
}
work_fun | sort -rnk 7
Дадим право на исполнение этому скрипту:
$ chmod u+x openfiles-users-procs.shИ выполним:
$ ./openfiles-users-procs.sh alex ls: cannot access '/proc/6952/fd/': No such file or directory ls: cannot access '/proc/6953/fd/': No such file or directory ls: cannot access '/proc/6954/fd/': No such file or directory Открыто файлов для systemd (677) = 29 Открыто файлов для sshd (788) = 11 Открыто файлов для (sd-pam) (678) = 7 Открыто файлов для openfiles-users (6955) = 4 Открыто файлов для openfiles-users (6949) = 4 Открыто файлов для bash (797) = 4 Открыто файлов для sort (6951) = 3 Открыто файлов для openfiles-users (6950) = 3 Открыто файлов для (6954) = 0 Открыто файлов для (6953) = 0 Открыто файлов для (6952) = 0Здесь, в самом начале, вы видите ошибки. Просто процессы 6952, 6953, 6954 существовали, но пока скрипт выполнялся они уже завершились. А просто сложив все эти числа вы узнаете, сколько файлов открыто у определённого пользователя. 🔨 bash_help
8 732
🖥 2 полезных канала для тех, кто увлечён ИБ, разведкой и сетями:
🤖 stein: ИБ, OSINT — канал от известного в узких кругах исследователя, в котором множество обучающих материалов по ИБ и кибер-разведке, полезных инструментов и личный взгляд автора.
👨🔬 Сетевик Джонни // Network Admin — канал сетевого инженера, который рассказывает про создание и настройку внутренних компьютерных сетей в доступной форме.
8 732
Обработка строк циклом «while read line»
В этой статье разберемся с одним из циклов bash, а именно с циклом «while read line». С его помощью будем обрабатывать строки.
Допустим в скрипте есть переменная, значение которой состоит из нескольких строк:
#!/bin/bash a="шишка\nяблоко\nлисток\nгруша" echo -e $aНапомню, что \n это символ новой строки. Выполним этот скрипт и получим такой результат:
$ ./test.sh шишка яблоко листок грушаТеперь изменим этот скрипт, чтобы каждая строка обрабатывалась в цикле:
#!/bin/bash
a="шишка\nяблоко\nлисток\nгруша"
echo -e "$a" | while read line
do
echo "На дереве висит $line"
done
Выполнив этот скрипт получим:
$ ./test.sh На дереве висит шишка На дереве висит яблоко На дереве висит листок На дереве висит грушаПодобный скрипт можно написать и таким способом:
#!/bin/bash
echo -e "шишка\nяблоко\nлисток\nгруша" | while read line
do
echo "На дереве висит $line"
done
Таким образом мы можем делать примерно такое:
"команда, возвращающая строки" | while read line
do
команда которой передаем на обработку каждую строку $line
done
Вот еще один пример bash скрипта:
#!/bin/bash
cat /etc/passwd | cut -f 1 -d ":" | while read line
do
echo "В системе есть пользователь - $line"
done
Запустим это скрипт:
$ ./test.sh В системе есть пользователь - root В системе есть пользователь - daemon В системе есть пользователь - bin **** И так далее ***🔨 bash_help
8 732
Как вам идея совместить удаленную работу и отдых этой зимой на Шри-Ланке? 🇱🇰
А если еще и на условиях беспроцентной рассрочки Интересно? 😉
🌅 Тогда добро пожаловать на Baza Camp! Ребята второй год подряд организуют лагерь для удаленщиков на берегу океана в четырехэтажном отеле.
🔷Коворкинг
🔷Коливинг
🔷Сёрфинг
🔷Йога
🔷Массаж
🔷Экскурсии
А также множество других активностей для совмещения работы и отдыха 😀
✈️Сейчас идет набор группы на январский и февральский заезд.
Следите за новостями на канале 👉Baza Camp👈
8 732
Bash cкрипт получения числа открытых файлов пользователя
Данный скрипт позволяет узнать сколько открытых файлов у определённого пользователя Linux. Это бывает необходимо для отладки службы, работающей под определённым пользователем.
В качестве параметра скрипту необходимо передать имя или uid пользователя.
Скрипт будем использовать следующими способами:
./openfiles.sh -h — показать справку;
./openfiles.sh <имя_или_uid> — показать число открытых файлов.
Вот сам скрипт:
#!/bin/bash
case "$1" in
-h)
echo -e "Скрипт покажет открытые файлы для выбранного пользователя.
Опции:
-h показать эту справку.
Примеры выполнения:
./files2.sh <username>
./files2.sh <uid>"
;;
*)
if [[ "$#" -eq 1 ]];
then
id "$1" >/dev/null 2>&1
if [[ $? -ne 0 ]]; then
echo 'Пользователь не найден!'
exit 1
fi
for pid in `ps -u "$1" -o pid,comm | grep -v PID | awk '{print $1}'`
do
open_files=`ls -l /proc/$pid/fd | grep "anon_inode" | wc -l`
echo "Открытых файлов для pid $pid: $open_files"
done
else
echo -e "Забыли указать имя или id пользователя!
Или ввели больше одного параметра.
Для справки выполните $0 -h"
fi
;;
esac
Если скрипт получит параметр -h, то с помощью echo просто выведет справку.
Если скрипт получит всего один любой другой параметр, то он будет считаться именем пользователя. В этом случае, если такого пользователя в системе не будет, то скрипт скажет об этом.
Если скрипт получит не 1, а больше или меньше параметров, то эта ситуация также будет обработана.
Весь код по получению открытых файлов заключен в этих строчках:
for pid in `ps -u "$1" -o pid,comm | grep -v PID | awk '{print $1}'`
do
open_files=`ls -l /proc/$pid/fd | grep "anon_inode" | wc -l`
echo "Открытых файлов для pid $pid: $open_files"
done
То есть мы пробегаемся по всем процессам данного пользователя, и для каждого процесса (pid) вычисляем количество открытых файлов.
🔨 bash_help8 732
ADB-Toolkit
BASH скрипт с 28 параметрами и раздел METASPLOIT с 6 параметрами, предназначенный для простого тестирования на проникновение в устройство Android.
🐙 Перейти на Github
🔨 bash_help
8 732
Переменная экспорта Bash
Переменная экспорта Bash — это переменная, которая доступна всем дочерним процессам текущей оболочки. Когда переменная экспортируется, она становится переменной среды, что означает, что к ней может получить доступ любая программа или сценарий, работающий в текущей среде оболочки.
Чтобы экспортировать переменную, вам нужно использовать команду экспорта, за которой следует имя переменной, которую вы хотите экспортировать. Вот пример:
export MY_VARIABLE="Hello World"
В этом примере мы экспортируем переменную MY_VARIABLE со значением «Hello World». После экспорта этой переменной она становится переменной среды, и к ней может получить доступ любой дочерний процесс текущей оболочки.
Вы также можете экспортировать несколько переменных одной командой:
export VAR1="value1" VAR2="value2" VAR3="value3"Команда
env отображает список всех переменных среды в текущей среде оболочки. Эта команда выведет список всех переменных среды, включая экспортированные вами переменные.
Экспорт переменной в Bash позволяет использовать ее в любом скрипте или программе, работающей в текущей среде оболочки. Вот пример того, как использовать экспортированную переменную в скрипте:
#!/bin/bash export MY_VARIABLE="Hello World" echo "The value of MY_VARIABLE is: $MY_VARIABLE"В этом примере мы экспортируем переменную
MY_VARIABLE со значением «Hello World» и используем ее в скрипте. скрипт будет отображать значение MY_VARIABLE при выполнении.
Вы также можете экспортировать переменные в профиль Bash, который представляет собой сценарий, который выполняется каждый раз, когда пользователь входит в систему. Экспорт переменных в профиль Bash гарантирует, что переменные будут доступны при каждом входе в систему.
Чтобы экспортировать переменную в профиль Bash, вам необходимо добавить команду экспорта в файл:
export MY_VARIABLE="Hello World"
После того, как вы добавили команду экспорта в профиль Bash, переменная будет экспортироваться каждый раз, когда вы входите в систему.
🖼️ Дочитать статью
🔨 bash_help8 732
Друзья, у вас есть возможность вдохновиться интервью Дмитрия Зайцева, директора ПК DevOps Conf: 📌статья.
И приглашаем потенциальных спикеров и активистов на онлайн-встречу с Программным комитетом конференции DevOpsConf 2024.
Встречаемся 16 ноября, в четверг, в 19:00 (МСК).
Мы с вами обсудим несколько важных вопросов:
Какие темы вы бы хотели услышать или самостоятельно подать в новой программе? Как упаковать в питч свои достижения? А если не доклад, а мастер-класс?
Спрашивайте все, что хотите знать о конференции. Обязательно объясним, как готовится конференция и сетка докладов и многое другое.
Регистрируемся на встречу:📌на сайте.
Реклама. ООО "КОНФЕРЕНЦИИ ОЛЕГА БУНИНА". ИНН 7733863233. erid: LjN8KPXpN
8 732
Как установить и включить автозаполнение команд в Bash для CentOS/RHEL?
Bash, несомненно, является самой популярной оболочкой Linux, и не удивительно, что именно это оболочка по умолчанию во многих дистрибутивах Linux. Одной из самых удобных функций этой оболочки является встроенная поддержка «автозаполнения».
Иногда это называется автозаполнением с помощью клавиши [TAB], эта функция позволяет вам легко заполнить структуру команд. Она позволяет вводить частичную команду, а затем нажимать клавишу [Tab] для автоматического завершения команды и ее аргументов. В этой функции перечислены всё множество возможных аргументов.
Как и Bash, почти все современные Linux-оболочки поставляются с поддержкой встроенных команд. В этом кратком руководстве мы покажем вам, как включить функцию автозавершения Bash в системах CentOS и RHEL.
Вот несколько основных действий, которые вы обязательно должны выполнить, чтобы упростить работу с командной строкой:
- Начальная настройка и конфигурация сервера на RHEL 7
- Начальная настройка и конфигурация сервера на CentOS 7
Во-первых, вам нужно включить репозиторий EPEL в вашей системе, а затем установить пакет автозаполнения bash и некоторые дополнительные функции, используя диспетчер пакетов YUM, таким способом:
# yum install bash-completion bash-completion-extras
Теперь, когда вы установили автозаполнение bash, вы должны включить его для начала работы. Сначала укажите файл bash_completion.sh. Вы можете использовать команду locate ниже, чтобы найти ее:
$ locate bash-completion.sh
$ source /etc/profile.d/bash_completion.sh
Кроме того, выйдите из текущего сеанса и повторно войдите в систему.
$ logout
Теперь функция автозаполнения доступна в вашей системе, вы можете попробовать ее, как показано ниже.
$ li[TAB]
$ ls .bash[TAB]
Команду [TAB] также можно выполнять для имен путей и имен переменных, и эта команда помимо всего прочего еще и хорошо программируется.
🔨 bash_help8 732
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?
Если ты долго работал и не давал себе отдохнуть, мозг рано или поздно скажет тебе “Хватит, я устал от умных мыслей” и отключится 😵💫
Выгорание? Называй как угодно, в любом случае, из него нужно выходить.
Клиенты ведь не ждут, дедлайны горят, близкие смотрят искоса…
⚡️ Справиться с этим состоянием, избавиться от прокрастинации и вернуться к жизни тебе поможет канал Вадима - Психолог взрослого человека.
Он точно знает, как IT-специалисту выйти из застоя и вернуть себе силы и энергию.
Рекомендуем начать с его мини-курса, который, кстати, Вадим сейчас проводит бесплатно:
👉🏻 “Как избежать выгорания, даже если вы постоянно вкалываете?”.
Ты найдешь причины упадка сил, апатии и выгорания. И поймешь, как из этого выйти.
Подписывайся на канал @vadimpetrov_psy и смотри мини-курс - ссылка в закрепе.
✔️ https://t.me/+uRtk_5_4XJFiODhi ✔️
8 732
Утилита sshpass — автоматические действия с SFTP
В этой статье будут описаны автоматические действия с SFTP сервером. Например — передача или скачивание файлов с помощью bash скрипта.
Когда вы подключаетесь по SSH, то для подключения используете пароль или ключ. Если нет возможности настроить подключение по ключам, то остаётся использовать пароль. Но утилита ssh, с помощью которой мы подключаемся к серверу не разрешает подставлять пароль. Вместо этого она использует псевдо-терминал для ввода пароля вручную.
alex@deb-11:~$ ssh alex@192.168.0.34
alex@192.168.0.34's password:
Это затрудняет выполнение автоматических действий, когда у вас нет возможности использовать SSH ключи. Например такая команда не работает:
alex@deb-11:~$ (echo password) | ssh alex@192.168.0.34
Pseudo-terminal will not be allocated because stdin is not a terminal.
alex@192.168.0.34's password:
Здесь даже на терминале появилось предупреждение о том, что STDIN это вам не терминал!
Для решения этой задачи придумали утилиту sshpass, которую можно установить из репозиториев:
alex@deb-11:~$ sudo apt install sshpass
С помощью этой утилиты можно передать пароль утилите ssh. Делается это таким способом:
alex@deb-11:~$ sshpass -p "password" ssh alex@192.168.0.34
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-52-generic x86_64)
Выполнение команд ftp из bash скрипта
Но в этой статье описывается sftp а не просто ssh. Поэтому подключение будет выполнятся с помощью утилиты sftp:
alex@deb-11:~$ sshpass -p "password" sftp alex@192.168.0.34
Connected to 192.168.0.34.
sftp>
🖼️ Дочитать статью
🔨 bash_help8 732
🚀 Освой новые вершины в программировании! Три топовых ИИ-инструмента для разработки! 🔥
👉 StableCode - пишет и дебажит код, а также объясняет, какие функции выполняют уже готовые блоки и как их можно улучшить
👉 CodeRabbit – сделает код-ревью, предложит улучшения и исправления
👉 GPT Pilot – ускорит процесс разработки приложения с нуля и напишет за тебя до 95% кода
Подпишись на канал, чтобы получить более 50 нейронок для разработки и не пропустить новые
✅ AI для разработчиков ⌨️
✅ AI для веб-мастера 🖥
✅ AI для обучения и образования 📖
✅ AI для дизайнеров 🎨
✅ AI для обработки аудио и голоса 🎙
✅ АI склад 📚
8 732
swap_digger
Bash-скрипт, автоматизирующий извлечение файла подкачки Linux и поиск учетных данных пользователей, адресов электронной почты, содержимого веб-форм, WiFi SSID ключей и других чувствительных данных.
🐙 Перейти на Github
🔨 bash_help
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
