RedHat 서버에서 별칭을 구성하는 방법은 무엇입니까?

RedHat 서버에서 별칭을 구성하는 방법은 무엇입니까?

저는 일반 사용자(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"파일에 별칭 인라인을 추가하는 대신 추가하는 것이 좋습니다.

관련 정보