Alias ​​della riga di comando Unix preferiti? [chiuso]


39

Quali sono i tuoi alias della riga di comando preferiti (bash / sh / tcsh)? Ecco alcuni dei miei.

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Note'
alias devdb = 'mysql -h dev --user = x --password = dbname segreto'
alias ec = 'rm * ~'; # emacs cleanup
alias h = 'storia'
alias eb = 'exec bash'; # A volte Solaris viene impostato automaticamente su sh
alias mr = 'more'
alias mroe = 'more'
alias qd = 'echo export DISPLAY = $ DISPLAY'
alias ralias = '. $ HOME / .alias'; # rileggi gli alias
alias ,, = 'cd ../ ..'
alias .. = 'cd ..'
alias c = 'clear'

18
Invece di passare la tua password dalla riga di comando a mysql(chiunque altro sul server potrebbe vederla!), Inserisci il nome utente e la password in un file ~ / .my.cnf e specifica semplicemente -up. Gli strumenti di MySQL rileveranno automaticamente queste credenziali, leggi mysql (1) per maggiori informazioni.
Alex J,

+1 Per alias .. = 'cd ..'
mosg,

+1 per "mroe". Devo occuparmi dei miei errori ortografici comuni ...
gWaldo,

Risposte:


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

Connettiti a un host in una nuova scheda, con il nome del dispositivo come titolo della scheda.


11

I miei preferiti che non sono stati menzionati finora:

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

Di solito non sono un fan degli alias che accorciano le cose, ma scrivo moltissimo e ho solo bisogno di una mano.


+1 - non è una cattiva idea
Rook,

1
ls (e cd) ha bisogno solo di una mano ... se la mappa dei tasti è Dvorak! Stessa mano di "Invio", del resto.
Gbarry,

8

nessuno poiché non posso mai garantire che saranno configurati su OGNI sistema a cui accederò (come me stesso, root o chiunque).


1
Esattamente! Cose innocue come alias ls = "ls --color = auto vanno bene, ma cambiando il comando rm ecc. Mai.
user9474

7

Nessuno, cambio ogni giorno così tanto tra i sistemi che praticamente ho rinunciato.


Non sincronizzi le tue home directory tra le varie macchine? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Andy Lester

Mantengo con un gruppo di altri amministratori attorno a macchine 5k, la maggior parte di queste macchine durante la loro intera vita non ha mai avuto una sessione utente interattiva remota (tutta l'installazione e la configurazione avvengono automaticamente), a volte c'è un problema strano e devi accedere. Abbiamo considerato di avere l'account degli amministratori utente per il montaggio automatico da una partizione NFS condivisa, ma per l'uso non ne vale la pena.
Martin P. Hellwig,

1
... non hanno account admin / root che includono directory nfs nel suo percorso - quando NFS è bork, così come gli account admin / root. Alcuni dei miei clienti insistono per imparare questo nel modo più duro.
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

Il contenuto totale della mia "lista alias" è:



Ho trascorso abbastanza tempo a riparare macchine unix con cui "normalmente" non lavoro (uno degli svantaggi di essere stato amministratore unix interno per una software house, finisci sui siti dei clienti, molto) che la prima cosa Lo faccio è "unalias -a", solo per evitare che qualsiasi alias del normale amministratore di produzione interagisca con un errore di ortografia, dopodiché è troppo fastidioso da personalizzare.

Questo ha portato anche al mio normale utilizzo.


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

So che molti non saranno d'accordo, ma mi piacciono le reti di sicurezza. (E per favore prova a perdonarmi per aver usato tcsh.)

Questo in qualche modo simile dovrebbe essere messo fuorilegge, sebbene:

alias rm 'rm -i'

Ho visto persone che erano state addestrate su sistemi con quell'alias, e poi scrivevano rm *su qualche altro sistema, aspettandosi di ottenere domande su quali file eliminare, e poi si siedono lì e guardano fare esattamente quello che dovrebbe fare.

MODIFICARE:

Alcuni dei commenti hanno confrontato l'alias dello spostamento verso il cestino con la bandiera "-i", affermando che sono simili. Ma per me c'è un'importante differenza. Con "-i", ricevi il prompt di conferma ogni volta che usi il comando e diventa qualcosa che ti aspetti e su cui ti affidi. La soluzione cestino, invece, funziona esattamente come la rm standard, fino a quando non si commette un errore e non è necessario rimuovere un file. È un po 'come la differenza tra le ruote da allenamento e una ruota di scorta nel bagagliaio.


l'equivalente bash richiede una funzione: del () {path = readlink -f "$1"mkdir -p $ WASTE $ path mv $ path $ WASTE $ path} Non è perfetto (in quanto crea una nuova directory con il nome del file) ma funziona bene. (mettere in riga è lasciato come esercizio per il lettore!)
gbjbaanb,

+1: Uso anche Tcsh :-)

