Корисні псевдоніми bash та створення списку найбільш використовуваних команд


10

Я знайшов цю статтю, де обговорюється швидкий спосіб сортувати історію башів і побачити, які команди ви використовуєте найбільше:

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

Це дійсно відкриває вам очі на те, для яких завдань вам слід створити псевдоніми та які з них ви повинні повністю зайняти.

Я хотів би побачити список рекомендованих псевдонімів командного рядка ServerFault, що заощадить ваш час на роботі . Що ти отримав?

Між нами, я думаю, що ми можемо врятувати кожного користувача, який читає цю публікацію принаймні 10 хвилин на день. (Мінус першого дня, коли вони витрачають весь свій час на читання ServerFault, а не робити свою роботу, звичайно!)


Для запису, на Super User є superuser.com/questions/7083/useful-command-line-aliases із завантаженням корисних псевдонімів Bash
Jonik

Відповіді:


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
сервера_іменного

За допомогою bash_completion та tab, схоже, вкладка працює для мене добре, замість того, щоб створити купу псевдонімів ssh
Clayton Stanley

2

alias lt='ls -lhart'

  • l = довгий: h = читабельні для людини розміри: a = всі: r = зворотний сорт: t = сортування за часом
  • Вставляє найновіший файл внизу, праворуч над підказкою

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

  • показує лише рядки, які не є порожніми або коментованими
  • приклад: active /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'



0

Я знайшов цю сторінку, шукаючи спосіб створити псевдонім, щоб показати мені n-й стовпчик файлу csv (фактично tsv) за допомогою awk. Фаук-функція вище була майже точно тим, що я хотів. Я трохи змінив, щоб додати необов'язковий другий аргумент, ім'я файлу, так що я можу використовувати його як 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.