Написание скриптов на языке Bash — хороший способ автоматизировать выполнение операций в Linux. С помощью сценариев пользователи могут создавать резервные копии, отслеживать сообщения в лог-файлах, управлять процессами и многое другое.
В этой статье мы покажем два примера скриптов Bash, которые помогут ускорить организацию каталогов и сгенерировать сложные пароли в операционной системе Linux.
Содержание:
Сценарий Bash для организации каталогов в Linux
Организация каталогов подразумевает структурирование и управление ими в файловой системе. Она включает в себя разработку иерархии папок, определение правил для их названий и размещения файлов.
Давайте напишем скрипт Bash, в задачи которого входит:
- переименование файлов;
- поиск файлов;
- организация каталогов.
Код сценария Bash для выполнения этих задач представлен ниже:
Читайте также: Использование оператора case в скриптах Bash.
Подробнее разберем код:
echo "Утилита для управления файлами"и последующие строки сecho— команды, которые выводят текст на экран, представляя пользователю меню утилиты и варианты операций.read -p "Введите ваш выбор: " choice— команда, которая считывает ввод пользователя, сохраняя его в переменнойchoice.case $choice in ... esac— конструкция оператораcase, позволяющая выбрать соответствующую ветку кода в зависимости от значения переменнойchoice.- Внутри каждой ветки
case:1),2),3),4)— метки, указывающие на выбор (опцию) пользователя;read -p ...— строки, которые считывают ввод пользователя, если он выбирает определенную операцию;mv ...— командаmvиспользуется для перемещения (опция 3) или переименования (опция 1) файлов;if [ -e "$filename" ]; then ... fi— конструкция if-else, которая ищет файл (опция 2) с помощью оператора-e(он возвращает истину, если файл существует);cd ...— команда для перехода в каталог, который пользователь выбирает для организации (опция 3);mkdir -p ...— утилита для создания папок (в данном случае, она используется для создания директорийImages,DocumentsиVideosвнутри указанного каталога);echo "..."— команды, которые выводят сообщения об успешном выполнении операций.
exit— команда, которая завершает выполнение скрипта.*)— метка оператораcaseдля случая, когда пользователь вводит что-то кроме 1, 2, 3 или 4. В этом случае выводится сообщение о неверном выборе.
Посмотрим, как работает данный скрипт.
Организация каталога
Допустим, в нашей ОС Linux есть папка /home/user/123. Выведем на экран ее содержимое с помощью команды ls -l:
На скриншоте выше видно, что в каталоге есть файлы форматов *.jpg, *.pdf и *.mp4. С помощью показанного скрипта можно организовать их в папки Images, Documents и Videos. Для этого:
- запустим скрипт;
- выберем опцию 3;
- введем путь к каталогу
/home/user/123.
На скриншоте показано, что в каталоге появились новые папки, которые содержат соответствующие файлы.
Переименование объектов в файловой системе
Далее попробуем переименовать каталог /home/user/123 с помощью нашего скрипта. Чтобы это сделать, выполним следующие действия:
- запустим скрипт;
- выберем опцию 1;
- введем текущее название каталога —
/home/user/123; - введем новое название каталога —
/home/user/myfolder.
Читайте также: 15 примеров команды ls в Linux.
На скриншоте видно, что папка /home/user/123 получила новое указанное название.
Поиск объектов в файловой системе
Наконец, давайте попробуем найти в файловой системе каталоги /home/user/123 и /home/user/myfolder. Для этого:
- запустим скрипт;
- выберем опцию 2;
- введем путь к каталогу для поиска.
Как показано на скриншоте, скрипт не смог найти папку /home/user/123, но нашел /home/user/myfolder. Это также подтверждает, что мы ранее успешно переименовали директорию.
Сценарий Bash для создания паролей
Основная цель создания паролей заключается в обеспечении безопасности аккаунтов и информации. Сложные пароли обычно содержат комбинацию букв (как заглавных, так и строчных), цифр и специальных символов. Они также часто имеют большую длину, что делает их еще более надежными.
Взломщики паролей часто используют атаки перебора (или метод «грубой силы», от англ. brute force) или словарные атаки (от англ. dictionary attack), пытаясь угадать пароли на основе распространенных слов или паттернов. Сложные пароли существенно усложняют этот процесс.
Ниже представлен код скрипта, который позволяет генерировать сложные пароли:
Читайте также: Как создать, зашифровать, расшифровать пароли в Linux.
Этот скрипт на языке Bash генерирует случайный пароль на основе указанных пользователем критериев:
read -p "Введите длину пароля: " length— команда, которая запрашивает у пользователя желаемую длину пароля и сохраняет введенное значение в переменнуюlength.read -p "Включить заглавные буквы? (y/n): " uppercaseи последующие строки сread -p— команды, которые запрашивают у пользователя включение заглавных или строчных букв, цифр, специальных символов в пароль и сохраняют введенные значения в соответствующие переменные.chars="..."— переменная, содержащая все символы, которые будут использоваться для генерации пароля в зависимости от выбора пользователя.- Операторы
ifпроверяют ввод пользователя для каждого типа символов и добавляют соответствующий набор знаков в значение переменнойchars, если пользователь выбираетy. password=$(tr -dc "$chars" < /dev/urandom | head -c "$length")— конструкция команд, которая генерирует случайный пароль, используя утилиты:trдля удаления символов, не входящих в указанный набор ($chars) из вывода/dev/urandom(файла, который предоставляет случайные данные);headдля ограничения длины пароля ($length).
echo "Сгенерированный пароль: $password"— выводит на экран значение переменнойpassword, в которой хранится созданный пароль.
Используя данный скрипт, сгенерируем два пароля с такими параметрами:
- Первый:
- длина 10 символов;
- включает только заглавные буквы и цифры.
- Второй:
- длина 15 символов;
- включает строчные и заглавные буквы, цифры и специальные символы.
На скриншоте выше видно, что мы получили два пароля с заданными параметрами.
Важно: если Вы хотите создать пароль с небольшим количеством знаков, то скрипт может не включить в него некоторые выбранные символы.
Выводы
Показанные сценарии Bash позволят Вам быстрее управлять объектами в файловой системе Linux, а также создавать сложные пароли для защиты аккаунтов или информации. Надеемся, что эта статья была полезной для Вас!
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.































