[oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export

简介: [oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export

 

放入路径

回忆上次内容

    • 我们要在任意路径下直接执行 sleep.py
      • sleep.py 放在 /usr/bin/ 下面
      • 最终可以在任意位置执行程序sleep.py
        • 但是
          • /usr/bin 里面放的一般都是二进制命令文件
          • 命令实在是太多太乱
          • 最终还是删除了sleep.py
            • 我想
              • 把宿主目录添加到系统变量 $PATH

                image.gif编辑

                  • 这样有可能吗?🤔
                  • 先回忆🤔
                    • 为什么无论当前路径在哪里
                    • ls都能执行

                      路径

                      image.gif编辑

                        • ls所在的路径是/usr/bin
                          • 是在系统变量$PATH中的

                            #!/usr/bin/python3

                            import time

                            while True:

                               print(time.asctime())

                               time.sleep(1)

                              • 现在只要把sleep.py
                                • 所在的文件夹目录
                                  • /home/shiyanlou
                                    • 也放到$PATH
                                    • 就可以随地调用其中的sleep.py了

                                      修改 PATH

                                      image.gif编辑

                                      #查看当前$PATH

                                      echo $PATH

                                      #设置$PATH,注意不要加空格

                                      export PATH=~:$PATH

                                      #查看更新后的$PATH

                                      echo $PATH

                                        • export PATH=~:$PATH
                                          • 前面的 PATH 不需要$
                                          • ~是当前用户 shiyanlou 的用户文件夹
                                            • 也就是/home/shiyanlou
                                              • :是分隔符号

                                                具体效果

                                                  • 注意!!!
                                                    • PATH必须大写
                                                      • $PATH$path是两回事
                                                        • 输入的时候千万注意不能使用中文标点!!!
                                                          • 包括:~都必须是英文半角

                                                              image.gif编辑

                                                                • 修改后主要是
                                                                  • 在老$PATH(黄色)之后
                                                                  • 增加了~(红色)
                                                                    • 当前用户文件夹(~)
                                                                    • 也就是shiyanlou的用户文件夹
                                                                    • /home/shiyanlou
                                                                        • 增加后的结果就是新$PATH
                                                                          • 就在蓝色方框内
                                                                              • /home/shiyanlou 下有 sleep.py
                                                                                • 这回能运行么

                                                                                  尝试运行

                                                                                    • 原来根本找不到的sleep.py

                                                                                    image.gif编辑

                                                                                      • 现在说的是权限不够
                                                                                        • 说明可以找到了
                                                                                        • 虽然由于权限问题不能运行
                                                                                          • 这说明
                                                                                            • shiyanlou的宿主目录已经进入系统路径$PATH了
                                                                                            • 只是权限不够
                                                                                            • 还是需要给当前用户执行权限

                                                                                              image.gif编辑

                                                                                                • chmod u+x sleep.py
                                                                                                  • sleep.py的owner是shiyanlou
                                                                                                  • shiyanlou就是当前用户
                                                                                                  • 给当前用户增加执行权限(execute)
                                                                                                    • 然后再尝试运行python.py

                                                                                                    成功运行

                                                                                                    image.gif编辑

                                                                                                      • sleep.py确实直接运行了!
                                                                                                        • 换个路径也可以么?🤔

                                                                                                          执行过程

                                                                                                            • 换个路径也能找到sleep.py

                                                                                                            image.gif编辑

                                                                                                              • 在内存中运行的python3
                                                                                                                • 解释执行 sleep.py
                                                                                                                • 每隔 1s 输出一次时间
                                                                                                                • ctrl+c结束进程
                                                                                                                  • 但是关闭当前终端
                                                                                                                  • 重新打开新的 xfce终端
                                                                                                                    • 这个新$PATH就失效了
                                                                                                                    • sleep.py也找不到了

                                                                                                                      image.gif编辑

                                                                                                                        • 这可怎么办呢?

                                                                                                                        重启终端过程

                                                                                                                          • 新开一个终端之后

                                                                                                                          image.gif编辑

                                                                                                                            • $PATH 就回到了最初
                                                                                                                              • 不包含/home/shiyanlou了
                                                                                                                              • 找不到 sleep.py 了
                                                                                                                                • 我希望每次新打开 terminal
                                                                                                                                  • 就自动把 $PATH 设置好
                                                                                                                                    • 应该怎么办?

                                                                                                                                    终端初始化

                                                                                                                                      • 研究一下终端的初始化过程
                                                                                                                                      • 当我们运行某个shell文件的时候
                                                                                                                                        • 首先会运行shell的rc文件
                                                                                                                                        • rc也就是 run command 配置文件
                                                                                                                                          • shiyanlou的 默认shell 是 zsh
                                                                                                                                            • 对应的 rc文件 就是 ~/.zshrc
                                                                                                                                            • 试着编辑他
                                                                                                                                            • vi ~/.zshrc
                                                                                                                                              • G到最后一行
                                                                                                                                              • o 在下方插入一个新行并进入编辑模式
                                                                                                                                              • 试着加一行输出

                                                                                                                                                  image.gif编辑

                                                                                                                                                  再新开终端

                                                                                                                                                    • 然后重新打开一个xfce终端

                                                                                                                                                    image.gif编辑

                                                                                                                                                      • 这说明新开终端的时候就会执行
                                                                                                                                                        • ~/.zshrc
                                                                                                                                                        • 因为我们默认的shell是zsh
                                                                                                                                                          • 如果默认的shell不是zsh
                                                                                                                                                            • 而是bash
                                                                                                                                                              • 会如何呢?

                                                                                                                                                              ~/.bashrc

                                                                                                                                                                • zsh对应的rc文件是~/.zshrc
                                                                                                                                                                • bash对应的 rc文件是~/.bashrc
                                                                                                                                                                  • 试着编辑他
                                                                                                                                                                  • vi ~/.bashrc
                                                                                                                                                                    • G到最后一行
                                                                                                                                                                    • o 在下方插入一个新行并进入编辑模式
                                                                                                                                                                    • 试着再加一行输出

                                                                                                                                                                        image.gif编辑

                                                                                                                                                                          • 切换shell的时候会有相应的提示

                                                                                                                                                                          image.gif编辑

                                                                                                                                                                            • 既然如此
                                                                                                                                                                            • 我们可以把export PATH=$PATH:~这句话
                                                                                                                                                                              • 放在默认的shell(zsh)的配置文件(~/.zshrc)中
                                                                                                                                                                                • 这样新每次运行zsh终端的时候
                                                                                                                                                                                  • 就自动完成路径配置
                                                                                                                                                                                  • 把~加入到$PATH的路径列表中

                                                                                                                                                                                    ~/.zshrc

                                                                                                                                                                                    # 编辑zsh的配置文件rc(run command)

                                                                                                                                                                                    vi ~/.zshrc

                                                                                                                                                                                      • 编辑这个配置文件
                                                                                                                                                                                        • 在尾行下面加一句话
                                                                                                                                                                                        • export PATH=$PATH:~
                                                                                                                                                                                        • 可能不一定是124行
                                                                                                                                                                                        • 只要是最后一行就行

                                                                                                                                                                                          image.gif编辑

                                                                                                                                                                                            • 以后只要是进 zsh
                                                                                                                                                                                              • $PATH 列表中就会包含用户文件夹~(/home/shiyanlou)
                                                                                                                                                                                                • 可是
                                                                                                                                                                                                  • 这个 ~/.zshrc 到底是啥意思

                                                                                                                                                                                                    理解rc文件

                                                                                                                                                                                                      • ~/.zshrc
                                                                                                                                                                                                        • ~ 指的是当前用户的用户宿主文件夹
                                                                                                                                                                                                          • 此配置只对当前用户(shiyanlou)有效
                                                                                                                                                                                                            • 首字母 . 说明这文件是个隐藏文件
                                                                                                                                                                                                              • ls 看不见
                                                                                                                                                                                                              • ls -a 才能看见

                                                                                                                                                                                                                  image.gif编辑

                                                                                                                                                                                                                    • zshrc
                                                                                                                                                                                                                      • zsh 指的是 当前shell是 zsh
                                                                                                                                                                                                                      • 而不是 bash
                                                                                                                                                                                                                      • bash 就得用 ~/.bashrc 进行配置
                                                                                                                                                                                                                        • 这个rc是什么意思呢?

                                                                                                                                                                                                                        rc

                                                                                                                                                                                                                          • rc 指的是 run commands 的缩写
                                                                                                                                                                                                                            • 运行程序
                                                                                                                                                                                                                            • 很多东西在配置 shell 的时候不用重复手动运行
                                                                                                                                                                                                                            • 写到 rc 里面
                                                                                                                                                                                                                            • 启动 shell 或者软件的时候就可以批量处理了
                                                                                                                                                                                                                              • ~/.zshrc
                                                                                                                                                                                                                              • ~/.vimrc
                                                                                                                                                                                                                              • ~/.bashrc

                                                                                                                                                                                                                                  image.gif编辑

                                                                                                                                                                                                                                    • 这个初始化程序对于新建的终端窗口是好用的
                                                                                                                                                                                                                                      • 但是还得重启一下zsh才能应用
                                                                                                                                                                                                                                        • 我想要就在当前的zsh下运行一把~/.zshrc
                                                                                                                                                                                                                                        • 可以么?

                                                                                                                                                                                                                                        运行当前zsh的初始化文件

                                                                                                                                                                                                                                          • 运行~/.zshrc配置文件
                                                                                                                                                                                                                                            • source ~/.zshrc
                                                                                                                                                                                                                                            • 这就是手动执行执行~/.zshrc
                                                                                                                                                                                                                                              • 或者直接运行zsh也可以

                                                                                                                                                                                                                                              image.gif编辑

                                                                                                                                                                                                                                                • 执行之后
                                                                                                                                                                                                                                                  • 路径就设置好了

                                                                                                                                                                                                                                                    总结

                                                                                                                                                                                                                                                      • 这次修改了 $PATH 路径
                                                                                                                                                                                                                                                        • 把当前用户shiyanlou的宿主文件夹 ~
                                                                                                                                                                                                                                                          • 添加到 $PATH
                                                                                                                                                                                                                                                            • 这样 sleep.py 就可以被找到
                                                                                                                                                                                                                                                            • 于是就可以被执行了
                                                                                                                                                                                                                                                              • 还可以把配置 $PATH 的脚本
                                                                                                                                                                                                                                                                • 放到 zsh的配置文件(~/.zshrc) 中
                                                                                                                                                                                                                                                                • 配置 ~/.zshrc 就可以
                                                                                                                                                                                                                                                                  • 设置 zsh 环境下默认的 $PATH
                                                                                                                                                                                                                                                                      • 在当前路径运行 sleep.py
                                                                                                                                                                                                                                                                        • python 程序第 1 行
                                                                                                                                                                                                                                                                          • 声明打开方式为 python3
                                                                                                                                                                                                                                                                            • /usr/bin/python3
                                                                                                                                                                                                                                                                              • 从硬盘调用到内存
                                                                                                                                                                                                                                                                                • 成为一个进程
                                                                                                                                                                                                                                                                                  • 不断输出时间
                                                                                                                                                                                                                                                                                    • ctrl+c结束进程

                                                                                                                                                                                                                                                                                          image.gif编辑

                                                                                                                                                                                                                                                                                            • 我想看到 python3 这个进程
                                                                                                                                                                                                                                                                                              • 可能吗?🤔
                                                                                                                                                                                                                                                                                                相关文章
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                21天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                机器学习/深度学习 人工智能 算法
                                                                                                                                                                                                                                                                                                猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
                                                                                                                                                                                                                                                                                                宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
                                                                                                                                                                                                                                                                                                221 55
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                18天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                Unix Linux 程序员
                                                                                                                                                                                                                                                                                                [oeasy]python053_学编程为什么从hello_world_开始
                                                                                                                                                                                                                                                                                                视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
                                                                                                                                                                                                                                                                                                102 80
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                9天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                存储 缓存 监控
                                                                                                                                                                                                                                                                                                局域网屏幕监控系统中的Python数据结构与算法实现
                                                                                                                                                                                                                                                                                                局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
                                                                                                                                                                                                                                                                                                102 66
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                25天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                人工智能 C语言 Python
                                                                                                                                                                                                                                                                                                [oeasy]python051_什么样的变量名能用_标识符_identifier
                                                                                                                                                                                                                                                                                                本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
                                                                                                                                                                                                                                                                                                113 69
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                27天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                Python
                                                                                                                                                                                                                                                                                                [oeasy]python050_如何删除变量_del_delete_variable
                                                                                                                                                                                                                                                                                                本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
                                                                                                                                                                                                                                                                                                111 68
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                30天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                机器学习/深度学习 人工智能 算法
                                                                                                                                                                                                                                                                                                【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
                                                                                                                                                                                                                                                                                                宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
                                                                                                                                                                                                                                                                                                159 29
                                                                                                                                                                                                                                                                                                【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                7天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                Python
                                                                                                                                                                                                                                                                                                [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
                                                                                                                                                                                                                                                                                                本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
                                                                                                                                                                                                                                                                                                29 14
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                2天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                安全 前端开发 数据库
                                                                                                                                                                                                                                                                                                Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
                                                                                                                                                                                                                                                                                                这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                2天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                存储 Python
                                                                                                                                                                                                                                                                                                [oeasy]python056_python中下划线是什么意思_underscore_理解_声明与赋值_改名字
                                                                                                                                                                                                                                                                                                在Python中,下划线有多种用途。单下划线(_)常用于避免命名冲突,如将`max`改为`max_`以保留内置函数功能。双下划线(__var__)通常用于特殊方法和属性,如`__name__`、`__doc__`等。此外,单下划线(_)在交互式解释器中表示上一次表达式的值,但不建议作为普通变量名使用。总结:下划线用于避免命名冲突及特殊标识。
                                                                                                                                                                                                                                                                                                9 1
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                11天前
                                                                                                                                                                                                                                                                                                |
                                                                                                                                                                                                                                                                                                存储 算法 Python
                                                                                                                                                                                                                                                                                                文件管理系统中基于 Python 语言的二叉树查找算法探秘
                                                                                                                                                                                                                                                                                                在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
                                                                                                                                                                                                                                                                                                43 5