Как быстро сохранить и часто получать доступ к используемым командам?

Если у Вас есть статистика однорангового узла, включенная в Вашем /etc/ntp.conf затем у Вас есть статистика в /var/log/ntpstats/peerstats. (Имя каталога и имя файла будут указаны в ntp.conf). Можно просканировать его, чтобы видеть, как хорошо Вы отслеживаете свои серверы. Команда grep -v 127.127.1.0 /var/log/ntpstats/peerstats произведет все строки кроме тех, которые для Ваших локальных часов. Первое число с плавающей точкой является смещением в секундах. Чем ближе это должно обнулить, тем лучше. Должно быть соединение положительных и отрицательных величин. Используйте zgrep для взгляда исторических данных в повернутых журналах с a .gz расширение.

Видеть то, что значения являются использованием ntpq -p как предложенный Iain.

При выполнении Munin для контроля системы, это может отследить Вас ntp statistcs для Вас. Я верю смещению, которое это записывает, значение относительно в настоящее время источник синхронизации. Это - то на строке, запускающейся со звездочки (*) в ntpq -p вывод. Munin может быть настроен, чтобы уведомить, что Ваше смещение является слишком большим. Мое предупреждение строк следующим образом (времена в миллисекундах):

    ntp_offset.delay.warning    40
    ntp_offset.offset.warning   -15:15
37
22.11.2015, 15:56
13 ответов

Я нахожу очень полезными следующие команды readline

history-search-backward,
history-search-forward

(знайте, что они отличаются от обычного reverse-search-history, forward-search-history, связанный с Ctrl-R, Ctrl-S).

Мне связали эти команды к Ctrl-Up и Ctrl-Down, поместив следующие строки в ~/.inputrc:

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

Как они работают: запишите немного символов начала команды, нажмите Ctrl-Up, и следующую более старую команду, запускающуюся с того префикса, покажут, нажать снова для наблюдения следующего, и так далее. Когда Вы удовлетворены, после возможного изменения команды, нажимаете Enter для выполнения.

21
27.01.2020, 19:36
  • 1
    +1 для этого, я делаю то же, хотя у меня просто есть они связанный с Клавишами со стрелкой вверх и Клавишами со стрелкой вниз (никакой модификатор CTRL), который работает на меня. Если Вы хотите сделать аналогично строки, Вам нужно, "\e[B": history-search-forward и "\e[A": history-search-backward –  Simon Whitaker 08.12.2011, 05:21
  • 2
    Также рассмотрите рост HISTFILESIZE и/или HISTSIZE (zsh поддерживает только HISTSIZE, колотите поддерживает обоих) гарантировать, что Ваш буфер является достаточно большим. ТАК удар вопроса HISTSIZE по сравнению с HISTFILESIZE? может осветить далее. –  Adam Katz 15.01.2015, 19:47

Другая подсказка: Я иногда использую комментарии для отмечания/отмечания команды:

my_command #bookmark

затем:

[ctrl-r]#bookmark
57
27.01.2020, 19:36
  • 1
    любит его!мило. –  Greg 07.12.2011, 17:06
  • 2
    Bashtags! Genius. :-) –  Simon Whitaker 08.12.2011, 05:22
  • 3
    Очень хороший! Я собираюсь использовать это для своего mysql-cli также :) –  Konerak 08.12.2011, 16:33
  • 4
    Это превосходно! К сожалению, zshell не рассматривает # как запуск комментария на интерактивной сессии. Знать о подобном приеме для него? –  Nathan Long 24.12.2011, 04:53
  • 5
    @NathanLong: $_bookmark. Можно было утверждать, что это - ужасный взлом, использующий то, что несуществующие переменные ни до чего не расширяются, но это, конечно, работает с протестом, что пробелы не разрешены (использование _ вместо этого). YouTube-dl –  kampu 27.05.2013, 14:21

Хотя из очень ограниченного объема, я хотел бы указать на эти двух заполнителей расширения:

!! 

расширение заполнителя для последней команды. Полезный, если Вы забыли помещать sudo перед командой.

!$ 

повторяет последний параметр. Полезный, если Вы хотите повторить другую команду с a/very/long/path/name/you/do/not/want/to/type/again

7
27.01.2020, 19:36
  • 1
    Да, большая подсказка..., если бы только я не забыл использовать их :) –  Jeach 08.12.2011, 22:06

Используйте 'псевдоним'

alias большой инструмент для этого.

  • Можно легко объявить один на командной строке использоваться во время текущей сессии оболочки.
  • При использовании его в будущем можно добавить его к конфигурации оболочки.

При использовании псевдонима это точно, как будто Вы ввели его, таким образом, это довольно гибко. Например, можно использовать его с каналами:

alias findfoo="grep 'foo'"
echo 'foo1 \n foo2 \n bar1 \n bar2 \n foo3' | findfoo # Does your custom grep

Необходимо смочь сделать "небольшие изменения" путем передачи любых флагов, которые Вы уже не указали.

echo 'foo1 \n foo2 \n bar1 \n bar2 \n foo3' | findfoo -v # finds non-matches
7
27.01.2020, 19:36

Я поддерживаю копию .bash_history в Мерзавце. Для упрощения этого я установил

# don't put duplicate lines in the history
# don't save commands which start with a space
HISTCONTROL=ignoredups:erasedups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

в .bashrc и следующих командах (измененный для общего использования) в сценарии очистки

# Ensure a single space at the end of each line to easier add more parameters
sed -i -e 's/ *$/ /' "~/.bash_history"

sort --unique --output="~/.bash_history" "~/.bash_history"

который я выполняю прежде, чем включить строки git gui. Так как файл истории изменяется с каждой командой, я также заставил специальную команду обновлять тот определенный репозиторий:

