使用python脚本生成unix别名

使用python脚本生成unix别名,python,bash,unix,Python,Bash,Unix,我想制作一个python脚本(.py),制作一个UNIX别名,在程序运行后可以访问该别名。我该怎么做 我试过这个: #!/usr/bin/python import os os.system('alias cdd="cd ~/Desktop/"') alias命令的作用域是在其中运行的shell。当该shell退出并启动新的shell时,它将不会定义别名 为shell提供持久定制的方式是使用在shell首次启动时运行的shell脚本。例如,bash将运行.bash\u profile和.b

我想制作一个python脚本(.py),制作一个UNIX别名,在程序运行后可以访问该别名。我该怎么做

我试过这个:

#!/usr/bin/python

import os

os.system('alias cdd="cd ~/Desktop/"')

alias
命令的作用域是在其中运行的shell。当该shell退出并启动新的shell时,它将不会定义别名

为shell提供持久定制的方式是使用在shell首次启动时运行的shell脚本。例如,bash将运行
.bash\u profile
.bashrc
中的一个或两个,具体取决于调用方式和其他本地配置。请参阅您感兴趣与之交互的shell的文档,以了解它如何处理此问题的所有具体细节

如果希望对shell进行持久的配置更改,则需要修改shell的启动脚本

os.system
运行shell并告诉shell运行您提供的命令。然后外壳退出。因此,使用
os.system
运行
alias
命令基本上无法实现任何有用的功能

下面是一个示例,说明如何调整bash配置以持久定义别名:

with open(expanduser("~/.bashrc"), "at") as bashrc:
    bashrc.write(
        "\n"
        "# Added by myprogram on somedate\n"
        "alias cdd='cd ~/Desktop/'\n"
    )

您应该为用户正在使用的shell打开正确的文件,然后将别名附加到该文件中。是的,将其写入.bashrc?您可以解释一下我如何做到这一点吗?您只是在shell中定义了
os.system
生成的别名,该别名会立即退出。必须从源代码(未执行)的shell脚本而不是Python(或Perl、Ruby或任何其他语言)脚本执行此操作。
bash
本身永远不会同时运行
.bash\u profile
.bashrc
,但是
.bash\u profile
通常被配置为显式地源代码
.bashrc
。我的计算机上没有bashrc文件或bash\u profile文件。那我能做什么?做一个。阅读有关这些文件的bash文档。