Skip to content

Latest commit

 

History

History
209 lines (155 loc) · 4.62 KB

243-87996-直接运行_修改py文件执行权限_设置py文件打开方式.sy.md

File metadata and controls

209 lines (155 loc) · 4.62 KB
show version enable_checker
step
1.0
true

直接运行

回忆上次内容

  • 上次循环输出了当前时间
    • 循环用的是while循环
    • 延时用的是time.sleep(1)
    • 输出用的是time.asctime()
import time
while True:
	print(time.asctime())
	time.sleep(1)
  • python3 sleep.py可以运行程序

图片描述

  • 想直接只输入文件名(./sleep.py)
    • 不输入python3
      • 就运行sleep.py

图片描述

  • 可以吗?🤔

尝试执行

  • 第 1 次
    • 根本没有找到 sleep.py

图片描述

  • 第 2 次
    • 依靠的是 相对路径路径./
    • 找到了 sleep.py
    • 其中 . 代表的是当前目录
      • /home/shiyanlou/
    • 这才能找到 sleep.py
  • 虽然找到了文件
    • 但是 没有权限
  • 要想办法 观察到
    • 文件的权限

观察权限

  • ls 命令
    • 列出(list)当前文件夹下的
      • 所有文件

图片描述

  • ll 是 一个别名 alias

    • 相当于ls -lh
  • 这个-lh是什么意思呢?

-lh 细节

  • -lh是 选项(option)
    • l(ist)
      • 代表着 使用的是 一行行列表的方式
      • 可以查出 文件详细信息
        • 大小
        • 读写权限
    • h(uman readable)
      • 指的是 文件大小使用k、m这种
        • 更人类可读(human readable)的方式
      • 而不是采用字节数量的方式

图片描述

  • sleep.py 是参数(arguement)
    • 就是 刚编写的 循环报时文件
  • 查询之后 什么结果 呢?

ll结果

  • 确实没有可执行权限
    • 见下图中第一个红框
      • 里面是一个 -

图片描述

  • 从 - 到了 x

    • - 就是没有 excute 的权限
    • x 就是有了 excute 的权限
  • chmod u+x sleep.py

    • chmod
      • change 改变
      • mode 状态位 mode bits
    • u+x
      • user 当前用户组
      • +x增加 excute 的权限
    • sleep.py
      • 需要改变权限的文件
  • 这回能执行了么?

执行

  • 和刚才报错不一样了
    • 虽然还是报错
    • 但已经进了一大步
    • 哈哈!

图片描述

  • 好像系统
    • 不知道这是个py文件
    • 而是 按照执行shell命令的方式 执行的
  • 如何 让shell知道
    • 这是个 py程序
      • 需要用python3打开呢?
  • 先 搜索 吧

搜索

图片描述

提示

图片描述

  • 总共分 3 步:
    • 第 1 步 找到解释器的位置
      • 解释器 也就是运行sleep.pypython3
      • python3 才是 sleep.py 正确的打开方式
    • 第 2 步 编辑文件
      • 设置 文件 第一行
        • 自动 用/usr/bin/python3打开
    • 第 3 步 直接运行py文件
  • 先做第一步

python3的位置

  • python3 在哪?
    • which python3?

图片描述

  • python3 就在 /usr/bin

添加文件头

  • 编辑 sleep.py
    • sleep.py 第一行
      • 设置文件自动打开方式为
        • /usr/bin/python3
  • 最上面的一句以 # 开头
    • # 的意思是 注释
    • 这句不用解释执行
#!/usr/bin/python3
import time
while True:
	print(time.asctime())
	time.sleep(1)
  • ! 意味着执行外部命令
    • 具体哪个外部命令
      • /usr/bin/python3
  • 这样就设置了当前文件(sleep.py)的执行方式

图片描述

  • 准备运行
    • :wq保存并退出vim

保存并运行

  • 依然键入 ./sleep.py 尝试运行
    • ./ 指的是当前路径下

图片描述

  • 执行成功!!!
    • 🤪
  • 跳出循环的快捷键仍然是
    • ctrl+c

总结

  • 这次把 ./sleep.py 直接执行了
    • sleep.py文件头部
      • #!/usr/bin/python3
      • 声明了 自身的 打开方式
        • python3 来打开
  • 修改 sleep.py的 权限
    • 给当前用户 增加 执行(execute)权限
      • chmod u+x sleep.py
  • ./sleep.py运行成功
    • 总带着当前路径./ 还是麻烦
  • 想要 只输入sleep.py回车
    • 就自动运行
  • 这可能么?🤪
  • 我们下次再说!👋