Terminal Productivity: Полезни алиаси и shell скриптове за ежедневието

Terminal Productivity: Полезни алиаси и shell скриптове за ежедневието

Здравейте, приятели! Аз съм ентусиаст на командния ред и обичам да оптимизирам работния си процес. Днес искам да споделя с вас как терминалът може да стане ваш най-добър приятел. Тази статия е за полезни алиаси и shell скриптове. Те спестяват време в ежедневието. Ако сте разработчик, системен администратор или просто любител на Linux, ще намерите идеи тук. Нека започнем!

Защо терминалът увеличава продуктивността?

Представете си терминалът като швейцарско ножче. Той е бърз, гъвкав и мощен. За разлика от графичните интерфейси, командният ред позволява автоматизация. Един алиас може да замени дълга команда. Shell скриптът решава сложни задачи с един ред. Според мен, това е като да карате колело вместо да ходите пеша. По-бързо стигате до целта.

В ежедневието губим минути в повторяеми действия. Алиасите и скриптовете ги елиминират. Те са вечни – работят на Bash, Zsh или Fish. Аз ги използвам ежедневно. Вие също можете.

Тази статия ще ви вдъхнови да експериментирате. Споделете в коментарите вашите любими трикове!

Защо алиаси и shell скриптове?

Първо, какво представляват алиасите и shell скриптовете?

  • Алиас е просто кратко име за дълга и сложна команда. Той ви спестява писане и намалява грешки.
  • Shell скрипт е малка програма, изпълнима в командния ред. Той автоматизира задачи и събира няколко команди в един файл.

Защо са важни в ежедневието? Представете си това: всеки ден изпълнявате едни и същи дълги команди или работите с голям брой файлове. Вместо да пишете по няколко думи, един алиас може да ви даде същия резултат с 2-3 букви. Или пък скрипт може да ви помогне да организирате комплексни операции с едно изпълнение.


Как да създадем алиаси

Повечето шел среди като bashzsh и fish поддържат алиаси.

Пример за алиас:

alias gs='git status'

Сега всяко въвеждане на gs ще изпълни git status.

Ако искате алиасите да са постоянни, добавете ги във файла .bashrc или .zshrc.

echo "alias gs='git status'" >> ~/.bashrc
source ~/.bashrc

Полезни алиаси за дневна употреба

Ето няколко мои любими алиаси, които ще ви спестят време:

1. Навигация в директории

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias c='clear'

Тези алиаси правят навигацията по-бърза. Вместо да пишете cd ../../.., просто напишете .....

2. Работа с git

alias g='git'
alias ga='git add'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph --decorate'

Тези съкращения съкращават много от типичните git команди. Например, gl ви показва подреден и удобен изглед на логовете.

3. Docker алиаси:

alias dps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Image}}\t{{.Ports}}"'
alias dpa='docker ps -a'
alias dst='docker start'
alias dsp='docker stop'
alias drm='docker rm'
alias drma='docker rm $(docker ps -aq)'        # премахва всички контейнери
alias dex='docker exec -it'                    # docker exec -it  bash
alias dsh='docker exec -it $(docker ps -q | head -n1) bash'  # shell в първия работещ контейнер
alias dlf='docker logs -f'
alias dlogs='docker logs --tail=100 -f'
alias dlogt='docker logs --since=1h -f'        # последния 1 час

4. Системни и мрежови операции

# Грешката "port already in use" е честа. Този алиас я решава.
alias killport="lsof -ti tcp:8080 | xargs kill"

# Презареждане на конфигурацията на shell-а
alias reload="source ~/.zshrc"

# Ясно показване на публичния IP адрес
alias myip="curl http://ifconfig.me"

# Подобрена версия на 'ps' за търсене на процеси
alias psg="ps aux | grep -v grep | grep -i"

5. Информационни алиаси

alias h='history'
alias j='jobs -l'
alias psg='ps aux | grep'
alias dfh='df -h'
alias duh='du -h --max-depth=1'

Тези команди ви дават бърза информация за системата и процесите.


Магията на Shell скриптовете (Автоматизация на задачи)

Ако алиасите са съкратени команди, то скриптовете са цели програми от команди. Те са файлове, съдържащи поредица от инструкции, които shell-ът може да изпълни.

Какво представлява един прост shell скрипт?

Ето един прост пример, който архивира дадена директория:

#!/bin/bash
tar -czvf backup_$(date +%F).tar.gz /path/to/directory

Запишете го като backup.sh, направете го изпълним с:

chmod +x backup.sh

и го стартирайте:

