우리 학교는 기본적으로 csh/tcsh Linux 계정을 사용합니다. 그런데 집에 있는 bashrc에 설정이 너무 많아서 학교에서도 사용하고 싶어요. 그러나 cshrc에는 몇 가지 중요한 일이 발생하므로 로그인할 때마다 쉘을 변경하고 싶지 않습니다. cshrc 내에서 bashrc를 호출하거나 실행하여 동일한 효과를 얻을 수 있는 방법이 있습니까? 아니면 bashrc를 cshrc로 변환하는 방법을 알아내야 합니까? 이 아이디어가 얼마나 미친 것인지 모르겠습니다. 저는 개인적으로 bashrc에 정말 익숙합니다.
도와주셔서 감사합니다!
편집: bash를 사용할 수 있도록 cshrc를 bashrc로 변환하기로 결정했습니다... Ick Csh - 이것을 번역하는 데 의견이 있는 사람이 있습니까?
오늘 늦게 cshrc를 사용할 수 있기를 바랍니다.
set defaultsdir=~defaults
# source ${defaultsdir}/linuxpaths
source ${HOME}/linuxpaths
# # add your custom shell commands here
# # see 'man tcsh' for more info
if ( $?prompt ) then
set autoexpand
set autolist
set cdpath = ( ~ )
set pushdtohome
set savehist=10000
set histfile=~/.history
# Load aliases from ~/.alias
if ( -e ~/.alias ) source ~/.alias
endif
답변1
exec bash
당신의 말 끝에 그것을 추가하는 것은 어떻습니까 .cshrc
?
경계하다하지만 완전히 위험이 없는 것은 아니므로 한 창/세션에서 이 작업을 수행하는 동시에 다른 창/세션에서 결과를 테스트하여 복구할 수 있는 기회를 제공할 수 있습니다. (또는 근처에 웹마스터가 있습니다.)
답변2
이들 중 대부분 은 번역해야 하는 외부 파일(명령)을 .cshrc
포함합니다 . source
이 if ( $?prompt )
부분은 bash의 대화형 셸에서만 실행되므로 걱정할 필요가 없습니다. 일부 set
명령은 정확히 동일한 쉘 옵션을 설정하지 않습니다. 설정을 완료하려면 bash를 조정해야 할 수도 있습니다. 중요한 줄은 다음과 같습니다.
set defaultsdir=~defaults defaultsdir=~defaults
source ${HOME}/linuxpaths . ~/linuxpaths.sh
set savehist=10000 HISTSIZE=10000; HISTFILESIZE=$HISTSIZE
if ( -e ~/.alias ) source ~/.alias . ~/.alias.sh
를 변경할 이유는 없지만 , 텍스트 모드 로그인으로 bash나 zsh(사용 가능한 경우)로 이동하도록 ~/.cshrc
변경하고 싶을 수도 있습니다 . ~/.login
마지막에 이것을 사용하십시오 ~/.login
:
if ($?prompt != 0) then
which bash >/dev/null >&/dev/null
if ($status == 0) then
setenv SHELL bash
exec bash --login
fi
endif
답변3
.cshrc
파일은 .bashrc
쉘 자체 언어로 작성되며 두 언어는 호환되지 않습니다. 또한 일반적으로 이러한 파일에 넣는 것은 셸의 시작 동작에 영향을 미치는 명령이므로 다른 셸에서 하나의 셸을 실행하는 것은 제한된 범위에서만 도움이 됩니다.
.cshrc
웹사이트와 홈 페이지의 기능을 사용하려면 파일 중 하나를 다른 구문으로 변환해야 합니다 .bashrc
.
.cshrc
다른 방법 대신 Bash에서 작동하도록 사이트를 변환하려면 다음을 사용하여 해당 시스템에서 셸을 영구적으로 전환할 수 있습니다.
% chsh -s /bin/bash
또 다른 옵션은 홈을 C 쉘 구문으로 변환하여 파일 .bashrc
에 추가하는 것입니다 . .cshrc
나는 이것을 추천하지 않을 것이다. 왜냐하면유해한 것으로 간주되는 Csh 프로그래밍. :)