ru
Feedback
BashMaster

BashMaster

Открыть в Telegram

Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help

Больше
8 733
Подписчики
+124 часа
+27 дней
+21330 день
Архив постов
Bash функции и псевдонимы В данной статье разберем как управлять файлами настройки оболочки пользователя. Псевдонимы и функци
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_help

Сочетания клавиш 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_help

Обработка строк циклом «for line in `comand`» Если у вас какая-то команда возвращает список строк, например: $ cat list.txt ш
Обработка строк циклом «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_help

Как сгенерировать пароль в терминале 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_help

Утилита ttyd Она позволяет запустить выполнение любой утилиты командной строки в браузере. Примеры использования: 1. Например
Утилита 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_help

PowerShell против Bash: в чем разница? Немного истории: PowerShell PowerShell - это среда автоматизации и задач Microsoft, уд
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

Лимит открытых файлов — настройки 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

🖥 2 полезных канала для тех, кто увлечён ИБ, разведкой и сетями: 🤖 stein: ИБ, OSINT — канал от известного в узких кругах ис
🖥 2 полезных канала для тех, кто увлечён ИБ, разведкой и сетями: 🤖 stein: ИБ, OSINT — канал от известного в узких кругах исследователя, в котором множество обучающих материалов по ИБ и кибер-разведке, полезных инструментов и личный взгляд автора. 👨‍🔬 Сетевик Джонни // Network Admin — канал сетевого инженера, который рассказывает про создание и настройку внутренних компьютерных сетей в доступной форме.

Обработка строк циклом «while read line» В этой статье разберемся с одним из циклов bash, а именно с циклом «while read line»
Обработка строк циклом «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

Как вам идея совместить удаленную работу и отдых этой зимой на Шри-Ланке? 🇱🇰 А если еще и на условиях беспроцентной рассроч
Как вам идея совместить удаленную работу и отдых этой зимой на Шри-Ланке? 🇱🇰 А если еще и на условиях беспроцентной рассрочки Интересно? 😉 🌅 Тогда добро пожаловать на Baza Camp! Ребята второй год подряд организуют лагерь для удаленщиков на берегу океана в четырехэтажном отеле. 🔷Коворкинг 🔷Коливинг 🔷Сёрфинг 🔷Йога 🔷Массаж 🔷Экскурсии А также множество других активностей для совмещения работы и отдыха 😀 ✈️Сейчас идет набор группы на январский и февральский заезд. Следите за новостями на канале 👉Baza Camp👈

Bash cкрипт получения числа открытых файлов пользователя Данный скрипт позволяет узнать сколько открытых файлов у определённо
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_help

ADB-Toolkit BASH скрипт с 28 параметрами и раздел METASPLOIT с 6 параметрами, предназначенный для простого тестирования на пр
ADB-Toolkit BASH скрипт с 28 параметрами и раздел METASPLOIT с 6 параметрами, предназначенный для простого тестирования на проникновение в устройство Android. 🐙 Перейти на Github 🔨 bash_help

Переменная экспорта Bash Переменная экспорта Bash — это переменная, которая доступна всем дочерним процессам текущей оболочки
Переменная экспорта 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_help

Друзья, у вас есть возможность вдохновиться интервью Дмитрия Зайцева, директора ПК DevOps Conf: 📌статья. И приглашаем потенц
Друзья, у вас есть возможность вдохновиться интервью Дмитрия Зайцева, директора ПК DevOps Conf: 📌статья. И приглашаем потенциальных спикеров и активистов на онлайн-встречу с Программным комитетом конференции DevOpsConf 2024. Встречаемся 16 ноября, в четверг, в 19:00 (МСК).  Мы с вами обсудим несколько важных вопросов:  Какие темы вы бы хотели услышать или самостоятельно подать в новой программе? Как упаковать в питч свои достижения? А если не доклад, а мастер-класс? Спрашивайте все, что хотите знать о конференции. Обязательно объясним, как готовится конференция и сетка докладов и многое другое.  Регистрируемся на встречу:📌на сайте.  Реклама. ООО "КОНФЕРЕНЦИИ ОЛЕГА БУНИНА". ИНН 7733863233. erid: LjN8KPXpN

Как установить и включить автозаполнение команд в Bash для CentOS/RHEL? Bash, несомненно, является самой популярной оболочкой
Как установить и включить автозаполнение команд в 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_help

Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Если ты долго работал и не
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Если ты долго работал и не давал себе отдохнуть, мозг рано или поздно скажет тебе “Хватит, я устал от умных мыслей” и отключится 😵‍💫 Выгорание? Называй как угодно, в любом случае, из него нужно выходить. Клиенты ведь не ждут, дедлайны горят, близкие смотрят искоса… ⚡️ Справиться с этим состоянием, избавиться от прокрастинации и вернуться к жизни тебе поможет канал Вадима - Психолог взрослого человека. Он точно знает, как IT-специалисту выйти из застоя и вернуть себе силы и энергию. Рекомендуем начать с его мини-курса, который, кстати, Вадим сейчас проводит бесплатно: 👉🏻 “Как избежать выгорания, даже если вы постоянно вкалываете?”. Ты найдешь причины упадка сил, апатии и выгорания. И поймешь, как из этого выйти. Подписывайся на канал @vadimpetrov_psy и смотри мини-курс - ссылка в закрепе. ✔️ https://t.me/+uRtk_5_4XJFiODhi ✔️

Утилита sshpass — автоматические действия с SFTP В этой статье будут описаны автоматические действия с SFTP сервером. Наприме
Утилита 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_help

🚀 Освой новые вершины в программировании! Три топовых ИИ-инструмента для разработки! 🔥 👉 StableCode - пишет и дебажит код,
🚀 Освой новые вершины в программировании! Три топовых ИИ-инструмента для разработки! 🔥 👉 StableCode - пишет и дебажит код, а также объясняет, какие функции выполняют уже готовые блоки и как их можно улучшить 👉 CodeRabbit – сделает код-ревью, предложит улучшения и исправления 👉 GPT Pilot – ускорит процесс разработки приложения с нуля и напишет за тебя до 95% кода Подпишись на канал, чтобы получить более 50 нейронок для разработки и не пропустить новые AI для разработчиков ⌨️ AI для веб-мастера 🖥 ✅ AI для обучения и образования 📖 ✅ AI для дизайнеров 🎨 ✅ AI для обработки аудио и голоса 🎙 ✅ АI склад 📚

swap_digger Bash-скрипт, автоматизирующий извлечение файла подкачки Linux и поиск учетных данных пользователей, адресов элект
swap_digger Bash-скрипт, автоматизирующий извлечение файла подкачки Linux и поиск учетных данных пользователей, адресов электронной почты, содержимого веб-форм, WiFi SSID ключей и других чувствительных данных. 🐙 Перейти на Github 🔨 bash_help