Bevorzugte Unix-Befehlszeilen-Aliase? [geschlossen]

39

Was sind Ihre bevorzugten Befehlszeilen-Aliase (bash / sh / tcsh)? Hier sind einige von mir.

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notizen'
alias devdb = 'mysql -h dev --user = x --password = geheimer Datenbankname'
alias ec = 'rm * ~'; # emacs aufräumen
alias h = 'geschichte'
alias eb = 'exec bash'; # Solaris verwendet manchmal standardmäßig sh
alias mr = 'more'
alias mroe = 'mehr'
alias qd = 'echo export DISPLAY = $ DISPLAY'
alias ralias = '. $ HOME / .alias '; # Aliase erneut lesen
alias ,, = 'cd ../ ..'
alias .. = 'cd ..'
alias c = 'clear'
anon
quelle
18
Anstatt Ihr Passwort in der Befehlszeile an mysql(jeder andere auf dem Server konnte es sehen!) Weiterzugeben, geben Sie den Benutzernamen und das Passwort in eine ~ / .my.cnf-Datei ein und geben Sie es einfach an -up. Die MySQL-Tools rufen diese Anmeldeinformationen automatisch ab. Weitere Informationen finden Sie in mysql (1).
Alex J
+1 Für alias .. = 'cd ..'
mosg
+1 für 'mroe'. Ich muss auf meine üblichen Rechtschreibfehler
aufpassen

Antworten:

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

Stellen Sie auf einer neuen Bildschirmregisterkarte mit dem Gerätenamen als Registerkartentitel eine Verbindung zu einem Host her.

Murali Suriar
quelle
11

Meine bisher nicht erwähnten Favoriten:

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

Normalerweise bin ich kein Fan von Aliasen, die nur Dinge verkürzen, aber ich tippe so viel, und ich brauche nur eine Hand.

C Pirat
quelle
+1 - keine schlechte Idee
Rook
1
ls (und cd) braucht nur eine hand ... wenn die keymap Dvorak ist! Selbe Hand wie 'Enter'.
Gbarry
8

Keine, da ich niemals garantieren kann, dass sie auf JEDEM System konfiguriert werden, bei dem ich mich anmelde (als ich selbst, root oder wer auch immer).

TCampbell
quelle
1
Genau! Harmlose Dinge wie Alias ​​ls = "ls --color = auto sind in Ordnung, aber ändern Sie den Befehl rm usw.? Niemals.
user9474
7

Keine, ich wechsle jeden Tag so oft zwischen den Systemen, dass ich im Grunde genommen darauf verzichtet habe.

Martin P. Hellwig
quelle
Sie synchronisieren Ihre Home-Verzeichnisse nicht zwischen den verschiedenen Rechnern? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Andy Lester
Ich pflege mit einer Gruppe von anderen Administratoren ungefähr 5.000 Maschinen, die meisten dieser Maschinen hatten während ihrer gesamten Lebensdauer nie eine interaktive Remote-Benutzersitzung (die gesamte Installation und Konfiguration erfolgt automatisch), manchmal gibt es ein seltsames Problem und Sie müssen sich anmelden. Wir haben darüber nachgedacht, dass der Benutzeradministratorkonto automatisch von einer freigegebenen NFS-Partition bereitgestellt wird, aber für die Verwendung ist es das nicht wert.
Martin P. Hellwig
1
... dass Admin- / Root-Konten keine nfs-Verzeichnisse in den Pfad aufnehmen - wenn NFS nicht funktioniert, gilt dies auch für Admin- / Root-Konten. Einige meiner Kunden bestehen darauf, dies auf die harte Tour zu lernen.
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; }
z8000
quelle
6

Der Gesamtinhalt meiner "Alias-Liste" ist:



Ich habe genug Zeit damit verbracht, Unix-Maschinen zu reparieren, mit denen ich "normalerweise" nicht arbeite (einer der Nachteile, wenn ich für ein Softwarehaus ein Unix-Administrator war, landet man beim Kunden, viel) Ich verwende "unalias -a", nur um zu verhindern, dass ein Alias, den der normale Produktionsadministrator verwendet, mit einer falschen Schreibweise in Berührung kommt. Danach ist es zu mühsam, ihn anzupassen.

