Lệnh alias trong Linux: Tự đặt tên cho câu lệnh của bạn
Trong bài này chúng ta sẽ học cách sử dụng lệnh alias trong Linux, đây là lệnh dùng để đặt một tên khác gọn hơn cho những dòng lệnh phức tạp.
Lệnh alias linux rất hữu ích trong trường hợp bạn có một dòng lệnh quá dài, và bạn muốn rút gọn lại nó để những lần sau sử dụng sẽ viết đơn giản hơn. Chi tiết thế nào thì chúng ta cùng tìm hiểu ngay nhé.
1. Lệnh alias trong Linux là gì?
Trong Linux có một công cụ thu gọn lệnh rất tiên lợi và ta gọi là Alias, vậy Alias là một cách khai báo các lệnh viết tắt nhằm tiết kiệm thời gian gõ phím và dễ nhớ hơn. Thay vì bạn gõ một dòng lệnh dài hàng trăm chử thì bạn chỉ việc gõ đôi ba chữ là có thể thay thế lệnh đó được.
Theo mặc định các lệnh viết tắt được lưu trữ trong file ~/.bashrc
hoặc ~/.bash_profile
, trong đó dấu ~
là viết tắt cho thư mục home
của bạn. Ví dụ thư mục home của bạn là /home/nickfarrow/
thì file đó sẽ là /home/nickfarrow/.base_profile
.
Bài viết này được đăng tại [free tuts .net]
Theo nội dung hướng dẫn trong file .bash_profile
như sau:
# Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Nó nói các bạn nên viết định nghĩa các lệnh alias ra một file riêng, ví dụ như ~/.bash_aliases
rồi load nó bằng câu lệnh ~/.bash_aliases
. Cái này thì tùy, mình viết luôn vào file .bash_profile
cũng được.
Khi muốn hiện danh sách các câu lệnh viết tắt của alias thì bạn gõ lệnh trên terminal:
alias
Thì lúc này trên màn hình terminal sẽ hiển thị danh sách các alias dạng như sau:
Muốn thêm một định nghĩa alias thì các bạn mở file .bash_profile
hoặc .bashrc
(hoặc file chứa alias mà bạn tự định nghĩa). Sau đó thêm dòng định nghĩa alias vào, có dạng:
alias tên_alias='câu_lệnh'
Sau đó lưu lại, cập nhật và thay đổi bằng lệnh:
source ~/.bash_profile
Hoặc:
. ~/.bash_profile
2. Các nhóm lệnh alias Linux hay dùng
Sau đây là một số nhóm lệnh mà mình nghĩ nó hay sử dụng nên mình đã đưa vào danh sách các Alias, nếu bạn có nhu cầu thì có thể sử dụng luôn hoặc tham khảo để biết cách tạo mới một alias trong Linux.
CD
Lệnh cd
được dùng thường xuyên vì nó là lệnh di chuyển tới các thư mục làm việc. Ví dụ mình thường xuyên vào một số thư mục nên đã viết ngắn lại bằng Alias như sau:
alias cdandr='cd ~/Public/android-sdk-linux/platform-tools/' alias cdcpd='cd /var/www/Idealive/cookpad/' alias cddt='cd /var/www/ScriptOne/delta_v/' alias cdfreelv='cd /var/www/Freelancer/Laravel/' alias cdidl='cd ~/www/Idealive/' alias cdnode='cd /home/nickfarrow/www/Script2/Nodejs/' alias c='clear' # clear screen alias ..='cd ..' # Lên thư mục trên 1 cấp alias ...='cd ../..' # Lên 2 thư mục alias cl='clear && ls' # clear screen xong list file trong mục hiện thời.
SSH
SSH - Secure Shell dùng để đăng nhập từ xa một cách an toàn. Nếu bạn muốn tiết kiệm thời gian gõ lệnh thì hãy bổ sung các Alias vào.
Ví dụ:
alias sshalpha2='ssh root@133.242.54.69' alias sshcpad='ssh -i ~/www/Idealive/cookpad/cookpad-diet_opensshkey kpd@mgr.cookpad-diet.jp' alias sshicts='ssh root@128.199.83.216' alias sshredm='ssh idea_rm@133.242.60.174'
Như ở dòng số hai bạn thấy thay vì phải gõ một đoạn khá dài là:
ssh -i ~/www/Idealive/cookpad/cookpad-diet_opensshkey kpd@mgr.cookpad-diet.jp
Thì mình chỉ cần gõ sshcpad
là xong.
Grep, find
Các lệnh grep, find rất hay dùng khi tìm kiếm file, từ khóa trong file. Ví dụ bạn muốn tìm tất cả các từ "menber" trong thư mục project
:
grep -rl "menber" ig_project/
Trong đó tham số:
-r
lặp lại cho mọi file trong thư mục-l
list các file thỏa mãn chứa từ khóa thành các dòng.
Nếu bạn muốn giới hạn chỉ tìm các file .php
, rồi sau đó sửa "menber" thành "member" thì như sau:
find . -name "*.php" | xargs grep -rl "menber" $1 | xargs sed -i 's/menber/member/' $1
Sau đây các lênh viết tắt mình hay đặt cho grep, find:
alias grl='grep -rl' alias grn='grep -rn' alias grr='grep -r' alias grrex='grep -r --exclude=-s.3'
Apache, MySQL, PHP (LAMP), MAMP
Một số Alias trong Linux khi sử dụng với Apache:
alias apc_rld='sudo service apache2 reload' # Reload apache alias apc_rst='sudo service apache2 restart' alias tail_apch_err='tail -f /var/log/apache2/error.log' # see error log apache alias tailphp='tail -f /var/log/apache2/error.log' alias vimsite='cd /etc/apache2/sites-available/ && sudo vim $1' # Edit virtual host name
Trên OSX web developer hay dùng MAMP hoặc vagrant. Với MAMP có các lệnh sau hay dùng thường xuyên nên mình đã thu gọn lại:
alias mampsql='/Applications/MAMP/Library/bin/mysql -u root -p' alias mampctl=' sudo /Applications/MAMP/Library/bin/apachectl restart' alias vimphost=' vim /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf' alias tailsql='tail -f /Applications/MAMP/logs/mysql_sql.log' alias tailsql2='tail -f /Applications/MAMP/logs/mysql_error_log.err' alias tailphp='tail -f /Applications/MAMP/logs/php_error.log' alias tailapache='tail -f /Applications/MAMP/logs/apache_error.log'
Git
Phần này đòi hỏi bạn đã có kiến thức cơ bản về Git. Bản thân git đã có tính năng alias. Các bạn có thể tham khảo link này.
Ví dụ: bạn muốn xem thông tin last commit, bạn setting như sau:
git config --global alias.last 'log -1 HEAD'
Như vậy bây giờ chỉ cần gõ “ git last “ là xong. Còn theo cách alias thông thường:
alias gitbr='git branch' alias gitcm='git commit -m' alias gitcmnr='git log |grep commit |wc -l' # Đếm số lượng commit alias gitco='git checkout' alias gitdif='git diff' alias gitpod='git push origin develop' alias gitpom='git push origin master' alias gitpuod='git pull origin develop' alias gitpuom='git pull origin master' alias gitst='git status' alias gitcofr='/Users/dungnv/bin/merge_arg.sh' # Lệnh này hơi phức tạp nên mình gọi 1 file script khác
Ví dụ: các bạn có các branch sau trong một project dùng Git:
- codeception
- develop
- feature/accounts
- feature/encrypt-password
- feature/front_footer
- feature/front_list
- feature/front_profile
- feature/front_top
- feature/gui_firefox_install
- feature/localForVn
- ...
Rõ ràng việc phải gõ nhiều lần feature/...
sẽ tốn thời gian nên mình đặt gọn lại qua đoạn mã sau:
File merge_arg.sh
:
#!/bin/bash FEATURE_FRONT_BRANCH="feature/front_" FEATURE_FRONT_BRANCH+="$1" git checkout $FEATURE_FRONT_BRANCH
Bây giờ muốn checkout 1 branch front_profile, đơn giản như sau:
gitcofr profile # Tương đương với ~ git checkout feature/front_profile.
Các lệnh khác
Sau đây là một số lệnh alias khác.
Ping:
alias fastping='ping -c 100 -s.2' alias ping='ping -c 5' alias ping100='ping 192.168.100.1' alias pinggg='ping -n google.com' alias pinglocal='ping 192.168.1.1' alias pinglocal0='ping 192.168.0.1' alias pingyh='ping -n yahoo.com'
Disk use:
alias duh='du -sh' # Đo dụng lượng ổ đĩa sử dụng. alias dus='du -sh * |sort -n' # Đo dung lượng các thư mục con.
Khác:
alias mysqllogin='mysql -u dungnv -p' alias temp='sensors' # Đo nhiệt độ, cần cài sensors trước. alias vimbashrc='vim ~/.bashrc' # Sửa file chứa aliases alias sourcebash='source ~/.bashrc && source ~/.bash_profile' # Cập nhật file aliases.
3. Lời kết
Trên đây mình đã trình bày các câu lệnh của một số phần mềm thông dụng trên linux như git, apache, grep ... Do là các câu lệnh thường dùng nên người ta hay viết gọn lại để tiết kiệm thời gian gõ phím. Bài này rất đơn giản nhưng mình nghĩ khá hữu ích. Các bạn có gì bổ sung hay thắc mắc vui lòng comment bên dưới ha.
Tài liệu tham khảo: https://github.com/dungnv53/Hittie/blob/master/Code/.bash_profile