Linux下执行一些命令前加sudo时出现command not found的原因
来源:互联网 发布:淘宝店铺所在地修改 编辑:程序博客网 时间:2024/05/16 17:39
当我们用sudo来执行cd、ls等命令时,会出现command not found的提示:
我们知道在执行Linux命令时,如果在其前面加上sudo,就表示以root权限执行。但是这其实是有一个前提的,就是只有那些Linux内置系统命令才可以用如此的形式来执行,而对于Shell内置命令或其他用户自定义命令、别名等,是不能用sudo来使用root权限的。为什么呢?详细说一下sudo幕后隐藏的过程才能明白。
所在这个shell进程中(称其为PP,表示parent process)fork出一个子进程(称其为CP,表示child process),那么在CP中是无法改变PP的所在目录的。
- sudo cd /home/michael
- sudo: command not found
我们知道在执行Linux命令时,如果在其前面加上sudo,就表示以root权限执行。但是这其实是有一个前提的,就是只有那些Linux内置系统命令才可以用如此的形式来执行,而对于Shell内置命令或其他用户自定义命令、别名等,是不能用sudo来使用root权限的。为什么呢?详细说一下sudo幕后隐藏的过程才能明白。
因为当在Linux下用sudo执行某一命令时,是在原进程(parent process)的基础上fork出来一个子进程(child process),这个子进程是以root权限执行的。然后在子进程中,执行你在sudo后面跟的命令。
在子进程中是无法调用涉及到父进程的状态的一些命令的,所以非系统内置命令会被拒绝。这就是为什么会出现command not found的提示。具体来说,当我们执行:
- sudo cd /home/michael
所在这个shell进程中(称其为PP,表示parent process)fork出一个子进程(称其为CP,表示child process),那么在CP中是无法改变PP的所在目录的。
- sudo ls /home/michael
sudo后由PP产生了CP,CP是无法获取PP所在的目录的内容的。
原文链接:http://blog.csdn.net/poechant
0 0
- Linux下执行一些命令前加sudo时出现command not found的原因
- Linux下执行一些命令前加sudo时出现command not found的原因
- Linux下执行一些命令前加sudo时出现command not found的原因
- Linux下执行一些命令前加sudo时出现command not found的原因
- Linux下执行一些命令前加sudo时出现command not found的原因
- Linux sudo一些命令出现 command not found 的原因
- 执行sudo命令时command not found的解决办法
- 执行sudo命令时command not found的解决办法
- 执行sudo命令时command not found的解决办法
- Linux下unzip命令出现 command not found的解决办法
- Linux useradd命令执行,出现 bash:useradd:command not found
- 执行命令出现command not found
- Linux下执行useradd命令添加用户时提示:"command not found"
- sudo执行提示Command not found
- 执行sudo报错command not found
- linux下终端sudo java提示“command not found”解决办法
- linux下su和sudo的区别 (/libtool: arm-linux-gcc command not found )
- linux下su和sudo的区别 (/libtool: arm-linux-gcc command not found )
- 关于javaScript变量的注意点
- LeetCode Longest Substring Without Repeating Characters
- 【Java】【jquery】ajax乱码问题
- UIViewController与UIWebView通过JavaScript进行交互
- android通过反射获取内置外置存储器列表
- Linux下执行一些命令前加sudo时出现command not found的原因
- LeetCode: Implement strStr()
- 仿射变换
- 【转】数据类型长度
- springmvc+springjpa+hibernate整合简例
- 在VS2010中删除代码中的空行?
- 【GO初试】端口扫描器
- linux下svn常用指令
- CoreGraphics