sudo cd和sudo ll命令报错问题
最近有朋友问我,为什么sudo cd 和sudo ll登录命令有如下提示:
sudo: ll: command not found
sudo: cd: command not found
而运行其他命令,如sudo ls等即可正常运行。
简单的来说,可以这样理解,sudo只能执行系统自带命令,而不能执行其他程序所带的命令。如ll、cd等均是shell所带的。
sudo 是一种程序,用于提升用户的权限,在linux中输入sodu就是调用这个程序提升权限,shell是一个命令解析器,sudo cd是错误的,因为cd是shell内置的,不是系统里面的,sudo可以运行系统带的命令,但无法用系统中一个软件中的命令。
cd是shell的内部命令。所谓shell是一个交互式的应用程序。shell执行外部命令的 时候,是通过fork/exec叉一个子进程,然后执行这个程序。sudo的意思是,以别人的权限叉起一个进程,并运行程序。而cd是内部命令,也就是说,是直接由shell运行的,不叉子进程。你在当前进程里当然不能提升进程的权限(其实也可以,不过得编程的时候写到代码里,然后再编译,而我们的 shell没有这个功能,否则岂不是太危险了?)
相关推荐
changecan 2020-11-19
sunnnyduan 2020-10-16
lonesomer 2020-09-17
houdaiye 2020-09-23
XPZ0 2020-09-22
changecan 2020-09-22
jackadmi 2020-09-11
yuan00yu 2020-08-24
yserver 2020-08-15
liyansring 2020-08-15
liai 2020-08-09
山有木兮卿有意 2020-08-03
85206633 2020-07-28
suosuo 2020-07-28
83911930 2020-07-28
85590296 2020-07-22
liym 2020-07-20