alias Command
Create shortcuts and custom names for commands to improve productivity and simplify complex command sequences.
Syntax
alias [name[=value] ...]
alias [name]
alias
The alias command creates command shortcuts, allowing you to define custom names for commands or command sequences.
Basic Usage
List all aliases
# Show all current aliases
alias
# Show specific alias
alias ll
alias grep
Display current aliases in the shell
Create simple aliases
# Create alias for ls -la
alias ll='ls -la'
# Create alias for ls -l
alias l='ls -l'
# Create alias for clear command
alias c='clear'
# Create alias for cd ..
alias ..='cd ..'
alias ...='cd ../..'
Create basic command shortcuts
Remove aliases
# Remove specific alias
unalias ll
unalias grep
# Remove all aliases
unalias -a
Remove existing aliases
Common Aliases
File and directory operations
# Directory listing aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias ls='ls --color=auto'
# Directory navigation
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ~='cd ~'
alias -- -='cd -'
# File operations
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
alias mkdir='mkdir -pv'
Useful aliases for file and directory operations
System and process aliases
# System information
alias df='df -h'
alias du='du -h'
alias free='free -h'
alias ps='ps auxf'
alias psg='ps aux | grep -v grep | grep -i -e VSZ -e'
# Process management
alias top='htop'
alias myip='curl http://ipecho.net/plain; echo'
alias ports='netstat -tulanp'
# System control
alias reboot='sudo reboot'
alias shutdown='sudo shutdown -h now'
System monitoring and management aliases
Text processing aliases
# Grep with color
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
# Text editors
alias vi='vim'
alias nano='nano -w'
alias edit='nano'
# File viewing
alias less='less -R'
alias more='less'
alias head='head -n 20'
alias tail='tail -n 20'
Text processing and editing aliases
Advanced Aliases
Complex command aliases
# Git aliases
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'
alias gd='git diff'
# Archive operations
alias tarx='tar -xvf'
alias tarc='tar -cvf'
alias tarz='tar -czvf'
alias untar='tar -xvf'
# Network operations
alias ping='ping -c 5'
alias fastping='ping -c 100 -s.2'
alias wget='wget -c'
Advanced aliases for complex operations
Function-like aliases
# Create directory and cd into it
alias mkcd='mkdir -p "$1" && cd "$1"'
# Extract various archive formats
alias extract='function _extract() {
case $1 in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.tbz2) tar xjf "$1" ;;
*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.Z) uncompress "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "Unknown archive format" ;;
esac
}; _extract'
Function-like aliases for complex operations
Making Aliases Permanent
Bash configuration files
# Edit bash configuration
nano ~/.bashrc
nano ~/.bash_profile
nano ~/.bash_aliases
# Add aliases to ~/.bashrc
echo "alias ll='ls -la'" >> ~/.bashrc
echo "alias la='ls -A'" >> ~/.bashrc
echo "alias l='ls -CF'" >> ~/.bashrc
# Reload configuration
source ~/.bashrc
. ~/.bashrc
Add aliases to shell configuration files
Separate alias file
# Create dedicated alias file
touch ~/.bash_aliases
# Add to ~/.bashrc
echo "if [ -f ~/.bash_aliases ]; then" >> ~/.bashrc
echo " . ~/.bash_aliases" >> ~/.bashrc
echo "fi" >> ~/.bashrc
# Add aliases to separate file
cat >> ~/.bash_aliases << 'EOF'
# File operations
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Navigation
alias ..='cd ..'
alias ...='cd ../..'
EOF
Organize aliases in a separate file
Practical Examples
Development aliases
# Development shortcuts
alias serve='python3 -m http.server 8000'
alias npmstart='npm start'
alias npmtest='npm test'
alias npminstall='npm install'
# Docker aliases
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dex='docker exec -it'
# Code editors
alias code='code .'
alias subl='subl .'
alias atom='atom .'
Aliases for development workflows
System administration aliases
# Log viewing
alias logs='sudo tail -f /var/log/syslog'
alias auth='sudo tail -f /var/log/auth.log'
alias apache='sudo tail -f /var/log/apache2/error.log'
alias nginx='sudo tail -f /var/log/nginx/error.log'
# Service management
alias start='sudo systemctl start'
alias stop='sudo systemctl stop'
alias restart='sudo systemctl restart'
alias status='sudo systemctl status'
alias enable='sudo systemctl enable'
alias disable='sudo systemctl disable'
# Package management (Ubuntu/Debian)
alias install='sudo apt install'
alias update='sudo apt update'
alias upgrade='sudo apt upgrade'
alias search='apt search'
System administration aliases
Best Practices
Alias Best Practices
- Use descriptive but short alias names
- Don't override important system commands
- Group related aliases together
- Add comments to explain complex aliases
- Test aliases before making them permanent
- Use functions for complex logic instead of aliases
- Keep a backup of your alias configurations
Common Pitfalls
- Overriding commands - Don't alias over important system commands
- Shell-specific - Aliases work only in the shell where they're defined
- Scripts - Aliases don't work in shell scripts by default
- Quoting - Use quotes for aliases with spaces or special characters
- Recursion - Avoid creating recursive aliases