я нашел этот статья, в которой обсуждается быстрый способ сортировки истории bash и выяснения, какие команды вы используете чаще всего:
cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30
Это действительно открывает вам глаза на то, для каких задач вы должны создавать псевдонимы, а какие - полностью отказаться от cronjob.
Мне бы хотелось увидеть список рекомендованных псевдонимов командной строки ServerFault, которые сэкономят ваше время на работе.. Что у тебя?
Готов поспорить, мы сможем сэкономить каждому пользователю, читающему этот пост, хотя бы 10 минут в день. (Минус первый день, когда они тратят все свое время на чтение ServerFault вместо того, чтобы выполнять свою работу, конечно!)
Я имею дело с множеством разных машин, поэтому один из моих любимых - это псевдонимы для каждой машины, которые мне нужно часто использовать 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
}
Обычно я люблю все печатать, потому что боюсь, что сразу забуду все о командах, которые использую. Я знаю, что могу ошибаться, но я не думаю, что знал бы столько о системе, если бы просто вставил каждую команду в Commandlinefu в мой .bashrc.
Обратите внимание, я не говорю, что я величайший и знаю все, что нужно знать о Linux, отнюдь не это, я просто говорю, что мне нравится учиться и помнить то, что я узнал, используя.
Это не значит, что я не понимаю, насколько экономят время псевдонимы (особенно для более крупных функций, но тогда вы должны увидеть, не лучше ли сценарий), но лично я не люблю их использовать (по крайней мере, не всегда).
При этом Commandlinefu имеет специальный тег для псевдонимов. Стоит посмотреть.
Также я думаю, что это хороший вариант:
alias less='less -FSRX'
Это будет использовать меньше, только если вывод больше экрана.
Мой любимый на все времена:
alias server_name='ssh -v -l username ip_address'
Это не требует объяснений, не так ли? :-)
alias lt='ls -lhart'
alias active='grep -v -e "^$" -e"^ *#"'
alias svi='sudo vim'
alias scr='screen -Rd'
Должен признать, у меня есть несколько таких ...
alias sl=ls
Чтобы бороться с моими опечатками :-)
у меня тоже есть
alias aliases='xterm -e vim ~/.bash_aliases;reload'
alias reload='. ~/.bash_aliases'
Так что добавлять новые просто и приятно.
alias cd..='cd ..'
for host in `awk '{ print $1 }' ~/.hostsILogIntoAllTheTime`; do
alias $host='ssx '$host
done
Введите имя хоста для входа на хост. Примечание: ssx сам по себе псевдоним:
ssx='ssh -Y'
В сочетании с общими ключами это довольно удобно.
Мне неприятно помещать все элементы apt-get и apt-cache в debian / * buntu, особенно с префиксом sudo, поэтому у меня есть:
alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'
alias apts='apt-cache search'
создать .tar.gz
alias tarc="tar czvf"
извлечь .tar.gz
alias tarx="tar xzvf"
list .tar.gz
alias tart="tar tzvf"
Также см
Я нашел эту страницу в поисках способа создать псевдоним, чтобы показать мне n-й столбец файла csv (на самом деле tsv) с помощью awk. Вышеупомянутая функция fawk была почти в точности тем, что я хотел. Я немного изменил, чтобы добавить необязательный второй аргумент, имя файла, поэтому я могу использовать его как awk обычно, а не только через канал.
function fawk {
first="awk '{print "
last="}' $2"
cmd="${first}\$${1}${last}"
echo $cmd
eval $cmd
}
Спасибо!
Это не псевдоним, но может быть полезно увидеть людей, которые используют псевдонимы 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
+1 за ответ Дрю Стивенса. Единственное, что он не упомянул, что я также использую, - это псевдонимы различных точечных файлов, которые мне нужны на регулярной основе, например:
alias dotz='vi ~/.zshrc'
Сделайте еще один шаг вперед с помощью функции добавления псевдонима на лету:
function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}