我正在使用一个我是普通用户(非 sudo)的服务器。
我通过访问服务器ssh
。
以下是在服务器上运行的一些命令的输出:
[username@machinename: ~]$ ps -p $$
PID TTY TIME CMD
1332818 pts/55 00:00:00 bash
[username@machinename: ~]$ echo $$SHELL
1332818SHELL
[username@machinename: ~]$ echo $-
himBHs
[username@machinename: ~]$ uname
Linux
[username@machinename: ~]$ uname -v
#1 SMP Thu May 11 07:38:47 EDT 2023
[username@machinename: ~]$ uname -r
4.18.0-372.57.1.el8_6.x86_64
[username@machinename: ~]$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.6 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.6 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.6"
用户名和机器名被隐藏。
这是操作系统信息:
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: RedHatEnterprise
Description: Red Hat Enterprise Linux release 8.6 (Ootpa)
Release: 8.6
Codename: Ootpa
通常要在 Ubuntu/Linux 上添加别名,我只需要编辑 ~/.bashrc 文件。但是这个文件在我第一次进入系统时并没有退出,所以我在我的主目录中自己创建了它并填充了别名:
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/tien/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/tien/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/tien/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/tien/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
export PATH="/usr/local/cuda-12.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH"
alias c='clear'
alias gpu='watch -n 0.5 nvidia-smi'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../../../'
alias .....='cd ../../../../'
alias h='history'
alias j='jobs -l'
alias gst='git status'
但是当我注销并重新登录时,别名不起作用。
那么我该如何调试呢?
以下是我的一些信息:
[username@machinename: ~]$ which alias
/usr/bin/alias
[username@machinename: ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'
答案1
我将其包含在 ~/.profile 中
# if running bash
# include .bashrc if it exists
[ -n "$BASH_VERSION" ] && [ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
答案2
你说红帽服务器...
查看/etc/profile.d/
内容,您会看到一堆.sh
和.csh
文件。如果/etc/passwd
您的帐户登录是,/bin/bash
那么它将引用这些.sh
文件,如果/bin/csh
或/bin/tcsh
那么.csh
文件。
创建一个/etc/profile.d/my_aliases.sh
;它可以命名为任何名称,只需具有.sh
与您的帐户 shell 相关的结尾(或 .csh)即可。
只需将您的alias
命令和其他任何内容转储到.sh
下面的一个或多个文件中/etc/profile.d/
,并为其授予 664 权限即可。
你可以扔一个
echo "hi from /etc/profile.d/myaliases.sh"
为了验证文件是否正在运行,您应该会在打开的任何终端窗口中看到打印的内容。
答案3
其他评论者建议将其添加到 ~/.profile 或 /etc/profile 中。但简介是与 bashrc 不同。前者仅针对登录/交互式 shell 运行。通常使用 rc 文件作为别名更合适。
我手头没有 Fedora 盒子,但在附近的 Ubuntu 盒子上,我有一个个人 ~/.bashrc 和一个系统范围的 /etc/bash/bashrc
如果 ~/.bashrc 不适合您,并且 /etc 中有一个系统范围的文件,我建议添加[ -f "${HOME}/.bashrc" ] && source "${HOME}/.bashrc"
而不是在文件中内联添加别名。