Как да пишем скриптове на bash и да улесним работата си в Linux

Разработването на скриптове на bash може да бъде много полезно за автоматизиране на рутинни задачи и улесняване на работата с операционната система Linux. В тази статия ще ви представим основните концепции и синтаксис на bash скриптове, както и пет примерни скрипта за различни задачи.

Създаване на скрипт

За да създадете скрипт на bash, трябва да създадете текстов файл с разширение ".sh". В началото на файла трябва да поставите шебанг (shebang) – #!/bin/bash – който указва на операционната система да използва bash за изпълнение на скрипта.

Променливи

В bash скриптовете можете да използвате променливи, които да съхраняват стойности. За да дефинирате променлива, използвайте следната синтаксис: variable_name=value

Условни оператори

В bash скриптовете можете да използвате условни оператори, които да проверят дали дадено условие е вярно или не. За това се използват операторите if, else и elif.

Пример:

if [ $a -gt $b ]
then
  echo "a is greater than b"
else
  echo "b is greater than a"
fi

Цикли

В bash скриптовете можете да използвате цикли, които да повтарят даден блок от код няколко пъти. За това се използват операторите for, while и until.

Пример:

for i in {1..5}
do
  echo "Number: $i"
done

Функции

В bash скриптовете можете да дефинирате функции, които да използвате повторно във вашия код. За да дефинирате функция, използвайте следната синтаксис:

function_name () {
  # code
}

Примерни скриптове:

Скрипт за копиране на файлове от една директория в друга:

#!/bin/bash

source_dir=/path/to/source/dir
destination_dir=/path/to/destination/dir

cp $source_dir/* $destination_dir

Скрипт за архивиране на файлове:

#!/bin/bash

backup_dir=/path/to/backup/dir
date=$(date +%Y-%m-%d)

tar -czvf $backup_dir/backup_$date.tar.gz /path/to/files

Скрипт за автоматично изтриване на стари файлове:

#!/bin/bash

directory=/path/to/files
days=30

find $directory -type f -mtime +$days -exec rm {} \;

Скрипт за извеждане на информация за системата:

#!/bin/bash

echo "Hostname: $(hostname)"
echo "CPU: $(grep -m1 'model name' /proc/cpuinfo | sed 's/.*: //')"
echo "Memory: $(free -h | awk '/^Mem:/ {print $2}')"
echo "Disk usage: $(df -h / | awk '/\// {print $5}')"

Скрипт за извеждане на списък с процесите, които използват най-много памет:

#!/bin/bash

ps aux --sort=-%mem | head -n 11

Тези примерни скриптове са само начало, може да ги промените и да ги адаптирате за вашите нужди. Надяваме се, че тази статия ще ви помогне да започнете да пишете свои bash скриптове и да автоматизирате вашата работа в Linux.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: