csh/tcsh 설정

10474 단어
csh/tcsh 설정
csh/tcsh 선택
리 눅 스에 서 BSD 로 막 전 환 된 많은 사람들 과 달리 나 는 BSD 를 다 설치 하지 못 하고 bash 를 설치 했다. 왜냐하면 이전에 명령 을 내 리 는 것 외 에 나 는 추가 기능 을 사용 하지 않 았 기 때문이다. bash 든 csh 든 내 눈 에는 모두 셸 로 사용 되 었 기 때문이다.그러나 점점 나 는 csh 가 정말 유용 하 다 는 것 을 알 게 되 었 다. 그것 은 작고 간단 하 며 개방 적 이 며 별도의 의존 이 필요 없다.
bash 스 크 립 트 지원 함수, csh 지원 하지 않 음 등 스 크 립 트 능력 을 비교 해 야 할 수도 있 습 니 다.나 에 게 있어 서 사실 나 는 스 크 립 트 를 제대로 쓴 적 이 없다. 나의 일 은 C + 프로그래머 이다.제 관점 에서 볼 때 스 크 립 트 능력 은 사실 bash, csh, zsh 는 Python 보다 못 합 니 다. 호환성 을 논 할 때 bash, csh, zsh 는 sh 보다 못 합 니 다. 논 이 강하 고 bash, csh, zsh 는 C/C++, 심지어 asm 보다 못 합 니 다.쉽게 배 울 수 있 는 정 도 를 보면 bash, csh, zsh 는 Python 에 질 수 있 습 니 다.종합 적 으로 스 크 립 트 능력 은 무시 합 니 다.
자, 이렇게 많은 불 경 스 러 운 말 을 하고 우 리 는 본론 으로 들 어가 기 시작 했다.
프로필
전역 프로필/etc/csh. csrc 개인 프로필 ~/csrc 또는 ~/. tcshrc
편 의 를 위해 모든 계 정 이 편 의 를 누 릴 수 있 도록 전역 적 인 프로필 을 수정 하 는 것 을 권장 합 니 다.
버튼 바 인 딩
일반적으로 우 리 는 버튼 바 인 딩 을 설정 하지 않 아 도 잘 작 동 할 수 있 지만 원 격 로그 인 에 대해 서 는 추가 설정 이 필요 할 수 있 습 니 다.예 를 들 어 putty 로그 인 후 Home, End, Delete 등 이 ~ 으로 변 하지 않도록 다음 과 같은 설정 이 필요 합 니 다.
bindkey '\e[1~' beginning-of-line      # Home
bindkey '\e[3~' delete-char            # Delete
bindkey '\e[4~' end-of-line            # End
bindkey "^W" backward-delete-word      # Delete
bindkey -k up history-search-backward  # PageUp
bindkey -k down history-search-forward # PageDown

프롬프트
예 쁘 게 사용 할 프롬프트 를 설정 하면 작업 을 더욱 즐 겁 고 효율 적 으로 할 수 있다.다음은 합 리 적 인 배치 방안 입 니 다.
if ( $?prompt ) then                                #  $prompt      ,      
     if ( "$uid" == "0" ) then                      #     uid
         set prompt = "%U%n%u@%m [%l] %B%~%b # "    #  root,    “#” 
     else
         set prompt = "%U%n%u@%m [%l] %B%~%b % "    #      ,  “%” 。
     endif
endif

Konsole 의 효 과 는 다음 과 같 습 니 다.
다음 과 같은 컬러 설정 방법:
set cr = "%{\e[31m%}" #    
set cg = "%{\e[32m%}" #    
set c0 = "%{\e[0m%}"  #       

# Set some variables for interactive shells
if ( $?prompt ) then
    if ( "$uid" == "0" ) then
	set prompt = "%B%U%n%u@%m.$cr%l$c0%b %c2 %B%#%b " 
    else
	set prompt = "%B%U%n%u@%m.$cg%l$c0%b %c2 %B%%%b "
    endif
endif

Konsole 의 효 과 는 다음 과 같 습 니 다.
색상 코드: 1 밝 은 색상 에 대한 4 밑줄 텍스트 에 대한 5 검 은 전경 에 대한 깜박 이 텍스트 30 노란색 (또는 갈색) 전경 에 대한 녹색 전경 32 에 대한 빨간색 전경 31 보라색 전경 에 대한 파란색 전경 34 흰색 (또는 회색) 시안 전경 37 에 대한 foreground40 for black background41 for red background42 for green background43 for yellow (or brown) background44 for blue background45 for purple background46 for cyan background47 for white (or gray) background
더 많은 인자 와 그 역할 보기:
man tcsh  #  man  
/%/       #   “%/”     

환경 변수 등
FreeBSD 의 ls 가 색상 을 표시 하지 않 았 다 고 불평 하고 있 습 니 다. grep 에서 나 온 것 은 밝 지 않 습 니까?다음 설정 이 필요 합 니 다:
#  ls    
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
#  grep         
setenv GREP_OPTIONS --color=auto

