努力在 CentOS8 中打开新终端时添加别名
Struggling to add alias at open new terminal in CentOS8
因此,当打开新的 bash window 但我保留 运行 时,我试图为 运行 两个 python 脚本创建一个别名宁陷入奇怪的问题。如果我在终端 window 中手动创建别名,没问题:
alias UserPasswordReset="python3 /bin/Admin.py"
alias SystemFileCheck="python3 /bin/SystemFileCheck.py"
如果我手动创建一个名为aliasfile.sh的文件并将其放在/etc/profile.d/中,当然第一行是#!/bin/bash,打开新文件时没有问题终端别名在那里并且可以工作。
所以问题来了,如果我预先创建文件并将其复制到 /etc/profile.d/ 目录中,即使文件的内容完全相同,我也会得到奇怪的结果。如果我将文件更改为与其中的其他文件相同,则没有任何区别。这是我得到的输出
不确定这里发生了什么或我做错了什么,这应该是一件很简单的事情。
您必须使用 . aliasfile.sh
获取文件来源。并删除 shebgang 行 (#!/bin/bash
),否则别名将仅用于脚本。
如果您希望别名对每个用户自动可用,您必须在一些全局初始化文件中添加定义,该文件将自动生成。
这里的问题是您需要 interactive shells 的别名,而 interactive shells 的规则有点棘手。来自手册页:
当bash作为交互式登录被调用时shell,它首先读取并执行命令
来自文件 /etc/profile,如果该文件存在。当启动不是登录 shell 的交互式 shell 时,bash 从 ~/.bashrc 读取并执行命令,如果该文件存在的话。
因此,您必须在 /etc/profile
中获取 aliasfile.sh
。但这仅涵盖第一种情况。例如,如果用户打开交互式非登录 shell,他仍然看不到定义。由于不允许破解用户的主目录,因此最好告诉每个用户也添加一个
. /path/to/setup/directory/aliasfile.sh
在他的 ~/.bashrc
.
因此,当打开新的 bash window 但我保留 运行 时,我试图为 运行 两个 python 脚本创建一个别名宁陷入奇怪的问题。如果我在终端 window 中手动创建别名,没问题:
alias UserPasswordReset="python3 /bin/Admin.py"
alias SystemFileCheck="python3 /bin/SystemFileCheck.py"
如果我手动创建一个名为aliasfile.sh的文件并将其放在/etc/profile.d/中,当然第一行是#!/bin/bash,打开新文件时没有问题终端别名在那里并且可以工作。
所以问题来了,如果我预先创建文件并将其复制到 /etc/profile.d/ 目录中,即使文件的内容完全相同,我也会得到奇怪的结果。如果我将文件更改为与其中的其他文件相同,则没有任何区别。这是我得到的输出
不确定这里发生了什么或我做错了什么,这应该是一件很简单的事情。
您必须使用 . aliasfile.sh
获取文件来源。并删除 shebgang 行 (#!/bin/bash
),否则别名将仅用于脚本。
如果您希望别名对每个用户自动可用,您必须在一些全局初始化文件中添加定义,该文件将自动生成。
这里的问题是您需要 interactive shells 的别名,而 interactive shells 的规则有点棘手。来自手册页:
当bash作为交互式登录被调用时shell,它首先读取并执行命令 来自文件 /etc/profile,如果该文件存在。当启动不是登录 shell 的交互式 shell 时,bash 从 ~/.bashrc 读取并执行命令,如果该文件存在的话。
因此,您必须在 /etc/profile
中获取 aliasfile.sh
。但这仅涵盖第一种情况。例如,如果用户打开交互式非登录 shell,他仍然看不到定义。由于不允许破解用户的主目录,因此最好告诉每个用户也添加一个
. /path/to/setup/directory/aliasfile.sh
在他的 ~/.bashrc
.