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'

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.


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.


+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).


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.


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; }

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.


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.


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

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 :)


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 -

3
jldugger @ jldugger: ~ $ alias 
alias ls = 'ls --color = auto'
alias youtube-dl = 'youtube-dl -t

+1 für ls = 'ls --color = auto'
Matt Simmons



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'


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@email.com < '

1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

Ich vermisse es sehr oft auf anderen Systemen


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.


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 ...


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 "


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.


1

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

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

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).


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 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.


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'

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()"'

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.