Thứ Sáu, 28 tháng 7, 2023

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é.

Mục lục

  • 1. Lệnh alias trong Linux là gì?
  • 2. Các nhóm lệnh alias Linux hay dùng
    • CD
    • SSH
    • Grep, find
    • Apache, MySQL, PHP (LAMP), MAMP
    • Git
    • Các lệnh khác
  • 3. Lời kết

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 [tranvanbinh.vn]

Theo nội dung hướng dẫn trong file .bash_profile như sau:

1
2
3
4
5
6
7
# 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:

1
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:

lenh alias trong linux 1 png

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:

1
alias tên_alias='câu_lệnh'

Sau đó lưu lại, cập nhật và thay đổi bằng lệnh:

1
source ~/.bash_profile

Hoặc:

1
. ~/.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:

1
2
3
4
5
6
7
8
9
10
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ụ:

1
2
3
4
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à:

1
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:

1
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:

1
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:

1
2
3
4
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:

1
2
3
4
5
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:

1
2
3
4
5
6
7
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:

1
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:

1
2
3
4
5
6
7
8
9
10
11
12
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:

1
2
3
4
#!/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:

1
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:

1
2
3
4
5
6
7
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:

1
2
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:

1
2
3
4
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

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Lệnh alias trong Linux: Tự đặt tên cho câu lệnh của bạn, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master