+1: sei perdonato per aver usato tcsh;)
bedwyr il

6
Bene in tutta onestà, aspettarsi una richiesta di conferma e non ottenerne una è tanto grave quanto aspettarsi che finisca in un cestino e che ciò non accada. Non c'è differenza, davvero.
Dan Udey,

@Dan: ho pensato lo stesso. L'alias in realtà non dovrebbe essere chiamato rm, ma wb per cestino o qualcosa di simile.
user9474

4

Questi sono per zsh, ma immagino che potresti portarli su un'altra shell abbastanza facilmente:

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

Scusate la mia ignoranza, qual è la differenza tra sudo vim e sudoedit? Sudo edit = sudo $ EDITOR è?
olle,

sudoedit esegue il tuo editor con il tuo account, anziché come root. Ciò significa che hai accesso al tuo ~ / .vimrc e così via.
Alex J,

1
+1 per passare sudo vi <somefile>a sudoedit <somefile! + altro se potessi
Kevin M

4

Ecco alcuni dei miei preferiti. (Alcuni sono specifici per 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

ci sono molti alias qui che non sono necessari:

alias c = 'clear'

può essere sostituito semplicemente premendo [Ctrl] + [L]

alias mroe = 'more'

e simili: zsh fornisce la correzione ortografica di default, bash lo fa con le estensioni

alias qualcosa = "storia | grep $ @"

premendo [Ctrl] + [R] si fa la stessa cosa in bash / zsh

back = 'cd $ OLDPWD'

lo stesso può essere fatto in ogni shell con

cd -

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

+1 per ls = 'ls --color = auto'
Matt Simmons,


3
alias cdd='cd /wherever/my/current/project/is'

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 alcuni casi, pgrep è utile. Non è lo stesso effetto, ma è comunque utile.
Juliano,

2

Per cercare vecchi script perl per qualcosa:

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

Inviami un file tramite email:

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

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

Mi manca molto spesso su altri sistemi


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

Mostra i primi 10 comandi più utilizzati nella tua cronologia.


versione più corta, non è necessario per awk: history | cut -f 5 -d '' | ordina | uniq -c | ordina -n | tail
Marcin

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

Come ricordo tutte le mie password ...


1

Ecco il mio preferito, per trovare qualcosa in tutto il codice Python nelle directory correnti e secondarie, escluse quelle associate alla sovversione:

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


1

Alcuni strappati dal mio 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

In genere, di solito ho il mio bashrc a capire quale gestore di pacchetti utilizza il sistema e poi lo ho aliasato come apte yum, cioè su qualsiasi macchina su cui il mio bashrc funziona, posso semplicemente fare:

apt search foo
yum install foo
apt update

Non è perfetto ma la maggior parte delle azioni comuni sono le stesse tra yum e attitudine, quando stai provando a fare qualcosa di più complicato puoi solo ricordare su quale sistema operativo sei.


1

Probabilmente il mio preferito, poiché rende così semplice scrivere nuovi alias:

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

1

Direi che questo è il mio alias preferito.

alias resume = 'screen -D -R'

Si rivela molto utile dopo il riavvio automatico della mia workstation Windows ogni fine settimana (politica aziendale).


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 dovrebbe essere già nel tuo $ PATH: uname; quale vboxheadless Darwin / usr / bin / vboxheadless
olle,

1

Questo funziona sulla maggior parte dei desktop Linux:

alias go='xdg-open'

Apre un documento o una cartella con l'applicazione registrata, simile al comando di avvio su Windows.


1
Modificalo in xdg-open e dovrebbe funzionare su qualsiasi ambiente desktop compatibile con XDG.
Juliano,

1

Qualche altro da aggiungere alla pila:

# 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'

Memorizzare le password in script come questo è potenzialmente pericoloso, a meno che tu non l'abbia ottenuto 600. Anche durante l'esecuzione la password passa al file della cronologia - anche potenzialmente pericoloso.
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

Esegui un'aritmetica rapida dalla riga di comando. Utilizzare "x" per la moltiplicazione per evitare l'espansione.

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


$ math 12,537.2 x 4
50148.8

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.