| ²é¿´: 536 | »Ø¸´: 3 | |||
| ¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û2´Î£¬×÷Õßjove1782Ôö¼Ó½ð±Ò 1 ¸ö | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
jove1782ľ³æ (ÕýʽдÊÖ)
|
[×ÊÔ´]
ÖÕ¼«Shell¡ª¡ªZsh
|
||
|
Óо仰ÕâÑù˵£¬zsh: The last shell you¡¯ll ever need! ZÊÇ×îºóÒ»¸ö×Öĸ£¬ËùÒÔÊÇÖÕ¼«Shell¡£ ÎÒÔø¾ËÑË÷µ½Ò»¸ö±È½Ï¸÷ÖÖShellµÄÎÄÕ£¬Zsh½»»¥ÐÔÊÇA+¼¶±ðµÄ£¬Ô¶¸ßÓÚÆäËüShell¡£ÔÚ±à³Ì·½Ã棬ZshÊÇA¼¶µÄ°É£¬Ò²ÊÇ×î¸ßµÄ¡£Ö»ÊDz»ÖªµÀ³öÓÚʲôÔÒò£¬Zsh±»ÑÏÖØµÄµÍ¹ÀÁË¡£ ´ó¶àÊýµÄLinuxÓû§±È½ÏÆ«°®Bash£¬ÒòΪ´ó¶àÊýµÄ·¢ÐаæÄ¬ÈϵľÍÊÇËü¡£Æ¾ÐĶøÂÛ£¬Bashȷʵ±ÈCshÖ®Á÷µÄºÃÓöàÁË¡£²»¹ýBashÒ²ÓÐºÜ¶àµØ·½²»¾¡ÈËÒ⣬Ïñ×Ô¶¯²¹È«µÄ¹¦Äܲ»¹»Ç¿´ó£¬¶¨Î»½Ï³¤Â·¾¶²»¹»·½±ãµÈ¡£ ºóÀ´ÎÒʹÓÃZsh¡£Èç¹û²»µ÷ÕûһЩ±ØÒªµÄÅäÖõϰ£¬ZshÉõÖÁ»¹²»ÈçBashºÃÓá£ÕâÒ²ÊǺܶàÈ˳¢ÊÔ¹ý²¢·ÅÆú¹ýµÄÔÒò¡£ ²»ÊìϤZshµÄÈË£¬¶ÔZsh×îÉî¿ÌµÄÓ¡ÏóÓ¦¸Ã¾ÍÊÇËüµÄÃüÁîÌáʾ·ûÁË¡£ËüÖ§³ÖÓÒ²à¶ÔÆëµÄÌáʾ·û. ZshµÄ×Ô¶¯²¹È«¹¦ÄÜÊ®·ÖµÄÇ¿´ó£¬Ëü¿ÉÒÔ×Ô¶¯²¹È«ÃüÁî¡¢²ÎÊý¡¢ÎļþÃû¡¢½ø³Ì¡¢Óû§Ãû¡¢±äÁ¿¡¢È¨ÏÞ·ûµÈ¡£ Zsh»¹ÓÐÒ»¸öÌùÐĵŦÄÜ£ºÂ·¾¶±ðÃû¡£¼ÙÉèÓÐÒ»¸öºÜ³¤µÄ·¾¶£¬ÀýÈç/home/lighttpd/html£¬¿ÉÒÔ°ÑÕâ¸ö·¾¶ÃüÃûΪ ~WWW¡£ Zsh¿ÉÒÔʹÓÃEmacs·ç¸ñµÄ¼ü°ó¶¨£¬Ï°¹ßBash¼ü°ó¶¨µÄÅóÓÑÎÞÐèÖØÐÂÊÊÓ¦¡£Zsh¼æÈÝ´ó¶àÊýÖ÷Á÷Shell£¬ÏñBash¡¢CshµÈ¡£ ÏÂÃæ½²½âÒ»ÏÂZshÅäÖÃÎļþ£º #ÃüÁîÌáʾ·û ( ^[ ÊÇÒ»¸öÌØÊâ×Ö·û ÔÚvi²åÈëģʽÏ °´Ctrl+v ESC ²åÈë¸Ã×Ö·û£© PROMPT='%{ ^[[36m%}%n%{^[[35m%}@%{^[[34m%}%M %{^[[33m%}%D %T %{^[[32m%}%/ %{^[[31m%}>>%{^[[m%}' #¹ØÓÚÀúÊ·¼Í¼µÄÅäÖà # number of lines kept in history export HISTSIZE=10000 # # number of lines saved in the history after logout export SAVEHIST=10000 # # location of history export HISTFILE=~/.zhistory # # append command to history file once executed setopt INC_APPEND_HISTORY #Disable core dumps limit coredumpsize 0 #Emacs·ç¸ñ¼ü°ó¶¨ bindkey -e #ÉèÖÃDEL¼üΪÏòºóɾ³ý bindkey "\e[3~" delete-char #ÒÔÏÂ×Ö·ûÊÓΪµ¥´ÊµÄÒ»²¿·Ö WORDCHARS='*?_-[]~=&;!#$%^(){}<>' #×Ô¶¯²¹È«¹¦ÄÜ setopt AUTO_LIST setopt AUTO_MENU setopt MENU_COMPLETE autoload -U compinit compinit # Completion caching zstyle ':completion::complete:*' use-cache on zstyle ':completion::complete:*' cache-path .zcache #zstyle ':completion:*:cd:*' ignore-parents parent pwd #Completion Options zstyle ':completion:*:match:*' original only zstyle ':completion::prefix-1:*' completer _complete zstyle ':completion:predict:*' completer _complete zstyle ':completion:incremental:*' completer _complete _correct zstyle ':completion:*' completer _complete _prefix _correct _prefix _match _approximate # Path Expansion zstyle ':completion:*' expand 'yes' zstyle ':completion:*' squeeze-shlashes 'yes' zstyle ':completion::complete:*' '\\' zstyle ':completion:*:*:*:default' menu yes select zstyle ':completion:*:*:default' force-list always # GNU Colors ÐèÒª/etc/DIR_COLORSÎļþ ·ñÔò×Ô¶¯²¹È«Ê±ºòÑ¡²Ëµ¥ÖеÄÑ¡Ïî²»ÄܲÊÉ«ÏÔʾ [ -f /etc/DIR_COLORS ] && eval $(dircolors -b /etc/DIR_COLORS) export ZLSCOLORS="${LS_COLORS}" zmodload zsh/complist zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' zstyle ':completion:*' completer _complete _match _approximate zstyle ':completion:*:match:*' original only zstyle ':completion:*:approximate:*' max-errors 1 numeric compdef pkill=kill compdef pkill=killall zstyle ':completion:*:*:kill:*' menu yes select zstyle ':completion:*:processes' command 'ps -au$USER' # Group matches and Describe zstyle ':completion:*:matches' group 'yes' zstyle ':completion:* ptions' description 'yes'zstyle ':completion:* ptions' auto-description '%d'zstyle ':completion:*:descriptions' format $'\e[01;33m -- %d --\e[0m' zstyle ':completion:*:messages' format $'\e[01;35m -- %d --\e[0m' zstyle ':completion:*:warnings' format $'\e[01;31m -- No Matches Found --\e[0m' #ÃüÁî±ðÃû alias cp='cp -i' alias mv='mv -i' alias rm='rm -i' alias ls='ls -F --color=auto' alias ll='ls -l' alias grep='grep --color=auto' alias ee='emacsclient -t' #·¾¶±ðÃû ½øÈëÏàÓ¦µÄ·¾¶Ê±Ö»Òª cd ~xxx hash -d WWW="/home/lighttpd/html" hash -d ARCH="/mnt/arch" hash -d PKG="/var/cache/pacman/pkg" hash -d E="/etc/env.d" hash -d C="/etc/conf.d" hash -d I="/etc/rc.d" hash -d X="/etc/X11" hash -d BK="/home/r00t/config_bak" ##for EmacsÔÚEmacsÖÕ¶ËÖÐʹÓÃZshµÄһЩÉèÖà ²»ÍƼöÔÚEmacsÖÐʹÓÃËü if [[ "$TERM" == "dumb" ]]; then setopt No_zle PROMPT='%n@%M %/ >>' alias ls='ls -F' fi Ч¹û³¬ìŵÄÌáʾ·û£º #Ч¹û³¬ìŵÄÌáʾ·û function precmd { local TERMWIDTH (( TERMWIDTH = ${COLUMNS} - 1 )) ### # Truncate the path if it's too long. PR_FILLBAR="" PR_PWDLEN="" local promptsize=${#${(%):---(%n@%m:%l)---()--}} local pwdsize=${#${(%):-%~}} if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then ((PR_PWDLEN=$TERMWIDTH - $promptsize)) else PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize)))..${PR_HBAR}.)}" fi ### # Get APM info. #if which ibam > /dev/null; then #PR_APM_RESULT=`ibam --percentbattery` #elif which apm > /dev/null; then #PR_APM_RESULT=`apm` #fi } setopt extended_glob preexec () { if [[ "$TERM" == "screen" ]]; then local CMD=${1[(wr)^(*=*|sudo|-*)]} echo -n "\ek$CMD\e\\" fi } setprompt () { ### # Need this so the prompt will work. setopt prompt_subst ### # See if we can use colors. autoload colors zsh/terminfo if [[ "$terminfo[colors]" -ge 8 ]]; then colors fi for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' (( count = $count + 1 )) done PR_NO_COLOUR="%{$terminfo[sgr0]%}" ### # See if we can use extended characters to look nicer. typeset -A altchar set -A altchar ${(s..)terminfo[acsc]} PR_SET_CHARSET="%{$terminfo[enacs]%}" PR_SHIFT_IN="%{$terminfo[smacs]%}" PR_SHIFT_OUT="%{$terminfo[rmacs]%}" PR_HBAR=${altchar[q]:--} #PR_HBAR=" " PR_ULCORNER=${altchar[l]:--} PR_LLCORNER=${altchar[m]:--} PR_LRCORNER=${altchar[j]:--} PR_URCORNER=${altchar[k]:--} ### # Decide if we need to set titlebar text. case $TERM in xterm*) PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}' ;; screen) PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}' ;; *) PR_TITLEBAR='' ;; esac ### # Decide whether to set a screen title if [[ "$TERM" == "screen" ]]; then PR_STITLE=$'%{\ekzsh\e\\%}' else PR_STITLE='' fi ### # APM detection #if which ibam > /dev/null; then #PR_APM='$PR_RED${${PR_APM_RESULT[(f)1]}[(w)-2]}%%(${${PR_APM_RESULT[(f)3]}[(w)-1]})$PR_LIGHT_BLUE:' #elif which apm > /dev/null; then #PR_APM='$PR_RED${PR_APM_RESULT[(w)5,(w)6]/\% /%%}$PR_LIGHT_BLUE:' #else PR_APM='' #fi ### # Finally, the prompt. PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\ $PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\ $PR_GREEN%(!.%SROOT%s.%n)$PR_GREEN@%m:%l\ $PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_HBAR${(e)PR_FILLBAR}$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\ $PR_MAGENTA%$PR_PWDLEN<...<%~%<<\ $PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_URCORNER$PR_SHIFT_OUT\ $PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\ %(?..$PR_LIGHT_RED%?$PR_BLUE \${(e)PR_APM}$PR_YELLOW%D{%H:%M}\ $PR_LIGHT_BLUE:%(!.$PR_RED.$PR_WHITE)%#$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ $PR_NO_COLOUR ' RPROMPT=' $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_BLUE$PR_HBAR$PR_SHIFT_OUT\ ($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR' PS2='$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ $PR_BLUE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\ $PR_LIGHT_GREEN%_$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR ' } setprompt |
» ²ÂÄãϲ»¶
ÖØÇì½»´ó26Äê˶ʿÉúÕÐÉúÄâµ÷¼Á֪ͨÒѳö£¡»¶Ó¼ÓÈë¹â×Óѧ΢½á¹¹ÓëÆ÷¼þ¿ÎÌâ×é¡£
ÒѾÓÐ0È˻ظ´
UJNÎïÀíѧרҵµ÷¼Á
ÒѾÓÐ12È˻ظ´
ÎïÀíѧIÂÛÎÄÈóÉ«/·ÒëÔõôÊÕ·Ñ?
ÒѾÓÐ93È˻ظ´
±±¾©ÄÉÃ×ÄÜÔ´ÓëϵͳÑо¿ËùÍõÖÐÁÖԺʿ/²ÜÄÏÓ±Ñо¿Ô±¿ÎÌâ×éÕÐÊÕ2026˶ʿÑо¿Éú1Ãû
ÒѾÓÐ0È˻ظ´
ɽÎ÷´óͬ´óѧÎïÀíѧ˶ʿÑо¿ÉúÕÐÊÕµ÷¼ÁÉú
ÒѾÓÐ0È˻ظ´
[µ÷¼ÁÐÅÏ¢]211ÖÇÄÜÈ˹¤¸ÐÖª·½Ïò¹ú¼ÒÇàÄêÌØÆ¸×¨¼Ò¿ÎÌâ×éÕÐÊÕµ÷¼ÁÑо¿Éú
ÒѾÓÐ0È˻ظ´
£Ûµ÷¼ÁÐÅÏ¢£Ý211ÖÇÄÜÈ˹¤¸ÐÖª·½Ïò¹ú¼ÒÇàÄêÌØÆ¸×¨¼Ò¿ÎÌâ×éÕÐÊÕµ÷¼ÁÑо¿Éú
ÒѾÓÐ0È˻ظ´
[µ÷¼ÁÐÅÏ¢]211ÖÇÄÜÈ˹¤¸ÐÖª·½Ïò¹ú¼ÒÇàÄêÌØÆ¸×¨¼Ò¿ÎÌâ×éÕÐÊÕµ÷¼ÁÑо¿Éú
ÒѾÓÐ0È˻ظ´
Ò»Ö¾Ô¸ÎïÀíËùÄý¾Û̬ÎïÀí352Çóµ÷¼Á
ÒѾÓÐ0È˻ظ´
0702Ò»Ö¾Ô¸¼ª´óBÇøÇóµ÷¼Á ±¾¿ÆÆÚ¼ä·¢±íһƪSci
ÒѾÓÐ0È˻ظ´
yalefield
½ð³æ (ÎÄ̳¾«Ó¢)
- ¼ÆËãÇ¿Ìû: 2
- Ó¦Öú: 129 (¸ßÖÐÉú)
- ¹ó±ö: 0.17
- ½ð±Ò: 21238.9
- Ìû×Ó: 12101
- ÔÚÏß: 759.1Сʱ
- ³æºÅ: 96063
2Â¥2008-08-06 19:52:20
3Â¥2008-08-06 20:39:05
4Â¥2008-08-06 23:42:49














ptions' description 'yes'
\
»Ø¸´´ËÂ¥