นามแฝงทุบตีที่มีประโยชน์และสร้างรายการคำสั่งที่คุณใช้บ่อย


10

ฉันพบนี้บทความถกวิธีที่รวดเร็วในการจัดเรียงประวัติศาสตร์ทุบตีคุณและดูว่าคำสั่งที่คุณใช้มากที่สุด:

cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30

มันเปิดหูเปิดตาของคุณเป็นงานที่คุณควรสร้างชื่อแทนและสิ่งที่คุณควร cronjob ออกไปอย่างสมบูรณ์

ฉันชอบที่จะดูรายการของ ServerFault แนะนำนามแฝงบรรทัดคำสั่งที่ช่วยให้คุณประหยัดเวลาในการทำงาน คุณได้รับอะไร?

ระหว่างเราฉันจะพนันได้ว่าเราสามารถช่วยผู้ใช้ทุกคนที่อ่านโพสต์นี้อย่างน้อย 10 นาทีต่อวัน (ลบวันแรกที่พวกเขาเสียเวลาอ่าน ServerFault แทนที่จะทำงานแน่นอน!)


สำหรับเร็กคอร์ดนี้สำหรับผู้ใช้ระดับสูงมีsuperuser.com/questions/7083/useful-command-line-aliasesพร้อมโหลดนามแฝง Bash ที่มีประโยชน์มากมาย
Jonik

ดูเพิ่มเติม: serverfault.com/questions/15365/…
Aaron Copley

คำตอบ:


7

ฉันจัดการกับเครื่องที่แตกต่างกันจำนวนมากดังนั้นหนึ่งในรายการโปรดของฉันคือชื่อแทนสำหรับแต่ละเครื่องที่ฉันต้องใช้ 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"

ฉันต้องการegrep:

alias grep="egrep"

รับหน้าคนจากทุกส่วน

alias man="man -a"

ฉันมักจะพบว่าตัวเอง 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ซึ่งช่วยประหยัดการพิมพ์ที่ดี

ฉันทำงานกับ Perl จำนวนมากและจำเป็นต้องรู้รุ่นของโมดูลที่ติดตั้งในระบบ:

function perlmodver {
    perl -M$1 -e 'print "Version " .
        $ARGV[0]->VERSION . " of " . $ARGV[0] .
        " is installed.\n"' $1
}

3

ฉันมักจะชอบพิมพ์ทุกอย่างเพราะฉันกลัวว่าฉันจะลืมทุกอย่างเกี่ยวกับคำสั่งที่ฉันใช้ในเวลาไม่นาน ฉันรู้ว่าฉันอาจจะผิด แต่ฉันไม่คิดว่าฉันจะรู้มากเกี่ยวกับระบบถ้าฉันเพิ่งวางทุกคำสั่งในCommandlinefuลงใน. bashrc ของฉัน

โปรดทราบว่าฉันไม่ได้บอกว่าฉันเป็นผู้ยิ่งใหญ่ที่สุดและฉันรู้ทุกอย่างที่ต้องรู้เกี่ยวกับ Linux นอกเหนือจากนั้นฉันแค่บอกว่าฉันชอบที่จะเรียนรู้และจดจำสิ่งที่ฉันเรียนรู้จากการใช้งาน

ไม่ใช่เพื่อบอกว่าฉันไม่เห็นคุณค่าว่านามแฝงประหยัดเวลาเป็นอย่างไร (โดยเฉพาะสำหรับฟังก์ชั่นขนาดใหญ่ แต่คุณต้องดูว่าสคริปต์ไม่ดีกว่า) แต่โดยส่วนตัวแล้วฉันไม่ชอบที่จะใช้พวกเขา (อย่างน้อย ไม่เสมอ)

ที่ถูกกล่าวว่า Commandlinefu มีแท็กพิเศษสำหรับนามแฝง มันน่ามอง

นอกจากนี้ฉันคิดว่านี่เป็นสิ่งที่ดี:

   alias less='less -FSRX'

วิธีนี้จะใช้น้อยกว่าหากเอาต์พุตมีขนาดใหญ่กว่าหน้าจอ


2

ฉันชอบทุกครั้ง:

alias server_name='ssh -v -l username ip_address'

ไม่ต้องการคำอธิบายใช่ไหม? :-)


