Проверка паролей на надёжность
Скрипт, который проверяет и применяет надежные пароли:
🔨 bash_help
Скрипт, который проверяет и применяет надежные пароли:
#!/bin/bash
# Check all users' passwords for strength
for user in $(cut -d: -f1 /etc/passwd); do
# Check the password for strength
if ! grep -qP '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})' <(grep "^$user:" /etc/shadow); then
# If the password is not strong, force the user to change it
change -d 0 "$user"
fi
done
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14✍12🔥4
Функции
Часто используемые, повторяющиеся блоки имеет смысл выделять в отдельные функции, чтобы при необходимости их запускать, передавая параметры.
Определение функции выглядит следующим образом:
Самый простой пример скрипта, содержащего объявление и вызов функции будет выглядеть так:
Скрипт вызывает функцию, передавая ей на вход параметры, которые были переданы ему самому при вызове. Далее проверяется код завершения функции и выдается соответствующая ошибка, если код не равен 0, иначе выдается сумма, сохраненная в переменной s. Протестируем скрипт:
Для того, чтобы объявить переменную локальной, используется слово
Объединим все воедино, создав на основе рассмотренных ранее структур следующий скрипт
В данном скрипте мы объявили 5 функций:
Удалить все файлы .dat в текущей директории
Создать указанное количество файлов
Удалить файлы больше определенного размера
Вывести список всех файлов текущей директории
Запустить скрипт, выдающий информацию о планетах
Отобразить погоду по коду указанного города
🔨 bash_help
Часто используемые, повторяющиеся блоки имеет смысл выделять в отдельные функции, чтобы при необходимости их запускать, передавая параметры.
Определение функции выглядит следующим образом:
<имя_функции>() {Первый вариант ближе к синтаксису языка С и считается более переносимым, во втором варианте круглые скобки можно не указывать. Также может отсутствовать оператор return, если функция не возвращает значения.
<команды>
return <число>
}
function <имя_функции>() {
<команды>
return <число>
}
Самый простой пример скрипта, содержащего объявление и вызов функции будет выглядеть так:
#!/bin/bashМы объявили функцию
f() {
echo Test
}
f
f
, которая выводит слово Test
, и затем вызвали её:test@osboxes:~$ ./script6.shТак же, как и скрипт, функция может принимать параметры и использовать их, ссылаясь по номеру (
Test
$1
, $2
, …, $N
). Вызов функции с параметрами в скрипте осуществляется так:<имя функции> <параметр1> <параметр2>… <параметрN>Функция может возвращать результат своего выполнения (код завершения) в виде числового значения в диапазоне от 0 до 255. Принято считать, что если функция возвращает 0, то она выполнилась успешно, во всех остальных случаях значение содержит код ошибки. Чтобы получить код завершения функции в скрипте, необходимо обратиться к переменной
$?
. Добавив параметры и возвращаемое значение, получим следующий скрипт:#!/bin/bashЗдесь мы создали функцию summ, которая принимает 2 параметра и с помощью регулярного выражения ^[0-9]+$ проверяет, является ли каждый из переданных параметров числом. В случае, если первый параметр не число, то код завершения функции будет 1, если второй параметр не число, то код завершения функции будет 2. Во всех остальных случаях функция вычисляет сумму переданных параметров, сохраняя результат в глобальной переменной s.
summ() {
re='^[0-9]+$'
if ! [[ $1 =~ $re ]] ; then
return 1
elif ! [[ $2 =~ $re ]] ; then
return 2
else
s=$(($1 + $2))
return 0
fi
}
summ $1 $2
case $? in
0) echo "The sum is: $s" ;;
1) echo "var1 is not a nubmer" ;;
2) echo "var2 is not a nubmer" ;;
*) echo "Unknown error" ;;
esac
Скрипт вызывает функцию, передавая ей на вход параметры, которые были переданы ему самому при вызове. Далее проверяется код завершения функции и выдается соответствующая ошибка, если код не равен 0, иначе выдается сумма, сохраненная в переменной s. Протестируем скрипт:
test@osboxes.org:~$ ./script7.sh abc 123
var1 is not a nubmer
test@osboxes.org:~$ ./script7.sh 234 def
var2 is not a nubmer
test@osboxes.org:~$ ./script7.sh 10 15
The sum is: 25
По умолчанию переменные объявляются глобальными, т.е. видны в любом блоке скрипта. Переменные, объявленные как локальные, имеют ограниченную область видимости, и видны только в пределах блока, в котором они были объявлены. В случае с функцией это означает, что локальная переменная "видна" только в теле функции, в которой она была объявлена.Для того, чтобы объявить переменную локальной, используется слово
local
, например local loc_var=123
. Важно отметить, все что переменные, объявляемые в теле функции, считаются необъявленными до тех пор, пока эта функция не будет вызвана.Объединим все воедино, создав на основе рассмотренных ранее структур следующий скрипт
В данном скрипте мы объявили 5 функций:
clearFilesДалее реализован бесконечный цикл с помощью оператора while с условием true, в который вложен оператор выбора в зависимости от нажатой клавиши, а также вызов функции menu для отображения списка доступных действий. Данный скрипт в интерактивном режиме позволяет выполнить следующие действия:
genFiles
delFiles
showWeather
menu
Удалить все файлы .dat в текущей директории
Создать указанное количество файлов
Удалить файлы больше определенного размера
Вывести список всех файлов текущей директории
Запустить скрипт, выдающий информацию о планетах
Отобразить погоду по коду указанного города
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23✍8🔥3
Планировщик заданий cron
В случае, когда есть необходимость периодического запуска скриптов, полезно использовать планировщик cron, он позволяет задать расписание запуска скрипта и не требует присутствия администратора.
Просмотр заданий пользователя выполняется командой
Например, для того, чтобы в 10 и 30 минут каждого часа каждый день месяца весь год по будням запускать команду, нужно указать следующее:
🔨 bash_help
В случае, когда есть необходимость периодического запуска скриптов, полезно использовать планировщик cron, он позволяет задать расписание запуска скрипта и не требует присутствия администратора.
Просмотр заданий пользователя выполняется командой
crontab –l
. Для редактирования и создания новых задания используется команда crontab –e
. Строки для запуска команд планировщика в файле конфигурации cron имеют следующий формат:m h dom mon dow command parametersГде
m
– минута, h
– час, dom
– день месяца, mon
– месяц, dow
– день недели, command
– команда, parameters
– список параметров. Например, для того, чтобы в 10 и 30 минут каждого часа каждый день месяца весь год по будням запускать команду, нужно указать следующее:
10,30 * * * 1-5 command parameter1 parameter2Более простой пример, каждые 15 минут выполнять команду:
*/15 * * * * commandСоздадим скрипт для резервного копирования домашней директории пользователя, который будет создавать новый файл бэкапа при каждом запуске:
#!/bin/bashПоставим скрипт на выполнение каждый день в 22:00, выполнив команду
USER=`whoami`
BACKUP_DIR=/tmp/backup_${USER}
BACKUP_FILE=${USER}_$(date +%Y%m%d%M%H%S).tgz
mkdir -p $BACKUP_DIR
cd /
tar -zcf $BACKUP_DIR/$BACKUP_FILE home/$USER
crontab -e
и добавив с помощью открывшегося редактора строку:00 22 * * * ./backup_home.shПроверить, что задача добавлена в планировщик, можно командой crontab -l:
test@osboxes.org:~$ crontab -lВ результате каждый день в 22:00 будет создаваться резервная копия домашней директории пользователя (в приведенном примере для демонстрации запуск скрипта выполняется каждую минуту):
00 22 * * * ./backup_home.sh
test@osboxes.org:~$ cd /tmp/backup_test/Нужно отметить, что директория
test@osboxes:/tmp/backup_test$ ll
total 80
drwxrwxr-x 2 test test 4096 Feb 16 16:38 ./
drwxrwxrwt 17 root root 4096 Feb 16 16:30 ../
-rw-rw-r-- 1 test test 4431 Feb 16 16:30 test_20210216301601.tgz
-rw-rw-r-- 1 test test 4431 Feb 16 16:31 test_20210216311601.tgz
-rw-rw-r-- 1 test test 4431 Feb 16 16:32 test_20210216321601.tgz
-rw-rw-r-- 1 test test 4431 Feb 16 16:33 test_20210216331601.tgz
-rw-rw-r-- 1 test test 4431 Feb 16 16:34 test_20210216341601.tgz
test@osboxes:/tmp/backup_test$
/tmp
в примере использована исключительно для тестов, т.к. она предназначена для хранения временных файлов, и использовать её для хранения резервных копий нельзя. Правильное место размещения бэкапов может подсказать системный администратор.Please open Telegram to view this post
VIEW IN TELEGRAM
👍20😐8✍4🔥4
Скрипт для создания OpenVPN сервера, или как один админ удаленку облегчал
Доброго дня, товарищи! Во время пандемии у всех был выбор, что использовать для организации удаленного доступа. Я выбрал OpenVPN. Чтобы помочь другим, (в первую очередь себе, конечно), был написан скрипт для простой установки сервера Ovpn на centos 8 с нуля, без заморочек.
Весь скрипт комментирован, а также настроен на общение с пользователем. Это очень облегчает понимание.
Вкратце. Создается пользователь openvpn, нужен в основном для обмена клиентскими конфигами, чтобы не давать лишнего доступа по ssh\ftp тем, кому нужно их скачать.
Проверки на число добавлены для уменьшения ошибок “на дурака”. Дополнительных утилит самый минимум
В этом скрипте selinux настраивается, а не отключается. Из настроек пользователя остаются несколько строк файла vars, а также порт, протокол, ip-адрес, и количество пользователей. Ко всем вопросам пользователю, есть пояснение. Остальная установка проходит по стандартной процедуре настройки OpenVPN сервера. Хотел сделать silent режим, но думаю это уже лишнее. Готовые файлы конфигурации складываются в папку /home/openvpn/ ready_conf. Они уже готовы к использованию.
🖼️ Ссылка на скрипт
🔨 bash_help
Доброго дня, товарищи! Во время пандемии у всех был выбор, что использовать для организации удаленного доступа. Я выбрал OpenVPN. Чтобы помочь другим, (в первую очередь себе, конечно), был написан скрипт для простой установки сервера Ovpn на centos 8 с нуля, без заморочек.
Весь скрипт комментирован, а также настроен на общение с пользователем. Это очень облегчает понимание.
Вкратце. Создается пользователь openvpn, нужен в основном для обмена клиентскими конфигами, чтобы не давать лишнего доступа по ssh\ftp тем, кому нужно их скачать.
Проверки на число добавлены для уменьшения ошибок “на дурака”. Дополнительных утилит самый минимум
В этом скрипте selinux настраивается, а не отключается. Из настроек пользователя остаются несколько строк файла vars, а также порт, протокол, ip-адрес, и количество пользователей. Ко всем вопросам пользователю, есть пояснение. Остальная установка проходит по стандартной процедуре настройки OpenVPN сервера. Хотел сделать silent режим, но думаю это уже лишнее. Готовые файлы конфигурации складываются в папку /home/openvpn/ ready_conf. Они уже готовы к использованию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥7✍4😐2
Список полезных команд
Список встроенных команд интерпретатора:🔨 bash_help
Список встроенных команд интерпретатора:
help
Помощь по команде: <команда> --help
Мануал по команде: man <команда>
Версия команды: <команда> --version
Список доступных оболочек: cat /etc/shells
Список пользователей и их оболочек: cat /etc/passwd
Текущая директория: pwd
Список файлов текущей директории: ls -la
Текущий пользователь: id
Переменные среды: set
Версия ОС: cat /etc/os-release
Версия ядра: uname -a
Получить привилегии суперпользователя: sudo su -
Установка программы в Debian: apt install mc
Посмотреть утилизацию(загрузку): top
Свободное место: df -h
Сколько занимает директория: du -ks /var/log
Конфигурация сетевых интерфейсов: ifconfig -a
Объем оперативной памяти: free -m
Информация о блочных устройствах(дисках): lsblk
Информация о процессорах: cat /proc/cpuinfo
Список установленных пакетов: apt list --installed
Список и статус сервисов: service --status-all
Перезапуск сервиса: service apache2 restart
Скачать файл: wget https://www.gnu.org/graphics/gplv3-with-text-136x68.png
Получить веб-страницу по URL: curl https://www.google.com
Показать задания планировщика: crontab -l
Редактировать задания планировщика: crontab -e
Вывести новые сообщения в системном логе: tail -f /var/log/syslog
Подсчитать количество строк в выводе команды: <команда> | wc -l
Изменить права доступа к файлу (разрешить выполнение всем): chmod a+x <файл>
Список процессов: ps -ef
Проверить, запущен ли процесс: ps -ef | grep <процесс>
Перейти в предыдущий каталог: cd -
Завершить процесс (сигнал kill): kill -9
Удаление файла: rm <имя файла>
Удаление директории: rm -rf <имя
директории>
Редактировать файл: nano <имя_файла>
Топ 10 процессов по использованию памяти: ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -nr | head
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39😐11✍4🔥4
Удаляем ненужные нам файлы и директории с компьютера
Мы напишем скрипт, который удаляет ненужные нам файлы и директории с компьютера.
🔨 bash_help
Мы напишем скрипт, который удаляет ненужные нам файлы и директории с компьютера.
#!/bin/bash
# массив, в котором мы храним ключевые слова для поиска, например:
search_arr=(WetTrains LedForm WyChart)
# информируем о своих действиях
echo Find and delete files and folders contains $search_arr
# для каждого ключевого слова
for item in ${search_arr[*]}
do
echo Find and remove *$item*
# найдем все файлы и папки, которые это слово содержат,
# не обращая внимания на регистр, и удалим их рекурсивно
sudo find / -iname -name "*$item*" -exec rm -rv {} \;
done
# далее то, что не является частью удаления, но может стать хорошим дополнением
# скачиваем при помощи утилиты wget необходиммые архивы
wget "https://download.wettrains.com/wychart-confessional-xxxx.x.x.tar.gz"
wget "https://download.wettrains.com/LedForm-xxxx.x.x.tar.gz"
# перемещаем их в папку со всяким барахлом
sudo mv LedForm-xxxx.x.x.tar.gz /opt/
sudo mv wychart-cofessional-xxxx.x.x.tar.gz /opt/
# распаковываем архивы
cd /opt/ && sudo tar -xzvf LedForm-xxxx.x.x.tar.gz
cd /opt/ && sudo tar -xzvf wychart-confessional-xxxx.x.x.tar.gz
Часто нужно что-то удалить, например для того, чтобы освободить лишнее место. Чтобы начать пользоваться этой штукой, нужно просто сделать ее исполняемой и запустить:chmod +x brainduck.shТак же можно поставить ее в расписание, чтобы она запускалась, например, один раз в 00:00 каждый первый день нового месяца:
./brainduck.sh
0 0 1 * * ~/scripts/brainduck.shИзменяя значения внутри массива search_arr можно найти разные области для применения данного механизма. Можно чистить кеш, удалять временные файлы, логи программ, сами программы. Используйте этот скрипт только если вы точно понимаете, что делаете и чего хотите добиться, потому как при использовании определенных ключевых слов он может удалить системные файлы
Please open Telegram to view this post
VIEW IN TELEGRAM
✍14👍6😐5🔥4
Чтение файла построчно на Bash
Для простоты понимания будем использовать простой текстовый файл с именем
1. Использование команды read с циклом while
Создайте и откройте простой файл скрипта с помощью следующей команды:
И, наконец, выполните скрипт:
🔨 bash_help
Для простоты понимания будем использовать простой текстовый файл с именем
LHB.txt
.1. Использование команды read с циклом while
Создайте и откройте простой файл скрипта с помощью следующей команды:
nano read.shИ вставьте следующие строки:
#!/bin/bash
file="LHB.txt"
while read -r line; do
echo -e "$line\n"
done <$file
• file=”LHB.txt”
: Указывает, с каким файлом вы хотите работать, в данном случае это LHB.txt.• while read -r line; do
: Запускает цикл while и читает строки одну за другой, пока не останется ни одной строки для чтения, а флаг -r предотвратит обратную косую черту в строках.• echo -e “$line\n”
: Будет выведена каждая строка, и каждая будет отделена одной пустой строкой.• done < “$file”
: Перенаправляет ввод из указанного файла в цикл while.И, наконец, выполните скрипт:
./read.sh2. Использование команды cat с циклом while
#!/bin/bash
cat LHB.txt | while IFS= read -r line; do
echo "$line"
echo # Print a blank line
done
• cat LHB.txt |
: Читает содержимое файла LHB.txt и передает его в piped другим аргументом.• while IFS= read -r line; do
: Читает строки одну за другой из файла LHB.txt и. IFS используется для сохранения ведущих и завершающих пробельных символов.• echo “$line”
: Выводит строку, хранящуюся в переменной line.Please open Telegram to view this post
VIEW IN TELEGRAM
✍20👍12🔥6😐1
Bash скрипт для проверки публичных репозиториев Github и уведомления о них
GitHub – ведущая компания по разработке программного обеспечения и контролю версий с помощью Git.
Он позволяет нам создавать как публичные репозитории, так и частные.
Оба варианта имеют свои преимущества.
Частные репозитории защищены аутентификацией, в то время как публичные репозитории доступны всем.
Иногда мы или наши команды создаем репозитории с публичным доступом, которые могут содержать конфиденциальные данные.
Хорошей идеей будет настроить скрипт, который будет уведомлять нас о репозиториях, оставленных в открытом доступе.
В этом руководстве мы покажем shell скрипт, который проверяет наличие всех публичных репозиториев под учетной записью GitHub и отправляет уведомление по электронной почте.
Скрипт может быть запланирован в crontab для автоматизации этого процесса.
Предварительные условия
Этот скрипт использует утилиты командной строки Curl и SendEmail. Поэтому убедитесь, что вы установили оба пакета в своей системе.
Вы можете просто скопировать этот скрипт и записать его в файл в вашей системе.
🖼️ Ссылка на скрипт
🔨 bash_help
GitHub – ведущая компания по разработке программного обеспечения и контролю версий с помощью Git.
Он позволяет нам создавать как публичные репозитории, так и частные.
Оба варианта имеют свои преимущества.
Частные репозитории защищены аутентификацией, в то время как публичные репозитории доступны всем.
Иногда мы или наши команды создаем репозитории с публичным доступом, которые могут содержать конфиденциальные данные.
Хорошей идеей будет настроить скрипт, который будет уведомлять нас о репозиториях, оставленных в открытом доступе.
В этом руководстве мы покажем shell скрипт, который проверяет наличие всех публичных репозиториев под учетной записью GitHub и отправляет уведомление по электронной почте.
Скрипт может быть запланирован в crontab для автоматизации этого процесса.
Предварительные условия
Этот скрипт использует утилиты командной строки Curl и SendEmail. Поэтому убедитесь, что вы установили оба пакета в своей системе.
sudo apt install curl sendemailСоздание shell скрипта
Вы можете просто скопировать этот скрипт и записать его в файл в вашей системе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11✍4🔥2
Bashtop — инструмент мониторинга ресурсов для Linux
Это легкий и легко настраиваемый инструмент, который можно использовать в любой системе Linux. Приложение предоставляет подробную информацию об использовании ЦП, использовании памяти, использовании диска, сетевой активности и активности процессов.
Bashtop можно легко установить в большинстве дистрибутивов Linux с помощью системного менеджера пакетов. Например, в Ubuntu или Debian вы можете использовать следующую команду:
После установки вы можете запустить Bashtop, открыв терминал и набрав —
Основной интерфейс состоит из графика, который отображает текущее использование системных ресурсов, а также список процессов, которые в данный момент выполняются в системе. График использования ресурсов показывает использование процессора, памяти и диска, а также сетевую активность.
Вы можете использовать клавиши со стрелками для навигации по списку процессов, а нажатие клавиши Enter отобразит более подробную информацию о конкретном процессе. Вы также можете отсортировать список процессов по различным параметрам, таким как использование ЦП или использование памяти, нажав клавишу F5 и выбрав нужный вариант.
Чтобы настроить Bashtop, нужно создать файл конфигурации с именем
Чтобы изменить цветовую схему Bashtop, нужно добавить в файл конфигурации строки:
🔨 bash_help
Это легкий и легко настраиваемый инструмент, который можно использовать в любой системе Linux. Приложение предоставляет подробную информацию об использовании ЦП, использовании памяти, использовании диска, сетевой активности и активности процессов.
Bashtop можно легко установить в большинстве дистрибутивов Linux с помощью системного менеджера пакетов. Например, в Ubuntu или Debian вы можете использовать следующую команду:
sudo apt install bashtopВ Fedora вы можете использовать:
sudo dnf install bashtopЕсли Bashtop недоступен в репозитории вашего дистрибутива, вы можете скачать исходный код со страницы проекта на GitHub и скомпилировать его вручную.
После установки вы можете запустить Bashtop, открыв терминал и набрав —
bashtop
. Это запустит приложение и отобразит основной интерфейс.Основной интерфейс состоит из графика, который отображает текущее использование системных ресурсов, а также список процессов, которые в данный момент выполняются в системе. График использования ресурсов показывает использование процессора, памяти и диска, а также сетевую активность.
Вы можете использовать клавиши со стрелками для навигации по списку процессов, а нажатие клавиши Enter отобразит более подробную информацию о конкретном процессе. Вы также можете отсортировать список процессов по различным параметрам, таким как использование ЦП или использование памяти, нажав клавишу F5 и выбрав нужный вариант.
Чтобы настроить Bashtop, нужно создать файл конфигурации с именем
.config/bashtop/bashtop.cfg
в своем домашнем каталоге. Этот файл позволяет вам установить различные параметры, такие как частота обновления, порядок сортировки по умолчанию и стиль графика.Чтобы изменить цветовую схему Bashtop, нужно добавить в файл конфигурации строки:
[colors]Это изменит цвета графика использования ресурсов на синий для использования ЦП, желтый для памяти, зеленый для диска и красный для сетевой активности.
cpu = blue
memory = yellow
disk = green
network = red
Please open Telegram to view this post
VIEW IN TELEGRAM
✍11👍6🔥3
Как использовать многопоточную обработку в сценариях Bash
Демонстрация разницы между программированием с одним (1) потоком и многопоточным (> 1) программированием в Bash:
Во второй строке у нас есть две односекундные команды сна. Мы соединяем их с помощью разделителя
Обычно команду завершают точкой с запятой (
Однако можно использовать другие терминаторы команд, которые Bash распознает, такие как
Использование
В выводе команды мы видим запущенный фоновый процесс (на что указывает
🖼️ Дочитать статью
🔨 bash_help
Демонстрация разницы между программированием с одним (1) потоком и многопоточным (> 1) программированием в Bash:
sleep 1Вывод:
sleep 1 & sleep 1
$ sleep 1В первой строке мы засыпаем на одну секунду с помощью команды
$ sleep 1 & sleep 1
[1] 445317
[1]+ Done sleep 1
sleep 1
. Что касается пользователя, один поток выполнял одиночный сон продолжительностью в одну секунду.Во второй строке у нас есть две односекундные команды сна. Мы соединяем их с помощью разделителя
&
, который действует не только как разделитель между двумя командами sleep
, но и как индикатор Bash для запуска первой команды в фоновая ветка.Обычно команду завершают точкой с запятой (
;
). Это приведет к выполнению команды и только затем переходу к следующей команде, указанной после точки с запятой. Например, выполнение sleep 1; sleep 1
занял бы чуть более двух секунд — ровно одна секунда для первой команды, одна секунда для второй и небольшая системная нагрузка для каждой из двух команд.Однако можно использовать другие терминаторы команд, которые Bash распознает, такие как
&
, &&
и ||
. Синтаксис &&
совершенно не связан с многопоточным программированием, он просто делает это; продолжить выполнение второй команды только в том случае, если первая команда была успешной. ||
является противоположностью &&
и будет выполнять вторую команду, только если первая команда не удалась.Использование
&
в качестве ограничителя команды инициирует фоновый процесс, выполняющий предшествующую ему команду. Затем он немедленно приступает к выполнению следующей команды в текущей оболочке, оставляя фоновый процесс выполняться сам по себе.В выводе команды мы видим запущенный фоновый процесс (на что указывает
[1] 445317
, где 445317
— идентификатор процесса или PID только что запущенного фонового процесса и [1]
указывает, что это наш первый фоновый процесс), и впоследствии он завершается (как указано [1]+ Done sleep 1
).Please open Telegram to view this post
VIEW IN TELEGRAM
👍25✍3🔥2
bashrc против bash_profile, в чем разница?
Вы можете редактировать файлы
Файлы
Вы можете создавать резервные копии своих файлов, скопировав их в отдельный каталог или используя систему контроля версий, например Git. Таким образом, если что-то пойдет не так, вы сможете легко восстановить файлы в предыдущее состояние.
Помимо ваших личных файлов
Общесистемный файл
🔨 bash_help
Bashrc
— это файл конфигурации оболочки Bash, которая является оболочкой по умолчанию в большинстве дистрибутивов Linux и macOS. Этот файл выполняется каждый раз, когда вы открываете новое окно терминала, и содержит команды, которые выполняются в вашей среде оболочки. Bashrc используется для установки переменных среды, определения псевдонимов и создания функций. Он также используется для настройки подсказки, которая появляется в вашем терминале.Bash_profile
— это еще один файл конфигурации оболочки Bash, но он выполняется только один раз, когда вы входите в свою учетную запись. Этот файл используется для установки переменных среды и запуска команд, которые необходимы только один раз в начале сеанса. Bash_profile
обычно используется для установки переменной PATH
, которая является переменной среды, определяющей, где оболочка ищет исполняемые файлы.Bashrc
и bash_profile
выполняют схожие функции, но имеют разную область действия и выполняются в разное время.Bashrc
выполняется каждый раз, когда вы открываете новое окно терминала, а bash_profile
выполняется только один раз, когда вы входите в свою учетную запись. Это означает, что любые изменения, внесенные вами в bashrc
, вступят в силу немедленно, а изменения в bash_profile
вступят в силу только после того, как вы выйдете из системы и снова войдете в систему.Bashrc
используется для настройки среды оболочки для каждого отдельного окна терминала. Это означает, что любые изменения, внесенные вами в bashrc
, будут влиять только на текущее окно терминала. С другой стороны, bash_profile
используется для установки переменных среды, необходимых для всего сеанса. Это означает, что изменения в bash_profile
повлияют на все окна терминала.Bashrc
обычно используется для установки псевдонимов, определения функций и настройки подсказки. Bash_profile
обычно используется для установки переменной PATH
и запуска команд, которые необходимы только один раз в начале сеанса.Вы можете редактировать файлы
bashrc
и bash_profile
в любом текстовом редакторе, например nano или vim. Эти файлы расположены в вашем домашнем каталоге, и вы можете получить к ним доступ, введя следующую команду в своем терминале:nano ~/.bashrcОткроется файл
bashrc
в текстовом редакторе nano, где вы сможете внести любые необходимые изменения. Аналогичным образом вы можете открыть файл bash_profile
с помощью следующей команды:nano ~/.bash_profileПри редактировании файлов
bashrc
или bash_profile
будьте осторожны с синтаксическими ошибками. Даже небольшая ошибка, такая как отсутствующая кавычка или неуместная точка с запятой, может привести к тому, что ваша среда оболочки будет вести себя неожиданно или вообще не будет работать. Чтобы избежать синтаксических ошибок, рекомендуется протестировать изменения в отдельном окне терминала, прежде чем применять их в основной среде.Файлы
bashrc
и bash_profile
— это важные системные файлы, которые содержат важную информацию о конфигурации вашей среды оболочки. Чтобы избежать случайного удаления или повреждения этих файлов, рекомендуется регулярно создавать их резервные копии.Вы можете создавать резервные копии своих файлов, скопировав их в отдельный каталог или используя систему контроля версий, например Git. Таким образом, если что-то пойдет не так, вы сможете легко восстановить файлы в предыдущее состояние.
Помимо ваших личных файлов
bashrc
и bash_profile
, ваша система также может иметь глобальный файл bashrc
, который применяется ко всем пользователям. В системах Linux этот файл обычно находится в /etc/bashrc
, а в macOS — в /etc/bashrc_Apple_Terminal
.Общесистемный файл
bashrc
— хорошее место для добавления команд и настроек, применимых ко всем пользователям системы, таких как общесистемные псевдонимы или переменные среды. Имейте в виду, что изменения в этом файле повлияют на всех пользователей системы, поэтому будьте осторожны при внесении изменений.Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥5✍3
10 полезных советов для написания эффективных bash скриптов в Linux
1. Всегда используйте комментарии в скриптах
Комментарии начинаются со знака решетки —
2. Настраивайте завершение выполнения скрипта при ошибке. Так бывает, что bash может продолжать выполнять скрипт, несмотря на сбои в выполнении определенной команды.
Можно использовать следующую команду для выхода из скрипта в случае ошибке:
5. Используйте функции в скриптах. Скрипт, который разбит на функции, становится более модульным. Такой код проще прочитать и понять, чем длинную последовательность предписаний.
6. Используйте знак
7. Используйте знак
9. Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных. Все переменные среды bash, такие как
10. Выполняйте отладку (debugging) скриптов. Для запуска программы в режиме отладки используйте следующую команду:
🔨 bash_help
1. Всегда используйте комментарии в скриптах
Комментарии начинаются со знака решетки —
#
.2. Настраивайте завершение выполнения скрипта при ошибке. Так бывает, что bash может продолжать выполнять скрипт, несмотря на сбои в выполнении определенной команды.
Можно использовать следующую команду для выхода из скрипта в случае ошибке:
# let script exit if a command fails3. Настраивайте завершение выполнения скрипта при обнаружении необъявленной переменной. Также bash может попытаться использовать переменную, не объявленную ранее в коде сценария. Чтобы bash завершал выполнение скрипта в такой ситуации — добавьте в код следующую команду:
set -o errexit
# OR
set -e
ls -xyz # command with error
echo "you will not see this message"
#let script exit if an unsed variable is used4. Используйте двойные кавычки для ссылки на переменные. Использование двойных кавычек при обращении к переменным предотвращает разбиение строк при наличии в них пробелов на слова, а также — другие возможные сбои.
set -o nounset
# OR
set -u
echo $ThisVariableAreNotDefined
echo "you will not see this message"
5. Используйте функции в скриптах. Скрипт, который разбит на функции, становится более модульным. Такой код проще прочитать и понять, чем длинную последовательность предписаний.
6. Используйте знак
=
для сравнения строк. Во многих популярных языках программирования сравнение на равенство проверяется двойным знаком «равно» ==
. Однако в сценариях командной строки Линукс для этого используется одинарное равно =
.7. Используйте знак
$
вместо знаков “
. Существует несколько способов подстановки команд. Вы можете использовать обратные апострофы `command`
для заключения команды в них, либо же использовать конструкцию $(command)
. На сегодняшний день рекомендуется использовать именно второй вариант с использованием $
, что подтверждается рекомендациями shellcheck
, инструментом для анализа кода скриптов. Например:user=`echo “qwerty” `8. Объявляйте статические переменные с опцией readonly. Статическая переменная — это переменная, которая не меняется. Встроенная команда
user1=$(echo “abcde”)
readonly
используется для пометки переменных, доступных только для чтения (то есть — неизменяемых). Это подразумевает, что изменить ее в будущем уже будет нельзя.9. Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных. Все переменные среды bash, такие как
HOSTNAME
, BASH
, GROUPS
и другие — следует писать заглавными буквами. Тогда как для именования пользовательских переменных лучше использовать строчные буквы. В коде большого скрипта при использовании множества различных переменных высок риск назвать некоторые из них одинаково, что может привести к неожиданным или даже критическим ошибка.10. Выполняйте отладку (debugging) скриптов. Для запуска программы в режиме отладки используйте следующую команду:
bash -x <your-file-name>.sh
Please open Telegram to view this post
VIEW IN TELEGRAM
✍25👍23🔥4
Powerline – добавляет строку статуса и подсказки редактору Vim и терминалу Bash
Отличный плагин для редактора Vim, который разработан на Python и предоставляет статус и подсказки для многих других приложений, таких как bash, zsh, tmux и др.
Шаг 1: Установка общих требований к Powerline
Из-за конфликта имен с некоторыми другими несвязанными проектами, программа Powerline доступна в PyPI (индекс пакета Python) под именем пакета как powerline-status.
Чтобы установить пакеты из PyPI, нам нужен «pip» (инструмент управления установки пакетов Python). Итак, давайте сначала установим инструмент pip для Linux.
Установите Pip на Debian, Ubuntu и Linux Mint
В системах на базе Fedora вам необходимо сначала включить epel-repository, а затем установить пакет pip, как показано ниже.
Теперь пришло время установить Powerline с помощью команды pip, как показано ниже.
Powerline использует специальные шрифты для специальных эффектов стрелок и символов разработчиков.
Загрузите последнюю версию шрифта и файл конфигурации fontconfig, используя следующую команду wget.
В этом разделе мы рассмотрим настройку Powerline для оболочки bash и редактора vim. Сначала настройте свой терминал с поддержкой 256 цветов, добавив следующую строку в файл
Чтобы включить Powerline в оболочке bash по умолчанию, вам необходимо добавить следующий фрагмент в ваш файл
Если vim является вашим любимым редактором, то вам повезло, есть мощный плагин для vim. Чтобы включить этот плагин, добавьте эти строки в файл
🔨 bash_help
Отличный плагин для редактора Vim, который разработан на Python и предоставляет статус и подсказки для многих других приложений, таких как bash, zsh, tmux и др.
Шаг 1: Установка общих требований к Powerline
Из-за конфликта имен с некоторыми другими несвязанными проектами, программа Powerline доступна в PyPI (индекс пакета Python) под именем пакета как powerline-status.
Чтобы установить пакеты из PyPI, нам нужен «pip» (инструмент управления установки пакетов Python). Итак, давайте сначала установим инструмент pip для Linux.
Установите Pip на Debian, Ubuntu и Linux Mint
# apt-get install python3-pip powerline
Установите Pip на CentOS, RHEL и FedoraВ системах на базе Fedora вам необходимо сначала включить epel-repository, а затем установить пакет pip, как показано ниже.
# yum install python3-pipШаг 2. Установка Powerline Tool в Linux
# dnf install python-pip [В версиях Fedora 22+]
Теперь пришло время установить Powerline с помощью команды pip, как показано ниже.
# pip3 install powerline-statusШаг 3: Установка шрифтов Powerline в Linux
Powerline использует специальные шрифты для специальных эффектов стрелок и символов разработчиков.
Загрузите последнюю версию шрифта и файл конфигурации fontconfig, используя следующую команду wget.
# wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otfЗатем вам нужно переместить шрифт в каталог шрифтов,
# wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
/usr/share/fonts/
или /usr/local/share/fonts
, как описано ниже, или вы можете получить допустимые пути шрифтов, используя команду xset q.
# mv PowerlineSymbols.otf /usr/share/fonts/Затем вам необходимо обновить кеш-память вашей системы следующим образом.
# fc-cache -vf /usr/share/fonts/Теперь установите файл
fontconfig
.# mv 10-powerline-symbols.conf /etc/fonts/conf.d/Шаг 4: Установка Powerline для Bash Shell и Vim Statuslines
В этом разделе мы рассмотрим настройку Powerline для оболочки bash и редактора vim. Сначала настройте свой терминал с поддержкой 256 цветов, добавив следующую строку в файл
~/.bashrc
следующим образом.export TERM="screen-256color"Включение Powerline на Bash Shell
Чтобы включить Powerline в оболочке bash по умолчанию, вам необходимо добавить следующий фрагмент в ваш файл
~/.bashrc
.# sudo nano ~/.bashrcВ конце файла добавьте
if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
source /usr/share/powerline/bindings/bash/powerline.sh
fi
Для отображения в текущей оболочкеsource ~/.bashrcВключить Powerline для Vim
Если vim является вашим любимым редактором, то вам повезло, есть мощный плагин для vim. Чтобы включить этот плагин, добавьте эти строки в файл
~/.vimrc
.set rtp + = /usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/
set laststatus = 2
set t_Co = 256
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11✍9🔥4
Как улучшить и отладить bash/shell скрипты с помощью ShellCheck
ShellCheck – это бесплатный инструмент статического анализа с открытым исходным кодом, который можно использовать для проверки и улучшения скриптов. Он способен выделять как общие, так и граничные ошибки и предлагать соответствующие исправления.
ShellCheck может использоваться как онлайновая или системная утилита, а также может быть интегрирован в качестве линтера в различные текстовые редакторы.
В этом руководстве мы узнаем, как установить и использовать ShellCheck в некоторых наиболее распространенных дистрибутивах Linux, а также как интегрировать его в Vim и Visual Studio Code.
Прежде всего, давайте установим ShellCheck на нашу любимую систему на базе Linux.
Это очень простая задача, поскольку утилита упакована в программные репозитории наиболее используемых дистрибутивов.
Все, что нам нужно сделать, это использовать соответствующий менеджер пакетов.
На Fedora мы будем использовать dnf:
В системах на базе Debian вместо этого мы используем apt:
В Archlinux мы используем pacman:
Об использовании инструмента можете прочитать в источнике.
🖼️ Дочитать статью
🔨 bash_help
ShellCheck – это бесплатный инструмент статического анализа с открытым исходным кодом, который можно использовать для проверки и улучшения скриптов. Он способен выделять как общие, так и граничные ошибки и предлагать соответствующие исправления.
ShellCheck может использоваться как онлайновая или системная утилита, а также может быть интегрирован в качестве линтера в различные текстовые редакторы.
В этом руководстве мы узнаем, как установить и использовать ShellCheck в некоторых наиболее распространенных дистрибутивах Linux, а также как интегрировать его в Vim и Visual Studio Code.
Прежде всего, давайте установим ShellCheck на нашу любимую систему на базе Linux.
Это очень простая задача, поскольку утилита упакована в программные репозитории наиболее используемых дистрибутивов.
Все, что нам нужно сделать, это использовать соответствующий менеджер пакетов.
На Fedora мы будем использовать dnf:
sudo dnf install ShellCheck
В системах на базе Debian вместо этого мы используем apt:
sudo apt install shellcheck
В Archlinux мы используем pacman:
sudo pacman -S shellcheck
Об использовании инструмента можете прочитать в источнике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15✍3🔥2
Как использовать команду alias в Linux
Команда
Создайте псевдонимы
Проверьте список всех псевдонимов в Linux
Команда
Разберем устройство одного из псевдонимов. Например,
Как создать псевдонимы alias в Linux
Создание псевдонимов
Создание временных псевдонимов
Начнем с изучения временных псевдонимов — таких, которые будут действовать только в текущей сессии терминала командной строки. В случае его выключения после начала следующего сеанса временный псевдоним будет недоступен. Разберём синтаксис создания временного псевдонима команды с помощью инструмента
🖼️ Дочитать статью
🔨 bash_help
Команда
alias
— это удобный инструмент для тех, кто постоянно работает в командной строке. Пользователям Linux часто приходится использовать одну и ту же команду. Иногда с большим количеством опций, а также с одними и теми же аргументами. Необходимость постоянно писать их вручную снижает производительность и увеличивает шанс допустить ошибку. При правильном использовании, утилита alias
поможет Вам быстрее вводить команды, а также исправлять опечатки.Создайте псевдонимы
alias
для наиболее часто используемых команд. Псевдоним команды — это команда, состоящая из одного слова, но выполняющая другую заданную команду со всем набором опций. Механизм псевдонимов позволяет задавать более короткие или привычные имена для часто используемых команд.Проверьте список всех псевдонимов в Linux
Команда
alias
без дополнительных опций и аргументов выведет на экран весь список псевдонимов, которые используются операционной системой.Разберем устройство одного из псевдонимов. Например,
alias ll
. Этот псевдоним эквивалентен введению команды ls
с опциями -alF
. Данная команда выведет список всего содержимого директории, включая скрытые папки. Также она выделит папки другим цветом, а также пометит их при помощи косой черты (/
) после названия.Как создать псевдонимы alias в Linux
Создание псевдонимов
alias
— простой и быстрый процесс, напоминает присваивание переменной определенного значения в языках программирования. Существует два типа псевдонимов — временные и постоянные. В данной статье рассмотрим оба типа и научимся их использовать для упрощения работы с операционной системой GNU / Linux.Создание временных псевдонимов
Начнем с изучения временных псевдонимов — таких, которые будут действовать только в текущей сессии терминала командной строки. В случае его выключения после начала следующего сеанса временный псевдоним будет недоступен. Разберём синтаксис создания временного псевдонима команды с помощью инструмента
alias
:alias name="your-command"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5✍3
Как очистить историю командной строки BASH в Linux?
Основная причина удаления истории командной строки из терминала Linux состоит в том, чтобы предотвратить использование команд другим пользователем, который мог бы использовать вашу учетную запись.
Например, если вы ввели команду, содержащую пароль в виде обычного текста, и вы не хотите, чтобы другой системный пользователь или злоумышленник видели этот пароль, вам необходимо удалить или очистить файл истории.
Посмотрите на команду ниже, здесь пользователь yurii набрал пароль сервера базы данных в командной строке:
Файл bash_history обычно находится в домашнем каталоге пользователя /home/username/.bash_history:
Чтобы удалить или очистить все записи из истории bash, используйте команду history ниже с опцией -c:
В качестве альтернативы, вы можете использовать команду приведенную ниже, чтобы удалить историю всех последних выполненных команд в файле навсегда:
🔨 bash_help
Основная причина удаления истории командной строки из терминала Linux состоит в том, чтобы предотвратить использование команд другим пользователем, который мог бы использовать вашу учетную запись.
Например, если вы ввели команду, содержащую пароль в виде обычного текста, и вы не хотите, чтобы другой системный пользователь или злоумышленник видели этот пароль, вам необходимо удалить или очистить файл истории.
Посмотрите на команду ниже, здесь пользователь yurii набрал пароль сервера базы данных в командной строке:
$ sudo mysql -u root -p=MyPassЕсли вы посмотрите в конец истории файла bash, то увидите там пароль, введенный выше:
$ history
Файл bash_history обычно находится в домашнем каталоге пользователя /home/username/.bash_history:
$ cat /home/yurii/.bash_historyЧтобы удалить одну строку из файла истории, используйте параметр -d. Например, если вы хотите очистить команду, в которой вы ввели открытый текстовый пароль, как в приведенном выше сценарии, найдите номер строки в файле истории и выполните эту команду:
$ history -d 130
Чтобы удалить или очистить все записи из истории bash, используйте команду history ниже с опцией -c:
$ history -c
В качестве альтернативы, вы можете использовать команду приведенную ниже, чтобы удалить историю всех последних выполненных команд в файле навсегда:
$ cat /dev/null > ~/.bash_historyОбычный пользователь может просматривать только свою собственную историю команд, но пользователь root может просматривать историю команд всех других пользователей в системе. Всегда помните, что все команды, которые вы запускаете, записываются в файл истории, поэтому не вводите пароли в виде простого текста в командной строке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥7
Что такое $0 в скрипте Bash?
Как вы знаете, знак
Переменная $0 может быть использована в Linux двумя способами:
1. Использовать
2. Использовать
Поиск оболочки, в которую вы вошли в систему, с помощью $0
Когда
Если вы выведете значение
Использование $0 в скриптах shell
Чтобы использовать переменную
Например, здесь я буду использовать простой скрипт hello world:
Если мне нужно использовать здесь переменную
Чтобы сделать его более человекочитаемым, вы также можете использовать что-то вроде этого:
Таким образом, конечный результат будет выглядеть следующим образом:
🔨 bash_help
Как вы знаете, знак
$
в bash используется для обозначения переменных. $0
– это одна из специальных переменных, которые есть в bash, и она используется для вывода имени файла скрипта, который в данный момент выполняется.Переменная $0 может быть использована в Linux двумя способами:
1. Использовать
$0
для поиска оболочки входа в систему2. Использовать
$0
для вывода имени выполняемого скрипта.Поиск оболочки, в которую вы вошли в систему, с помощью $0
Когда
$0
не используется в скрипте, она хранит информацию о том, какую оболочку вы используете в данный момент.Если вы выведете значение
$0
, система покажет вам, в какой оболочке вы сейчас вошли в систему.Использование $0 в скриптах shell
Чтобы использовать переменную
$0
в скрипте, достаточно использовать простой оператор echo
с этой переменной, и он выведет имя файла.Например, здесь я буду использовать простой скрипт hello world:
#!/bin/bash
echo "Hello World"
Если мне нужно использовать здесь переменную
$0
, все, что мне нужно сделать, это добавить следующую строку в конце:echo $0
Чтобы сделать его более человекочитаемым, вы также можете использовать что-то вроде этого:
echo "The name of the script is: " $0
Таким образом, конечный результат будет выглядеть следующим образом:
#!/bin/bash
echo "Hello World"
echo "The name of the script is: " $0
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🔥4😐2
swap_digger
Bash-скрипт, автоматизирующий извлечение файла подкачки Linux и поиск учетных данных пользователей, адресов электронной почты, содержимого веб-форм, WiFi SSID ключей и других чувствительных данных.
🐙 Перейти на Github
🔨 bash_help
Bash-скрипт, автоматизирующий извлечение файла подкачки Linux и поиск учетных данных пользователей, адресов электронной почты, содержимого веб-форм, WiFi SSID ключей и других чувствительных данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3😐1
Утилита sshpass — автоматические действия с SFTP
В этой статье будут описаны автоматические действия с SFTP сервером. Например — передача или скачивание файлов с помощью bash скрипта.
Когда вы подключаетесь по SSH, то для подключения используете пароль или ключ. Если нет возможности настроить подключение по ключам, то остаётся использовать пароль. Но утилита ssh, с помощью которой мы подключаемся к серверу не разрешает подставлять пароль. Вместо этого она использует псевдо-терминал для ввода пароля вручную.
Это затрудняет выполнение автоматических действий, когда у вас нет возможности использовать SSH ключи. Например такая команда не работает:
Здесь даже на терминале появилось предупреждение о том, что STDIN это вам не терминал!
Для решения этой задачи придумали утилиту sshpass, которую можно установить из репозиториев:
С помощью этой утилиты можно передать пароль утилите ssh. Делается это таким способом:
Выполнение команд ftp из bash скрипта
Но в этой статье описывается sftp а не просто ssh. Поэтому подключение будет выполнятся с помощью утилиты sftp:
🖼️ Дочитать статью
🔨 bash_help
В этой статье будут описаны автоматические действия с 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>
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25✍2🔥2😐1
Как установить и включить автозаполнение команд в Bash для CentOS/RHEL?
Bash, несомненно, является самой популярной оболочкой Linux, и не удивительно, что именно это оболочка по умолчанию во многих дистрибутивах Linux. Одной из самых удобных функций этой оболочки является встроенная поддержка «автозаполнения».
Иногда это называется автозаполнением с помощью клавиши [TAB], эта функция позволяет вам легко заполнить структуру команд. Она позволяет вводить частичную команду, а затем нажимать клавишу [Tab] для автоматического завершения команды и ее аргументов. В этой функции перечислены всё множество возможных аргументов.
Как и Bash, почти все современные Linux-оболочки поставляются с поддержкой встроенных команд. В этом кратком руководстве мы покажем вам, как включить функцию автозавершения Bash в системах CentOS и RHEL.
Вот несколько основных действий, которые вы обязательно должны выполнить, чтобы упростить работу с командной строкой:
- Начальная настройка и конфигурация сервера на RHEL 7
- Начальная настройка и конфигурация сервера на CentOS 7
Во-первых, вам нужно включить репозиторий EPEL в вашей системе, а затем установить пакет автозаполнения bash и некоторые дополнительные функции, используя диспетчер пакетов YUM, таким способом:
Теперь, когда вы установили автозаполнение bash, вы должны включить его для начала работы. Сначала укажите файл
Кроме того, выйдите из текущего сеанса и повторно войдите в систему.
Теперь функция автозаполнения доступна в вашей системе, вы можете попробовать ее, как показано ниже.
Команду [TAB] также можно выполнять для имен путей и имен переменных, и эта команда помимо всего прочего еще и хорошо программируется.
🔨 bash_help
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] также можно выполнять для имен путей и имен переменных, и эта команда помимо всего прочего еще и хорошо программируется.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍8👍7🔥4