Ulubione aliasy wiersza poleceń Uniksa? [Zamknięte]

39

Jakie są twoje ulubione aliasy wiersza poleceń (bash / sh / tcsh)? Oto kilka moich.

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notes'
alias devdb = 'mysql -h dev --user = x --password = tajna nazwa db'
alias ec = 'rm * ~'; # emacs cleanup
alias h = „historia”
alias eb = 'exec bash'; # Solaris czasami domyślnie sh
alias mr = „more”
alias mroe = „more”
alias qd = 'eksport echa DISPLAY = $ DISPLAY'
alias ralias = '. $ HOME / .alias '; # ponownie przeczytaj aliasy
alias ,, = 'cd ../ ..'
alias .. = „cd ..”
alias c = „wyczyść”
anon
źródło
18
Zamiast mysqlpodawać hasło w wierszu polecenia (każdy może to zobaczyć na serwerze!), Umieść nazwę użytkownika i hasło w pliku ~ / .my.cnf i po prostu określ -up. Narzędzia MySQL automatycznie podniosą te poświadczenia, przeczytaj mysql (1), aby uzyskać więcej informacji.
Alex J
+1 za alias .. = „cd ..”
mosg
+1 dla „mroe”. Muszę zająć się moimi częstymi błędami ortograficznymi ...
gWaldo

Odpowiedzi:

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

Połącz się z hostem na nowej karcie ekranu, z nazwą urządzenia jako tytułem karty.

Murali Suriar
źródło
11

Moje ulubione, o których dotychczas nie wspomniano:

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

Zwykle nie jestem fanem aliasów, które tylko skracają rzeczy, ale piszę tak bardzo ls i potrzebuję tylko jednej ręki.

C Pirate
źródło
+1 - niezły pomysł
wieża
1
ls (i cd) potrzebuje tylko jednej ręki ... jeśli mapą klawiszy jest Dvorak! Jeśli chodzi o tę samą rękę, to „Enter”.
gbarry
8

żaden, ponieważ nigdy nie mogę zagwarantować, że zostaną skonfigurowane w KAŻDYM systemie, do którego się zaloguję (jako ja, root lub ktokolwiek).

TCampbell
źródło
1
Dokładnie! Nieszkodliwe rzeczy takie jak alias ls = "ls --color = auto są w porządku, ale zmiana polecenia rm itp.? Nigdy.
user9474
7

Żadnego, codziennie zmieniam się między systemami tak bardzo, że w zasadzie zrezygnowałem z tego.

Martin P. Hellwig
źródło
Nie synchronizujesz katalogów domowych między różnymi komputerami? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Andy Lester
Utrzymuję z grupą innych administratorów około 5 000 komputerów, większość z tych komputerów przez cały okres ich życia nigdy nie miała zdalnej interaktywnej sesji użytkownika (cała instalacja i konfiguracja odbywa się automatycznie), czasem występuje dziwny problem i trzeba się zalogować. Rozważyliśmy, że konto użytkownika administruje automatycznym montowaniem ze współużytkowanej partycji NFS, ale korzystanie z niego nie jest tego warte.
Martin P. Hellwig
1
... nie mam kont admin / root, które zawierają na swojej ścieżce katalogi nfs - gdy NFS jest bork, to samo dotyczy kont admin / root. Niektórzy z moich klientów nalegają na naukę tego na własnej skórze.
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
źródło
6

Całkowita zawartość mojej „listy aliasów” wynosi:



Spędziłem wystarczająco dużo czasu na naprawianiu maszyn uniksowych, z którymi „normalnie” nie pracuję (jedną z wad bycia wewnętrznym administratorem unixu dla domu oprogramowania, trafiasz na strony klientów, bardzo dużo), że pierwszą rzeczą Robię to, aby „unalias -a”, tak, aby jakikolwiek alias normalnego administratora produkcji nie wchodził w interakcję z błędną pisownią, po czym zbyt wiele kłopotów można dostosować.

To również przeszło do mojego normalnego użytkowania.

Vatine
źródło
6
alias rm 'mv -f \!* $WASTEBASKET'
alias unrm 'mv $WASTEBASKET/\!* .'

Wiem, że wielu się nie zgodzi, ale lubię siatki bezpieczeństwa. (I proszę, wybacz mi, że używam tcsh.)

Ten nieco podobny należy jednak zakazać:

alias rm 'rm -i'

Widziałem ludzi, którzy zostali przeszkoleni w systemach z tym aliasem, a następnie piszą rm *na innym systemie, oczekując pytań o to, które pliki należy usunąć, a następnie siedzą tam i patrzą, jak robi dokładnie to, co powinien.

EDYTOWAĆ:

Niektóre komentarze porównywały alias przejścia do kosza na śmieci z flagą „-i”, mówiąc, że są one podobne. Ale dla mnie jest ważna różnica. Za pomocą „-i” za każdym razem, gdy używasz polecenia, pojawia się monit o potwierdzenie. Staje się on czymś, czego oczekujesz i na którym możesz polegać. Z drugiej strony rozwiązanie kosza na śmieci działa dokładnie tak, jak standardowe RM, dopóki nie popełnisz błędu i nie będziesz musiał usunąć pliku. To trochę jak różnica między kołami treningowymi a kołem zapasowym w bagażniku.