5
ไม่ใช่สิ่งที่. ssh / config ใช้สำหรับ :-P Host server_name ชื่อโฮสต์ 1.2.3.4 ชื่อผู้ใช้และอื่น ๆ
vartec

การใช้ bash_completion และแท็บดูเหมือนว่าจะใช้งานได้ดีสำหรับฉันแทนที่จะตั้งค่านามแฝงของ ssh มากมาย
Clayton Stanley

2

alias lt='ls -lhart'

  • l = long: h = ขนาดที่มนุษย์อ่านได้: a = all: r = การเรียงกลับ: t = การเรียงลำดับเวลา
  • วางไฟล์ใหม่ล่าสุดที่ด้านล่างขวาเหนือพรอมต์

alias active='grep -v -e "^$" -e"^ *#"'

  • แสดงเฉพาะบรรทัดที่ไม่ว่างเปล่าหรือใส่ความคิดเห็น
  • ตัวอย่าง: active /etc/httpd/conf/httpd.conf

alias svi='sudo vim'

alias scr='screen -Rd'


Nice โดยเฉพาะ sudo vim
astropanic

1

ฉันต้องยอมรับว่าฉันมีบางอย่างเช่นนี้ ..

alias sl=ls

หากต้องการลองต่อสู้กับความผิดพลาดของฉัน :-)

ฉันยังมี

alias aliases='xterm -e vim ~/.bash_aliases;reload'
alias reload='. ~/.bash_aliases'

ดังนั้นมันดีและง่ายที่จะเพิ่มใหม่



1
for host in `awk '{ print $1 }' ~/.hostsILogIntoAllTheTime`; do
  alias $host='ssx '$host
done 

พิมพ์ชื่อโฮสต์เพื่อเข้าสู่ระบบโฮสต์ หมายเหตุ: ssx เป็นนามแฝง:

ssx='ssh -Y'

เมื่อรวมกับคีย์ที่ใช้ร่วมกันแล้วมันค่อนข้างเนียน


1

ฉันคิดว่าน่ารำคาญที่จะนำทั้ง apt-get และ apt-cache ไปเดเบียน / * buntu โดยเฉพาะกับคำนำหน้า sudo ดังนั้นฉันจึงมี:

alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'
alias apts='apt-cache search'



0

ฉันพบหน้านี้เพื่อหาวิธีสร้างนามแฝงเพื่อแสดงคอลัมน์ที่ n ของไฟล์ csv (tsv) โดยใช้ awk ฟังก์ชั่นฟอว์กข้างต้นเป็นสิ่งที่ฉันต้องการ ฉันปรับเปลี่ยนเล็กน้อยเพื่อเพิ่มอาร์กิวเมนต์ตัวที่สองซึ่งเป็นทางเลือกชื่อไฟล์ดังนั้นฉันสามารถใช้มันเหมือน awk ปกติแทนที่จะใช้ผ่านไปป์เท่านั้น

function fawk {
    first="awk '{print "
    last="}' $2"
    cmd="${first}\$${1}${last}"
    echo $cmd
    eval $cmd
}

ขอบคุณ!


0

นี่ไม่ใช่นามแฝง แต่การเห็นคนที่ใช้นามแฝงการเชื่อมต่อ ssh อาจมีประโยชน์

แพคเกจ Openssh มีไบนารีที่เรียกว่า ssh-argv0 ที่ทำงานผ่าน symlinks

ดังนั้นถ้าคุณทำสิ่งนี้:

sudo ln -s /usr/bin/ssh-argv0 /usr/local/bin/user@ssh.server.com

มี / usr / local / bin ใน $ PATH ตอนนี้คุณสามารถเชื่อมต่อในฐานะผู้ใช้ "ผู้ใช้" เพื่อ ssh.server.com เขียนสิ่งนี้ในเชลล์พรอมต์:

 $ user@ssh.server.com 

0

+1 สำหรับคำตอบ Drew Stephens สิ่งเดียวที่เขาไม่ครอบคลุมที่ฉันใช้ก็คือการใช้นามแฝงไฟล์ dot ต่างๆที่ฉันต้องใช้เป็นประจำเช่น:

alias dotz='vi ~/.zshrc'

ก้าวไปอีกขั้นด้วยฟังก์ชั่น add-alias on-the-fly:

function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.