นามแฝงบรรทัดคำสั่ง Unix รายการโปรด [ปิด]


39

นามแฝงบรรทัดคำสั่งที่คุณชื่นชอบ (bash / sh / tcsh) คืออะไร? นี่คือบางส่วนของฉัน

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notes'
alias devdb = 'mysql -h dev --user = x - password = secret dbname'
นามแฝง ec = 'rm * ~'; # emacs การล้างข้อมูล
นามแฝง h = 'ประวัติ'
นามแฝง eb = 'exec bash'; # Solaris บางครั้งค่าเริ่มต้นที่จะดวลจุดโทษ
alias mr = 'เพิ่มเติม'
alias mroe = 'เพิ่มเติม'
alias qd = 'echo export DISPLAY = $ DISPLAY'
alias ralias = ' $ HOME / .alias'; # reread alias
alias ,, = 'cd ../ .. '
alias .. = 'cd .. '
นามแฝง c = 'clear'

18
แทนที่จะผ่านรหัสผ่านของคุณใน commandline ไปmysql(คนอื่นบนเซิร์ฟเวอร์ได้เห็นมัน!) ใส่ชื่อผู้ใช้และรหัสผ่านใน ~ / .my.cnf -upไฟล์และเพียงแค่ระบุ เครื่องมือ MySQL จะรับข้อมูลรับรองเหล่านั้นโดยอัตโนมัติอ่าน mysql (1) สำหรับข้อมูลเพิ่มเติม
Alex J

+1 สำหรับนามแฝง .. = 'cd .. '
mosg

+1 สำหรับ 'mroe' ฉันต้องดูแลการสะกดผิดทั่วไปของฉัน ...
gWaldo

คำตอบ:


12
function s()
{
    screen -t "$@" /usr/bin/ssh "$@"
}

เชื่อมต่อกับโฮสต์ในแท็บหน้าจอใหม่โดยใช้ชื่ออุปกรณ์เป็นชื่อแท็บ


11

รายการโปรดของฉันที่ยังไม่ได้กล่าวถึง:

alias l='ls'
alias u='cd ..'
alias uu='cd ../..'
alias uuu='cd ../../..'
alias uuuu='cd ../../../..'

ปกติฉันไม่ได้เป็นแฟนของนามแฝงที่เพิ่งตัดทอนสิ่งต่าง ๆ แต่ฉันพิมพ์ ls มาก ๆ และต้องการเพียงมือเดียว


+1 - ไม่ใช่ความคิดที่เลวร้าย
โกง

1
ls (และ cd) ต้องการเพียงมือเดียว ... ถ้า keymap คือ Dvorak! เช่นเดียวกับ 'Enter' สำหรับเรื่องนั้น
gbarry

8

ไม่มีเลยตั้งแต่ฉันไม่สามารถรับประกันได้ว่าพวกเขาจะได้รับการกำหนดค่าในทุกระบบฉันจะเข้าสู่ระบบ (ในฐานะตัวเองรากหรือใครก็ตาม)


1
แน่นอน! สิ่งที่ไม่เป็นอันตรายเช่น alias ls = "ls --color = auto นั้นใช้ได้ แต่การเปลี่ยนคำสั่ง rm เป็นต้นไม่เคยเลย
user9474

7

ไม่มีฉันเปลี่ยนระหว่างระบบมากทุกวันที่ฉันยอมแพ้โดยทั่วไป


คุณไม่ซิงค์ไดเรกทอรีหลักระหว่างเครื่องต่าง ๆ ใช่ไหม xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Andy Lester

ฉันจัดการกับกลุ่มผู้ดูแลระบบอื่น ๆ ประมาณ 5k เครื่องส่วนใหญ่ของเครื่องเหล่านี้ในช่วงอายุการใช้งานทั้งหมดของพวกเขาไม่เคยมีเซสชันผู้ใช้แบบโต้ตอบระยะไกล (การติดตั้งและการกำหนดค่าทั้งหมดเกิดขึ้นโดยอัตโนมัติ) บางครั้งมีปัญหาแปลกและคุณต้องเข้าสู่ระบบ เราได้พิจารณาแล้วว่าจะมีบัญชีผู้ดูแลระบบของผู้ใช้ในการเมาท์อัตโนมัติจากพาร์ติชัน NFS ที่ใช้ร่วมกัน แต่สำหรับการใช้งานมันไม่คุ้มค่า
Martin P. Hellwig

1
... ไม่มีบัญชีผู้ดูแลระบบ / รูทรวมไดเรกทอรี nfs ในเส้นทาง - เมื่อ NFS เป็นบอร์ดังนั้นบัญชีผู้ดูแลระบบ / รูทคือ ลูกค้าของฉันบางคนยืนยันในการเรียนรู้วิธีนี้อย่างหนัก
David Mackintosh

