Shell và BASH là gì?
BASH = Bourne Again SHell — trình vỏ (shell) phổ biến nhất trên Linux. Shell là chương trình dịch lệnh: nhận lệnh từ người dùng, thực thi chương trình, điều hướng hệ thống tệp, tương tác thiết bị.
Các shell khác: zsh, fish, dash, ksh, csh.
Nhiều distro base Debian (Ubuntu, Mint...) dùng DASH (Debian Almquist Shell) làm /bin/sh mặc định vì nhẹ, nhanh hơn Bash. Nhưng user login shell thường vẫn là Bash.
Tệp .bashrc là gì?
.bashrc là script shell tự động chạy mỗi khi bạn mở một shell tương tác (interactive) mới — ví dụ: mở terminal mới, chạy bash thủ công, hoặc reload bằng source ~/.bashrc.
Chạy lệnh sau để xem các file .bashrc trên hệ thống:
find / -name .bashrc 2>/dev/null
Kết quả điển hình (3 file):
/etc/skel/.bashrc— Mẫu (skeleton) copy vào home của user mới khi tạo tài khoản./home/username/.bashrc— Cấu hình cá nhân của userusername./root/.bashrc— Cấu hình cho user root.
Công dụng chính của .bashrc
Nơi lý tưởng để đặt các lệnh/chạy script muốn thực thi mỗi lần mở terminal:
- Định nghĩa alias (bí danh lệnh ngắn).
- Thiết lập biến môi trường (PATH, EDITOR, LANG...).
- Tùy chỉnh prompt (PS1) — hiển thị git branch, màu sắc, thời gian...
- Chạy chương trình chào mừng:
neofetch,screenfetch,fortune... - Định nghĩa hàm (function) tùy chỉnh.
- Cấu hình history, completion, key binding...
Ví dụ thực hành: Thêm thông điệp chào
- Mở file:
nano ~/.bashrc - Thêm vào cuối file:
echo "Hello $USER" - Lưu: Ctrl+O, Enter → Thoát: Ctrl+X
- Reload:
source ~/.bashrc - Kết quả: Terminal in ra
Hello tên_user.
Ví dụ: Tự động chạy neofetch khi mở terminal
- Cài đặt:
sudo apt install neofetch(Ubuntu/Mint/Debian) - Thêm dòng
neofetchvào cuối~/.bashrc source ~/.bashrc— terminal sẽ hiển thị thông tin hệ thống đẹp mắt.
Sử dụng Alias — Tạo lệnh tắt
Alias giúp gán tên ngắn cho lệnh dài, phức tạp.
Alias có sẵn trong Ubuntu/Mint mặc định
alias ll='ls -alF' alias la='ls -A' alias l='ls -CF'
ll: Liệt kê tất cả (kể cả file ẩn), định dạng long, phân loại file.la: Liệt kê tất cả trừ.và...l: Liệt kê theo cột, phân loại.
Tạo alias riêng
Cú pháp: alias tên_ngắn='lệnh_dài'
Ví dụ hữu ích:
# Di chuyển nhanh alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' # Liệt kê đẹp alias ls='ls --color=auto -h' alias ll='ls -alFh' alias lt='ls -alFhtr' # sắp xếp theo thời gian, mới nhất cuối # An toàn alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Git ngắn gọn alias gs='git status' alias ga='git add' alias gc='git commit' alias gp='git push' alias gl='git log --oneline -10' # Cập nhật hệ thống (Ubuntu/Debian) alias update='sudo apt update && sudo apt upgrade -y' # Xem IP public alias myip='curl -s ifconfig.me' # Tìm file nhanh alias f='find . -name'
Thêm vào ~/.bashrc → source ~/.bashrc → dùng ngay.
Lưu ý quan trọng
.bashrcchỉ chạy cho interactive non-login shell. Login shell (SSH, TTY, GUI login) chạy.bash_profile/.profile. Thường cấu hình:.bash_profilesource.bashrcđể chung cấu hình.- Đừng lạm dụng alias quá đà — có thể quên lệnh gốc khi làm việc trên máy khác. Nhưng man page và Google luôn sẵn sàng.
- Sửa
.bashrcsai có thể làm hỏng terminal. Hãy backup trước:cp ~/.bashrc ~/.bashrc.bak. - Dùng
[[ ... ]]thay[ ... ]trong script/bash để an toàn hơn.
Tóm tắt
.bashrc là công cụ mạnh mẽ để cá nhân hóa trải nghiệm dòng lệnh Linux. Sử dụng tốt alias, biến môi trường, hàm, prompt — bạn sẽ tăng năng suất làm việc đáng kể.
FAQ
- Mac có hỗ trợ
.bashrckhông? - Có. macOS dùng Zsh mặc định (từ Catalina), nhưng Bash vẫn có sẵn. File cấu hình Zsh là
~/.zshrc. Cách chỉnh sửa tương tự Linux. - Windows có
.bashrckhông? - Không trực tiếp. Nhưng Windows 10/11 có WSL (Windows Subsystem for Linux) chạy Linux thật bên trong Windows — ở đó có
.bashrc. PowerShell dùng$PROFILE(tương tự .bashrc). CMD dùngAutoRunregistry.