Frage Lieblings-Unix-Kommandozeilen-Aliase? [geschlossen]


Was sind Ihre bevorzugten Aliasnamen für Befehlszeilen (bash / sh / tcsh)? Hier sind ein paar von mir.

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notizen'
Alias ​​devdb = 'mysql -h dev --user = x --passwort = geheimer Datenbankname'
alias ec = 'rm * ~'; # Emacs Aufräumen
alias h = 'Geschichte'
alias eb = 'exec bash'; # Solaris ist manchmal standardmäßig sh
alias mr = 'mehr'
alias mroe = 'mehr'
alias qd = 'Echo Export ANZEIGE = $ DISPLAY'
alias ralias = '. $ HOME / .alias '; # Aliase erneut lesen
Alias ​​,, = 'cd ../ ..'
alias .. = 'cd ..'
alias c = 'löschen'

38


Ursprung


Anstatt Ihr Passwort in der Befehlszeile an zu übergeben mysql (jeder andere auf dem Server könnte es sehen!), setzen Sie den Benutzernamen und das Passwort in eine ~ / .my.cnf Datei, und geben Sie einfach an -up. MySQL-Tools werden diese Anmeldeinformationen automatisch auswählen, lesen Sie mysql (1) für weitere Informationen. - Alex J
+1 für alias .. = 'cd ..' - mosg
+1 für 'mroe'. Ich muss auf meine allgemeinen Rechtschreibfehler aufpassen ... - gWaldo


Antworten:


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

Stellen Sie eine Verbindung zu einem Host auf einer neuen Registerkarte her, wobei der Gerätename als Tabtitel verwendet wird.


12





Meine Favoriten, die bisher nicht erwähnt wurden:

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 ls ls so sehr, und ich brauche nur eine Hand.


11



+1 - keine schlechte Idee - Rook
ls (und cd) braucht nur eine Hand ... wenn die Tastaturkarte Dvorak ist! Die gleiche Hand wie 'Enter', für diese Angelegenheit. - gbarry


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


8



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


Keiner, ich wechsle jeden Tag so viel zwischen den Systemen, dass ich es praktisch aufgegeben habe.


7



Sie synchronisieren Ihre Home-Verzeichnisse nicht zwischen den verschiedenen Rechnern? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion - Andy Lester
Ich führe mit einer Gruppe von anderen Administratoren rund 5k Maschinen, die meisten dieser Maschinen während ihrer gesamten Lebensdauer nie eine interaktive Remote-Benutzersitzung (alle Installation und Konfiguration geschieht automatisch), manchmal gibt es ein seltsames Problem und Sie müssen sich anmelden. Wir haben erwogen, das Benutzer-Admin-Konto automatisch von einer freigegebenen NFS-Partition mounten zu lassen, aber für den Einsatz lohnt es sich nicht. - Martin P. Hellwig
... nicht Admin / root-Konten enthalten NFS-Verzeichnisse in seinem Pfad - wenn NFS ist Bork, so ist Admin / root-Konten. Einige meiner Kunden bestehen darauf, dies auf die harte Tour zu lernen. - David Mackintosh


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 davon, in-house Unix-Administrator für ein Softwarehaus gewesen zu sein, du landest auf Kundenseiten, A Lot), dass das Erste ist Ich tue zu "unalias -a", nur damit jeder Alias, den der normale Produktionsadministrator hat, nicht zufällig mit einer falschen Schreibweise interagiert, danach ist es zu mühselig, ihn anzupassen.

Dies hat sich auch in meinen normalen Gebrauch übertragen.


6





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

Ich weiß, dass viele nicht zustimmen werden, aber ich mögen Sicherheitsnetze. (Und bitte versuch mir zu verzeihen, dass ich tcsh benutzt habe.)

Dieser etwas ähnliche sollte jedoch verboten werden:

alias rm 'rm -i'

Ich habe Leute gesehen, die auf Systemen mit diesem Alias ​​trainiert wurden, und dann tippen sie rm * auf einem anderen System, in der Erwartung, Fragen darüber zu bekommen, welche Dateien gelöscht werden sollen, und dann sitzen sie da und sehen zu, wie sie genau das machen, was sie tun soll.

BEARBEITEN:

Einige der Kommentare verglichen den Alias ​​"Umzug in den Papierkorb" mit dem Flag "-i" und sagten, dass sie ähnlich sind. Aber für mich gibt es einen wichtigen Unterschied. Mit "-i" erhalten Sie die Bestätigungsaufforderung jedes Mal, wenn Sie den Befehl verwenden, und es wird etwas, was Sie erwarten und auf das Sie sich verlassen. Die Papierkorb-Lösung hingegen arbeitet genau wie der Standard-Papierkorb, bis Sie tatsächlich einen Fehler machen und eine Datei entfernen müssen. Es ist ein bisschen wie der Unterschied zwischen Trainingsrädern und einem Ersatzreifen im Kofferraum.


6



Das Bash-Äquivalent benötigt eine Funktion: del () {path =readlink -f "$1" mkdir -p $ WASTE $ Pfad mv $ Pfad $ WASTE $ Pfad} Es ist nicht perfekt (wie es ein neues Verzeichnis mit dem Dateinamen erstellt), aber es funktioniert ok. (Das Einfügen von Zeilenumbrüchen bleibt als Übung für den Leser!) - gbjbaanb
+1: Ich benutze auch Tcsh :-)
+1: dir ist vergeben, tcsh zu benutzen;) - bedwyr
Nun, in Fairness, eine Bestätigung zu erwarten und nicht zu bekommen, ist genauso schlimm, als zu erwarten, dass es in einen Mülleimer geht und das nicht passiert. Es gibt keinen Unterschied, wirklich. - Dan Udey
@Dan: Ich dachte das Gleiche. Der Alias ​​sollte eigentlich nicht rm, sondern wb für den Papierkorb oder etwas Ähnliches heißen. - user9474


Diese sind für zsh, aber ich stelle mir vor, Sie könnten sie relativ leicht in eine andere Shell portieren:

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

4



Sorry für meine Ignoranz, was ist der Unterschied zwischen Sudo Vim und Sudoedit? Ist sudo edit = sudo $ EDITOR? - olle
sudoedit führt Ihren Editor unter Ihrem Konto und nicht als root aus. Das heißt, Sie erhalten Zugriff auf Ihre eigenen ~ / .vimrc und so weiter. - Alex J
+1 zum Ändern sudo vi <somefile> zu sudoedit <somefile! + mehr wenn ich könnte - Kevin M


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





Für diese lästigen Kollegen:

alias ls=rm

4



Ich bevorzuge das viel subtilere "alias vi = vi -R" - David Mackintosh


Es gibt hier viele Aliase, die nicht benötigt werden:

alias c = 'löschen'

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

alias mroe = 'mehr'

und ähnlich: zsh bietet standardmäßig eine Rechtschreibkorrektur, bash macht es mit Erweiterungen

alias etwas = "geschichte | grep $ @"

Drücken von [Strg] + [R] macht dasselbe in bash / zsh

zurück = 'cd $ OLDPWD'

Das Gleiche kann in jeder Shell mit gemacht werden

CD -

4