Какие из ваших любимых советов по ракушке? Что делает вашу повседневную работу с командной строкой намного проще?
Мой, для 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