우분투 실전 명령어 | alias/함수로 반복 작업 자동화

반복해서 치는 긴 명령어가 많아지면 오타가 늘고, 결국 작업 속도도 느려집니다. 이럴 때 alias와 shell 함수를 같이 써두면 자주 쓰는 패턴을 짧고 안전하게 고정할 수 있습니다. 특히 로그 확인, 포트 점검, git 상태 확인처럼 하루에 여러 번 반복하는 작업에서 체감이 큽니다.

바로 쓰는 명령어

# 1) 현재 셸에서 바로 테스트
alias ll='ls -alF --color=auto'
alias ports='ss -tulpen'
alias myip='ip -brief addr'

# 등록 확인
alias | grep -E '^(alias ll|alias ports|alias myip)='
# 2) 영구 적용 (bash 기준)
cat <<'EOF' >> ~/.bashrc

# custom aliases
alias ll='ls -alF --color=auto'
alias ports='ss -tulpen'

# nginx 에러 마지막 50줄 빠르게 보기
nerr() {
  sudo tail -n 50 /var/log/nginx/error.log
}

# 특정 포트를 점유한 프로세스 찾기: pfind 8080
pfind() {
  if [ -z "$1" ]; then
    echo "usage: pfind <port>"
    return 1
  fi
  sudo lsof -iTCP:"$1" -sTCP:LISTEN -n -P
}
EOF

# 즉시 반영
source ~/.bashrc

핵심 옵션/패턴

  • alias 이름='명령어'짧은 치환에 적합합니다. 인자가 필요한 경우는 함수가 더 낫습니다.
  • 함수는 함수명() { ... } 형태로 만들고, "$1", "$@"로 인자를 안전하게 받습니다.
  • 운영 서버에서는 별칭 이름을 너무 추상적으로 짓지 말고, 목적이 드러나게 만드세요. (logs, ports, pfind처럼)
  • 팀 공용 서버라면 개인 홈의 ~/.bashrc 대신 /etc/profile.d/*.sh로 표준 스크립트를 배포하는 방식이 관리하기 쉽습니다.

자주 하는 실수

  • alias rm='rm -i' 같은 설정을 해두고 자동화 스크립트에서도 같은 동작을 기대하는 실수
    • 비대화형 실행에서는 alias가 적용되지 않거나, 환경에 따라 동작이 달라질 수 있습니다.
  • 함수에서 인자를 "$1" 대신 $1로 써서 공백/특수문자 입력 시 깨지는 실수
  • ~/.bashrc를 수정하고 source ~/.bashrc를 안 해서 적용이 안 됐다고 오해하는 경우
  • root와 일반 사용자 설정 파일을 혼동해서, 내가 만든 alias가 sudo 환경에서 안 먹는 문제

검증 방법 (결과 확인 명령어)

# alias/함수 정의가 실제로 잡혔는지 확인
type ll
type nerr
type pfind

# 동작 테스트
ll
ports
pfind 22
# bash 시작 시 로딩 오류 점검
bash -n ~/.bashrc && echo "bashrc syntax OK"

운영 팁

  • 개인 서버 운영이라면 ~/.bash_aliases 파일을 분리하고, ~/.bashrc에서 include하는 구조가 유지보수에 좋습니다.
  • 민감 작업(삭제/중지)은 alias보다 함수로 만들고, 내부에 echo 안내문이나 확인 절차를 넣으면 실수를 줄일 수 있습니다.
  • dotfiles 저장소(예: Git)로 alias/함수 모음을 버전 관리하면 신규 서버 세팅 시간이 크게 줄어듭니다.

출처

  • GNU Bash Manual
  • Ubuntu Server Guide
  • lsof man page