단축의 두 방법
alias 는 문자열 치환. alias ll='ls -lah' 는 'll 치면 ls -lah 실행'. function 은 작은 프로그램. 인자 받고, 로직 있고, 다른 command 호출 가능.
alias 규칙
alias name='command'— 정의.=양옆 공백 없음.- 값은 인용 (단일 따옴표 권장).
- alias 는 자연스럽게 인자 못 받음 — 단순 텍스트 치환.
unalias name— 제거.- 인자 없는
alias— 모든 alias 나열.
function 규칙
name() { commands; }— POSIX.function name { commands; }— bash/zsh.$1,$2, ... 인자.$@전부.local var=value가 함수 내 변수.unset -f name— 제거.
언제 어느 쪽?
- command 에 flag 추가? → alias.
- 인자 조작? → function.
- 여러 줄? → function.
- 긴 command 의 한 글자 단축? → alias.
흔한 패턴
alias ll='ls -lah'
alias gst='git status'
alias gco='git checkout'
alias ports='lsof -iTCP -sTCP:LISTEN -P -n'
mkcd() { mkdir -p "$1" && cd "$1"; }
extract() {
case "$1" in
*.tar.gz|*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.tar.bz2) tar xjf "$1" ;;
*) echo 'unknown archive' ;;
esac
}