.bashrc 파일에 정의 된 별칭 이름이 작동하지 않는 이유는 무엇입니까? l=’ls -lt’ alias h=’history’ alias d=’ls -lt |grep

아래와 같이 .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:.



답변

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

. ~/.bashrc

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

추신

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

shopt -s expand_aliases


답변

이는 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”를 사용하여 개별 별명 참조 바이너리 (이력)의 경로 디렉토리를 찾으십시오.


답변

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

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

답변

.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:.


답변

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


답변