KDE 에서 fcitx 를 사용 하 는 사람 에 게 는 다음 과 같은 세 줄 의 설정 이 필요 합 니 다. 사실은 fcitx 설치 후 알려 주 는 내용 입 니 다. 세심 하 다 면.
setenv XMODIFIERS @im=fcitx
setenv QT_IM_MODULE xim
setenv GTK_IM_MODULE xim

응, ls 색상 이 생 겼 어. 그런데 잠깐 만, 왜 tab 가 완성 되 지 않 아?다음 설정 이 필요 합 니 다:
set autolist

보완 할 때 도 과거 기록 (즉 명령 history 의 출력) 을 참고 범위 에 포함 시 키 려 면 다음 설정 을 추가 할 수 있 습 니 다.
set autoexpand

명령 history 자체 에 대해 서 는 다음 과 같은 두 가지 설정 을 제공 합 니 다.
set history = 100
set savehist = 10

첫 번 째 항목 은 과거 기록 임시 저장 항목 수 를 설정 하고 기본 값 은 100 입 니 다.두 번 째 항목 은 현재 Shell 을 종료 할 때 몇 개의 최신 임시 저장 항목 수 를 ~/. history 에 기록 하 는 지 설정 합 니 다. 그 수 치 는 set history 보다 클 수 없습니다.설명 이 필요 한 것 은 savehist 설정 에서 set savehist = (10 merge) 와 같은 쓰기 도 사용 할 수 있 습 니 다.이 merge 는 저장 할 때 과거 기록 에 있 는 같은 명령 을 합 친 것 을 나타 내 며, 합 친 시리 얼 번호, 시간 은 최신 자 와 같 습 니 다.
명령 이 잘못 지면 csh/tcsh 에서 바로 잡 습 니 다:
set correct = cmd

명령 행 에서 어떤 게임 이나 kde 프로그램 을 시작 하기 위해 서 는 dolphin, kcalc 와 같은 두 가지 경 로 를 $path 에 추가 해 야 합 니 다./usr/games/usr/local/kde 4/bin/
set path = (/sbin /bin /usr/sbin /usr/local/bin /usr/games /usr/local/sbin /usr/bin $HOME/bin /usr/local/kde4/bin/) 

흑 마법 방어 술
방향 을 바 꾸 어 방어 하 다.
방향 을 바 꾸 는 것 이 매우 강력 합 니 다. 우 리 는 가끔 "date"b. txt ","ls - l > files. txt "등 명령 을 실행 합 니 다.그러나 조심 하지 않 으 면 '»' 를 '>' 로 지면 어떤 결 과 를 초래 할 까?이 를 위해 tcsh 는 noclobber 이 옵션 을 제공 합 니 다:
set noclobber

그것 이 있 으 면 비극 은 일어나 지 않 을 것 이다.">"의 대상 파일 이 존재 한다 면 tcsh 는 방향 을 바 꾸 는 것 을 거부 합 니 다.
커버 방어
"mv a b"를 만 나 유용 한 b 파일 을 덮어 쓴 적 이 있 습 니까?이 를 위해, 우 리 는 뮤 직 비디오 와 cp 의 행동 을 더욱 신중 하 게 해 야 한다.
alias mv 'mv -i'
alias cp 'cp -i'

대상 파일 이 존재 하면 뮤 직 비디오 와 cp 는 인자 '- f' 를 사용 하지 않 는 한 조작 을 거부 합 니 다.
오 삭제 방어
rm 이 명령 은 태 어 난 후부 터 줄곧 위험한 조작 이 었 다.우 리 는 rm 을 더욱 부 드 럽 게 할 수 있다.
alias rm 'rm -i'

이렇게 rm 전에 재 확인 을 요청 합 니 다.
모든 것
앞에서 우 리 는 흑 마법 방어 술 에서 알 리 스 를 초보 적 으로 보 았 다.alias 는 위험 조작 을 피 할 수 있 을 뿐만 아니 라 명령 도 간소화 하고 스스로 명령 을 만 들 수 있다.아주 짧 지 않 으 면 좋 은 alias 이름 은 하나의 통 일 된 단어 나 알파벳 으로 시작 해 야 합 니 다. 예 를 들 어 다음 에 보 여줄 reload/edit 시리즈, update 시리즈, show 시리즈 등 입 니 다.
먼저 가장 기본 적 인 alias 를 보 여 주 며 조목조목 설명 합 니 다.
alias ..    'cd ..'       #          
alias -	    'cd -'        #         
alias q	    'exit'        #    
alias rm    'rm -i'       #    
alias del   'rm -r'       #      
alias mv    'mv -i'       #    
alias cp    'cp -i'       #    
alias ls    'ls -I'       #root   ,         (.*)。BSD ls   ,root        。
alias la    'ls -a'       #      
alias ll    'ls -h -l'    #         (      )
alias lr    'ls -R'       #      
alias dh    'df -h -a -T' #                 ,        ( ufs、devfs、procfs)。
alias ds    'du -sh'      #              /      

