Skip to content

Latest commit

 

History

History
173 lines (128 loc) · 3.79 KB

27-87996-直接运行.sy.md

File metadata and controls

173 lines (128 loc) · 3.79 KB
show version enable_checker
step
1.0
true

直接运行

回忆上次内容

  • 我们把两个程序整合起来了
    • 可以持续输出当前时间
    • 每秒都更新

图片描述

  • 但是我想在 shell 里面
    • 只输入文件名(./sleep.py)
    • 就不断输出时间
    • 可能吗?🤔
import time
while True:
	print(time.asctime())
	time.sleep(1)

尝试执行

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

图片描述

  • 第 2 句 根据路径./找到了 sleep.py
  • 但是没有权限

观察权限

#查询sleep.py
ls -lh sleep.py
#修改权限
sudo chmod u+x sleep.py
#再次查询sleep.py
ls -lh sleep.py
  • ls 是 列出(list)当前文件夹下的所有文件
  • -lh是参数
    • l(list)
      • 代表着使用的是一行行列表的方式
      • 这样可以查出文件详细信息
        • 大小
        • 读写权限
    • h(uman readable)
      • 指的是文件大小使用k、m这种
      • 更人类可读(human readable)的方式
      • 而不是采用字节的方式
  • sleep.py
    • 指的是我们就是要查询的文件
    • 就是sleep.py
  • 查询之后什么结果呢?

列表结果

  • 注意下图红圈位置的变化
    • 从 - 到了 x
      • - 就是没有 excute 的权限
      • x 就是有了 excute 的权限

图片描述

  • chmod u+x sleep.py

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

执行

  • 和刚才不一样了
  • 确实能执行了

图片描述

  • 不过看起来不是按照python程序来执行的
  • 而是按照执行shell命令的方式执行的
  • 如何直接运行python程序呢?
    • 先搜索吧

进行搜索

图片描述

提示是这样的

图片描述

  • 总共分 3 步:
    • 第 1 步 确认python3文件位置
      • python3 好像在 /usr/bin/
    • 第 2 步 编辑文件
    • 第 3 步 运行python文件
  • 我们再确认python3的位置

python3的位置

  • 如果想要sleep.py能自动执行
    • 必须要明确这个文件的执行方式
      • python3 来执行
    • python3 在哪?
      • which python3?
      • 就是 /usr/bin 下的 python3
      • 注意 usr 不是 user

图片描述

添加文件头

  • 最上面的一句以 # 开头
#!/usr/bin/python3
import time
while True:
	print("localtime:"+time.asctime())
	time.sleep(1)
  • # 的意思是 注释
    • 这句不用执行
    • !/usr/bin/python3
      • 这个设置了当前文件(sleep.py)的执行方式

图片描述

保存并运行

  • :wq保存并退出vim

图片描述

  • ./sleep.py
    • . 指的是当前路径
    • /指的是当前路径下
  • 跳出循环的快捷键是
    • ctrl+c

总结

  • 这次总算可以把 python 文件 直接执行了
    • sleep.py文件头部要声明用的哪个解释器
      • #!/usr/bin/python3
      • 用的是 python3 解释 python代码
  • 修改 py文件 的权限
    • 给当前用户增加 执行execute 权限
      • chmod u+x sleep.py
  • 运行./sleep.py成功
    • 但我不想总带着当前路径./
  • 但我想要直接sleep.py就运行
    • 这可能么?🤪
  • 我们下次再说!👋