Любимые псевдонимы командной строки Unix? [закрыто]


39

Какие ваши любимые псевдонимы командной строки (bash / sh / tcsh)? Вот несколько моих.

псевдоним lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notes'
псевдоним devdb = 'mysql -h dev --user = x --password = secret dbname'
псевдоним ec = 'rm * ~'; # emacs cleanup
псевдоним h = 'история'
псевдоним eb = 'exec bash'; # Солярис иногда по умолчанию ш
псевдоним mr = 'больше'
псевдоним mroe = 'больше'
псевдоним qd = 'echo export DISPLAY = $ DISPLAY'
псевдоним ralias = '. $ HOME / .alias'; # перечитать псевдонимы
псевдоним ,, = 'cd ../ ..'
псевдоним .. = 'CD ..'
псевдоним c = 'очистить'

18
Вместо того, чтобы передавать свой пароль в командной строке mysql(кто-нибудь еще на сервере мог его видеть!), Поместите имя пользователя и пароль в файл ~ / .my.cnf и просто укажите -up. Инструменты MySQL автоматически подберут эти учетные данные, для получения дополнительной информации прочтите mysql (1).
Алекс Дж

+1 Для псевдонима .. = 'cd ..'
mosg

+1 за «Мроу». Мне нужно позаботиться о моих общих опечатках ...
gWaldo

Ответы:


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

Подключитесь к хосту на новой вкладке экрана с именем устройства в качестве заголовка вкладки.


11

Мои любимые, которые не были упомянуты до сих пор:

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

Я обычно не фанат псевдонимов, которые просто сокращают, но я очень много печатаю ls, и мне нужна только одна рука.


+1 - неплохая идея
Ладья

1
ls (и cd) нужна только одна рука ... если раскладка - Дворжак! Та же самая рука, что и «Enter».
gbarry

8

нет, так как я никогда не могу гарантировать, что они будут настроены на КАЖДУЮ систему, в которую я войду (как я, root или кто-то еще).


1
В точку! Безобидные вещи, такие как alias ls = "ls --color = auto - это хорошо, но смена команды rm и т. Д. Никогда.
user9474

7

Нет, я так сильно меняюсь между системами каждый день, что в основном отказываюсь от этого.


Вы не синхронизируете свои домашние каталоги между различными машинами? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Энди Лестер

Я работаю с группой других администраторов около 5 тыс. Компьютеров, большинство из которых в течение всей своей жизни никогда не имели удаленного интерактивного сеанса пользователя (все установки и настройки выполняются автоматически), иногда возникают странные проблемы, и вам приходится входить в систему. Мы решили иметь учетную запись администратора для автоматического монтирования из общего раздела NFS, но для его использования оно того не стоит.
Мартин П. Хельвиг

1
... не иметь учетных записей администратора / root и включать каталоги nfs в свой путь - когда NFS является борком, то же самое относится и к учетным записям администратора / root. Некоторые из моих клиентов настаивают на том, чтобы научиться этому трудному пути.
Дэвид Макинтош

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

Общее содержание моего «списка псевдонимов»:



Я потратил достаточно времени на исправление Unix-машин, с которыми я "обычно" не работаю (один из недостатков того, что я был внутренним администратором Unix для дома программного обеспечения, вы оказались на сайтах клиентов, много), что первым делом Я делаю это, чтобы "unalias -a", просто чтобы любой псевдоним обычного производственного администратора не взаимодействовал с неправильным написанием, после этого это слишком хлопотно для настройки.

Это также перешло в мое обычное использование.


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

Я знаю, что многие не согласятся, но мне нравятся защитные сетки. (И, пожалуйста, попробуйте простить меня за использование tcsh.)

Этот несколько похожий должен быть вне закона, хотя:

alias rm 'rm -i'

Я видел людей, которые были обучены работе с системами с таким псевдонимом, а затем они набирали rm *текст в какой-то другой системе, ожидая получить вопросы о том, какие файлы удалять, а затем они сидели и смотрели, как именно это и должно быть.

РЕДАКТИРОВАТЬ:

