ฉันจัดการกับเครื่องที่แตกต่างกันมากมายดังนั้นหนึ่งในรายการโปรดของฉันคือชื่อแทนสำหรับแต่ละเครื่องที่ฉันต้องใช้ SSH บ่อยๆเพื่อ:
alias claudius="ssh dinomite@claudius"
นอกจากนี้ยังมีประโยชน์ในการตั้งค่าปุ่มดี.ssh/config
และsshเพื่อให้สามารถกระโดดข้ามเครื่องได้ง่ายยิ่งขึ้น
ชื่อแทนที่ฉันโปรดปรานอีกอันหนึ่งสำหรับการย้ายไดเรกทอรี:
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
และสำหรับรูปแบบที่ใช้กันทั่วไปของls
(และการพิมพ์ผิด):
alias ll="ls -l"
alias lo="ls -o"
alias lh="ls -lh"
alias la="ls -la"
alias sl="ls"
alias l="ls"
alias s="ls"
ประวัติจะมีประโยชน์มาก แต่โดยค่าเริ่มต้นจากการกระจายส่วนใหญ่ประวัติของคุณจะถูกพัดหายไปโดยแต่ละเชลล์ที่ออกและมันไม่ได้เริ่มต้นด้วยอะไร ฉันชอบที่มีประวัติ 10,000 บรรทัด:
export HISTFILESIZE=20000
export HISTSIZE=10000
shopt -s histappend
# Combine multiline commands into one in history
shopt -s cmdhist
# Ignore duplicates, ls without options and builtin commands
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:[bf]g:exit"
ด้วยวิธีนี้ถ้าฉันรู้ว่าฉันทำอะไรบางอย่างมาก่อน แต่จำไม่ได้เฉพาะด่วนhistory | grep foo
จะช่วยเขย่าเบา ๆ ความจำของฉัน
ฉันมักจะพบว่าตัวเอง piping output ผ่านawk
เพื่อให้ได้คอลัมน์ที่แน่นอนของการส่งออกdf -h | awk '{print $2}'
เพื่อค้นหาขนาดของดิสก์แต่ละตัวของฉัน เพื่อให้ง่ายขึ้นฉันได้สร้างฟังก์ชันfawk
ใน. bashrc ของฉัน:
function fawk {
first="awk '{print "
last="}'"
cmd="${first}\$${1}${last}"
eval $cmd
}
ตอนนี้ฉันสามารถเรียกใช้df -h|fawk 2
ซึ่งช่วยประหยัดการพิมพ์ที่ดี
หากคุณจำเป็นต้องระบุตัวคั่น ( เช่น , awk -F:
สำหรับ/etc/passwd
) ฟังก์ชั่นนี้เห็นได้ชัดว่าไม่สามารถจัดการที่ เวอร์ชันที่ได้รับการแก้ไขเล็กน้อยในส่วนสำคัญนี้สามารถจัดการกับข้อawk
โต้แย้งโดยพลการก่อนหมายเลขฟิลด์ (แต่ยังต้องการอินพุตจาก stdin)