上次总算可以把 sleep.py
直接执行了
sleep.py文件头部要声明好打开方式
#!/usr/bin/python3
python3
解释 sleep.py
修改 sleep.py
文件 的执行权限
给当前用户增加 执行execute
权限
运行./sleep.py
成功
./
我想要直接输入sleep.py
回车就自动运行
#显示当前路径 echo $PATH
echo $PATH
$
: 说明这是一个 环境变量
PATH
: 能直接运行程序的路径
$PATH 里面有什么?
路径
:
分隔开这些路径下的命令都可以直接执行
回忆一下无论我们在哪个目录下
ls #ls 命令在哪 whereis ls # 从路径直接执行ls /usr/bin/ls #ls 详细信息 ls -lh /usr/bin/ls
ls 是 /usr/bin下面的一个可执行文件
/usr/bin
在 $PATH
的路径列表里
/usr/bin
下 的 ls
就能直接执行/usr/bin/
ls
就能直接执行而且不论当前路径在哪个路径下
ls
命令都能直接执行但是
$PATH
中没有/usr/bin
ls
了ls
也不能执行了将PATH清空
没有了$PATH
到桌面上重新打开一个新的xfce终端(terminal)
只要如果命令所在路径在 $PATH
路径下面
比如我有两个不同版本的mc服务器
这两个启动的位置不同
类似的需求很多
python3
就在/usr/bin/
下面python3
和 ls
都在 /usr/bin/
下面/usr/bin
的含义
usr
bin
路径中包含 python3
所在的路径
/usr/bin
无论当前路径在什么位置
只要输入 python3
$PATH
里面从前往后找在 /usr/bin
当中找到了python3
/usr/bin
中找到的 python3
只要这个路径 /usr/bin
在 $PATH
中
/usr/bin
目录中搜索命令sleep.py
拷贝到 /usr/bin
不就能被找到了么?首先得明确
sleep.py
在哪里呢?pwd
当前路径就在 ~
/home/shiyanlou
shiyanlou的
用户文件夹我们的系统都是多用户的
#把文件拷贝过去 cp sleep.py /usr/bin #用管理员权限给考过去 sudo cp ./sleep.py /usr/bin #尝试执行 sleep.py #为当前用户增加可执行权限 chmod u+x /usr/bin/sleep.py #使用管理员权限提权 sudo chmod u+x /usr/bin/sleep.py #尝试执行 sleep.py #尝试用管理员执行 sudo sleep.py
但前提还是
如果不清楚ls参数作用的话
python之外
sleep.py这个文件
当前用户不能直接执行
回忆一下拷贝的时候
只能提权进行拷贝
/usr/bin
#使用管理员权限提权 sudo chmod a+x /usr/bin/sleep.py #尝试执行 sleep.py
a+x 意思是
a
ll users 都增加x
ecute 的权限不同位置的x含义不同
/usr/bin
下面/usr/bin
下面文件
sleep.py
从 /usr/bin
中删除掉#先把/usr/bin下面的sleep.py删掉 rm /usr/bin/sleep.py #不让删就用管理员权限删 sudo rm /usr/bin/sleep.py #确认删除 ls /usr/bin/sleep.py
我希望 sleep.py
我们要在任意路径下直接执行 sleep.py
sleep.py
放在 /usr/bin/
下面sleep.py
但是
/usr/bin
里面放的一般都是二进制命令文件我想
$PATH
中