В некоторых комментариях сравнивался псевдоним корзины для мусора с флагом «-i», говоря, что они похожи. Но для меня есть важное отличие. С "-i" вы получаете запрос на подтверждение каждый раз, когда используете команду, и это становится тем, на что вы рассчитываете и на что положитесь. С другой стороны, решение для мусорной корзины работает точно так же, как и стандартный rm, пока вы на самом деле не совершите ошибку и не захотите удалить файл. Это немного похоже на разницу между тренировочными колесами и запасным колесом в багажнике.


эквивалент bash требует функции: del () {path = readlink -f "$1"mkdir -p $ WASTE $ path mv $ path $ WASTE $ path} Это не идеально (так как создает новый каталог с именем файла), но работает нормально. (
добавление новых

+1: я тоже использую Tcsh :-)

+1: вы прощены за использование tcsh;)
bedwyr

6
Честно говоря, ожидать подтверждения и не получать его так же плохо, как ожидать, что оно попадет в мусорную корзину, а этого не происходит. На самом деле нет никакой разницы.
Дэн Удей

@Dan: я тоже так думал. Псевдоним действительно должен называться не rm, а wb для мусорной корзины или что-то подобное.
user9474

4

Это для zsh, но я думаю, вы могли бы достаточно легко перенести их на другую оболочку:

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

Извините за мое невежество, в чем разница между sudo vim и sudoedit? Является ли sudo edit = sudo $ EDITOR?
olle

sudoedit запускает ваш редактор под вашей учетной записью, а не как root. Это означает, что вы получаете доступ к своему ~ / .vimrc и так далее.
Алекс Дж

1
+1 за переход sudo vi <somefile>на sudoedit <somefile! + больше, если бы я мог
Кевин М

4

Вот некоторые из моих любимых. (Некоторые из них относятся к 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

здесь много псевдонимов, которые не являются необходимыми:

псевдоним c = 'очистить'

можно заменить, просто нажав [Ctrl] + [L]

псевдоним mroe = 'больше'

и аналогично: zsh обеспечивает исправление заклинаний по умолчанию, bash делает это с расширениями

псевдоним что-то = "история | grep $ @"

нажатие [Ctrl] + [R] делает то же самое в bash / zsh

back = 'cd $ OLDPWD'

то же самое можно сделать в каждой оболочке с

CD -




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

Для поиска старых скриптов Perl что-то:

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

Отправить мне по электронной почте файл:

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


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

Показать 10 самых популярных команд в вашей истории.


более короткая версия, нет необходимости в awk: история | cut -f 5 -d '' | сортировать | uniq -c | сортировать -n | хвост
Марцин

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

Как я помню все мои пароли ...


1

Вот мой любимый способ найти что-то во всем коде Python в текущем и дочернем каталогах, кроме тех, которые связаны с subversion:

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


1

Несколько вырвали из моего 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

Как правило, мой bashrc выясняет, какой менеджер пакетов использует система, а затем имеет псевдоним как aptи yum, то есть на любой машине, на которой работает мой bashrc, я могу просто сделать:

apt search foo
yum install foo
apt update

Он не идеален, но большинство общих действий одинаковы для yum и aptitude. К тому времени, когда вы пытаетесь сделать что-то более сложное, вы можете просто вспомнить, на какой ОС вы работаете.


1

Наверное, мой любимый, так как это делает написание новых псевдонимов так легко:

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

1

Я бы сказал, что это мой любимый псевдоним.

псевдоним резюме = 'экран -D -R'

Это оказывается очень удобным после того, как моя рабочая станция Windows автоматически перезагружается каждые выходные (политика фирмы).


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 уже должен быть в вашем $ PATH: uname; vboxheadless Дарвин / usr / bin / vboxheadless
olle

1

Этот работает на большинстве рабочих столов Linux:

alias go='xdg-open'

Открывает документ или папку с зарегистрированным приложением, аналогично команде запуска в Windows.


1
Измените его на xdg-open, и он должен работать в любой XDG-совместимой среде рабочего стола.
Джулиано

1

Еще несколько, чтобы добавить в кучу:

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

Хранение паролей в таких сценариях потенциально опасно, если только вы не получили его 600. Также после выполнения ваш пароль попадает в файл истории - также потенциально опасно.
Марчин

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

Сделайте быструю арифметику из командной строки. Используйте «x» для умножения, чтобы избежать расширения.

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


$ math 12,537.2 x 4
50148.8

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.