я сейчас нахожусь в точке, где мне часто нужны команды git или docker
(например, docker system prune -a
или docker stop $(docker ps -a -q)
.
Я хочу знать, как вы справляетесь с этими частично длинными командами? Есть ли способ сохранить и перечислить их, например, git config --global --list
(но там вы видите больше псевдонимов)?
Является ли файл ".zshrc" стандартным способом сохранения команд / псевдонимов? и как я могу перечислить их?
Работать с псевдонимами - это хорошо, но я не хочу забывать оригинальные команды - вот почему я хочу список сохраненных команд.
ОБНОВИТЬ:
Теперь у меня есть ответственное имя для этого: я хочу иметь шпаргалку, которую я могу вызвать в моем терминале, например, с помощью $ git-cheat
и затем появится список моих сохраненных команд git (как псевдонимы в git).
Можете ли вы дать несколько предложений?
Большое спасибо.
2 ответа
Вот довольно простое решение с использованием сценариев оболочки:
- Каждая команда, которую вы хотите сохранить, помещается в двухстрочный сценарий оболочки так:
#!/bin/bash docker system prune -a
- Все эти сценарии помещаются в один каталог, который вы затем добавляете в свой путь, если хотите, чтобы они были легко доступны.
- Предполагая, что все они находятся в
~/cheat-sheet/
, следующий скрипт должен выдать список, сопоставляющий имя файла с командой, которую он выполняет:
#!/bin/bash commands=`ls ~/cheat-sheet/` for item in commands ; do cmd=`tail -n 1 ~/cheat-sheet/${item}` echo "${item}: ${cmd}" done
Обратите внимание, что для этого необходимо дать каждому из сценариев разумно описательные имена, которые будут полезны, но, вероятно, это один из самых быстрых вариантов без использования дополнительного программного обеспечения.
если вам интересно, я сейчас внедрил решение и выпустил его на github. (другие функции появятся сегодня или завтра)
https://github.com/m1well/cheatsheet/
проблема
Я сейчас нахожусь в точке, где я часто использую такие команды, как
$ docker system prune -a
или $ git reset --soft HEAD^
и я не хочу гуглить их, если они нужны мне ad hoc и не запоминают их в данный момент.
Псевдонимы это круто, но если я начинаю работать только с псевдонимами, и кто-то спрашивает меня: «Как я могу сбросить свой коммит?«- конечно, я не могу сказать ему мой псевдоним. ;)
История оболочки тоже классная, но немного длинная (даже если вы grep).
Решение
Инструмент, в котором я могу хранить все используемые команды оболочки, перечислять их, добавлять новые команды и, конечно же, удалять команды.
Поэтому, если я ищу, например, команду, чтобы остановить весь контейнер докеров, я ищу в моих сохраненных командах:
$ sh script_cheatsheet.sh -l 'docker stop'
и я получаю ответ на мой сохраненный вывод:
//-----------------------------//
//-------- cheatsheet --------//
list of greped commands:
docker stop $(docker ps -a -q)
//-----------------------------//
использование
Вы можете просто запустить скрипт и ...... добавьте команду к вашему списку:
$ sh script_cheatsheet.sh -a 'git commit --amend'
... показать все команды в вашей таблице:
$ sh script_cheatsheet.sh -l all
... показать конкретную команду в вашей таблице:
$ sh script_cheatsheet.sh -l 'commit'
... удалите команду из вашего шпаргалки:
$ sh script_cheatsheet.sh -r 'git commit --amend'
... удалите все команды из вашей таблицы:
$ sh script_cheatsheet.sh -r all
... проверить использование / помощь:
$ sh script_cheatsheet.sh -h
... проверить версию:
$ sh script_cheatsheet.sh -v
намек
Для лучшего использования было бы лучше всего создать псевдоним, такой как
alias cheat="sh [path-to-script]/script_cheatsheet.sh"
так что вы можете запустить инструмент следующим образом:
$ cheat -l all