Dies hat sich auch auf meine normale Verwendung übertragen.

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

Ich weiß, dass viele anderer Meinung sind, aber ich mag Sicherheitsnetze. (Und bitte verzeihen Sie mir, dass ich tcsh verwende.)

Dieses etwas ähnliche sollte jedoch verboten werden:

alias rm 'rm -i'

Ich habe Leute gesehen, die auf Systemen mit diesem Alias ​​trainiert wurden und dann rm *auf einem anderen System tippen und damit rechnen, Fragen zu den zu löschenden Dateien zu erhalten. Dann sitzen sie da und beobachten, wie es genau das tut, was es tun soll.

BEARBEITEN:

In einigen Kommentaren wurde der Alias ​​"Verschieben in den Papierkorb" mit dem Flag "-i" verglichen. Aber für mich gibt es einen wichtigen Unterschied. Mit "-i" erhalten Sie jedes Mal, wenn Sie den Befehl verwenden, eine Bestätigungsaufforderung, die Sie erwarten und auf die Sie sich verlassen können. Die Papierkorblösung hingegen funktioniert genauso wie die Standard-RM, bis Sie tatsächlich einen Fehler machen und eine Datei entfernen müssen. Es ist ein bisschen wie der Unterschied zwischen Stützrädern und einem Reserverad im Kofferraum.

Thomas Padron-McCarthy
quelle
Das Bash-Äquivalent erfordert eine Funktion: del () {Pfad = readlink -f "$1"mkdir -p $ WASTE $ Pfad mv $ Pfad $ WASTE $ Pfad} Es ist nicht perfekt (da es ein neues Verzeichnis mit dem Dateinamen erstellt), aber es funktioniert in Ordnung. (Das Einfügen von Zeilenumbrüchen ist eine Übung für den Leser!)
gbjbaanb
+1: Ich Tcsh auch :-) verwenden
+1: Es ist dir verziehen, tcsh zu benutzen;)
bedwyr 06.06.09
6
Fairerweise ist es genauso schlimm, eine Bestätigungsaufforderung zu erwarten und keine zu erhalten, wie zu erwarten, dass sie in einen Papierkorb gelangt, und das passiert nicht. Es gibt wirklich keinen Unterschied.
Dan Udey
@ Dan: Ich dachte das gleiche. Der Alias ​​sollte eigentlich nicht rm heißen, sondern wb für den Papierkorb oder ähnliches.
user9474
4

Diese sind für zsh, aber ich kann mir vorstellen, dass Sie sie relativ einfach auf eine andere Shell portieren können:

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
Alex J
quelle
Entschuldigung für meine Unwissenheit, was ist der Unterschied zwischen sudo vim und sudoedit? Ist sudo edit = sudo $ EDITOR?
olle
sudoedit führt Ihren Editor nicht als root, sondern unter Ihrem Account aus. Das bedeutet, Sie erhalten Zugriff auf Ihre eigene ~ / .vimrc und so weiter.
Alex J
1
+1 für den Wechsel sudo vi <somefile>zu sudoedit <somefile! + mehr, wenn ich könnte
Kevin M
4

Hier sind einige meiner Favoriten. (Einige sind ZSH-spezifisch.)

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 :)
Tom
quelle
4

Für die lästigen Kollegen:

alias ls=rm
Mark Harrison
quelle
2
Ich bevorzuge das viel subtilere "Alias ​​vi = vi -R"
David Mackintosh
4

hier gibt es viele aliasnamen, die nicht notwendig sind:

alias c = 'clear'

kann durch Drücken von [Strg] + [L] ersetzt werden

alias mroe = 'mehr'

und Ähnliches: zsh bietet standardmäßig eine Rechtschreibkorrektur, bash macht dies mit Erweiterungen

alias something = "history | grep $ @"

Drücken von [Strg] + [R] bewirkt dasselbe in Bash / Zsh

back = 'cd $ OLDPWD'

