Faydalı bash diğer adları ve en çok kullandığınız komutların bir listesini oluşturma


10

Bulduğum bu senin bash geçmişini sıralamak ve en çok kullandığınız komutları görmek için hızlı bir yol tartışan makale:

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

Gerçekten hangi görevler için takma adlar oluşturmanız ve hangilerini tamamen kronjoblamanız gerektiğine dair gözlerinizi açar.

Size işte zaman kazandıracak önerilen komut satırı diğer adlarının bir ServerFault listesini görmek isterim . Neye sahipsin?

Aramızda, bu yayını okuyan her kullanıcıyı günde en az 10 dakika kaydedebileceğimize eminim. (Tabii ki işlerini yapmak yerine ServerFault'u okuyarak zamanlarını boşa harcadıkları ilk gün!)


Kayıt için, Süper Kullanıcı'da superuser.com/questions/7083/useful-command-line-aliases ve yararlı Bash takma adları bir sürü var
Jonik

Yanıtlar:


7

Birçok farklı makine ile ilgileniyorum, bu yüzden favorilerimden biri sık sık SSH'ye ihtiyacım olan her makine için takma adlar:

alias claudius="ssh dinomite@claudius"

Makineler arasında atlamayı daha da kolaylaştırmak için iyi .ssh/configve ssh tuşları ayarlamak da yararlıdır .

En sevdiğim diğer adlardan biri dizinleri yukarı taşımak için:

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

Ve bazıları ls(ve yazım hatalarının) yaygın olarak kullanılan varyasyonları için :

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"

Neredeyse her zaman istiyorum egrep:

alias grep="egrep"

Tüm bölümlerden el sayfaları alın

alias man="man -a"

Disklerimin her birinin boyutunu bulmak için awkolduğu gibi, çıkışın belirli bir sütununu elde etmek için kendimi sık sık çıkış yaparken df -h | awk '{print $2}'buldum. Bunu kolaylaştırmak için fawk.bashrc dosyamda bir işlev oluşturdum :

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

Şimdi çalıştırabilirim, df -h|fawk 2bu da yazımdan biraz tasarruf sağlar.

Bir sürü Perl ile çalışıyorum ve bir sistemde kurulu modüllerin sürümlerini bilmem gerekiyor:

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

3

Genellikle her şeyi yazmak isterim, çünkü korkarım hemen kullandığım komutlar hakkında her şeyi unutacağım. Yanlış olabileceğimi biliyorum, ancak Commandlinefu'daki her komutu .bashrc'ye yapıştırmış olsaydım sistem hakkında çok şey bileceğimi sanmıyorum .

En büyük olduğumu söylemediğimi ve Linux hakkında bilinmesi gereken her şeyi bildiğimi unutmayın, bundan çok, sadece öğrenmeyi sevdiğimi ve kullanarak öğrendiklerimi hatırladığımı söylüyorum.

Bu, zaman kazandıran takma adların (özellikle daha büyük işlevler için ne kadar değerli olduğunu bilmediğim anlamına gelmez, ancak daha sonra bir komut dosyasının daha iyi olup olmadığını görmeniz gerekir), ancak kişisel olarak, bunları kullanmayı sevmiyorum (en azından Herzaman değil).

Bununla birlikte, Commandlinefu'nun takma adlar için özel bir etiketi var . Bakmaya değer.

Ayrıca bu iyi bir şey olduğunu düşünüyorum:

   alias less='less -FSRX'

Bu yalnızca çıktı ekrandan daha büyükse daha az kullanılır.


2

Tüm zamanların favorisi:

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

Açıklamaya gerek yok, değil mi? :-)


5
.Ssh

Bash_completion ve sekmesini kullanarak, sekme takma adları oluşturmak yerine sekme benim için iyi çalışıyor gibi görünüyor
Clayton Stanley

2

alias lt='ls -lhart'

  • l = uzun: h = okunabilir insan boyutları: a = tümü: r = ters sıralama: t = zaman sıralaması
  • En yeni dosyayı istemin hemen altına, altına yerleştirir

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

  • yalnızca boş olmayan veya yorum yapılmamış satırları gösterir
  • örnek: active /etc/httpd/conf/httpd.conf

alias svi='sudo vim'

alias scr='screen -Rd'


Güzel, özellikle sudo vim
astropanic

1

İtiraf etmeliyim ki böyle bir kaç tane var.

alias sl=ls

Benim yazım hataları mücadele ve denemek için :-)

Bende var

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

Yani yenilerini eklemek güzel ve basit.



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

Ana bilgisayara oturum açmak için ana bilgisayar adını yazın. Not: ssx bir takma adın kendisidir:

ssx='ssh -Y'

Paylaşılan anahtarlarla birlikte oldukça şık.


1

Özellikle sudo öneki ile debian / * buntu, tüm apt-get ve apt-cache şeyler koymak için can sıkıcı buluyorum, bu yüzden var:

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

1

.tar.gz oluştur

alias tarc="tar czvf"

.tar.gz ayıklayın

alias tarx="tar xzvf"

list .tar.gz

alias tart="tar tzvf"


0

Bu sayfayı bana awk kullanarak bir csv (tsv) dosyasının n. Sütununu göstermek için bir takma ad yapmak için bir yol arıyor bulundu. Yukarıdaki fawk işlevi neredeyse tam olarak istediğim şeydi. İsteğe bağlı ikinci bir argüman, dosya adı eklemek için biraz değiştirdim, bu yüzden sadece bir borudan ziyade normalde awk gibi kullanabilirim.

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

Teşekkürler!


0

Bu bir takma ad değildir, ancak ssh bağlantılarını taklit eden kişileri görmek faydalı olabilir.

OpenSsh paketinde sembolik bağlantılarla çalışan ssh-argv0 adlı bir ikili dosya bulunur.

Yani, böyle bir şey yaparsanız:

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

$ PATH içinde / usr / local / bin olması, şimdi ssh.server.com kullanıcısına kullanıcı olarak "kabuk isteminde" yazabilirsiniz:

 $ user@ssh.server.com 

0

Drew Stephens cevabı için +1. Benim de kullanmadığı tek bir şey gibi düzenli olarak erişmek için gereken çeşitli nokta dosyaları takma etmektir:

alias dotz='vi ~/.zshrc'

Anında eklenti takma adı işleviyle bir adım daha ileri götürün:

function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.