LogIn E-mail
¼³°èÀ̾߱â
[bash]example 2
# 54     70.1.1 09:00

Appendix J. A Sample .bashrc File

The ~/.bashrc file determines the behavior of interactive shells. A good look at this file can lead to a better understanding
of Bash.

Emmanuel Rouat contributed the following very elaborate .bashrc file, written for a Linux system. He welcomes reader
feedback on it.

Study the file carefully, and feel free to reuse code snippets and functions from it in your own .bashrc file or even in your
scripts.

Example J-1. Sample .bashrc file

 #===============================================================
 #
 # PERSONAL $HOME/.bashrc FILE for bash-2.05a (or later)
 #
 # Last modified: Tue Apr 15 20:32:34 CEST 2003
 #
 # This file is read (normally) by interactive shells only.
 # Here is the place to define your aliases, functions and
 # other interactive features like your prompt.
 #
 # This file was designed (originally) for Solaris but based
 # on Redhat's default .bashrc file
 # --> Modified for Linux.
 # The majority of the code you'll find here is based on code found
 # on Usenet (or internet).
 # This bashrc file is a bit overcrowded - remember it is just
 # just an example. Tailor it to your needs
 #
 #
 #===============================================================

 # --> Comments added by HOWTO author.
 # --> And then edited again by ER :-)

 #-----------------------------------
 # Source global definitions (if any)
 #-----------------------------------

 if [ -f /etc/bashrc ]; then
         . /etc/bashrc   # --> Read /etc/bashrc, if present.
 fi

 #-------------------------------------------------------------
 # Automatic setting of $DISPLAY (if not set already)
 # This works for linux - your mileage may vary....
 # The problem is that different types of terminals give
 # different answers to 'who am i'......
 # I have not found a 'universal' method yet
 #-------------------------------------------------------------

 function get_xserver ()
 {
     case $TERM in
         xterm )
             XSERVER=$(who am i | awk '{print $NF}' | tr -d ')''(' )
             XSERVER=${XSERVER%%:*}
             ;;
         aterm | rxvt)
         # find some code that works here.....
             ;;
     esac  
 }

 if [ -z ${DISPLAY:=""} ]; then
     get_xserver
     if [[ -z ${XSERVER}  || ${XSERVER} == $(hostname) || ${XSERVER} == "unix" ]]; then
         DISPLAY=":0.0"          # Display on local host
     else                
         DISPLAY=${XSERVER}:0.0  # Display on remote host
     fi
 fi

 export DISPLAY

 #---------------
 # Some settings
 #---------------

 ulimit -S -c 0          # Don't want any coredumps
 set -o notify
 set -o noclobber
 set -o ignoreeof
 set -o nounset
 #set -o xtrace          # useful for debuging

 # Enable options:
 shopt -s cdspell
 shopt -s cdable_vars
 shopt -s checkhash
 shopt -s checkwinsize
 shopt -s mailwarn
 shopt -s sourcepath
 shopt -s no_empty_cmd_completion  # bash>=2.04 only
 shopt -s cmdhist
 shopt -s histappend histreedit histverify
 shopt -s extglob        # necessary for programmable completion

 # Disable options:
 shopt -u mailwarn
 unset MAILCHECK         # I don't want my shell to warn me of incoming mail


 export TIMEFORMAT=$'\nreal %3R\tuser %3U\tsys %3S\tpcpu %P\n'
 export HISTIGNORE="&:bg:fg:ll:h"
 export HOSTFILE=$HOME/.hosts    # Put a list of remote hosts in ~/.hosts



 #-----------------------
 # Greeting, motd etc...
 #-----------------------

 # Define some colors first:
 red='\e[0;31m'
 RED='\e[1;31m'
 blue='\e[0;34m'
 BLUE='\e[1;34m'
 cyan='\e[0;36m'
 CYAN='\e[1;36m'
 NC='\e[0m'              # No Color
 # --> Nice. Has the same effect as using "ansi.sys" in DOS.

 # Looks best on a black background.....
 echo -e "${CYAN}This is BASH ${RED}${BASH_VERSION%.*}${CYAN} - DISPLAY on ${RED}$DISPLAY${NC}\n"
 date
 if [ -x /usr/games/fortune ]; then
     /usr/games/fortune -s     # makes our day a bit more fun.... :-)
 fi

 function _exit()        # function to run upon exit of shell
 {
     echo -e "${RED}Hasta la vista, baby${NC}"
 }
 trap _exit EXIT

 #---------------
 # Shell Prompt
 #---------------

 if [[ "${DISPLAY#$HOST}" != ":0.0" &&  "${DISPLAY}" != ":0" ]]; then  
     HILIT=${red}   # remote machine: prompt will be partly red
 else
     HILIT=${cyan}  # local machine: prompt will be partly cyan
 fi

 #  --> Replace instances of \W with \w in prompt functions below
 #+ --> to get display of full path name.

 function fastprompt()
 {
     unset PROMPT_COMMAND
     case $TERM in
         *term | rxvt )
             PS1="${HILIT}[\h]$NC \W > \[\033]0;\${TERM} [\u@\h] \w\007\]" ;;
         linux )
             PS1="${HILIT}[\h]$NC \W > " ;;
         *)
             PS1="[\h] \W > " ;;
     esac
 }

 function powerprompt()
 {
     _powerprompt()
     {
         LOAD=$(uptime|sed -e "s/.*: \([^,]*\).*/\1/" -e "s/ //g")
     }

     PROMPT_COMMAND=_powerprompt
     case $TERM in
         *term | rxvt  )
             PS1="${HILIT}[\A \$LOAD]$NC\n[\h \#] \W > \[\033]0;\${TERM} [\u@\h] \w\007\]" ;;
         linux )
             PS1="${HILIT}[\A - \$LOAD]$NC\n[\h \#] \w > " ;;
         * )
             PS1="[\A - \$LOAD]\n[\h \#] \w > " ;;
     esac
 }

 powerprompt     # this is the default prompt - might be slow
                 # If too slow, use fastprompt instead....

 #===============================================================
 #
 # ALIASES AND FUNCTIONS
 #
 # Arguably, some functions defined here are quite big
 # (ie 'lowercase') but my workstation has 512Meg of RAM, so .....
 # If you want to make this file smaller, these functions can
 # be converted into scripts.
 #
 # Many functions were taken (almost) straight from the bash-2.04
 # examples.
 #
 #===============================================================

 #-------------------
 # Personnal Aliases
 #-------------------

 alias rm='rm -i'
 alias cp='cp -i'
 alias mv='mv -i'
 # -> Prevents accidentally clobbering files.
 alias mkdir='mkdir -p'

 alias h='history'
 alias j='jobs -l'
 alias r='rlogin'
 alias which='type -all'
 alias ..='cd ..'
 alias path='echo -e ${PATH//:/\\n}'
 alias print='/usr/bin/lp -o nobanner -d $LPDEST'   # Assumes LPDEST is defined
 alias pjet='enscript -h -G -fCourier9 -d $LPDEST'  # Pretty-print using enscript
 alias background='xv -root -quit -max -rmode 5'    # Put a picture in the background
 alias du='du -kh'
 alias df='df -kTh'

 # The 'ls' family (this assumes you use the GNU ls)
 alias la='ls -Al'               # show hidden files
 alias ls='ls -hF --color'       # add colors for filetype recognition
 alias lx='ls -lXB'              # sort by extension
 alias lk='ls -lSr'              # sort by size
 alias lc='ls -lcr'              # sort by change time  
 alias lu='ls -lur'              # sort by access time  
 alias lr='ls -lR'               # recursive ls
 alias lt='ls -ltr'              # sort by date
 alias lm='ls -al |more'         # pipe through 'more'
 alias tree='tree -Csu'          # nice alternative to 'ls'

 # tailoring 'less'
 alias more='less'
 export PAGER=less
 export LESSCHARSET='latin1'
 export LESSOPEN='|/usr/bin/lesspipe.sh %s 2>&-' # Use this if lesspipe.sh exists
 export LESS='-i -N -w  -z-4 -g -e -M -X -F -R -P%t?f%f \
 :stdin .?pb%pb\%:?lbLine %lb:?bbByte %bb:-...'

 # spelling typos - highly personnal :-)
 alias xs='cd'
 alias vf='cd'
 alias moer='more'
 alias moew='more'
 alias kk='ll'

 #----------------
 # a few fun ones
 #----------------

 function xtitle ()
 {
     case "$TERM" in
         *term | rxvt)
             echo -n -e "\033]0;$*\007" ;;
         *)  
             ;;
     esac
 }

 # aliases...
 alias top='xtitle Processes on $HOST && top'
 alias make='xtitle Making $(basename $PWD) ; make'
 alias ncftp="xtitle ncFTP ; ncftp"

 # .. and functions
 function man ()
 {
     for i ; do
         xtitle The $(basename $1|tr -d .[:digit:]) manual
         command man -F -a "$i"
     done
 }

 function ll(){ ls -l "$@"| egrep "^d" ; ls -lXB "$@" 2>&-| egrep -v "^d|total "; }
 function te()  # wrapper around xemacs/gnuserv
 {
     if [ "$(gnuclient -batch -eval t 2>&-)" == "t" ]; then
         gnuclient -q "$@";
     else
         ( xemacs "$@" &);
     fi
 }

 #-----------------------------------
 # File & strings related functions:
 #-----------------------------------

 # Find a file with a pattern in name:
 function ff() { find . -type f -iname '*'$*'*' -ls ; }
 # Find a file with pattern $1 in name and Execute $2 on it:
 function fe() { find . -type f -iname '*'$1'*' -exec "${2:-file}" {} \;  ; }
 # find pattern in a set of filesand highlight them:
 function fstr()
 {
     OPTIND=1
     local case=""
     local usage="fstr: find string in files.
 Usage: fstr [-i] \"pattern\" [\"filename pattern\"] "
     while getopts :it opt
     do
         case "$opt" in
         i) case="-i " ;;
         *) echo "$usage"; return;;
         esac
     done
     shift $(( $OPTIND - 1 ))
     if [ "$#" -lt 1 ]; then
         echo "$usage"
         return;
     fi
     local SMSO=$(tput smso)
     local RMSO=$(tput rmso)
     find . -type f -name "${2:-*}" -print0 | xargs -0 grep -sn ${case} "$1" 2>&- | \
 sed "s/$1/${SMSO}\0${RMSO}/gI" | more
 }

 function cuttail() # cut last n lines in file, 10 by default
 {
     nlines=${2:-10}
     sed -n -e :a -e "1,${nlines}!{P;N;D;};N;ba" $1
 }

 function lowercase()  # move filenames to lowercase
 {
     for file ; do
         filename=${file##*/}
         case "$filename" in
         */*) dirname==${file%/*} ;;
         *) dirname=.;;
         esac
         nf=$(echo $filename | tr A-Z a-z)
         newname="${dirname}/${nf}"
         if [ "$nf" != "$filename" ]; then
             mv "$file" "$newname"
             echo "lowercase: $file --> $newname"
         else
             echo "lowercase: $file not changed."
         fi
     done
 }

 function swap()         # swap 2 filenames around
 {
     local TMPFILE=tmp.$$
     mv "$1" $TMPFILE
     mv "$2" "$1"
     mv $TMPFILE "$2"
 }


 #-----------------------------------
 # Process/system related functions:
 #-----------------------------------

 function my_ps() { ps $@ -u $USER -o pid,%cpu,%mem,bsdtime,command ; }
 function pp() { my_ps f | awk '!/awk/ && $0~var' var=${1:-".*"} ; }

 # This function is roughly the same as 'killall' on linux
 # but has no equivalent (that I know of) on Solaris
 function killps()   # kill by process name
 {
     local pid pname sig="-TERM"   # default signal
     if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
         echo "Usage: killps [-SIGNAL] pattern"
         return;
     fi
     if [ $# = 2 ]; then sig=$1 ; fi
     for pid in $(my_ps| awk '!/awk/ && $0~pat { print $1 }' pat=${!#} ) ; do
         pname=$(my_ps | awk '$1~var { print $5 }' var=$pid )
         if ask "Kill process $pid <$pname> with signal $sig?"
             then kill $sig $pid
         fi
     done
 }

 function my_ip() # get IP adresses
 {
     MY_IP=$(/sbin/ifconfig ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://)
     MY_ISP=$(/sbin/ifconfig ppp0 | awk '/P-t-P/ { print $3 } ' | sed -e s/P-t-P://)
 }

 function ii()   # get current host related info
 {
     echo -e "\nYou are logged on ${RED}$HOST"
     echo -e "\nAdditionnal information:$NC " ; uname -a
     echo -e "\n${RED}Users logged on:$NC " ; w -h
     echo -e "\n${RED}Current date :$NC " ; date
     echo -e "\n${RED}Machine stats :$NC " ; uptime
     echo -e "\n${RED}Memory stats :$NC " ; free
     my_ip 2>&- ;
     echo -e "\n${RED}Local IP Address :$NC" ; echo ${MY_IP:-"Not connected"}
     echo -e "\n${RED}ISP Address :$NC" ; echo ${MY_ISP:-"Not connected"}
     echo
 }

 # Misc utilities:

 function repeat()       # repeat n times command
 {
     local i max
     max=$1; shift;
     for ((i=1; i <= max ; i++)); do  # --> C-like syntax
         eval "$@";
     done
 }

 function ask()
 {
     echo -n "$@" '[y/n] ' ; read ans
     case "$ans" in
         y*|Y*) return 0 ;;
         *) return 1 ;;
     esac
 }

 #=========================================================================
 #
 # PROGRAMMABLE COMPLETION - ONLY SINCE BASH-2.04
 # Most are taken from the bash 2.05 documentation and from Ian McDonalds
 # 'Bash completion' package (http://www.caliban.org/bash/index.shtml#completion)
 # You will in fact need bash-2.05a for some features
 #
 #=========================================================================

 if [ "${BASH_VERSION%.*}" \< "2.05" ]; then
     echo "You will need to upgrade to version 2.05 for programmable completion"
     return
 fi

 shopt -s extglob        # necessary
 set +o nounset          # otherwise some completions will fail

 complete -A hostname   rsh rcp telnet rlogin r ftp ping disk
 complete -A export     printenv
 complete -A variable   export local readonly unset
 complete -A enabled    builtin
 complete -A alias      alias unalias
 complete -A function   function
 complete -A user       su mail finger

 complete -A helptopic  help     # currently same as builtins
 complete -A shopt      shopt
 complete -A stopped -P '%' bg
 complete -A job -P '%'     fg jobs disown

 complete -A directory  mkdir rmdir
 complete -A directory   -o default cd

 # Compression
 complete -f -o default -X '*.+(zip|ZIP)'  zip
 complete -f -o default -X '!*.+(zip|ZIP)' unzip
 complete -f -o default -X '*.+(z|Z)'      compress
 complete -f -o default -X '!*.+(z|Z)'     uncompress
 complete -f -o default -X '*.+(gz|GZ)'    gzip
 complete -f -o default -X '!*.+(gz|GZ)'   gunzip
 complete -f -o default -X '*.+(bz2|BZ2)'  bzip2
 complete -f -o default -X '!*.+(bz2|BZ2)' bunzip2
 # Postscript,pdf,dvi.....
 complete -f -o default -X '!*.ps'  gs ghostview ps2pdf ps2ascii
 complete -f -o default -X '!*.dvi' dvips dvipdf xdvi dviselect dvitype
 complete -f -o default -X '!*.pdf' acroread pdf2ps
 complete -f -o default -X '!*.+(pdf|ps)' gv
 complete -f -o default -X '!*.texi*' makeinfo texi2dvi texi2html texi2pdf
 complete -f -o default -X '!*.tex' tex latex slitex
 complete -f -o default -X '!*.lyx' lyx
 complete -f -o default -X '!*.+(htm*|HTM*)' lynx html2ps
 # Multimedia
 complete -f -o default -X '!*.+(jp*g|gif|xpm|png|bmp)' xv gimp
 complete -f -o default -X '!*.+(mp3|MP3)' mpg123 mpg321
 complete -f -o default -X '!*.+(ogg|OGG)' ogg123



 complete -f -o default -X '!*.pl'  perl perl5

 # This is a 'universal' completion function - it works when commands have
 # a so-called 'long options' mode , ie: 'ls --all' instead of 'ls -a'

 _get_longopts ()
 {
     $1 --help | sed  -e '/--/!d' -e 's/.*--\([^[:space:].,]*\).*/--\1/'| \
 grep ^"$2" |sort -u ;
 }

 _longopts_func ()
 {
     case "${2:-*}" in
         -*)     ;;
         *)      return ;;
     esac

     case "$1" in
         \~*)    eval cmd="$1" ;;
         *)      cmd="$1" ;;
     esac
     COMPREPLY=( $(_get_longopts ${1} ${2} ) )
 }
 complete  -o default -F _longopts_func configure bash
 complete  -o default -F _longopts_func wget id info a2ps ls recode


 _make_targets ()
 {
     local mdef makef gcmd cur prev i

     COMPREPLY=()
     cur=${COMP_WORDS[COMP_CWORD]}
     prev=${COMP_WORDS[COMP_CWORD-1]}

     # if prev argument is -f, return possible filename completions.
     # we could be a little smarter here and return matches against
     # `makefile Makefile *.mk', whatever exists
     case "$prev" in
         -*f)    COMPREPLY=( $(compgen -f $cur ) ); return 0;;
     esac

     # if we want an option, return the possible posix options
     case "$cur" in
         -)      COMPREPLY=(-e -f -i -k -n -p -q -r -S -s -t); return 0;;
     esac

     # make reads `makefile' before `Makefile'
     if [ -f makefile ]; then
         mdef=makefile
     elif [ -f Makefile ]; then
         mdef=Makefile
     else
         mdef=*.mk               # local convention
     fi

     # before we scan for targets, see if a makefile name was specified
     # with -f
     for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
         if [[ ${COMP_WORDS[i]} == -*f ]]; then
             eval makef=${COMP_WORDS[i+1]}       # eval for tilde expansion
             break
         fi
     done

         [ -z "$makef" ] && makef=$mdef

     # if we have a partial word to complete, restrict completions to
     # matches of that word
     if [ -n "$2" ]; then gcmd='grep "^$2"' ; else gcmd=cat ; fi

     # if we don't want to use *.mk, we can take out the cat and use
     # test -f $makef and input redirection
     COMPREPLY=( $(cat $makef 2>/dev/null | awk 'BEGIN {FS=":"} /^[^.#   ][^=]*:/ {print $1}' | tr -s ' ' '\012' | sort -u | eval $gcmd ) )
 }

 complete -F _make_targets -X '+($*|*.[cho])' make gmake pmake


 # cvs(1) completion
 _cvs ()
 {
     local cur prev
     COMPREPLY=()
     cur=${COMP_WORDS[COMP_CWORD]}
     prev=${COMP_WORDS[COMP_CWORD-1]}

     if [ $COMP_CWORD -eq 1 ] || [ "${prev:0:1}" = "-" ]; then
         COMPREPLY=( $( compgen -W 'add admin checkout commit diff \
         export history import log rdiff release remove rtag status \
         tag update' $cur ))
     else
         COMPREPLY=( $( compgen -f $cur ))
     fi
     return 0
 }
 complete -F _cvs cvs

 _killall ()
 {
     local cur prev
     COMPREPLY=()
     cur=${COMP_WORDS[COMP_CWORD]}

     # get a list of processes (the first sed evaluation
     # takes care of swapped out processes, the second
     # takes care of getting the basename of the process)
     COMPREPLY=( $( /usr/bin/ps -u $USER -o comm  | \
         sed -e '1,1d' -e 's#[]\[]##g' -e 's#^.*/##'| \
         awk '{if ($0 ~ /^'$cur'/) print $0}' ))

     return 0
 }

 complete -F _killall killall killps


 # A meta-command completion function for commands like sudo(8), which need to
 # first complete on a command, then complete according to that command's own
 # completion definition - currently not quite foolproof (e.g. mount and umount
 # don't work properly), but still quite useful - By Ian McDonald, modified by me.

 _my_command()
 {
     local cur func cline cspec
     
     COMPREPLY=()
     cur=${COMP_WORDS[COMP_CWORD]}

     if [ $COMP_CWORD = 1 ]; then
         COMPREPLY=( $( compgen -c $cur ) )
     elif complete -p ${COMP_WORDS[1]} &>/dev/null; then
         cspec=$( complete -p ${COMP_WORDS[1]} )
         if [ "${cspec%%-F *}" != "${cspec}" ]; then
             # complete -F <function>
             #
             # COMP_CWORD and COMP_WORDS() are not read-only,
             # so we can set them before handing off to regular
             # completion routine
         
             # set current token number to 1 less than now
             COMP_CWORD=$(( $COMP_CWORD - 1 ))
             # get function name
             func=${cspec#*-F }
             func=${func%% *}
             # get current command line minus initial command
             cline="${COMP_LINE#$1 }"
             # split current command line tokens into array
                 COMP_WORDS=( $cline )
             $func $cline
         elif [ "${cspec#*-[abcdefgjkvu]}" != "" ]; then
             # complete -[abcdefgjkvu]
             #func=$( echo $cspec | sed -e 's/^.*\(-[abcdefgjkvu]\).*$/\1/' )
             func=$( echo $cspec | sed -e 's/^complete//' -e 's/[^ ]*$//' )
             COMPREPLY=( $( eval compgen $func $cur ) )
         elif [ "${cspec#*-A}" != "$cspec" ]; then
             # complete -A <type>
             func=${cspec#*-A }
         func=${func%% *}
         COMPREPLY=( $( compgen -A $func $cur ) )
         fi
     else
         COMPREPLY=( $( compgen -f $cur ) )
     fi
 }


 complete -o default -F _my_command nohup exec eval trace truss strace sotruss gdb
 complete -o default -F _my_command command type which man nice

 # Local Variables:
 # mode:shell-script
 # sh-shell:bash
 # End:

°Ô½Ã¹°: 114 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
117  [csh].cshrc alias JMJS 25.7.4 155
116  [make] DUMPON eval ifeq JMJS 24.9.12 367
115  [make] .PHONY JMJS 24.3.28 359
114  [make] -n -d -r --debug=b JMJS 24.3.28 372
113  magick convert -rotate -append JMJS 23.10.12 393
112  dirname JMJS 23.3.20 477
111  zip a.zip -r ./a JMJS 23.2.1 518
110  ffmpeg AlwaysMovie JMJS 22.12.6 527
109  7za a abc.zip abc -> tar -c -z -f abc.zip abc JMJS 22.11.30 533
108  convert mogrify JMJS 23.2.1 558
107  [sh]array JMJS 19.8.14 587
106  arithmetic in a makefile, shell pwd export JMJS 17.9.8 4699
105  Split and merge large files JMJS 16.3.21 1292
104  [Makefile]random JMJS 14.12.5 1672
100  À©µµ¿ì7 ¿ë·®ºÎÁ· winsxs Æú´õ ÃÖÀûÈ­ JMJS 14.10.14 2625
99  [sh,csh]while loop JMJS 13.2.6 2658
98  hostname, hostid, /sbin/ifconfig eth0 JMJS 13.1.4 4713
97  [linux]fedora 16 gome-shell extension JMJS 12.3.12 2347
96  [linux]fedora 16 grub boot order change JMJS 12.3.10 2543
95  [linux]fedora Input Method,ibus,hangul JMJS 12.3.8 2269
94  [linux]audio,mp3,mplayer,gstreamer,vlc JMJS 12.3.7 2974
93  [sh].wrapper example JMJS 11.6.15 2588
92  [make]for loop JMJS 11.9.8 2261
91  [make]conditional expression JMJS 11.5.12 2179
90  [make]shell ½ÇÇà JMJS 11.3.9 2282
89  [wish]jplot JMJS 10.5.12 2107
88  yum JMJS 09.8.12 1952
87  [CYGWIN]X setupÇϱâ JMJS 10.8.6 3323
86  [Make]Makefile Brief JMJS 10.8.6 1965
85  ldd /user/bin/xterm JMJS 09.4.24 1753
84  [HTML]¾îµµºñ SVG ºä¾î¿Í HTML JMJS 09.4.24 2253
83  [DOS]DOS command JMJS 09.7.20 1945
82  [DOS]DOS command brief JMJS 07.2.21 2418
81  À¥ÆäÀÌÁö ¼Ò½ºº¸±â JMJS 09.4.24 1927
80  [html]ÀÚµ¿À¸·Î ±ÛÀÚ»ö ¹Ù²ñ JMJS 07.1.10 1873
79  [html]º¹»ç, µå·¡±× ±ÝÁö JMJS 07.1.10 2338
78  [csh]cshell¿¡¼­ function ¸ø¾´´Ù³×¿ä JMJS 11.3.17 1932
77  ¸®´ª½º¿¡¼­ i386,i586,i686, x86ÀÇ Â÷ÀÌÁ¡ JMJS 06.10.16 2182
76  [CSH]$status JMJS 06.8.21 1657
75  [sh]substr, read, until,IFS,for,dirname JMJS 14.12.19 1840
74  [sh]rgbview.sh . hello.sh JMJS 10.11.30 1798
73  automount - /etc/fstab JMJS 06.2.23 1793
72  lmutil.csh JMJS 05.11.8 2120
71  È­ÀÏÀ̸§¿¡ ¸ø¿À´Â ¹®ÀÚ JMJS 05.9.8 1925
70  /usr/ucb /usr/ccs JMJS 05.9.5 1780
69  Solaris Version JMJS 05.9.5 2003
68  /usr/ccs/bin/nm -x debpli.so JMJS 05.8.31 2264
67  tar, gzip, zcat, uncompress, mn(.a ÆÄÀϺ¸±â) JMJS 13.1.6 2110
66  find . -name -print -exec perl JMJS 09.4.17 2145
65  pkgadd -d packagefile JMJS 05.5.9 1809
64  prstat JMJS 08.10.2 2065
63  vi ¸í·É¾î, vim¸í·É¾î gvim JMJS 25.6.1 5228
62  grep -Rs µî multiple directory ¿¡¼­ grep ? JMJS 24.12.19 2256
61  [csh].cshrc_axis JMJS 04.5.14 2089
60  [csh].cshrc_modelsim JMJS 04.5.14 2246
59  [csh].cshrc_cadence JMJS 04.5.14 2238
58  [csh].cshrc_novas JMJS 04.5.14 2172
57  [csh].cshrc_verisity JMJS 04.5.14 2552
56  lmgrd JMJS 09.6.22 2828
55  [csh]which case JMJS 04.5.14 2103
54  [bash]example 2 JMJS 04.5.12 2361
53  [bash]example 1 JMJS 04.5.12 2206
52  fedora 12¿¡¼­ touchpad disable JMJS 11.1.17 2239
51  [Perl]Çѱ¹¾î ÀÎÄÚµù JMJS 04.1.16 3090
50  [Perl]HTML¿¡¼­ ±âÈ£ Ç¥½Ã¸¦ À§ÇÑ ¹®ÀÚġȯ JMJS 04.1.5 11326
49  [csh]make awk JMJS 03.6.6 2563
48  [csh]wordsplit JMJS 03.6.6 2116
47  [csh]vi2 JMJS 03.6.6 1957
46  [csh]cat.csh JMJS 03.6.6 2021
45  [csh]chgword.csh JMJS 03.6.6 1964
44  [bash]password JMJS 11.3.9 1809
43  [Tcl]bi2int JMJS 02.11.29 1881
42  [PC]ask °Ë»öâÀÌ ÀÚ²Ù ¶á´Ù¸é JMJS 09.4.24 2355
41  [csh]backup_copyc.csh; foreach cat ; continue JMJS 25.7.8 2063
40  uname, uname -s -r, uname -p, uname -a JMJS 09.4.24 2222
39  [tk]»õ â ¿­°í ´Ý±â ¿¹Á¦ JMJS 09.4.24 11920
38  [sh]if [[ "$abc" == "abc" && "$bbc" == "bbc" ]]; ... JMJS 11.3.17 1992
37  [expect]expect_scp.exp JMJS 11.3.9 2105
36  ssh -x -l soc lion scp -r ... JMJS 11.3.9 1850
35  TclTk ¹è¿­ JMJS 09.7.20 1952
34  ./configure make make install JMJS 11.1.13 1886
33  [csh]diff JMJS 10.7.14 1911
32  tr abc 123 < file1 > file2 JMJS 11.4.11 1849
31  Installing RPMforge JMJS 10.2.8 1899
30  [ű×]±ÛÀÚ»öÀÌ »ç¶óÁü JMJS 09.4.24 1989
29  [ű×]ÀÚµ¿À¸·Î ±ÛÀÚ»öÀÌ º¯ÇÔ JMJS 09.4.24 1989
28  ±ÛÀÚÅÂ±× ¸ðÀ½ JMJS 09.4.24 2154
27  »ö»ó¸í°ú RGB°ª Ç¥ JMJS 09.4.24 2158
26  RGB »ö»óÇ¥ JMJS 09.4.24 2317
25  ÇÑ±ÛÆ¯¼ö¹®ÀÚÇ¥ JMJS 09.4.24 2250
24  bc -l JMJS 01.5.22 1896
23  file *,  od -xc *, cat * JMJS 01.3.28 2197
22  Linux Memo JMJS 09.7.20 2077
21  xterm -fn 10x20 & JMJS 12.3.7 1840
20  W/S Tip JMJS 09.4.29 1963
19  [awk]example JMJS 10.10.30 2207
18  [csh].cshrc JMJS 11.6.21 2682
17  stop & background job JMJS 00.11.14 1934
16  W/S shout down JMJS 00.11.14 1837
15  [sed]example JMJS 16.9.5 2245
14  [DOS]Memo JMJS 00.10.29 1961
13  [csh]¸®½ºÆ®¸¦ ¸¸µé¾î foreach·Î ó¸®ÇÒ¶§ JMJS 00.10.7 5721
12  [Tcl]Tool Command Language JMJS 09.7.24 3341
11  [csh]vi.csh JMJS 00.6.27 1947
10  [csh]Check Process JMJS 00.6.27 1914
9  [csh]Get Character and get char without 'return' JMJS 10.2.8 2215
8  [csh]foreach SED JMJS 00.6.27 2336
7  [Window]¿À·ùº¸°í ¾È ¶ß°ÔÇÏ´Â ¹æ¹ý JMJS 09.9.23 1939
6  [csh]echo.csh JMJS 00.6.27 2113
5  set DDD = `date '+%y%m'` JMJS 00.6.27 1774
4  [SH]Advanced Bash-Scripting Guide JMJS 09.4.24 1798
3  [csh]Beep : echo ^G;sleep 1 JMJS 00.6.27 2097
2  [csh]if ($abc == $bbc) then _ else _ endif JMJS 00.6.27 2264
1  [csh]ARGV JMJS 00.6.27 2383
[1]