一般来说,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'
审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
原文标题:sudo后使用别名
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
相关推荐
编辑 .bashrc文件,该文件主要用于保存一些个性化的设置,如命令别名、路径等。
发表于 10-25 15:53
•460次阅读
;__f")));官方指出 f()是 __f()的 弱 别名。我的疑惑是:给函数起一个别名是什么作用?什么样的情况下需要写这种语句?强 和 弱又代表什么?
发表于 03-24 04:25
)的命令,按F1就会直接弹出帮助。CAD命令别名则有所不同,命令别名输入后会出现在命令行,需要按回车键确认才能执行,比如输入L后,不按回车键的话是不会有任何动作的,按回车键后才会执行直
发表于 06-05 17:18
位带及位带别名区的关系:位带是指在存储区中可以按位操作的地带;位带别名区(Bit Band Alias)是指存储区的另一个区域,该区域中的每1个字与位带中的1个位一一对应。对位带区的1个位的操作
发表于 08-10 06:05
要使用你创建的 Bash 别名,你需要将其添加到 .bash_profile 中,该文件位于你的家目录中。请注意,此文件是隐藏的,并只能从命令行访问。编辑此文件的最简单方法是使用 Vi 或 Nano 之类的东西。
发表于 10-16 15:00
•2553次阅读
- 用户列表或已经设置的用户别名。host_list - 主机列表或用户可以在其上运行 sudo 的主机别名。effective_user_list - 以该用户或别名运行的用户列表
发表于 04-02 14:48
•1024次阅读
udo命令允许您以其他用户身份运行命令与程序,默认是root用户。如果您是个命令行用户,那么sudo是您将经常使用的命令之一。
发表于 12-09 17:46
•1688次阅读
sudo命令允许您以其他用户身份运行命令与程序,默认是root用户。如果您是个命令行用户,那么sudo是您将经常使用的命令之一。
发表于 12-09 17:47
•4518次阅读
对于那些不喜欢 sudo 并觉得它臃肿的人,可以尝试使用几种 sudo 替代方法。 sudo 可能是最常用的 Linux 命令之一。它允许您在 Linux 机器上获得管理或提升的权限。 您通常需要
发表于 01-06 10:54
•1187次阅读
Linux 下面有两个概念可能大家接触的比较多,一个是 sudo 命令,还有一个是 root 账户。Sudo 命令可以以最高权限执行命令,而 root 账户下所有命令都有最高权限,也就是相当于所有命令都默认加了 sudo。
发表于 03-29 09:17
•788次阅读
在 Linux 系统中,有两个常用的命令用于切换用户身份和执行特权操作,它们分别是 su 和 sudo。虽然它们都可以实现权限提升,但在使用方式、安全性和适用场景等方面存在一些区别。本文将介绍 su 和 sudo 命令的区别,以帮助用户正确选择和使用这两个命令。
发表于 08-14 14:14
•166次阅读
sudo-rs项目则是用 Rust 编写的 sudo 和 su 的、面向安全和内存安全的实现。官网声明中显示,sudo-rs 目前仅针对基于 Linux 的操作系统;运行 sudo-r
发表于 09-01 15:59
•523次阅读
sudo rm -rf 是一个linux的命令行命令,用于在系统中删除文件和目录。sudo表示以管理员权限运行该命令。
发表于 10-24 18:25
•1284次阅读
USBCAN分析仪是一种用于分析和监控USB总线通信的设备。它可以捕获和解析USB数据传输,帮助开发人员诊断和解决USB通信问题。根据不同的厂商和市场,USBCAN分析仪可能会有一些别名和相关术语
发表于 10-28 16:20
•353次阅读
创建设备别名 需要创建设备别名原因: 在运行一个ros程序的时候需要提供一个端口名,这个端口名一般是ttyUSBx,设备每次插拔对应的这个端口名它都会不一样,需要创建一个设备别名,就是要将这个端口
发表于 11-17 18:07
•373次阅读
评论