./backup.sh

Това ще създаде архив с текущата дата в името. Представете си колко по-лесно е, отколкото да пишете цялата команда всеки път.


Примери за полезни shell скриптове

 Скрипт за бързо публикуване на GitHub

Вместо да пишете 4 команди всеки път, когато качвате код, напишете един скрипт deploy.sh:

#!/bin/bash

echo "=== Качване на код в GitHub ==="

# Добавя всички променени файлове
git add .
# Прави къмит със съобщение, подадено като първи аргумент на скрипта ($1)
git commit -m "$1"
# Избутва къмита в главния клон
git push origin main

echo "--- Готово! ---"

Изпълнявате го с: ./deploy.sh "Моето описание на промените"

Бърза проверка на състоянието на системата ви.

#!/bin/bash

echo "=== СИСТЕМЕН РЕПОРТ ==="
echo "Дата и час: $(date)"
echo
echo "=== Дисково пространство ==="
df -h | grep -E "Filesystem|disk1s1"
echo
echo "=== Свободна памет ==="
vm_stat | perl -ne '/page size of (\d+)/ and $size=$1; /Pages free:\s*(\d+)/ and printf("Свободна памет: %.2f MB\n", $1 * $size / 1000000);'
echo
echo "=== Най-активни процеси ==="
ps aux | sort -nrk 3,3 | head -n 5

Този скрипт комбинира няколко команди в един ясен отчет.


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

#!/bin/bash

# Проверява дали е подаден аргумент за търсене
if [ -z "$1" ]; then
    echo "Грешка: Моля, предоставете име на файл или част от име за търсене."
    echo "Употреба: $0 <име_на_файл>"
    exit 1
fi

search_term=$1
echo "Търсене на файлове с име, съдържащо '$search_term' в текущата директория и поддиректории..."
echo "--------------------------------------------------------"

# Използва командата find за търсене на файлове
find . -type f -iname "*$search_term*"

echo "--------------------------------------------------------"
echo "Търсенето приключи."

За да го стартирате, използвайте името му и подайте като аргумент търсената дума:

./search_file.sh "име_на_файла"

Например, ако искате да намерите всички файлове, които съдържат „report“ в името си, използвайте:

./search_file.sh "report"

Скриптът ще покаже пътя до всеки файл, който отговаря на търсенето.

Как да имплементирате собствена библиотека от алиаси и скриптове?

Ползата идва от постоянството и персонализацията. Ето няколко съвета:

  1. Създайте файл, например ~/.my_aliases, където съхранявате всички алиаси.
  2. В .bashrc или .zshrc добавете:
if [ -f ~/.my_aliases ]; then
    source ~/.my_aliases
fi

За скриптове използвайте директория като ~/bin. Уверете се, че е в $PATH.

export PATH=$PATH:~/bin

Алиаси и скриптове – съвети и добри практики

  • Назовете алиасите кратко, но описателно.
  • Избягвайте конфликти с вече съществуващи команди.
  • Пишете коментари в скриптовете.
  • Правете скриптовете изпълними и ги добавяйте в PATH.
  • Тествайте всяка промяна в отделна сесия.
  • Обновявайте библиотеките си периодично.

Защо тази практика е evergreen?

Областта на командния ред е вечна. Нови инструменти идват и си отиват, но силата на базовите команди остава. Алиасите и скриптовете са като умни автопълнители, които винаги ще ви спестяват време.

Това е навик, който не остарява, а само се развива. Винаги ще създавате нови алиаси и скриптове, които са адаптирани към вас и работата ви.


Заключение

Работата с терминала става по-ефективна с добре обмислени алиаси и shell скриптове. Те ви пестят време, намаляват грешки, и внасят автоматизация във всекидневието. Не е нужно да сте напреднал системен администратор, за да започнете.

Започнете от малки алиаси, после изградете собствена библиотека от скриптове. Споделяйте с общността и черпете вдъхновение.

Командният ред е ваш партньор, не враг.


Ако имате любими алиаси или скриптове, които ви помагат, споделете ги! Така помагаме всички един на друг да работим по-умно.


Пожелавам ви приятно и продуктивно ползване на терминала!

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

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

е DevOps технологичен ентусиаст с опит в Linux, Docker, Kubernetes и CI/CD. Той споделя практични ръководства и анализи, които помагат на специалистите да изграждат по-добри и ефективни системи. На devopsbg.net Федя предоставя актуални и полезни насоки за автоматизация, сигурност и оптимизация на инфраструктурата.

Един коментар

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 7 - 3 ? (въведете числото)