Полезные псевдонимы bash и генерация списка ваших наиболее часто используемых команд


10

Я обнаружил, что в этой статье обсуждается быстрый способ сортировки истории Bash и выяснения, какие команды вы используете чаще всего:

cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30

Это действительно открывает вам глаза на то, для каких задач вы должны создавать псевдонимы, а для каких вы должны полностью отказаться.

Я хотел бы увидеть список ServerFault рекомендуемых псевдонимов командной строки, которые сэкономят ваше время на работе . Что у тебя?

Держу пари, что мы можем спасти каждого пользователя, который читает этот пост, по крайней мере, 10 минут в день. (Минус первый день, когда они тратят все свое время на чтение ServerFault вместо того, чтобы выполнять свою работу, конечно!)



Ответы:


7

Я имею дело с множеством разных машин, поэтому один из моих любимых - псевдонимы для каждой машины, для которой мне часто требуется SSH:

alias claudius="ssh dinomite@claudius"

Также полезно настроить хорошие .ssh/configи ssh-ключи, чтобы сделать переход между машинами еще проще.

Еще один из моих любимых псевдонимов - для перемещения по каталогам:

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."

И некоторые для часто используемых вариантов ls(и опечаток):

alias ll="ls -l"
alias lo="ls -o"alias lh="ls -lh"
alias la="ls -la"
alias sl="ls"
alias l="ls"
alias s="ls"

Я почти всегда хочу egrep:

alias grep="egrep"

Получить справочные страницы из всех разделов

alias man="man -a"

Я часто обнаруживал, что передаю выходные данные awk, чтобы получить определенный столбец вывода, например, df -h | awk '{print $2}'чтобы найти размер каждого из моих дисков. Чтобы сделать это проще, я создал функцию fawkв моем .bashrc:

function fawk {
    first="awk '{print "
    last="}'"
    cmd="${first}\$${1}${last}"
    eval $cmd
}

Теперь я могу запустить, df -h|fawk 2что экономит много печатать.

Я работаю с большим количеством Perl и мне нужно знать версии модулей, установленных в системе:

function perlmodver {
    perl -M$1 -e 'print "Version " .
        $ARGV[0]->VERSION . " of " . $ARGV[0] .
        " is installed.\n"' $1
}

3

Я обычно люблю печатать все, потому что боюсь, что забуду все о командах, которые использую в кратчайшие сроки Я знаю, что могу ошибаться, но я не думаю, что знал бы столько о системе, если бы только что вставил каждую команду из Commandlinefu в мой .bashrc.

Обратите внимание, что я не говорю, что я лучший, и я знаю все, что нужно знать о Linux, отнюдь не так, я просто говорю, что мне нравится учиться, и помнить то, что я узнал, используя.

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

При этом в Commandlinefu есть специальный тег для псевдонимов. Это стоит посмотреть.

Также я думаю, что это хорошо:

   alias less='less -FSRX'

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


2

Мой любимый на все времена:

alias server_name='ssh -v -l username ip_address'

Это не нуждается в объяснении, не так ли? :-)


5
Разве это не то, для чего нужен .ssh / config :-P Host имя_сервера Имя хоста 1.2.3.4 Имя пользователя и т. Д.
vartec

Используя bash_completion и tab, мне кажется, что tab работает нормально, вместо того, чтобы устанавливать кучу псевдонимов ssh
Clayton Stanley,

2

alias lt='ls -lhart'

  • l = long: h = удобочитаемые размеры: a = все: r = обратная сортировка: t = временная сортировка
  • Помещает самый новый файл внизу, прямо над приглашением

alias active='grep -v -e "^$" -e"^ *#"'

  • показывает только те строки, которые не являются пустыми или закомментированными
  • пример: активный /etc/httpd/conf/httpd.conf

alias svi='sudo vim'

alias scr='screen -Rd'


Хороший, особенно sudo vim
астропаник

1

Я должен признать, у меня есть несколько, как это ..

alias sl=ls

Чтобы попытаться бороться с моими опечатками :-)

у меня тоже есть

alias aliases='xterm -e vim ~/.bash_aliases;reload'
alias reload='. ~/.bash_aliases'

Так что приятно и просто добавлять новые.



1
for host in `awk '{ print $1 }' ~/.hostsILogIntoAllTheTime`; do
  alias $host='ssx '$host
done 

Введите имя хоста для входа на хост. Примечание: ssx сам по себе псевдоним:

ssx='ssh -Y'

В сочетании с общими ключами, это довольно гладко.


1

Я нахожу раздражающим помещать все вещи apt-get и apt-cache в debian / * buntu, особенно с префиксом sudo, поэтому у меня есть:

alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'
alias apts='apt-cache search'

1

создать .tar.gz

alias tarc="tar czvf"

извлечь .tar.gz

alias tarx="tar xzvf"

list .tar.gz

alias tart="tar tzvf"


0

Я нашел эту страницу в поисках способа создания псевдонима для отображения n-го столбца файла csv (собственно tsv) с использованием awk. Вышеуказанная функция fawk была почти такой, как я хотел. Я немного изменил, чтобы добавить необязательный второй аргумент, имя файла, чтобы я мог использовать его как обычно awk, а не только через канал.

function fawk {
    first="awk '{print "
    last="}' $2"
    cmd="${first}\$${1}${last}"
    echo $cmd
    eval $cmd
}

Спасибо!


0

Это не псевдоним, но может оказаться полезным увидеть людей, которые используют псевдонимы ssh-соединений.

В пакете Openssh есть бинарный файл ssh-argv0, который работает по символическим ссылкам.

Итак, если вы делаете что-то вроде этого:

sudo ln -s /usr/bin/ssh-argv0 /usr/local/bin/user@ssh.server.com

Имея / usr / local / bin в $ PATH, теперь вы можете подключиться как пользователь "user" к ssh.server.com, написав это в приглашении оболочки:

 $ user@ssh.server.com 

0

+1 за ответ Дрю Стивенс. Единственное, что он не описал, я также использую для псевдонима различные точечные файлы, к которым мне нужно регулярно обращаться, например:

alias dotz='vi ~/.zshrc'

Сделайте шаг вперед с помощью функции добавления псевдонимов на лету:

function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.