Bash автоматизация за бърз достъп до WordPress проекти

Ако управлявате множество WordPress инсталации на един сървър, вероятно ви е писнало от постоянното изписване на дълги пътища като cd /var/www/wordpress-site-name/wp-content/plugins. В тази статия ще споделя един прост, но изключително ефективен метод за светкавичен достъп до вашите проекти чрез Bash функция и интелигентно автодопълване (autocomplete).
Проблемът
Когато работите ежедневно с 5, 10 или повече сайта, навигацията се превръща в "когнитивен товар". Дори и да използвате историята на командите, пак трябва да филтрирате резултатите. Целта ни е да стигнем до директорията на плъгините на конкретен сайт само с една кратка команда.
Решението: Скриптът wps
Този скрипт прави две неща:
- Функция
wps: Прехвърля ви директно в папката с плъгини на избрания сайт. - Autocomplete: Позволява ви да натиснете
Tab, за да видите списък с всички налични сайтове, без да ги помните наизуст.
Пълният код
Добавете следния код във вашия ~/.bashrc или ~/.zshrc файл:
# === WordPress Sites Quick Access ===
# 1. Дефиниране на основната директория
# Променете този път според вашата структура (напр. /var/www)
WPS_BASE="/root/saitove"
# 2. Основна функция за навигация
wps() {
local SITE="$1"
# Проверка за подаден аргумент
if [[ -z "$SITE" ]]; then
echo "Използване: wps <име-на-сайт>"
return 1
fi
# Път до директорията (базиран на конвенцията wordpress-име)
local TARGET_DIR="$WPS_BASE/wordpress-$SITE/wp-content/plugins"
if [[ -d "$TARGET_DIR" ]]; then
cd "$TARGET_DIR" || return
echo "Намирате се в: $(pwd)"
else
echo "Грешка: Сайтът или директорията не съществуват: $TARGET_DIR"
return 1
fi
}
# 3. Функция за автоматично допълване (Autocomplete)
_wps_autocomplete() {
local cur="${COMP_WORDS[COMP_CWORD]}"
# Проверка дали базата съществува
if [[ ! -d "$WPS_BASE" ]]; then
return 0
fi
# Генериране на списък чрез премахване на префикса "wordpress-"
local sites=$(ls "$WPS_BASE" 2>/dev/null | grep "^wordpress-" | sed 's/^wordpress-//')
COMPREPLY=( $(compgen -W "$sites" -- "$cur") )
}
# Свързване на функцията за допълване с командата wps
complete -F _wps_autocomplete wps
# === END WordPress Quick Access ===
Как работи системата?
1. Конвенция над конфигурацията
Скриптът разчита на това, че вашите папки са именувани по модела wordpress-име. Това е добра практика, която поддържа сървъра подреден.
2. Динамично допълване
Вместо да описвате всеки сайт ръчно в скрипта, функцията _wps_autocomplete сканира директорията $WPS_BASE в реално време.
- Ако добавите нова папка
wordpress-shop, тя веднага ще стане достъпна презwps sho [TAB].
3. Обработка на грешки
Скриптът проверява дали директорията съществува, преди да се опита да влезе в нея, което предотвратява досадни съобщения за грешка от самата операционна система.
Инсталация в 3 стъпки
Отворете конфигурационния файл на вашия терминал:
nano ~/.bashrcПоставете кода в края на файла и запазете (Ctrl+O, Enter, Ctrl+X).
Презаредете конфигурацията:
source ~/.bashrcЗащо това е полезно?
- Скорост: Намалявате времето за навигация с около 80%.
- Фокус: Не прекъсвате мисловния си процес, за да си спомняте точното име на папката.
- Гъвкавост: Можете лесно да промените пътя
wp-content/pluginsнаwp-content/themesили просто в основната папка на сайта, ако предпочитате.
Съвет: Ако работите по проекти, които не са WordPress, можете да адаптирате скрипта, като просто промените префикса и целевата директория. Автоматизацията е най-добрият приятел на програмиста!