6
alias ..="cd .."
alias ...="cd ../.."

# mkdir and enter it immediately thereafter
mcd()           { mkdir $1 && cd $1; }

# when entering a directory, list the contents.
cd()            { builtin cd "$@" && ls; }

6

เนื้อหาทั้งหมดของ "รายการนามแฝง" ของฉันคือ:



ฉันใช้เวลามากพอในการแก้ไขเครื่องยูนิกซ์ที่ฉันไม่ได้ "ปกติ" ทำงานด้วย (ข้อเสียอย่างหนึ่งของการมีผู้ดูแลระบบยูนิกซ์ใน บริษัท สำหรับบ้านซอฟต์แวร์คุณจบลงที่ไซต์ลูกค้าจำนวนมาก) สิ่งแรก ฉันทำคือ "unalias -a" เพื่อให้นามแฝงใด ๆ ที่ผู้ดูแลการผลิตปกติไม่ได้มีปฏิสัมพันธ์กับการสะกดคำผิดหลังจากนั้นมันยุ่งยากในการปรับแต่งมากเกินไป

สิ่งนี้ได้นำไปสู่การใช้งานปกติของฉันด้วย


6
alias rm 'mv -f \!* $WASTEBASKET'
alias unrm 'mv $WASTEBASKET/\!* .'

ฉันรู้ว่าหลายคนจะไม่เห็นด้วย แต่ฉันชอบตาข่ายนิรภัย (และโปรดพยายามให้อภัยฉันด้วยการใช้ tcsh)

สิ่งนี้ค่อนข้างคล้ายกันควรผิดกฎหมายแม้ว่า:

alias rm 'rm -i'

ฉันเคยเห็นคนที่ได้รับการฝึกฝนเกี่ยวกับระบบที่มีนามแฝงนั้นแล้วพวกเขาก็พิมพ์rm *บนระบบอื่น ๆ โดยคาดว่าจะได้รับคำถามเกี่ยวกับไฟล์ที่จะลบแล้วพวกเขาก็นั่งที่นั่นและดูว่ามันควรจะทำอะไร

แก้ไข:

ความคิดเห็นบางส่วนเปรียบเทียบนามแฝงย้ายไปยังตะกร้าขยะกับธง "-i" ซึ่งบอกว่าคล้ายกัน แต่สำหรับฉันมันมีความแตกต่างที่สำคัญ ด้วย "-i" คุณจะได้รับพรอมต์การยืนยันทุกครั้งที่คุณใช้คำสั่งและมันจะกลายเป็นสิ่งที่คุณคาดหวังและพึ่งพา ในทางกลับกันโซลูชันตะกร้าขยะทำงานได้เหมือนกับมาตรฐาน rm จนกว่าคุณจะทำผิดพลาดจริง ๆ และจำเป็นต้องยกเลิกการลบไฟล์ มันเหมือนกับความแตกต่างระหว่างล้อการฝึกซ้อมและยางอะไหล่ในลำต้น


bash ที่เทียบเท่าต้องมีฟังก์ชัน: del () {path = readlink -f "$1"mkdir -p $ WASTE $ path mv $ path $ WASTE $ path} มันไม่สมบูรณ์แบบ (เนื่องจากมันสร้าง dir ใหม่พร้อมชื่อไฟล์) แต่มันก็ใช้ได้ (การขึ้นบรรทัดใหม่จะถูกใช้เป็นแบบฝึกหัดสำหรับผู้อ่าน!)
gbjbaanb

1: ผมใช้ tcsh เกินไป :-)

1: คุณอภัยสำหรับการใช้ tcsh;)
bedwyr

6
ในความเป็นธรรมการคาดหวังการยืนยันที่รวดเร็วและการไม่ได้รับสิ่งนั้นแย่พอ ๆ กับที่คาดหวังว่ามันจะเข้าไปในตะกร้าขยะและนั่นก็ไม่ได้เกิดขึ้น ไม่มีความแตกต่างจริงๆ
Dan Udey

@ แดน: ฉันคิดเหมือนกัน นามแฝงไม่ควรเรียกว่า rm แต่เป็น wb สำหรับตะกร้าขยะหรือสิ่งที่คล้ายกัน
user9474

4

สิ่งเหล่านี้มีไว้สำหรับ zsh แต่ฉันคิดว่าคุณสามารถย้ายมันไปยังเชลล์อื่นได้อย่างง่ายดาย:

sudo() { [[ $1 == (vi|vim) ]] && shift && sudoedit "$@" || command sudo "$@"; } # sudo vi/vim => sudoedit
wst() { TZ=Australia/Perth date } # get local time no matter what server I'm on

