Назад | Перейти на главную страницу

Интерактивные подсказки оболочки?

Какие из ваших любимых советов по ракушке? Что делает вашу повседневную работу с командной строкой намного проще?

Мой, для bash:

Добавьте это в файл .inputrc в своем домашнем каталоге:

"\e[A": history-search-backward
"\e[B": history-search-forward

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

Если вы являетесь пользователем vi, попробуйте режим vi для bash:

set -o vi

Нажмите ESC, чтобы войти в командный режим. Оттуда вы можете перемещаться по командной строке, используя знакомые команды vi (hjkl, w, ^, $, i, A, c, d и т. Д.). Вы можете искать свою историю команд, используя /. Вы даже можете нажать v, чтобы запустить vi и отредактировать текущую команду.

Видеть эта шпаргалка для списка поддерживаемых команд vi.

Вот те, которые я использую чаще всего в повседневной жизни в bash

Сочетания клавиш, которые я использую чаще всего - вкладка, конечно, для завершения табуляции (настройка завершения bash, чтобы сделать это еще лучше) - вверх и вниз для навигации по истории - ctrl-a и ctrl-e для начала и конца строки - ctrl-r для поиска в истории (просто начните вводить начало команды) - ctrl-g, чтобы отменить поиск - alt-f переместить курсор вперед на слово - alt-b переместить курсор на слово назад - затем esc. чтобы добавить последний аргумент последней команды в текущую команду (повторное выполнение переходит к последнему аргументу команды перед этим) - alt-d удалить слово перед текущей позицией курсора - ctrl-w удалить слово за текущей позицией курсора - ctrl-u для удаления всего от текущей позиции курсора до начала строки - ctrl-k для удаления всего от текущей позиции до конца строки

Кроме того, убедитесь, что у вас есть настройка цвета ls, я добавить ветку git в мою подсказку

У меня также всегда есть функция перезагрузки в моем файле .bash_aliases (который, очевидно, взят из моего файла .bashrc или .bash_profile)

reload()
{
    if [ -f ~/.bashrc ]; then
        source ~/.bashrc
    else
        source ~/.bash_profile;
    fi
}

Не совет, а скорее мета-подсказка. Есть много интересных рецептов на сайте http://www.commandlinefu.com/

Я имею дело с множеством разных машин, поэтому один из моих любимых - это псевдонимы для каждой машины, которые мне нужно часто использовать 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"

История может быть очень полезной, но по умолчанию в большинстве дистрибутивов ваша история сдувается при каждом выходе из оболочки, и с самого начала она не содержит много информации. Мне нравится иметь 10000 строк истории:

export HISTFILESIZE=20000
export HISTSIZE=10000
shopt -s histappend
# Combine multiline commands into one in historty
shopt -s cmdhist
# Ignore duplicates, ls without options and builtin commands
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:[bf]g:exit"

Таким образом, если я знаю, что делал что-то раньше, но не могу вспомнить подробности, history | grep foo поможет пробудить мою память.

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

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

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

Вероятно, одна из самых простых и полезных вещей - это просто изучить сокращения для чтения. Итак, ^ h для возврата, ^ u, чтобы удалить строку до курсора, ^ k, чтобы удалить строку после курсора. Полный список горячих клавиш здесь [здесь] [1]http://www.bigsmoke.us/readline/shortcuts.

Кроме того, в debian / ubuntu (по крайней мере, у вас нет других Linux для тестирования, добавление этого в ваш .bashrc включит интеллектуальное завершение в bash, как в zsh, так что аргументы для общих команд (например, найти и т. д.) будет завершаться вкладкой

if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi