±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 534  |  »Ø¸´: 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
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

hookah

ľ³æ (ÕýʽдÊÖ)


¡ï¡ï¡ï ÈýÐǼ¶,Ö§³Ö¹ÄÀø

Èκζ«Î÷ÓÃÊìÁË.´ïµ½hackµÄ¾³½ç¶¼ÊǶ¥¼¶µÄA!
¹þ¹þ!
ÎÞËùνÁË!
²»¹ýÕÆÎÕÒ»¸öºÃµÄshellȷʵ·Ç³£±ØÒªµÄ!
3Â¥2008-08-06 20:39:05
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 4 ¸ö»Ø´ð
ÏÖÔÚ¶¼Ö»ÄÜÍæÍ¼ÐνçÃæÁË
Ë­»¹»áÍæÃüÁîÐÐ
2Â¥2008-08-06 19:52:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sswv

ľ³æ (СÓÐÃûÆø)


¡ï¡ï¡ï ÈýÐǼ¶,Ö§³Ö¹ÄÀø

ÃüÁîÐй¤¾ßÔÚЧÂʺÍ׼ȷÐÔ·½ÃæµÄÓÅÊÆ»¹ÊǺÜÃ÷ÏԵģ¡
4Â¥2008-08-06 23:42:49
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] µç×ÓÐÅÏ¢µ÷¼Á½»²æÑ§¿ÆÓÐÍÆ¼öÂð +4 jhtfeybgj 2026-04-01 6/300 2026-04-04 00:14 by Öí»á·É
[¿¼ÑÐ] 266Çóµ÷¼Á +6 ѧԱ97LZgn 2026-04-03 6/300 2026-04-04 00:00 by userper
[¿¼ÑÐ] 085601£¬Ò»Ö¾Ô¸Ïôó334¸´ÊÔ±»Ë¢Çóµ÷¼Á +10 ÔøÑöÖ® 2026-04-03 12/600 2026-04-03 21:41 by zhq0425
[¿¼ÑÐ] ÎåÒØ´óѧÍÁľ¹¤³ÌÕе÷¼ÁÉú2026 +3 wyutj 2026-03-31 4/200 2026-04-03 18:21 by zengxj_7201
[¿¼ÑÐ] Çóµ÷¼Á²»Ìôרҵ +3 xrh030412 2026-04-01 3/150 2026-04-03 14:40 by µªÆøÆøÆø
[¿¼ÑÐ] 085600£¬²ÄÁÏÓ뻯¹¤321·ÖÇóµ÷¼Á +12 ´ó²öС×Ó 2026-03-28 12/600 2026-04-03 14:16 by °ÙÁéͯ888
[¿¼ÑÐ] 282Çóµ÷¼Á ²»Ìôרҵ ÇóÊÕÁô +7 Yam. 2026-03-30 8/400 2026-04-03 14:12 by zhangdingwa
[¿¼ÑÐ] 306·Ö²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +4 Àè°ÉÀ²À²ÄãºÜÓÐà 2026-04-03 4/200 2026-04-03 11:24 by wangjy2002
[¿¼ÑÐ] 413Çóµ÷¼Á +3 ¿Âijij 2026-03-31 3/150 2026-04-02 16:59 by zzsw+
[¿¼ÑÐ] ũѧ¿¼ÑÐÇóµ÷¼Á +3 dkdkxm 2026-04-01 3/150 2026-04-02 16:04 by wangjagri
[¿¼ÑÐ] 348Çóµ÷¼Á +6 ÎâÑå׿24k 2026-04-02 6/300 2026-04-02 14:07 by ¸øÄãÄã×¢ÒâÐÝÏ¢
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ²ÄÁÏѧ˶328·ÖÇóµ÷¼Á +6 1¶Îʱ¼ä 2026-03-31 7/350 2026-04-02 13:57 by 3041
[¿¼ÑÐ] 085601Ò»Ö¾Ô¸ÖÐɽ´óѧÉîÛÚ²ÄÁϹ¤³Ì330Çóµ÷¼Á +8 pipiver 2026-03-30 8/400 2026-04-02 12:01 by ms629
[¿¼ÑÐ] 307·ÖÇóµ÷¼Á +14 (o~o) 2026-03-31 15/750 2026-04-01 20:43 by longlotian
[¿¼ÑÐ] ʡ˫һÁ÷ÖØµãÒ»±¾´óѧÕÐÊÕµ÷¼Á +4 wwwwffffff 2026-03-31 7/350 2026-04-01 15:23 by wwwwffffff
[¿¼ÑÐ] 311Çóµ÷¼Á +10 ÀîÜÆÐÂ1 2026-03-31 10/500 2026-04-01 14:38 by chenqifeng666
[¿¼ÑÐ] ±¾2Ò»Ö¾Ô¸C9-333·Ö£¬²ÄÁÏ¿ÆÑ§Ó빤³Ì£¬Çóµ÷¼Á +9 ÉýÉý²»½µ 2026-03-31 9/450 2026-03-31 18:01 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 070300»¯Ñ§354Çóµ÷¼Á +15 101´ÎÏ£Íû 2026-03-28 15/750 2026-03-31 17:58 by jp9609
[¿¼ÑÐ] ¸£½¨Àí¹¤´óѧ²ÄÁÏѧԺÏȽøºÏ½ðÍŶÓÕÐÊÕ¿¼Ñе÷¼ÁѧÉú +3 ´ó»ª½ðÉ̶¼ 2026-03-30 4/200 2026-03-31 01:04 by ·½Ó¢¿¡602
[¿¼ÑÐ] Çóµ÷¼Á +7 ÕùÈ¡¾Åµã˯ 2026-03-28 8/400 2026-03-28 21:07 by ÕùÈ¡¾Åµã˯
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û