Photo Courtesy: pchow98
ในขณะที่ส่วนใหญ่ไม่สามารถเตะใครแบบ Jennifer Garner ใน Alias ได้ เราสามารถพยายามใช้ Linux Alias Command อย่างมีประสิทธิภาพได้
Alias Command คือ String Substitution แบบง่ายของ Text หนึ่งสำหรับอีก Text หนึ่ง เมื่อใช้เป็น Word แรกของ Simple Command
ในบทความนี้ มาทบทวนวิธี Set/Unset Bash Aliases แบบ Permanent และ Temporary พร้อม Bash Alias Examples ที่มีประโยชน์สำหรับ Bash Startup Files
บทความนี้เป็นส่วนหนึ่งของชุดบทช่วยสอน Bash ต่อเนื่อง ดู Bash Introduction และ Bash Exit Status ก่อนหน้า
วิธี Set Alias
Aliases สามารถ Define ได้ที่ Command Line, ใน .bash_profile, หรือ .bashrc ด้วย Syntax:
$ alias name='unix command with options'
alias– เป็น Shell Built-inname– User-defined Simple Name สำหรับ Aliascommand– Unix Command ใดๆ อาจมี Options
หมายความว่า Name เป็น Alias สำหรับ Command เมื่อพิมพ์ Name เป็น Command Bash จะแทนที่ด้วย Command พร้อม Options
หมายเหตุ: ไม่มี Space ใดๆ ทั้งสองข้าง Equal Sign Quotes รอบ Command จำเป็นถ้า String ที่ Aliased มีมากกว่า 1 Word
Execute Command นี้ใน Command Line ทำให้เป็น Temporary Alias คือ Available จนกว่าจะ Exit Shell การเก็บ Alias ใน Bash Startup Files ทำให้เป็น Permanent Alias
Aliases ต่อไปนี้อาจมีประโยชน์ สามารถ Set ใน ~/.bashrc File
Most Common Alias Examples (Alias ตัวอย่างที่พบบ่อย)
Aliases ต่อไปนี้พร้อมใช้งานเลย อะไรคือ Alias โปรดของคุณ?
เปิดไฟล์ที่แก้ไขล่าสุดใน Vim
alias Vim="vim `ls -t | head -1`"
หา Top 5 ไฟล์ใหญ่ที่สุด
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"
Grep หา Bash Process
alias psg="ps -aux | grep bash"
List รวม Hidden Files พร้อม Indicator และ Color
alias ls='ls -aF --color=always'
List แบบ Long Format
alias ll='ls -l'
Clear History และ Screen ทั้งหมด
alias hcl='history -c; clear'
ทำให้ Basic Commands เป็น Interactive และ Verbose
alias cp="cp -iv" # interactive, verbose alias rm="rm -i" # interactive alias mv="mv -iv" # interactive, verbose alias grep="grep -i" # ignore case
Aliases ง่ายๆ สำหรับ Commands ที่ใช้บ่อย
alias x="exit"
Clear Screen และ List File
alias cls='clear;ls'
Filesystem Diskspace Usage
alias dus='df -h'
Navigate ไป Directory ต่างๆ
alias ..='cd ..' alias ...='cd ../..'
ดูบทความนี้สำหรับ CD Command Aliases เพิ่มเติม
Alias Examples ที่ควรปรับแต่งตาม Environment
Alias Examples ใน Section นี้ควรปรับตาม Environment ของคุณก่อนใช้
ลบ Firefox Lock
alias rm_fire_lock='/bin/rm .mozilla/firefox/NAME.default/.parentlock' # edit NAME
Login Remote Machine ผ่าน SSH ด้วย Login Name
alias server_name='ssh 192.168.1.1 -l tom' # change the ip & user name alias ser2='ssh www.dbserver.com -l kgf' # create as many alias as required.
Login Remote CVS Server
export CVS_RSH=/usr/local/bin/ssh alias cvl='cvs -d :ext:username@cvs.server.com:/usr/local/cvsroot' # change required.
Unmount CDROM
alias umnt='umount /mnt/cdrom' # cdrom / thumb drive.
วิธีดู Aliases ทั้งหมด
Execute alias โดยไม่มี Arguments เพื่อดู List ของ Aliases ที่ Set ใน Shell
$ alias alias ..='cd ..' alias ...='cd ../..' alias mnt='mount /mnt/cdrom' alias umnt='umount /mnt/cdrom' alias dus='df -h'
ดู Alias เฉพาะตัว ใช้ Format "alias aliasname"
$ alias dus alias dus='df -h'
วิธีหยุดใช้ Aliases ชั่วคราว
เมื่อต้องการเรียก Command แทน Alias ให้ Escape แล้วเรียก
$ \aliasname
เช่น Alias cp="cp -iv" จะถามยืนยันถ้า Overwrite File นี่อาจรบกวนตอน Copy ไฟล์เยอะที่รู้ว่าจะ Overwrite อาจต้องการใช้ Regular cp Command แทน cp-alias ชั่วคราว
ดังนั้น ถ้า Alias cp มีอยู่ แต่ต้องการใช้ cp-command แทน ให้ Escape Alias ชั่วคราว:
\cp * /backup/files/
วิธีลบ Alias
unalias เป็น Shell Built-in สำหรับลบ Alias ลบ Alias เฉพาะตัว:
$ unalias hcl where unalias is a shell built-in. mnt is an alias name. $ hcl -bash: hcl: command not found
วิธีลบ Aliases ทั้งหมด
unalias ด้วย -a Option ลบ Aliases ทั้งหมด
$ unalias -a $ alias
NOTE: Shell Functions เร็วกว่า Aliases ถูก Lookup หลัง Functions ดังนั้น Resolve ช้ากว่า แม้ Aliases จะเข้าใจง่าย Shell Functions ถูก Prefer กว่า Aliases สำหรับทุก Purpose เกือบทุกอย่าง ควรระมัดระวังมากในการ Replace Standard Command ด้วย Alias หรือ Function
Aliases ในบทความนี้มีใน Sample Bash Aliases Files นี้ สามารถ Copy/Paste ใช้ใน Bash Startup File ได้
Aliases เป็นสิ่งที่มีประโยชน์มาก แต่หวังว่าคุณจะพบว่า Bash Functions น่าสนใจอย่างน้อยและมีประโยชน์มากกว่า ซึ่งจะพูดถึงในบทความ Bash ถัดไป