find/wc 시리즈.현재 디 렉 터 리 에 있 는 모든 c/cxx/python 소스 파일 을 빠르게 찾 습 니 다.wc 를 결합 하면 줄 수 를 통계 할 수 있다.
alias find-c	'find . -name "*.h" -o -name "*.c"'
alias find-x	'find . -name "*.h" -o -name "*.hpp" -o -name "*.cpp" -o -name "*.cxx"'
alias find-py	'find . -name ".py"'
alias wc-c	'find . -name "*.h" -o -name "*.c" | xargs wc | sort -k 4'
alias wc-x	'find . -name "*.h" -o -name "*.hpp" -o -name "*.cpp" -o -name "*.cxx" | xargs wc | sort -k 4'
alias wc-py	'find . -name ".py" | xargs wc | sort -k 4'

reload/edit 시리즈.빠 른 수정 을 실현 하고 프로필 을 불 러 옵 니 다.
alias reload-rc.conf  'sh /etc/rc'
alias reload-cshrc    'unalias * && source /etc/csh.cshrc'
alias edit-xorg.conf  'vim /etc/xorg.conf'
alias edit-csh.cshrc  'vim /etc/csh.cshrc'
alias edit-make.conf  'vim /etc/make.conf'
alias edit-kern.conf  'vim /etc/kernconf/thinkpad'
alias edit-rc.conf    'vim /etc/rc.conf'
alias edit-vimrc      'vim /usr/local/share/vim/vimrc'

set 시리즈.locale 을 빠르게 설정 합 니 다.
alias setlocale-zhcn 'setenv LC_ALL zh_CN.UTF-8 && setenv LANG zh_CN.UTF-8'
alias setlocale-c    'setenv LC_ALL C'

startx 전용.명령 행 아래 를 영어 locale (date 등 명령 에 어 지 러 운 코드 가 발생 하지 않도록) 로 유지 하고 x 환경 을 중국어 로 만 들 며 kdm 가 아 닌 수 동 startx 에 적합 합 니 다.
alias sx 'setenv LC_ALL zh_CN.UTF-8 && setenv LANG zh_CN.UTF-8 && startx && setenv LC_ALL C'

make 시리즈.kernel/World 를 빠르게 컴 파일 합 니 다.
alias make-world  'cd /usr/src && make buildworld && cd -'
alias make-kernel 'cd /usr/src && make kernel KERNCONF=thinkpad && cd -'
alias make-installworld 'cd /usr/src && make installworld && make delete-old && cd -'

쇼 시리즈.상태 나 정 보 를 봅 니 다.
alias show-ifstat	'systat -ifstat'    #           
alias show-geom		'gstat'             #  I/O  
alias show-thermal	'sysctl dev.acpi_ibm.0.thermal'  #  ThinkPad         
alias show-cpufreq	'sysctl dev.cpu.0.freq'          #    cpu  
alias show-cpulevels	'sysctl dev.cpu.0.freq_levels'   #     cpu  
alias show-battery	'sysctl hw.acpi.battery.life && sysctl hw.acpi.battery.time' #    
alias show-smartctl	'smartctl -a /dev/ad4'           #    smartmontools,    smart  
alias show-alldep	'make all-depends-list'            #   ports        ,      
alias show-dep		'portmaster --show-work ./ | sort' #  ,     portmaster,          
alias show-ver		'pkg_version -v'                   #          

update 시리즈.말 그대로 갱신 이 잖 아.
alias update-locatedb    '/usr/libexec/locate.updatedb'            #  locate   
alias update-kernsrc     'csup -L 2 /etc/supfiles/stable-supfile'  #  kernel tree
alias update-ports       'portsnap fetch update'                   #  ports tree
alias update-apps	 'portmaster -a --force-config'            #    portmaster,      ,      

잡다 한 항목 은 모두 제3자 소프트웨어 를 설치 해야만 사용 할 수 있다.
alias lt    'tree -N -C'       #    tree。      ,-N        ,-C    
alias l3    'tree -N -C -L 3'  #        
alias l4    'tree -N -C -L 4'  #  
alias l5    'tree -N -C -L 5'  #  
alias l6    'tree -N -C -L 6'  #  
alias v	    'vim'              #   ,  
alias m     'mocp'             #     cs     
alias getdir	'wget -c -r -np -k'                  #      
alias ssh-home	'ssh raphael.vicp.cc -l root'        # root    ,  key      
alias ftp-home   'ftp ftp://syh:[email protected]' #BSD   ftp,      。            ,   
alias lft-phome	'lftp raphael.vicp.cc -u syh,syh'    #lftp       。
alias scons	'scons -Q -j 4'                      #    ,  4     
alias valgrind-checkmem 'valgrind --tool=memcheck --leak-check=full'  #      

최고의 교재
가장 좋 은 교 재 는 man 수첩 보다 더 좋 습 니 다. 정말 모든 것 이 있 습 니 다.
man tcsh
http://book.51cto.com/art/201001/175463.htm

좋은 웹페이지 즐겨찾기