我设置了一个别名
alias nano='nano -B'
以便在文件更改时始终进行备份。
/home/<USER>/.bashrc
我在和 中都这样做过/root/.bashrc
。
如果我使用,它会起作用
nano someFile
要么作为,<USER>
要么root
。
但是当我使用
sudo nano someFile
因为<USER>
没有备份。(我希望someFiles~
在同一个文件夹中找到)
我还需要添加其他.bashrc
内容吗?sudo
alias
答案1
您的用户 ID 别名不能通过sudo
您可能想或不想使用评论中链接的技巧。
可能有理由不使用别名或使用其他别名
root
。这些别名可以存储在您已经知道的位置。它们可以在您在 root 提示符下
/root/.bashrc
以交互方式运行时使用#
sudo -i # activates root's aliases
但在命令行中跟上别名时它们不会被激活
sudo -i <specific alias> # does not activate root's aliases
sudo -H <specific alias> # does not activate root's aliases
例子:
$ LANG=C sudo -i
root@xenial32:~# alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
root@xenial32:~# grep -e ^alias -e \ alias /root/.bashrc
# enable color support of ls and also add handy aliases
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
使用 的root
别名之一
root@xenial32:~# l
bin@ extractor.log logfile.tar mkusb.log
root@xenial32:~# exit
logout
sudodus@xenial32 ~ $ LANG=C sudo -i l
-bash: l: command not found
[127] sudodus@xenial32 ~ $ LANG=C sudo -H l
sudo: l: command not found
[1] sudodus@xenial32 ~ $ LANG=C sudo -i alias
sudodus@xenial32 ~ $
我不会使用,alias sudo='sudo -i'
因为
存在风险,您可能会忘记自己拥有超级用户权限,并可能执行只能使用普通权限执行的操作。换句话说,我认为这违背了
sudo
始终进入 root 提示符的目的别名在命令行上不起作用
sudo -i <specific alias>
sudo
使用文本模式命令的标准设置通常很有效对于 GUI 命令我建议
sudo -H
或gksudo