linux:shell
差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版前次修改 下次修改 | 前次修改 | ||
| linux:shell [2009/01/31 11:01] – wenpei | linux:shell [2011/08/09 09:43] (目前版本) – wenpei | ||
|---|---|---|---|
| 行 62: | 行 62: | ||
| $ bind ‘”\x1b\x5b\x41″: | $ bind ‘”\x1b\x5b\x41″: | ||
| </ | </ | ||
| + | |||
| + | [[http:// | ||
| ====== Shell Script ====== | ====== Shell Script ====== | ||
| 行 272: | 行 274: | ||
| * 傳入函式:呼叫時直接寫在函式名稱後面,即可成為函式的位置變數 | * 傳入函式:呼叫時直接寫在函式名稱後面,即可成為函式的位置變數 | ||
| * 傳出函式:使用全域變數來儲存跨函式間的資料 | * 傳出函式:使用全域變數來儲存跨函式間的資料 | ||
| + | |||
| + | ===== 上一個指令的執行結果 ===== | ||
| + | http:// | ||
| + | |||
| + | 「$? | ||
| + | |||
| + | 因此可寫成: | ||
| + | < | ||
| + | SUCCESS=0 | ||
| + | |||
| + | mv some.log $BAKDIR/ | ||
| + | |||
| + | if [ " | ||
| + | then | ||
| + | echo "Can NOT move some.log to $BAKDIR/ | ||
| + | exit 1 | ||
| + | fi | ||
| + | </ | ||
| ====== date 指令 ====== | ====== date 指令 ====== | ||
| 行 298: | 行 318: | ||
| 並在 crontab 中加入(需 root 權限) | 並在 crontab 中加入(需 root 權限) | ||
| 0 21 * | 0 21 * | ||
| + | | ||
| + | ====== zsh ====== | ||
| + | http:// | ||
| + | |||
| + | http:// | ||
| + | |||
| + | http:// | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ===== zshrc by vgod ===== | ||
| + | < | ||
| + | export PATH=" | ||
| + | export EDITOR=vim | ||
| + | export LANG=en_US.UTF-8 | ||
| + | |||
| + | UNAME=`uname` | ||
| + | if [[ $UNAME == " | ||
| + | then | ||
| + | | ||
| + | alias ls='ls -Gv' | ||
| + | elif [[ $UNAME == " | ||
| + | then | ||
| + | alias ls='ls --color=auto' | ||
| + | fi | ||
| + | |||
| + | # path alias, e.g. cd ~XXX | ||
| + | #hash -d WWW="/ | ||
| + | |||
| + | |||
| + | # HISTORY | ||
| + | # 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=~/ | ||
| + | # # append command to history file once executed | ||
| + | setopt INC_APPEND_HISTORY | ||
| + | |||
| + | # Disable core dumps | ||
| + | limit coredumpsize 0 | ||
| + | |||
| + | # vi key binding | ||
| + | bindkey -v | ||
| + | bindkey ' | ||
| + | # mapping del | ||
| + | bindkey " | ||
| + | |||
| + | setopt AUTO_PUSHD | ||
| + | |||
| + | WORDCHARS=' | ||
| + | |||
| + | # auto-completion | ||
| + | setopt COMPLETE_ALIASES | ||
| + | setopt AUTO_LIST | ||
| + | setopt AUTO_MENU | ||
| + | #setopt MENU_COMPLETE | ||
| + | setopt MULTIBYTE | ||
| + | |||
| + | autoload -U compinit | ||
| + | compinit | ||
| + | |||
| + | # Completion caching | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | #zstyle ': | ||
| + | |||
| + | #Completion Options | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | # Path Expansion | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | #zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | # require / | ||
| + | [ -f / | ||
| + | export ZLSCOLORS=" | ||
| + | zmodload zsh/ | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | bindkey -M menuselect ' | ||
| + | |||
| + | compdef pkill=kill | ||
| + | compdef pkill=killall | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | # Group matches and Describe | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | alias ll='ls -l' | ||
| + | alias grep=' | ||
| + | |||
| + | |||
| + | function precmd { | ||
| + | |||
| + | local TERMWIDTH | ||
| + | (( TERMWIDTH = ${COLUMNS} - 1 )) | ||
| + | |||
| + | ### | ||
| + | # Truncate the path if it's too long. | ||
| + | |||
| + | PR_FILLBAR="" | ||
| + | PR_PWDLEN="" | ||
| + | |||
| + | local promptsize=${# | ||
| + | local pwdsize=${# | ||
| + | |||
| + | if [[ " | ||
| + | ((PR_PWDLEN=$TERMWIDTH - $promptsize)) | ||
| + | else | ||
| + | PR_FILLBAR=" | ||
| + | fi | ||
| + | |||
| + | ### | ||
| + | # Get APM info. | ||
| + | |||
| + | #if which ibam > /dev/null; then | ||
| + | # | ||
| + | #elif which apm > /dev/null; then | ||
| + | # | ||
| + | #fi | ||
| + | } | ||
| + | |||
| + | setopt extended_glob | ||
| + | preexec () { | ||
| + | if [[ " | ||
| + | local CMD=${1[(wr)^(*=*|sudo|-*)]} | ||
| + | echo -n " | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | setprompt () { | ||
| + | ### | ||
| + | # Need this so the prompt will work. | ||
| + | |||
| + | setopt prompt_subst | ||
| + | |||
| + | ### | ||
| + | # See if we can use colors. | ||
| + | |||
| + | autoload colors zsh/ | ||
| + | if [[ " | ||
| + | colors | ||
| + | fi | ||
| + | for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do | ||
| + | eval PR_$color=' | ||
| + | eval PR_LIGHT_$color=' | ||
| + | (( count = $count + 1 )) | ||
| + | done | ||
| + | PR_NO_COLOUR=" | ||
| + | |||
| + | ### | ||
| + | # See if we can use extended characters to look nicer. | ||
| + | |||
| + | typeset -A altchar | ||
| + | set -A altchar ${(s..)terminfo[acsc]} | ||
| + | PR_SET_CHARSET=" | ||
| + | PR_SHIFT_IN=" | ||
| + | PR_SHIFT_OUT=" | ||
| + | PR_HBAR=${altchar[q]: | ||
| + | # | ||
| + | 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=$' | ||
| + | ;; | ||
| + | screen) | ||
| + | PR_TITLEBAR=$' | ||
| + | ;; | ||
| + | *) | ||
| + | PR_TITLEBAR='' | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | ### | ||
| + | # Decide whether to set a screen title | ||
| + | if [[ " | ||
| + | PR_STITLE=$' | ||
| + | else | ||
| + | PR_STITLE='' | ||
| + | fi | ||
| + | |||
| + | ### | ||
| + | # APM detection | ||
| + | |||
| + | #if which ibam > /dev/null; then | ||
| + | # | ||
| + | #elif which apm > /dev/null; then | ||
| + | # | ||
| + | #else | ||
| + | PR_APM='' | ||
| + | #fi | ||
| + | |||
| + | ### | ||
| + | # Finally, the prompt. | ||
| + | |||
| + | PROMPT=' | ||
| + | $PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT [\ | ||
| + | $PR_GREEN%(!.%SROOT%s.%n)$PR_GREEN@%m\ | ||
| + | $PR_BLUE]$PR_SHIFT_IN $PR_SHIFT_OUT$PR_BLUE\ | ||
| + | $PR_MAGENTA%$PR_PWDLEN< | ||
| + | $PR_BLUE$PR_SHIFT_IN$PR_HBAR${(e)PR_FILLBAR}$PR_CYAN$PR_URCORNER$PR_SHIFT_OUT\ | ||
| + | |||
| + | $PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT \ | ||
| + | %(? | ||
| + | $PR_LIGHT_BLUE%(!.$PR_RED# | ||
| + | $PR_CYAN$PR_SHIFT_IN$PR_SHIFT_OUT\ | ||
| + | $PR_NO_COLOUR ' | ||
| + | |||
| + | RPROMPT=' | ||
| + | ($PR_YELLOW%D{%H: | ||
| + | |||
| + | PS2=' | ||
| + | $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 | ||
| + | </ | ||
| + | |||
| + | |||
linux/shell.1233370877.txt.gz · 上一次變更: 由 wenpei