Das gleiche kann in jeder Shell mit gemacht werden

cd -
Skaarj
quelle
3
jldugger @ jldugger: ~ $ alias 
alias ls = 'ls --color = auto'
alias youtube-dl = 'youtube-dl -t
Jldugger
quelle
+1 für ls = 'ls --color = auto'
Matt Simmons
3
alias perg='grep -rni --exclude=\*.svn\*'
alias df='df -kTh'
alias ll="ls -l --group-directories-first"
Andrei Serdeliuc
quelle
1
Versuchen Sie zum ersten Mal "ack". es ist ein Grep des
hayalci
3
alias cdd='cd /wherever/my/current/project/is'
Chaos
quelle
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'
GNUix
quelle
2

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

Disserman
quelle
In einigen Fällen ist pgrep hilfreich. Nicht der gleiche Effekt, aber dennoch nützlich.
Juliano
2

Um alte Perl-Skripte nach etwas zu durchsuchen:

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

Senden Sie mir eine Datei per E-Mail:

alias mailthis 'mail -s mailthis [email protected] < '
mmarchin
quelle
1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

Ich vermisse es sehr oft auf anderen Systemen

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

Zeigen Sie die 10 am häufigsten verwendeten Befehle in Ihrem Verlauf an.

Peter
quelle
kürzere Version, keine awk erforderlich: history | cut -f 5 -d '' | sortieren | uniq -c | sort -n | Schwanz
Marcin
1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

Wie ich mich an alle meine Passwörter erinnere ...

aultl
quelle
1

Hier ist mein Favorit, um etwas im gesamten Python-Code in den Verzeichnissen current und child zu finden, mit Ausnahme derjenigen, die mit subversion verbunden sind:

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

Joel
quelle
1

Ein paar, die mir aus der Tasche gezogen wurden:

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

Im Allgemeinen habe ich in der Regel meine bashrc herauszufinden , was Paket - Manager verwendet das System und dann haben sie dem Alias aptund yumauf jedem Rechner , auf dem meine bashrc läuft bedeutet, kann ich nur tun:

apt search foo
yum install foo
apt update

Es ist nicht perfekt, aber die meisten der gängigen Aktionen sind zwischen yum und aptitude gleich. Wenn Sie versuchen, etwas Komplizierteres zu tun, können Sie sich einfach daran erinnern, auf welchem ​​Betriebssystem Sie sich befinden.

JamesHannah
quelle
1

Wahrscheinlich mein Favorit, da es so einfach ist, neue Aliase zu schreiben:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'
Telemachus
quelle
1

Ich würde sagen, das ist mein Lieblingsalias.

alias resume = 'screen -D -R'

Es erweist sich als sehr praktisch, wenn meine Windows-Workstation jedes Wochenende automatisch neu gestartet wird (Firmenrichtlinie).

fletchnj
quelle
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
daeltar
quelle
vboxheadless sollte sich bereits in Ihrem $ PATH befinden: uname; which vboxheadless Darwin / usr / bin / vboxheadless
olle
1

Dieser funktioniert auf den meisten Linux-Desktops:

alias go='xdg-open'

Öffnet ein Dokument oder einen Ordner mit der registrierten Anwendung, ähnlich dem Startbefehl unter Windows.

amarillion
quelle
1
Ändern Sie es in xdg-open und es sollte in jeder XDG-kompatiblen Desktop-Umgebung funktionieren.
Juliano
1

Ein paar mehr zum Stapel hinzufügen:

# 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'
Yalestar
quelle
Das Speichern von Kennwörtern in Skripten wie diesen ist potenziell gefährlich, es sei denn, Sie haben es 600. Außerdem wird Ihr Kennwort bei der Ausführung in die Verlaufsdatei verschoben - ebenfalls potenziell gefährlich.
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()"'
Jorge Bernal
quelle
1

Rechnen Sie schnell über die Befehlszeile. Verwenden Sie "x" zur Multiplikation, um eine Erweiterung zu vermeiden.

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


$ math 12,537.2 x 4
50148.8
Gerald Combs
quelle