一般來說,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文章
1187瀏覽量
30581 -
Shutdown
+關注
關注
0文章
20瀏覽量
50599
原文標題:sudo后使用別名
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
CAD快捷鍵與CAD命令別名的區別
位帶及位帶別名區的關系
在 Linux 中運行 sudo 命令不需要密碼
如何解決sudo與重定向的權限拒絕的問題
如何使用sudo命令以及選項
值得考慮的4個最佳Linux sudo命令替代方案
Linux中root和sudo的用法與區別
Linux命令su和sudo的區別
首個Rust版sudo發布!

什么是sudo rm -rf?為什么這個命令如此危險?
ROS主控如何創建設備別名

微軟正式發布適用于Windows的Sudo

評論