一般来说,sudo会忽略通过.bashrc文件、.bash_aliases文件或者alias命令设置的别名命令(aliased commands)。
比如,我们经常将ll用作ls -lh命令的别名。然后,我们输入ll,终端将会返回一个关于当前目录的长列表。但是,当我们输入sudo ll时,终端将会返回:
$sudoll
=>sudo:ll:commandnotfound
解决方案
我们给shutdown命令创建一个别名,当普通用户运行的时候尝试输入这个别名去关机,我们可以看到系统不会关机。想要运行/sbin/shutdown需要root权限,然而sudo会完全忽略shutdown的这个别名。解决办法是,我们需要添加另一个别名:
aliassudo='sudo'
sudo后面的那个空格将会告诉bash,去检查跟在空格后面的命令是否也是一个别名。bash手册(通过man bash查看)上面是这么描述的:
If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion. 如果别名值的最后一个字符是空格,将会检查”跟在别名后的下一个命令”是否也是别名扩展。
下面是我机器.bash_aliases文件中的一些别名设置:
#Shortcuts
aliasll='ls-lh'
aliasla='ls-lhA'
aliasl='ls'
aliasc='clear'
aliasx='exit'
aliasq='exit'
#Don'trunshutdownifrtorrentisrunning-aslongasthere'sascreenwith"tor"initsname,shutdownwon'trun(unlessyoucall/sbin/shutdown,orunaliasit)
aliasshutdown='/home/james/scripts/safe.shutdown.sh'
#Whenusingsudo,usealiasexpansion(otherwisesudoignoresyouraliases)
aliassudo='sudo'
审核编辑 :李倩
-
终端
+关注
关注
1文章
1160浏览量
30064 -
Shutdown
+关注
关注
0文章
20浏览量
50528
原文标题:sudo后使用别名
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
CAD快捷键与CAD命令别名的区别
位带及位带别名区的关系
在 Linux 中运行 sudo 命令不需要密码
如何解决sudo与重定向的权限拒绝的问题
如何使用sudo命令以及选项
值得考虑的4个最佳Linux sudo命令替代方案
Linux中root和sudo的用法与区别
Linux命令su和sudo的区别
首个Rust版sudo发布!
![首个Rust版<b class='flag-5'>sudo</b>发布!](https://file1.elecfans.com/web2/M00/A1/43/wKgZomTxmmmAWUIHAAAGMumvpgw935.png)
什么是sudo rm -rf?为什么这个命令如此危险?
ROS主控如何创建设备别名
![ROS主控如何创建设备<b class='flag-5'>别名</b>](https://file1.elecfans.com/web2/M00/AE/E5/wKgaomVXOb6AWBxvAABKnGt2XHs643.jpg)
微软正式发布适用于Windows的Sudo
![微软正式发布适用于Windows的<b class='flag-5'>Sudo</b>](https://file1.elecfans.com/web2/M00/C4/EA/wKgZomX46KuADcLrAAAuXLn2AbA511.png)
评论