Tạo Alias Trong Bash
Bash
9
White

Sang Nguyễn Đắc viết ngày 18/06/2017

Mọi lập trình viên đều thích các shortcut – những thứ có tác dụng làm tăng hiệu quả công việc. Tất nhiên cái gì cũng có tốt và xấu, nhưng hãy giữ thái độ tích cực và chúng ta cùng nói về 1 good shortcut: Bash Alias.
billgate

Hàng ngày có lẽ ai trong mỗi chúng ta đều có những lệnh mà thường xuyên lặp đi lặp lại, trong số đó có những lệnh mà gõ mãi vẫn không nhớ, hay chỉ đơn giản là mình không thích việc phải gõ lặp lại một lệnh quá dài nhiều lần. Có thể kể đến đơn giản như việc loại bỏ tất cả các image và container của Docker hay khởi động lại (tắt và bật lại ngay lập tức) một dự án với Docker. Hầu hết các lệnh chúng ta thường xuyên sử dụng mỗi ngày là lặp đi lặp lại hoặc có thể thay đổi một hay hai tham số gì đó.

Vậy thì tại sao chúng ta không tự tạo ra shortcut giúp tăng hiệu quả làm việc, hay đơn giản là đỡ phải gõ đi gõ lại những lệnh dài ngoằng nhàm chán.

Tạo Bash Alias đơn giản

Để tạo ra một Bash Alias, hãy bắt đầu bằng cách mở file ~/.bash_profile với bất kì trình soạn thảo nào mà bạn có. Syntax để tạo ra một lối tắt như sau:

# alias-name='command to do thing'

alias docker-refresh='docker-compose down && docker-compose up'
alias serve-dir='python -m SimpleHTTPServer'

Bạn nên sử dụng các namespace hoặc thêm tiền tố cho tên của shortcut để tránh xung đột với các file thực thi của hệ thống cũng như các file của bạn.

Để đảm bảo Alias hoạt động thì sau khi đã hoàn tất việc sửa file.bash_profile, bạn thực hiện lệnh sau:

source ~/.bash_profile

Bạn thấy đấy, để tạo ra một bash alias cơ bản khá là dễ dàng. Trường hợp bạn cần sử dụng các tham số cho alias của mình thì sao, vậy thì hãy cùng tôi tiếp tục tìm hiểu.

Alias với tham số

Để tạo ra lối tắt có sử dụng tham số, chúng ta sẽ cần đến một function. Cùng xem ví dụ dưới đây.
Giả sử chúng ta muốn tạo ra một HTTPServer bằng Python với SimpleHTTPServer nhưng ở một port nào đó mà không phải port mặc định, thì ở đây port chính là đối số mà chúng ta cần truyền vào Alias.

# Serve a directory on a given port
# $1 = port
# Example: servedir 8080
servedir() {
    # Allow myself to change the port ($1)
    python -m SimpleHTTPServer "$1"
}

Dưới đây là một số Alias có tham số mà mình hay sử dụng

# Serve a directory on a given port
# $1 = port
# Example: servedir 8080
servedir() {
  # Allow myself to change the port ($1)
  python -m SimpleHTTPServer "$1"
}

# Scrape images with wget
# $1 = url
# Example: scrapeimages https://unsplash.com/explore
scrapeimages() {
  wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off $1
}

# Remove audio from video
# $1 = source file
# $2 = destination
# Example: removeaudio kiemhiep.webm chinagirl-silent.mp4
removeaudio() {
  ffmpeg -i $1 -vcodec copy -an $2
}

Bạn hoàn toàn có thể tạo ra các shortcut phức tạp khi sử dụng function:

startover() {
  echo 'Killing everything'
  rm -rf build/
  docker-compose down
  docker rm -f $(docker ps -a -q)
  docker rmi -f $(docker images -q)
  echo 'Everything killed, my lord'
}

Thật dễ dàng để tạo ra các alias có thể làm tăng hiệu suất làm việc của bạn. Trong nhiều năm tôi đã quá lười để bỏ ra vài phút tạo ra các “lối tắt”, nhìn lại, đó là sự lười biếng làm tôi mất tiền. Khi bạn tiếp tục phát triển một dự án mới chắc chắn sẽ mất vài phút để tạo ra các Alias của các lệnh thường sử dụng – bạn sẽ cảm ơn chính mình sau này.

Bạn có thể đọc thêm về Bash tại đây

Theo DavidWalsh.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Sang Nguyễn Đắc

6 bài viết.
11 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
15 10
Mở đầu series bài viết tìm hiểu về Frontend Web mình sẽ hướng dẫn các bạn cài đặt và thiết lập môi trường làm việc hiệu quả. Các ứng dụng cần th...
Sang Nguyễn Đắc viết 1 năm trước
15 10
White
9 0
I. Sass và Gulp là gì? 1. Sass (Link) là một CSS PreProcessor (Tương tự Less, Stylus, …). Sass được sinh ra để giúp bạn viết CSS nhanh và rõ ràn...
Sang Nguyễn Đắc viết 1 năm trước
9 0
White
8 2
Angular 2 ra mắt kèm theo rất nhiều tính năng khá hữu ích Một trong số đó là sự xuất hiện của RxJS. Vậy bài này chúng ta sẽ cùng tìm hiểu căn bản v...
Sang Nguyễn Đắc viết 1 năm trước
8 2
Bài viết liên quan
White
2 2
Bash script to fast serve Laravel project Lười gõ dòng lệnh quá nên tạo ra cái script để gõ nhanh :D laravelstart.sh /bin/bash if z "$1" ] ...
Vũ Hoàng Chung viết 11 tháng trước
2 2
White
11 3
Theo định nghĩa mình tìm được ở (Link) thì lệnh trap trong shell script có nghĩa là The trap command allows you to execute a command when a signal...
Hoàng Minh Trung viết gần 2 năm trước
11 3
White
5 0
Step 1. Download peco binary tại đây Lưu ý download binary phù hợp với OS của bạn. Vd: Ubuntu 64b https://github.com/peco/peco/releases Step 2....
Tran Duong viết gần 3 năm trước
5 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
11 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!