Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

软链接的使用,以 python 举例

2024-09-02 1 min read Linux Ronan

在 macOS 上创建和使用软链接(symbolic link)的操作非常实用,特别是在管理不同版本的 Python 时。以下是一些关于创建和使用软链接的方法,以 pythonpython3 为例。

1. 什么是软链接(Symbolic Link)?

软链接是一种特殊的文件,指向另一个文件或目录。它类似于 Windows 系统中的快捷方式。软链接允许你使用不同的名称来访问相同的文件或目录。

2. 创建软链接

使用 ln -s 命令创建软链接。以下是几个例子:

示例 1: 将 python 指向 python3

假设你的 python3 可执行文件位于 /usr/local/bin/python3,你想让 python 命令指向 python3

sudo ln -sf /usr/local/bin/python3 /usr/local/bin/python
  • -s 表示创建软链接。
  • -f 表示如果目标文件已存在,强制覆盖。

示例 2: 为自定义路径创建软链接

如果你安装了一个自定义版本的 Python,例如在 /opt/python3.9/bin/python3.9,你想创建一个软链接 python3 来指向它:

sudo ln -s /opt/python3.9/bin/python3.9 /usr/local/bin/python3

这会让 /usr/local/bin/python3 指向你自定义路径下的 Python 3.9。

3. 验证软链接

创建软链接后,可以使用 ls -l 命令来验证:

ls -l /usr/local/bin/python
ls -l /usr/local/bin/python3

输出结果应该类似于:

Continue reading

「python」查看或切换当前解释器

2024-09-02 1 min read Linux Ronan

查看系统中所有安装的 Python 解释器

which -a python python3

这会列出系统路径中找到的 python 和 python3 解释器的位置:

❯ which -a python python3

python not found
/usr/bin/python3
/opt/homebrew/bin/python3

-a 选项确保显示所有匹配的路径,而不仅仅是第一个。

确定系统上当前正在使用的 Python 解释器

which python
which python3

这将显示出系统当前 python 和 python3 命令指向的实际路径。

切换系统上当前正在使用的 Python 解释器

有以下几种方式,根据需要选择

1.更新 PATH 环境变量

根据你使用的 Shell 类型,打开相应的配置文件。例如,对于 zsh 用户,编辑 ~/.zshrc 文件;对于 bash 用户,编辑 ~/.bash_profile 或 ~/.bashrc 文件。
确保 /usr/bin 在 PATH 变量中位于其他 Python 解释器路径之前。例如,将 /usr/bin 放在最前面:

export PATH="/usr/bin:/opt/homebrew/bin:$PATH"

注意:在这行之后不能有任何关于/opt/homebrew/bin:$PATH的环境变量设置,先后顺序不能乱,因为shell配置文件从上往下执行。如果不,则切换设置不生效

2.使用 alias 命令

在~/.zshrc 或 ~/.bashrc 中添加以下设置

Continue reading

shell 文本、字符串处理

2024-09-02 1 min read Linux Ronan

1、字符串切片

${变量:偏移量:截取长度}

--------------------------example
[192.168.2.230] - root@ubuntu20.04.5-template:/ root
$ MYPATH=' /usr/bin/wget'

[192.168.2.230] - root@ubuntu20.04.5-template:/root
$ echo ${MYPATH: 4:4}
/bin     			  #其会左向右从第四位向后取四位(字符串第一位为0)

[192.168.2.230] - root@ubuntu20.04.5-template:/ root
$ echo ${MYPATH: -4}  #这会右向左从末尾向前取四位,「-4和冒号之间要有一个空格」

2、基于模式取子串

${var#*word} 其中word可以是指定的任意字符,自左而右,删除字符串开头至第一次出现word字符之间的所有字符。

${var##*word}
其中word可以是指定的任意字符,自左而右,删除字符串开头至最后一次出现word字符之间的所有字符。

${var%sword*}
其中word可以是指定的任意字符,自右而左,删除字符串尾部至第一次出现word字符之间的所有字符。

${var%%sword*}
其中word可以是指定的任意字符,自右而左,删除字符串尾部至最后一次出现word字符之间的所有字符

3、查找删除

${var/匹配文本}
删除第一次匹配到的内容

${var//pattern}
删除所有匹配到的内容

${var/#pattern}
删除行首匹配到的内容

${var/%pattern}
删除行尾匹配到的内容

4、查找替换

${var/匹配文本/替换文本}
替换第一次匹配到的内容

${var//匹配文本/替换文本}
替换所有匹配到的内容

${var/#匹配文本/替换文本}
行首匹配时替换行首

${var/%匹配文本/替换文本}
行尾匹配时替换行尾
Older posts Newer posts