У меня есть следующие псевдонимы в /etc/profile.
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
alias startapache="/usr/local/Cellar/httpd22/2.2.29/bin/apachectl start"
alias stopapache="/usr/local/Cellar/httpd22/2.2.29/bin/apachectl stop"
alias ll='ls -lG'
Я просто добавил последние три псевдонима. Теперь, когда я делаю
sudo su: Я не получаю эти псевдонимы.
sh-3.2# startapache
sh: startapache: command not found
, но когда я не сушу, я получаю эти псевдонимы (это оболочка bash) , Но он не запускает apache.
local:~ 112019$ startapache
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Чтобы сделать эти псевдонимы доступными для root, вы можете поместить их в /root/.bash_aliases.
Однако, если вам просто нужно запустить эти псевдонимы как root у своего пользователя, вы можете просто поместите их в ~/.bash_aliases и добавьте sudo в начале каждой команды alias:
alias startapache="sudo /usr/local/Cellar/httpd22/2.2.29/bin/apachectl start"
alias stopapache="sudo /usr/local/Cellar/httpd22/2.2.29/bin/apachectl stop"
alias ll='sudo ls -lG'
Также я этого не заметил сначала, но используя ll как псевдоним для [ f9] подавляло бы поведение dealult ll alias, если оно установлено в /root/.bash_profile, и если установлено в ~/.bash_profile, где оно задано как псевдоним ls -la: так, если вы не хотите перегружать псевдоним ll поведение для пользователя, в котором вы добавите эти псевдонимы, вы должны изменить его имя на что-то другое, например к lg:
alias lg='sudo ls -lG'