본문 바로가기

Development/Servers

*NIX 용 쉘 세팅을 위한

*nix 쉘 관리를 위해 구글링…


.profile은 배시 셸 뿐만이 아니라 다른 셸도 읽을 수 있는 환경 설정 파일입니다. 리눅스의 경우 .bashrc 파일 하나만 수정하면 됩니다.

#############################################################################
# User specific aliases and functions
#
## aliases 'ls'
alias ls="ls -hFvG"
alias l="ls -al"
alias lh="ls -lh .[a-zA-Z0-9]*"
alias ll="ls -lh | more"
alias lla="ls -lha"
alias lx='ls -lXB'  # 확장자별 정렬
alias lk='ls -lSr'  # 크기별
alias la='ls -Al'  # hidden file view
alias lr='ls -lR'  # 재귀적 ls
alias lt='ls -ltr'  # 날짜별 정렬
alias tree='tree -Cs'  # 'ls'
#
## aliases for Tape-ARchive(tar)
alias tart='tar tvzf'
alias tarc='tar cvzf'
alias tarx='tar xvzf'
#
## aliases to excute specific applications
alias man='man -a'
alias pu='\ps u'
alias ps='\ps -afl'
alias pl='ps -L'
#
## Diagnostics
alias meminfo='echo "/proc/meminfo:"; cat /proc/meminfo; echo "/proc/swaps:"; cat /proc/swaps'
alias cpuinfo='echo "/proc/cpuinfo:"; cat /proc/cpuinfo'

alias ..="cd ..;ls"   # cd 명령후 파일목록 리스트 바로 출력, ccd 참조
alias be="vi ~/.bashrc;source ~/.bashrc"   # .bashrc 수정후 실행
alias cls="clear" 
alias cp="cp -i"
alias du="du -h"
alias df="df -kh"
alias h="history"
alias j='jobs -l'

alias logs="tail -f /var/log/messages /var/log/*log"
alias mkdir="mkdir -p"
alias mlog="tail -100f /var/log/mail.log"
alias mv="mv -i"
alias path="env | grep PATH"
alias ps="ps aux"
alias rm="rm -i"
alias tc="tar cfvz"
alias tx="tar xfvz"
alias vi="vim"

#-----------------------
# 인사말, motd 등등...
#-----------------------
# 먼저 색깔을 몇 개 정의:
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
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     # 하루를 즐겁게.... :-)
fi

#-----------------------------------
# 파일 & 문자열 관련 함수들:
#-----------------------------------
function ccd() { cd $1 ; ls  ; }                   # 파일 삭제
function del()  # 파일 삭제시 .bak/ 으로 이동
    if [ -d ~/.bak ]; then
        mv  -f $1  ~/.bak ; 
    else
        mkdir ~/.bak
        mv  -f $1  ~/.bak ; 
    fi
}
function ff() { find . -name '*'$1'*' ; }                 # 파일 찾기
function fe() { find . -name '*'$1'*' -exec $2 {} \; ; }  # 파일을 찾아서 $2 의 인자로 실행
function fstr() # 여러 파일중에서 문자열 찾기
{
    if [ "$#" -gt 2 ]; then
        echo "Usage: fstr \"pattern\" [files] "
        return;
    fi
    SMSO=$(tput smso)
    RMSO=$(tput rmso)
    find . -type f -name "${2:-*}" -print | xargs grep -sin "$1" | \
sed "s/$1/$SMSO$1$RMSO/gI"
}
function 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()         # 파일이름 두개를 서로 바꿈
{
    local TMPFILE=tmp.$$
    mv $1 $TMPFILE
    mv $2 $1
    mv $TMPFILE $2
}