저는 새로운 작업 개발 환경으로 전환 중이고 xterm 터미널과 CentOS 운영 체제를 처음 사용합니다.
.bashrc에 별칭을 설정하려고 합니다.
# .bashrc
alias c='clear'
alias la='ls -a'
그러나 c
별칭만 작동합니다.
user@host:~> la
CORRECT>lua (y|n|e|a)? no
la: Command not found.
그러나 user@host:~> c
성공적으로 터미널을 지웠습니다. 또한 여러 가지 다른 별칭을 정의하려고 시도했지만(대화형 터미널에서 직접) c='clear'
별칭만 작동했습니다. 일부 별칭은 작동하고 다른 별칭은 작동하지 않는 이유는 무엇입니까?
답변1
이 프롬프트는 실행 중임을 나타냅니다.tcsh. .bashrc
tcsh가 bash의 구성 파일을 읽을 수 없기 때문에 별칭이 유효하지 않습니다. tcsh에도 tcsh라는 명령이 있지만 alias
해당 구문은 bash와 약간 다르기 때문에 명령줄에서 별칭을 정의하려는 시도는 뚜렷한 효과가 없습니다 . c
(t)csh 구성에 동일한 별칭이 있기 때문에 작동합니다.
아마도 tcsh를 사용할 계획이 없을 것입니다. 1980년대 최고의 대화형 셸이었지만, 2000년대 bash와 마찬가지로 1990년대에는 zsh가 이를 따라잡고 능가했습니다. 로그인 셸로 전환 /bin/zsh
하거나 /bin/bash
로그인 셸로 전환하세요.
chsh -s /bin/bash
관리 제한으로 인해 chsh를 실행할 수 없는 경우 다음을 참조하세요.chsh 또는 관리자 권한 없이 기본 쉘 변경.
tcsh에 의존하는 로그인 스크립트가 절대적으로 필요하고 관리자가 1990년대에 거주하며 이를 업데이트하지 않기 때문에 tcsh를 반드시 사용해야 하는 경우에도 여전히 다른 대화형 셸을 사용할 수 있습니다. 같은 것을 넣어
setenv SHELL /bin/bash
(이것은 로그인 할 .login
때 tcsh가 읽는 파일입니다).