Для Bash вы можете использовать функцию Bash Completion. Установите пакет bash_completion из вашего дистрибутива. Есть хорошие шансы, что у вас уже будет завершение для скриптов /etc/init.d. Если нет, вы можете прочитать, как сделать завершение самостоятельно в сети. Вот одна ссылка.
Другой способ - использовать предопределенные функции, подобные этим:
if [[ ${EUID} == 0 ]] ; then # available only for root user
# rc scripts managing
rc() { /etc/init.d/$*; }
complete -o filenames -W "$(cd /etc/init.d/ && echo *)" rc
rc-start() { for arg in $*; do rc $arg start; done }
rc-restart() { for arg in $*; do rc $arg restart; done }
rc-stop() { for arg in $*; do rc $arg stop; done }
rc-status() { for arg in $*; do rc $arg status; done }
fi
Здесь вы можете использовать команду rc
для вызова сценариев init.d, таких как: rc apache2 start
. Это будет переводиться в /etc/init.d/apache2 start
. У команды также есть автозаполнение для файлов в вашем каталоге init.d
, т.е. когда вы наберете : rc apa[TAB]
оно автоматически завершится до rc apache2
.
Другие короткие команды для удобства: rc-start apache2
будет вызывать rc apache2 start
и, следовательно, /etc/init.d/apache2 start
Изменить: вы можете изменить путь /etc/init.d на /etc/rc.d, если ваш дистрибутив использует rc.d для сервисов.