FULLHOST=`hostname -f` 2>/dev/null || FULLHOST=`hostname` # reasonably portable, always gets a DHCP suffix too (if one exists)
SHORTHOST=`echo $FULLHOST | cut -d. -f1-2` # get the first two segments of hostname, which I used in my shell prompt

ขออภัยในความไม่รู้ของฉันความแตกต่างระหว่าง sudo vim และ sudoedit คืออะไร sudo edit = sudo $ EDITOR หรือไม่
olle

sudoedit เรียกใช้โปรแกรมแก้ไขของคุณภายใต้บัญชีของคุณแทนที่จะเป็นรูท นั่นหมายถึงคุณสามารถเข้าถึง ~ / .vimrc ของคุณเองและอื่น ๆ
Alex J

1
+1 สำหรับการเปลี่ยนsudo vi <somefile>เป็นsudoedit <somefile! + อื่น ๆ ถ้าผม
เควินเอ็ม

4

นี่คือรายการโปรดของฉัน (บางส่วนเป็นเฉพาะของ ZSH)

alias ls='ls -F --color=auto'
alias l='ls'
alias ll='ls -ahl'
alias ..='cd ..'
alias ...='cd ../..'
alias mv='mv -i'
alias mmv='noglob zmv -W'
alias mcp='mmv -C'

mkcd() {
        if [ $1 = "" ]; then
                echo "Usage: mkcd <dir>"
        else
                mkdir -p $1
                cd $1
        fi
}

# ZSH global aliases for piping
alias -g H="| head"
alias -g T="| tail"
alias -g C="| wc -l"
alias -g L="| less"
alias -g G="| grep"
alias -g S="| sed -e"
alias -g A="| awk"

# Subversion related
alias ss='svn status'
alias sd='svn diff'
alias sc='svn commit'

# Git related
alias gs='git status'
alias gc='git commit'
alias ga='git add'
alias gd='git diff'
alias gb='git branch'
alias gl='git log'
alias gsb='git show-branch'
alias gco='git checkout'
alias gg='git grep'
alias gk='gitk --all'
alias gr='git rebase'
alias gri='git rebase --interactive'
alias gcp='git cherry-pick'
alias grm='git rm'

fortune -s  # Add to your profile to brighten your day :)


4

มีนามแฝงจำนวนมากที่นี่ซึ่งไม่จำเป็นต้องมี:

นามแฝง c = 'clear'

สามารถถูกแทนที่โดยเพียงแค่กด [Ctrl] + [L]

alias mroe = 'เพิ่มเติม'

และที่คล้ายกัน: zsh ให้การแก้ไขการสะกดตามค่าเริ่มต้นทุบตีกับส่วนขยาย

alias something = "history | grep $ @"

กด [Ctrl] + [R] ทำสิ่งเดียวกันใน bash / zsh

ย้อนกลับ = 'cd $ OLDPWD'

เดียวกันสามารถทำได้ในทุกเชลล์ด้วย

ซีดี -




2
alias ls="ls --color=auto -A -h -i -s --group-directories-first -l"
alias screen="screen -U"
alias sscreen="~/Projects/bin/start_screen.sh"
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | emacs'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'

2

p = 'ps auxww | grep -v grep | grep'


ในบางกรณี pgrep มีประโยชน์ ไม่ใช่เอฟเฟกต์เดียวกัน แต่ก็ยังมีประโยชน์
Juliano

2

สำหรับการค้นหาสคริปต์ Perl เก่าสำหรับบางสิ่ง:

alias searchperl 'find /place1 /place2 /place3 -name "*.pl" | xargs grep

ส่งอีเมลไฟล์ด้วยตัวเอง:

alias mailthis 'mail -s mailthis email@email.com < '


1
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10

แสดงคำสั่งที่ใช้มากที่สุด 10 อันดับแรกในประวัติของคุณ


รุ่นที่สั้นกว่าไม่จำเป็นต้อง awk: history | cut -f 5 -d '' | จัดเรียง | uniq -c | เรียง -n | tail
Marcin

1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

ฉันจะจำรหัสผ่านทั้งหมดของฉันได้อย่างไร ...


1

นี่คือรายการโปรดของฉันเพื่อค้นหาบางสิ่งบางอย่างในรหัส Python ในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยยกเว้นรายการที่เกี่ยวข้องกับการโค่นล้ม:

alias greppy="find . | grep -v [.]svn | grep [.]py$ | xargs grep "


1

ไม่กี่ดึงจาก bashrc ของฉัน:

alias grep='grep --color=auto'
alias egrep='grep -E --color=auto'
alias e='$EDITOR'
alias g='git'
alias csort='sort | uniq -c | sort -n' # column sort piped data
alias sl='ls' # fat fingers

