alias 是 Shell 內建命令,用於為冗長命令或常用參數組合創建短別名,大幅提升終端操作效率。本文系統講解語法、參數、持久化策略、作用域層級、常用範例與進階技巧。
alias 別名='命令字串'
alias 別名="命令字串"
# 列出所有別名
alias
alias -p # 輸出可重用格式
# 移除別名
unalias 別名
unalias -a # 移除所有
| 層級 | 檔案路徑 | 生效範圍 | 優先級 |
|---|---|---|---|
| 當前會話 | 記憶體 | 當前 Shell 進程及子進程 | 最高 |
| 用戶級 | ~/.bashrc / ~/.zshrc | 該用戶所有登入 Shell | 中 |
| 系統級 | /etc/bash.bashrc / /etc/zsh/zshrc / /etc/profile.d/alias.sh | 所有用戶 | 低 |
~/.bashrc (Bash) / ~/.zshrc (Zsh)# ~/.bashrc 末尾添加
alias ll='ls -alhF --color=auto'
alias la='ls -A --color=auto'
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias ..='cd ..'
alias ...='cd ../..'
alias mkdir='mkdir -pv'
alias df='df -h'
alias du='du -h'
alias free='free -h'
alias psg='ps aux | grep -v grep | grep'
alias ports='netstat -tulpn'
alias myip='curl -s ifconfig.me'
alias update='sudo apt-get update && sudo apt-get upgrade -y'
cat > /etc/profile.d/aliases.sh << 'EOF'
# 系統級通用別名
alias ll='ls -alhF --color=auto'
alias grep='grep --color=auto'
EOF
chmod +x /etc/profile.d/aliases.sh
alias cd..='cd ..'
alias cdd='cd -' # 返回上一目錄
alias lsd='ls -d */' # 僅列出目錄
alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -iv' # 交互式確認 (生產環境建議)
alias trash='mv -t ~/.local/share/Trash/files' # 模擬垃圾桶
alias topcpu='ps aux --sort=-%cpu | head -15'
alias topmem='ps aux --sort=-%mem | head -15'
alias listening='ss -tulpn'
alias pingg='ping 8.8.8.8'
alias speedtest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -'
alias gs='git status'
alias ga='git add'
alias gc='git commit -m'
alias gp='git push'
alias gl='git pull'
alias gd='git diff'
alias gco='git checkout'
alias gb='git branch'
alias glog='git log --oneline --graph --decorate -20'
alias dps='docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"'
alias dlog='docker logs -f'
alias dexec='docker exec -it'
alias k='kubectl'
alias kgp='kubectl get pods -o wide'
alias kgs='kubectl get svc -o wide'
alias kgn='kubectl get nodes -o wide'
alias rmrf='rm -rf'
alias chmodr='chmod -R'
alias chownr='chown -R'
alias grepr='grep -r'
alias findl='find . -name'
# 別名不支援參數,改用函數
mkcd() { mkdir -p "$1" && cd "$1"; }
extract() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.zip) unzip "$1" ;;
*.Z) uncompress "$1" ;;
*) echo "Unknown archive: $1" ;;
esac
else
echo "Not a file: $1"
fi
}
if command -v exa &>/dev/null; then
alias ls='exa --icons --group-directories-first'
alias ll='exa -alh --icons --group-directories-first'
else
alias ls='ls --color=auto'
alias ll='ls -alhF --color=auto'
fi
# 僅在 Git 倉庫內可用
alias gst='git status 2>/dev/null || echo "Not a git repo"'
alias ll='ls -l'
alias lla='ll -a' # 實際展開為 ls -l -a
\ls # 反斜杠前綴跳過別名
command ls # command 內建
'ls' # 引號包裹
alias ll
# alias ll='ls -alhF --color=auto'
type ll
# ll is aliased to `ls -alhF --color=auto'
which ll
# 無輸出 (別名非可執行檔)
# 列出所有別名來源
alias -p | grep -v '^alias ' | sort
alias ls='rm -rf' 極危險).bashrc 以註釋分區 (導航、Git、Docker、系統).bashrc/.zshrc 納入 Git,多機同步.bash_aliases 經 source 載入,統一團隊操作習慣將高頻命令序列封裝為直觀別名,配合函數支援參數與邏輯,可將終端操作效率提升 50% 以上,是每位 Linux 使用者必備的生產力杠桿。
Linux 查看與修改 DNS 設定:resolv.conf、nslookup、dig 三大工具實戰
解決 CentOS 開機報錯 prefdm main process terminated with status 1 的方法
Linux TSO (TCP Segmentation Offload) 實現原理:網卡硬體分段降低 CPU 負載
紅旗 Linux 桌面 5.0 安裝與使用 SAP GUI 客戶端完整教學
traceroute 追蹤網路路徑:Linux/Windows 差異、TTL 原理、三次探測、參數全表、防火牆導致星號、DNS 解析延遲、跳數限制、IDC 故障回報