git stash && git pull && git stash pop
4
27.01.2020, 19:36
  • 1
    +1, прежде всего, для упоминания HISTCONTROL=ignorespace, который важен для того, чтобы не загромождать историю, иногда. –  quodlibetor 09.04.2012, 22:38

Я создаю минимальные сценарии оболочки для своих частых команд и даю им краткие названия. Они все хранятся в том же месте, которое добавляется к PATH.

Тем путем у меня есть доступ ярлыка к очень сложным командам, и в отличие от этого с alias Я могу превратить изменяемые части своей задачи в параметры командной строки моего ярлыка.

5
27.01.2020, 19:36
  • 1
    Если Вы просто хотите передать аргументы, рассмотрите функции определения вместо этого. При необходимости в полных сценариях это - хорошее решение :) –  Konerak 07.12.2011, 17:56
  • 2
    @Konerak, я должен буду попробовать это. Я обычно просто делаю сценарий, но определяющие функции были бы намного более чистыми, я держал пари. –  ixtmixilix 13.12.2011, 13:49

Среди всех других ответов, здесь включающих историю.

Я установил

HISTFILESIZE=2024
HISTSIZE=1024

в ~/.bash_profile

В дополнение к другому ре комментариев: история

Другая полезная функция...

Начало истории вспоминает с

!first few letters<ESC>Ctrl-E

повторно вызовет последнюю команду, которая началась с первых нескольких букв

например:

!find<ESC>Ctrl-E

Вы не упоминали, используете ли Вы GUI или командную строку только. При использовании GUI можно использовать одного из персистентных менеджеров по буферу обмена к скопировать/вставить наиболее часто используемым командам, идентификаторам пользователей, паролям, URL, и т.д.

2
27.01.2020, 19:36
  • 1
    Ничего себе, !find<ESC>CTRL-E работы, но я сомневаюсь, что смогу помнить это завтра. Каков тот CTRL-E ESC? –  Konerak 08.12.2011, 18:26
  • 2
    просто привязка к расширенному ключевому –  bsd 08.12.2011, 23:41

Обучение использовать Ctrl-R и Ctrl-S позволяет легко искать команды, которые Вы ищете в истории, и Вы уже нашли, что переменная среды HISTCONTROL проигнорировала дубликаты и изменила сайт файла истории удара.

Я обычно делаю многих Ctrl-R, сопровождаемый Ctrl-E и изменяющий некоторые параметры, если я пропустил найденную команду путем удара Ctrl-R слишком много раз, Ctrl-S к спасению.

0
27.01.2020, 19:36
  • 1
    Часто tty является установкой таким способом, которым Ctrl-S является последовательностью "остановки", и не (непосредственно) доступный для вперед поиска. –  enzotib 07.12.2011, 16:31
  • 2
    В таких случаях вперед поиск может быть повторно отображен на чем-то другом, чем <kbd> Ctrl-S </kbd>. –  Evgeny 07.12.2011, 16:32

В дополнение к хорошим ответам выше, если Вы, оказывается, используете gui на основе kde или гнома, затем AutoKey может быть удивительно полезным.

https://code.google.com/p/autokey/

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

Это также поддерживает сценарии, записанные в Python, что можно суметь обойтись почти что-либо, если Вы знаете Python. Я еще не знаю Python, но я уже заставляю некоторые очень простые сценарии делать аккуратные вещи.

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

Это имеет большое управление опций, как и где эти вещи активируются, таким образом, у Вас могут быть немного, которые только работают в Вашей консоли и других, которые только работают в другом окне. Можно также установить фразы для выполнения, как только Вы вводите строку, которая инициировала их, или ожидайте, пока Вы не даете им OK.

0
27.01.2020, 19:36

Я всегда предпочитаю хранить в последний раз используемые команды и их вывод.

script filename
0
27.01.2020, 19:36

Как другие сказали, что псевдоним является Вашим другом. Для немного более сложных вещей (когда Вам нужны споры где-нибудь между инструкцией) я использую функции в своем .zshrc, как:

function ff() { find . -iname "*$**" }

это работает как, располагаются (я использую его, когда по некоторым причинам дб не доступен). Или

function chuck() { ps aux | grep $1 | tr -s '\t' ' ' | cut -f2 -d' ' | xargs kill $2 }

для замены killall.

0
27.01.2020, 19:36

Дополнительный к использованию Cntl-R для оглядываний назад в .bash_history, У меня также есть файл README в ~/develop каталог, куда я поместил долгие команды как для git / svn, таким образом, я могу возвратиться им позже, когда я должен. Точно так же я планирую иметь ~/install/README файл, чтобы поставить все общие имена пакета, которые я обычно устанавливаю после установки новой версии Linux/Ubuntu. Таким образом, идея состоит в том, чтобы иметь файл README в каждом каталоге, например, Видео, Аудио... и вставить их общие команды / подсказки, которые Вы, возможно, должны были бы знать в более позднее время.

0
27.01.2020, 19:36

Ищу то же самое. Я бываю на наших Linux-серверах только раз в пару недель и забываю некоторые команды.

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

Кажется, хорошо подходит для требований OP:

  • Легко добавить новую команду
  • Простота поиска и повторного -выполнения требуемой команды
  • Избегайте нежелательных команд в предложениях

Это решение решает даже третье требование. Не беспокойтесь о дубликатах в истории bash.

Разработчик добавил кучу ненужных мне команд по умолчанию. Я удалил их, удалив текстовые файлы в ~/.marker/tldr. Вы всегда можете восстановить их с GitHub , если передумаете.

Marker example

1
15.08.2020, 21:33

Теги

Похожие вопросы