โดยทั่วไปฉันมักจะให้ bashrc ของฉันรู้ว่าตัวจัดการแพคเกจระบบใช้อะไรและจากนั้นให้มันใช้นามแฝงเป็นaptและyumมีความหมายกับเครื่องใด ๆ ที่ bashrc ของฉันทำงานฉันสามารถทำได้:

apt search foo
yum install foo
apt update

มันไม่สมบูรณ์แบบ แต่การกระทำทั่วไปส่วนใหญ่จะเหมือนกันระหว่างยำและความถนัดโดยเวลาที่คุณพยายามทำอะไรที่ซับซ้อนกว่านี้คุณสามารถจำได้ว่าคุณใช้ระบบปฏิบัติการใดอยู่


1

น่าจะเป็นที่ชื่นชอบของฉันเพราะมันทำให้การเขียนชื่อแทนใหม่ง่ายมาก:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'

1

ฉันจะบอกว่านี่เป็นนามแฝงที่ฉันโปรดปราน

alias resume = 'หน้าจอ -D -R'

มันพิสูจน์แล้วว่ามีประโยชน์มากหลังจากที่เวิร์กสเตชัน windows ของฉันรีบูตอัตโนมัติทุกวันหยุดสุดสัปดาห์ (นโยบายของ บริษัท )


1
if [ "$(uname)"="darwin" ]; then
  EDITOR=mate
  PATH=$PATH:~/.bin
  alias sleep_hdd='sudo pmset -a hibernatemode 1'
  alias sleep_ram='sudo pmset -a hibernatemode 0'
  alias sleep_combined='sudo pmset -a hibernatemode 3'
  alias cdproj='cd ~/Projects/Web'
  alias e='mate'
  alias vboxheadless='VBoxHeadless -startvm '
  alias subash='sudo bash'
fi

if [ "$(uname)" = "SunOS" ]; then
  alias ls='ls -F'
  alias e='vim'
  alias subash='pfexec bash'
fi

vboxheadless ควรอยู่ใน $ PATH ของคุณแล้ว: uname; ซึ่ง vboxheadless ดาร์วิน / usr / bin / vboxheadless
Olle

1

อันนี้ใช้ได้กับเดสก์ท็อป linux ส่วนใหญ่:

alias go='xdg-open'

เปิดเอกสารหรือโฟลเดอร์ด้วยแอพพลิเคชั่นที่ลงทะเบียนคล้ายกับคำสั่ง start บน windows


1
เปลี่ยนเป็น xdg-open และควรทำงานบนสภาพแวดล้อมเดสก์ท็อปที่สอดคล้องกับ XDG ใด ๆ
Juliano

1

เพิ่มอีกสองสามถึงกอง:

# little bit more readable PATH
alias path='echo -e ${PATH//:/\\n}'

# like others, I find these more efficient than
# typing cd ../../ etc
alias up='cd ..'
alias 2up='cd ../../'
alias 3up='cd ../../../'
alias 4up='cd ../../../../'

# found myself always mistyping this, so...
alias findy='find . -name'


alias targz='tar -xzvf'
alias hg='history | grep '
alias cls='clear'

# handy for the xclip tool
alias xclip='xclip -selection c'

# quick directory listing
alias ldir='ls -d */'

alias mys='mysql -uroot -psecret name-of-frequently-used-DB' 

alias trash='mv -t ~/.local/share/Trash/files --backup=t'
alias vb='vim ~/.bashrc'
alias +='pushd .'
alias _='popd'

การจัดเก็บรหัสผ่านในสคริปต์เช่นนี้อาจเป็นอันตรายได้เว้นแต่คุณจะได้รับ 600 นอกจากนี้เมื่อดำเนินการรหัสผ่านของคุณจะไปที่ไฟล์ประวัติ - และอาจเป็นอันตราย
Marcin

1
alias dsclean='find . -name .DS_Store -exec rm \{\} \;'
alias l='ls -lh'
alias ls='ls -G'

# Depends on your specific router
alias myip='curl -sn http://192.168.1.1/wancfg.cmd?action=view | grep td | tail -1 | tr -d '\''/<>a-z '\'''

# Start/stop local mysql installation
alias myserver='sudo /usr/local/mysql/support-files/mysql.server'
alias rssh='ssh -l root'
alias sc='./script/console'
alias sr='screen -r'
alias ss='./script/server'
alias sss='screen ./script/server'
alias up='svn up'
alias webshare='python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"'

1

ทำเลขคณิตอย่างรวดเร็วจากบรรทัดคำสั่ง ใช้ "x" สำหรับการคูณเพื่อหลีกเลี่ยงการขยาย

function math
{       
    echo "scale=2 ; $*" | sed -e "s:x:*:g" | sed -e "s:,::g" | bc
}


$ math 12,537.2 x 4
50148.8

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.