[oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export
放入路径
回忆上次内容
我们要在任意路径下直接执行
sleep.py- 把
sleep.py放在/usr/bin/下面 - 最终可以在任意位置执行程序
sleep.py
- 把
但是
/usr/bin里面放的一般都是二进制命令文件- 命令实在是太多太乱
- 最终还是删除了sleep.py
我想
- 把宿主目录添加到系统变量
$PATH中
- 把宿主目录添加到系统变量
编辑
- 这样有可能吗?
先回忆
- 为什么无论当前路径在哪里
- ls都能执行
路径
编辑
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
编辑
#查看当前$PATH
echo $PATH
#设置$PATH,注意不要加空格
export PATH=~:$PATH
#查看更新后的$PATH
echo $PATH
export PATH=~:$PATH
- 前面的 PATH 不需要$
~是当前用户 shiyanlou 的用户文件夹
- 也就是/home/shiyanlou
- :是分隔符号
具体效果
注意!!!
PATH必须大写$PATH和$path是两回事
输入的时候千万注意不能使用中文标点!!!
- 包括:~都必须是英文半角
编辑
修改后主要是
- 在老$PATH(黄色)之后
增加了~(红色)
- 当前用户文件夹(~)
- 也就是shiyanlou的用户文件夹
- /home/shiyanlou
增加后的结果就是新$PATH
- 就在蓝色方框内
/home/shiyanlou 下有 sleep.py
- 这回能运行么
尝试运行
- 原来根本找不到的sleep.py
编辑
现在说的是权限不够
- 说明可以找到了
- 虽然由于权限问题不能运行
这说明
- shiyanlou的宿主目录已经进入系统路径$PATH了
- 只是权限不够
- 还是需要给当前用户执行权限
编辑
chmod u+x sleep.py
- sleep.py的owner是shiyanlou
- shiyanlou就是当前用户
- 给当前用户增加执行权限(e
xecute)
- 然后再尝试运行python.py
成功运行
编辑
sleep.py确实直接运行了!
- 换个路径也可以么?
执行过程
- 换个路径也能找到sleep.py
编辑
在内存中运行的python3
- 解释执行
sleep.py - 每隔 1s 输出一次时间
- ctrl+c结束进程
- 解释执行
- 但是关闭当前终端
重新打开新的
xfce终端- 这个新$PATH就失效了
- sleep.py也找不到了
编辑
- 这可怎么办呢?
重启终端过程
- 新开一个终端之后
编辑
$PATH 就回到了最初
- 不包含/home/shiyanlou了
- 找不到 sleep.py 了
我希望每次新打开
terminal- 就自动把
$PATH设置好
- 就自动把
- 应该怎么办?
终端初始化
- 研究一下终端的初始化过程
当我们运行某个shell文件的时候
- 首先会运行shell的rc文件
- rc也就是 run command 配置文件
shiyanlou的 默认shell 是 zsh
- 对应的 rc文件 就是 ~/.zshrc
- 试着编辑他
vi ~/.zshrc
- G到最后一行
- o 在下方插入一个新行并进入编辑模式
- 试着加一行输出
编辑
再新开终端
- 然后重新打开一个xfce终端
编辑
这说明新开终端的时候就会执行
- ~/.zshrc
- 因为我们默认的shell是zsh
如果默认的shell不是zsh
- 而是bash
- 会如何呢?
~/.bashrc
- zsh对应的rc文件是~/.zshrc
bash对应的 rc文件是~/.bashrc
- 试着编辑他
vi ~/.bashrc
- G到最后一行
- o 在下方插入一个新行并进入编辑模式
- 试着再加一行输出
编辑
- 切换shell的时候会有相应的提示
编辑
- 既然如此
我们可以把export PATH=$PATH:~这句话
- 放在默认的shell(zsh)的配置文件(~/.zshrc)中
这样新每次运行zsh终端的时候
- 就自动完成路径配置
- 把~加入到$PATH的路径列表中
~/.zshrc
# 编辑zsh的配置文件rc(run command)
vi ~/.zshrc
编辑这个配置文件
- 在尾行下面加一句话
export PATH=$PATH:~- 可能不一定是124行
- 只要是最后一行就行
编辑
以后只要是进 zsh
- $PATH 列表中就会包含用户文件夹~(/home/shiyanlou)
可是
- 这个
~/.zshrc到底是啥意思
- 这个
理解rc文件
~/.zshrc
~ 指的是当前用户的用户宿主文件夹
- 此配置只对当前用户(shiyanlou)有效
首字母
.说明这文件是个隐藏文件- ls 看不见
- ls -a 才能看见
编辑
zshrc
- zsh 指的是 当前shell是 zsh
- 而不是 bash
- bash 就得用 ~/.bashrc 进行配置
- 这个rc是什么意思呢?
rc
rc 指的是
run commands的缩写- 运行程序
- 很多东西在配置 shell 的时候不用重复手动运行
- 写到 rc 里面
启动 shell 或者软件的时候就可以批量处理了
- ~/.zshrc
- ~/.vimrc
- ~/.bashrc
编辑
这个初始化程序对于新建的终端窗口是好用的
- 但是还得重启一下zsh才能应用
- 我想要就在当前的zsh下运行一把~/.zshrc
- 可以么?
运行当前zsh的初始化文件
运行~/.zshrc配置文件
- source ~/.zshrc
- 这就是手动执行执行~/.zshrc
- 或者直接运行zsh也可以
编辑
执行之后
- 路径就设置好了
总结
这次修改了
$PATH路径把当前用户shiyanlou的宿主文件夹
~- 添加到
$PATH中
- 添加到
- 这样
sleep.py就可以被找到 - 于是就可以被执行了
还可以把配置
$PATH的脚本- 放到
zsh的配置文件(~/.zshrc) 中 配置
~/.zshrc就可以- 设置
zsh环境下默认的$PATH
- 设置
- 放到
在当前路径运行
sleep.py在
python程序第 1 行- 声明打开方式为 python3
把
/usr/bin/python3从硬盘调用到内存
成为一个进程
- 不断输出时间
- ctrl+c结束进程
编辑
我想看到
python3这个进程- 可能吗?
- 下次再说
- 蓝桥->oeasy 教您玩转 python_Python - 蓝桥云课
- github->GitHub - overmind1980/oeasy-python-tutorial: 良心的 Python 教程,面向零基础初学者简明易懂的 Python3 入门基础课程。在linux+vim生产力环境下,从浅入深,从简单程序学到网络爬虫。可以配合蓝桥云上实验环境操作。
- gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
- 视频->[oeasy]教您玩转python零基础学python入门教程(合集)_哔哩哔哩_bilibili 作者:oeasy
[oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export的更多相关文章
- 织梦系统如何设置URL绝对路径及绝对路径的好处
今天,和大家分享下织梦系统如何设置URL绝对路径及绝对路径的好处,我的一些就是用的织梦系统,感觉织梦在SEO优化方面做的还是非常好的,至少在CMS系统中应该是做的最出色的吧!下面,我就先来讲下这个织梦 ...
- [记]Windows 系统下设置Nodejs NPM全局路径
Windows下的Nodejs npm路径是appdata,担心安装的node_modules越来越多,导致C盘满,所以参考别人的博文,将node_modules安装的默认目录修改一下. 参考Wind ...
- [WinAPI] API 12 [获取程序所在的目录、程序模块路径,获取和设置当前目录]
Windows系统提供一组API实现对程序运行时相关目录的获取和设置.用户可以使用GetCurrentDirectory和SetCurrentDirectory获取程序的当前目录,获取模块的路径使用G ...
- Cookie (设置与读取、超时设置、指定路径、显示用户上次登录时间)
Cooike简介 Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式.Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的 ...
- Xcode 中的相对路径与绝对路径的相关设置
近日闲来无事,与博客园中闲荡,忽至一烟霞照耀祥瑞蒸熏松竹翠秀奇花遍开的神奇之地.如此美景,令人心生向往,故而徜徉于其中不可自拔,独乐乐不如众乐乐: iOS开发之 相对路径与绝对路径 https://d ...
- spring MVC项目中,欢迎页首页根路径到底是怎么设置的
0. 问题: 如何改mvc中项目的欢迎页,或者叫做根路径 一个东西快弄完了,就剩下一个问题,应该是个小问题.就是mvc项目的欢迎页,怎么给改下呢. 这个项目是通过mvn建立的,整个项目的原型就是spr ...
- 设置Eclipse的workspace路径
首次启动Eclipse/MyEclipse时, 会弹出"Workspace Launcher"对话框, 提示设置Workspace路径. 设定好路径后, 若勾选了"Use ...
- Innosetup 设置文件的相对路径
在使用innosetup自动化打包的过程中,如果打包配置文件要随代码一起提交,则需要将打包文件改为相对路径,以便在其它端也可以直接打包,而不需要再次修改文件路径参数. 添加自动化打包文件 1. 添加b ...
- 用node.js express设置路径后 子路径下的页面访问静态资源路径出问题
在routes/news_mian.js 设置了访问news_main.html 的路径 '/',通知设置一个访问news-page.html的子路径'/newspage'子路径.但是在访问loacl ...
- Springboot实体类转JSON报错Could not find acceptable representation & 设置访问项目根路径的默认欢迎页面
=================实体类转JSON报错的解决办法============= 之前在springmvc的时候也报过这个错,原因以及springmvc中解决办法参考:https://www ...
随机推荐
- 流式响应Web小工具实践
作为一位拥有多年经验的老程序员,我对于提升Web应用性能和用户体验有些兴趣.今天,我要和大家聊聊一个非常实用的技术--流式响应(Streaming Response). 首先,流式响应到底是什么呢?简 ...
- 网页唤起qq加群
今天在网上大浪淘沙了一番,90%的教程都是使用的鹅厂官方的加群组件,但是有个致命bug就是这个加群组件只能唤起自己创建的群,这就很尴尬了,后来偶然发现在qq群资料那边就可以直接获取到加群的链接,害得我 ...
- webpack 路径别名与导入后缀省略
// 解析模块的规则 resolve: { // 配置解析模块路径别名:优点简写路径,缺点路径没有提示 alias: { // 定义一个@变量,可在import引入时使用 '@': path.reso ...
- CF1900D - Small GCD 题解
1900D - Small GCD 给定序列 \(A\),定义 \(f(a, b, c)\) 为 \(a, b, c\) 中最小的次小的数的 \(\gcd\),求: \[\sum_{i = 1}^n ...
- 算法学习笔记(35): CMD Tree
对于 CMD Tree 的理解 原文:# 一种轻量级平衡树 这,EXSGT,感觉很像支持分裂 WBLT,但是相对来说思路很简单. 首先,在原文中说了: 能以均摊 \(\Theta(\log n)\) ...
- 剑指Offer-50.数组中重复的数字(C++/Java)
题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为7 ...
- 2024-06-08:用go语言,给定三个正整数 n、x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋。 在这座城市中,房屋通过街道相连。对于每个编号i(1 <= i < n), 存在一条
2024-06-08:用go语言,给定三个正整数 n.x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋. 在这座城市中,房屋通过街道相连.对于每个编号i(1 <= i < n) ...
- Semantic Kernel入门系列:通过依赖注入管理对象和插件
前言 本章讲一下在Semantic Kernel中使用DependencyInject(依赖注入),在之前的章节我们都是通过手动创建Kernel对象来完成框架的初始化工作,今天我们用依赖注入的方式来实 ...
- work11
1,简述String类中的equals方法与Object类中的equals方法的不同点. /* Object 类 1,它是所有类的一个根类 2,其他类默认继承Object类 常用方法: 1,toStr ...
- BC5-牛牛学说话之-字符
题目描述 会说浮点数之后,牛牛开始尝试字符.输入一个字符,输出这个字符. 输入描述 输入一个字符,范围在 ascii 范围内 输出描述 输出这个字符 示例 1 输入:a 输出:a 解题思路 方案一 字 ...