저는 일반 사용자(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
계정 셸(또는 .csh)과 관련된 엔딩만 있으면 됩니다.
alias
명령과 기타 항목을 .sh
아래 파일 에 덤프하고 /etc/profile.d/
664 권한을 부여하십시오.
하나 던져도 돼
echo "hi from /etc/profile.d/myaliases.sh"
파일이 실행 중인지 확인하려면 열려 있는 모든 터미널 창에 파일이 인쇄되어 있어야 합니다.
답변3
다른 댓글 작성자는 ~/.profile 또는 /etc/profile에 추가할 것을 제안했습니다. 하지만 소개는bashrc와 다릅니다. 전자는 로그인/대화형 쉘에 대해서만 실행됩니다. 일반적으로 rc 파일을 별칭으로 사용하는 것이 더 적합합니다.
편리한 Fedora 상자가 없지만 근처 Ubuntu 상자에 개인 ~/.bashrc 및 시스템 전체 /etc/bash/bashrc가 있습니다.
~/.bashrc가 작동하지 않고 /etc에 시스템 전체 파일이 있는 경우 [ -f "${HOME}/.bashrc" ] && source "${HOME}/.bashrc"
파일에 별칭 인라인을 추가하는 대신 추가하는 것이 좋습니다.