Thomas Padron-McCarthy
źródło
odpowiednik bash wymaga funkcji: del () {ścieżka = readlink -f "$1"mkdir -p $ WASTE $ ścieżka mv $ ścieżka $ WASTE $ ścieżka} Nie jest doskonały (ponieważ tworzy nowy katalog z nazwą pliku), ale działa dobrze. (wprowadzanie nowego wiersza jest ćwiczeniem dla czytelnika!)
gbjbaanb
+1: Używam też Tcsh :-)
+1: wybaczono ci używanie tcsh;)
bedwyr
6
Cóż, uczciwie, oczekiwanie na monit o potwierdzenie i nieotrzymanie go jest tak samo złe, jak oczekiwanie, że trafi do kosza na śmieci i to się nie dzieje. Naprawdę nie ma różnicy.
Dan Udey,
@Dan: Myślałem tak samo. Aliasu naprawdę nie należy nazywać rm, ale wb dla kosza na śmieci lub czegoś podobnego.
user9474
4

Są to dla Zsh, ale wyobrażam sobie, że można dość łatwo przenieść je do innej powłoki:

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.
źródło
Przepraszam za moją niewiedzę, jaka jest różnica między sudo vim a sudoedit? Czy sudo edit = sudo $ EDITOR?
olle
sudoedit uruchamia edytor na Twoim koncie, a nie jako root. Oznacza to, że masz dostęp do własnego ~ / .vimrc i tak dalej.
Alex J
1
+1 za zmianę sudo vi <somefile>na sudoedit <somefile! + więcej, gdybym mógł
Kevin M.
4

Oto niektóre z moich ulubionych. (Kilka jest specyficznych dla 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 :)
Tomek
źródło
4

Dla tych kłopotliwych kolegów:

alias ls=rm
Mark Harrison
źródło
2
Wolę bardziej subtelny „alias vi = vi -R”
David Mackintosh,
4

istnieje wiele aliasów, które nie są konieczne:

alias c = „wyczyść”

można go zastąpić, naciskając [Ctrl] + [L]

alias mroe = „more”

i podobnie: zsh domyślnie zapewnia korekcję pisowni, bash robi to z rozszerzeniami

alias coś = "historia | grep $ @"

naciśnięcie [Ctrl] + [R] robi to samo w bash / zsh

back = „cd $ OLDPWD”

to samo można zrobić w każdej powłoce z

Płyta CD -
Skaarj
źródło
3
jldugger @ jldugger: ~ $ alias 
alias ls = 'ls --color = auto'
alias youtube-dl = 'youtube-dl -t
jldugger
źródło
+1 dla 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
źródło
1
Dla pierwszego spróbuj „ack”. to grep programisty;) betterthangrep.com
hayalci
3
alias cdd='cd /wherever/my/current/project/is'
chaos
źródło
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
źródło
2

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

disserman
źródło
W niektórych przypadkach przydatny jest pgrep. Nie ten sam efekt, ale nadal przydatny.
Juliano
2

Do wyszukiwania starych skryptów Perla w poszukiwaniu czegoś:

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

Wyślij do mnie plik:

alias mailthis 'mail -s mailthis [email protected] < '
mmarchin
źródło
1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

Bardzo często tęsknię za innymi systemami

Imbus
źródło
1
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10

Pokaż 10 najczęściej używanych poleceń w swojej historii.

pete
źródło
krótsza wersja, nie ma potrzeby awk: history | cut -f 5 -d '' | sortuj | uniq -c | sort -n | ogon
Marcin
1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

Jak pamiętam wszystkie moje hasła ...

aultl
źródło
1

Oto mój ulubiony: znaleźć coś w całym kodzie Pythona w katalogach bieżącym i potomnym, z wyjątkiem tych związanych z subversion:

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

Joel
źródło
1

Kilku wyrwało mnie z mojego 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

Ogólnie rzecz biorąc, mój bashrc zwykle zastanawia się, jakiego menedżera pakietów używa system, a następnie aliasuje go jako apti yum, co oznacza na każdym komputerze, na którym działa mój bashrc, mogę po prostu:

apt search foo
yum install foo
apt update

To nie jest idealne, ale większość typowych działań jest taka sama między yum a aptitude. Kiedy próbujesz zrobić coś bardziej skomplikowanego, możesz po prostu pamiętać, na jakim systemie operacyjnym się znajdujesz.

JamesHannah
źródło
1

Prawdopodobnie mój ulubiony, ponieważ ułatwia pisanie nowych aliasów:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'
Telemachus
źródło
1

Powiedziałbym, że to mój ulubiony alias.

alias resume = 'screen -D -R'

Jest to bardzo przydatne, gdy moja stacja robocza z systemem Windows jest automatycznie uruchamiana co weekend (polityka firmy).

fletchnj
źródło
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
źródło
vboxheadless powinien już znajdować się w twojej $ PATH: uname; które vboxheadless Darwin / usr / bin / vboxheadless
olle
1

Ten działa na większości komputerów z systemem Linux:

alias go='xdg-open'

Otwiera dokument lub folder z zarejestrowaną aplikacją, podobnie jak polecenie start w systemie Windows.

amarillionu
źródło
1
Zmień go na xdg-open i powinien działać na dowolnym środowisku pulpitu zgodnym z XDG.
Juliano
1

Jeszcze kilka do dodania do stosu:

# 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
źródło
Przechowywanie haseł w takich skryptach jest potencjalnie niebezpieczne, chyba że masz je 600. Również po uruchomieniu twoje hasło przechodzi do pliku historii - również potencjalnie niebezpieczne.
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
źródło
1

Wykonuj szybką arytmetykę z wiersza poleceń. Użyj „x” do mnożenia, aby uniknąć rozwinięcia.

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
źródło