.bashrc 파일에 정의 된 별칭 이름이 작동하지 않는 이유는 무엇입니까?


12

아래와 같이 .bashrc 파일에 별칭 이름을 지정했습니다. 그러나 별칭 이름이 작동하지 않습니다. 왜?

alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

2
환경 변수는 얻지 만 별칭은 얻지 못합니까, 아니면 아무것도 얻지 못하고 있습니까?
Paul

1
별도의 문제 일 수 있지만 PATH를 지우십시오. 예를 들어export PATH=$PATH:$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Rich Homolka

답변:


29

.bashrc파일을 변경 한 후 소스를 제공 했습니까 ? 시험:

. ~/.bashrc

그런 다음 쉘에 변경 사항이 표시됩니다. 또는 쉘을 종료했다가 다시 시작할 수 있습니다.

추신

스크립트에서 실행할 때이 첫 번째 참조를 로드하십시오.

shopt -s expand_aliases

2
이것은 내 문제를 해결했습니다! 그 전에 SSH를 통해 로그 아웃했다가 다시 시도했지만 아무 일도 일어나지 않았습니다. 별명을 여전히 사용할 수 없습니다. SSH를 할 때마다 이것을 해야하는 것처럼 보입니다! 왜 이런 일이 일어나는지 아십니까?
Vladimir Despotovic

다시 실행하지 않는 것이 좋습니다 .bashrc. 일부 중복되고 부어 오를 수 있습니다. 새 쉘을 종료하고 시작하지 않는 이유는 무엇입니까? 업데이트 된 .bashrc파일 을로드 합니다.
AlikElzin-kilaka

2

이는 PATH가 모든 별명 참조 2 진 경로를 사용하도록 올바르게 설정되지 않았기 때문에 발생할 수 있습니다. 즉, / bin / ls 아래에 존재합니다.

"export PATH = $ PATH : $ ORACLE_HOME / bin : / usr / vac / bin : / usr / vacpp / bin :."을 사용해보십시오. 또는 "export PATH = $ ORACLE_HOME / bin : / usr / vac / bin : / usr / vacpp / bin : / bin : / sbin / : / usr / sbin과 같은 것

그렇지 않은 경우 "which"를 사용하여 개별 별명 참조 바이너리 (이력)의 경로 디렉토리를 찾으십시오.


1

자신에게 물어볼 질문은 다음과 같습니다.

  • ~ / .bashrc가 이미 쉘에서 실행 되었습니까? 쉘이 시작될 때만 실행됩니다. 새 쉘을 열면 (execute bash) 있어야합니다. 함께 alias사용하면 인쇄 된 모든 별칭을 볼 수 있습니다.
  • 두 번째로 물어봐야 할 것은 : 당신의 별명에있는 프로그램이 있는지 확인하십시오. 적어도 h (별칭 히스토리)는 내장되어 있기 때문에 분명히 작동해야합니다.

1

.bashrc이미 글로벌 한 별칭을 정의하려고 시도했을 수 있습니다 .

일반적으로 사용자의 별칭 .bashrc/etc/bashrc호출 전에 정의됩니다 . 이후에 이를 정의하십시오 .

여기에 당신의 예가 있습니다 .bashrc:

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

대단한 답변! 나는 이것을 AWS Linux AMI에서 지속적으로보고있다
rainabba

1

MacOS 사용자 가이 답변을 찾고 있는 경우를 대비하여 MacBook에서 시도했지만 터미널을 다시 시작해도 새로운 별칭 정의가로드되지 않습니다. 내가 그것을 작동시킬 수있는 유일한 방법은 source ~/.bashrc매번이었다. 나는 다음에 내 별명 정의를 이동하려 ~/.bash_profile하고 트릭을했던 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.