jaki jest najlepszy sposób na przechowywanie i wyświetlanie poleceń (szczególnie dla gita i dokera) (jak ściągawka)

2

Jestem teraz w punkcie, w którym często potrzebuję poleceń git lub docker
(lubić docker system prune -a lub docker stop $(docker ps -a -q).

Chcę wiedzieć, jak radzisz sobie z tymi częściowo długimi poleceniami? czy istnieje sposób, aby je przechowywać i wyświetlać git config --global --list (ale widzisz więcej niż aliasy)?
Czy plik „.zshrc” jest standardowym sposobem zapisywania poleceń / aliasów? i jak mogę je wymienić?

Praca z aliasami jest w porządku, ale nie chcę zapomnieć o oryginalnych poleceniach - dlatego chcę mieć listę przechowywanych poleceń.


AKTUALIZACJA:
Teraz mam odpowiedzialną nazwę: chcę mieć Ściągawka które mogę zadzwonić na moim terminalu, np. z $ git-cheat a następnie pojawi się lista moich przechowywanych poleceń git (jak aliasy w git).

Czy możesz podać kilka sugestii?

Wielkie dzięki.

m1well
źródło
Czy jest jakiś powód, dla którego pisanie ich jako skryptów powłoki nie zadziała?
Austin Hemmelgarn
nie ma powodów, aby coś nie działało;) po prostu proszę o sugestie. Jestem nowym użytkownikiem skryptów powłoki. możesz mi podać przykład?
m1well
Podstawowy skrypt podstawowy składa się z linii zaczynającej się od #!/bin/shi jeden wiersz zawierający żądane polecenie. Od tego momentu upewnij się, że bit wykonywalny jest ustawiony ( chmod +x na pliku) i powinieneś być dobry.
Austin Hemmelgarn
tak, wiem, że muszę uruchomić skrypt za pomocą „#! / bin / sh”. Jeśli możesz mi podać przykład mojego pytania?
m1well
Ach, przepraszam, źle zrozumiałem, dajcie mi kilka minut, a ja napiszę odpowiedź, która ma kilka przykładów, a także daje komendę do wypisania wszystkich poleceń.
Austin Hemmelgarn

Odpowiedzi:

0

Oto dość proste rozwiązanie wykorzystujące skrypty powłoki:

  1. Każde polecenie, które chcesz zapisać, jest umieszczane w 2-liniowym skrypcie powłoki w następujący sposób:
#!/bin/bash
docker system prune -a
  1. Wszystkie te skrypty są umieszczane w jednym katalogu, który następnie dodajesz do ścieżki, jeśli chcesz, aby były trywialnie dostępne.
  2. Zakładając, że wszyscy wejdą ~/cheat-sheet/, następujący skrypt powinien wypluć listę odwzorowującą nazwę pliku na komendę, którą uruchamia:
#!/bin/bash
commands=`ls ~/cheat-sheet/`
for item in commands ; do
    cmd=`tail -n 1 ~/cheat-sheet/${item}`
    echo "${item}:  ${cmd}"
done

Należy zauważyć, że wymaga to podania każdemu ze skryptów dość opisowych nazw, aby były użyteczne, ale prawdopodobnie jest to jedna z najszybszych możliwych opcji bez użycia dodatkowego oprogramowania.

Austin Hemmelgarn
źródło
dziękuję, to świetnie. ale myślę, że jest to nieco przełomowe
m1well
0

jeśli jesteś zainteresowany, zaimplementowałem rozwiązanie i wydałem je na github. (dalsze funkcje będą dostępne dzisiaj lub jutro)

https://github.com/m1well/cheatsheet/

Problem

Jestem teraz w punkcie, w którym często używam takich poleceń
$ docker system prune -a lub $ git reset --soft HEAD^
i nie chcę ich szukać w Google, jeśli potrzebuję ich ad hoc i nie zapamiętuję ich w tym momencie.

Aliasy są fajne, ale jeśli zacznę pracować tylko z aliasami i ktoś zapyta mnie „jak mogę zresetować moje zatwierdzenie?” - Oczywiście nie mogę mu powiedzieć mojego pseudonimu. ;)
Historia powłoki jest także fajna, ale trochę za długa (nawet jeśli grep).

Rozwiązanie

Narzędzie, w którym mogę przechowywać wszystkie używane polecenia powłoki, wyświetlać je, dodawać nowe polecenia i oczywiście usuwać polecenia.

Więc jeśli szukam np. po polecenie zatrzymania całego kontenera dokowania szukam w moich przechowywanych poleceniach:
$ sh script_cheatsheet.sh -l 'docker stop'
i otrzymuję odpowiedź na moje zapisane dane wyjściowe:
//-----------------------------//
//-------- cheatsheet --------//
list of greped commands:
docker stop $(docker ps -a -q)
//-----------------------------//

Stosowanie

Możesz po prostu uruchomić skrypt i ...

... dodaj polecenie do arkusza kalkulacyjnego:
$ sh script_cheatsheet.sh -a 'git commit --amend'
... pokaż wszystkie polecenia w swoim arkuszu kalkulacyjnym:
$ sh script_cheatsheet.sh -l all
... pokaż konkretne polecenie w swoim arkuszu kalkulacyjnym:
$ sh script_cheatsheet.sh -l 'commit'
... usuń polecenie z arkusza kalkulacyjnego:
$ sh script_cheatsheet.sh -r 'git commit --amend'
... usuń wszystkie polecenia z arkusza kalkulacyjnego:
$ sh script_cheatsheet.sh -r all

Ponadto możesz ...

... sprawdź użycie / pomoc:
$ sh script_cheatsheet.sh -h
... sprawdź wersję:
$ sh script_cheatsheet.sh -v

Wskazówka

Dla lepszego wykorzystania najlepiej byłoby utworzyć alias taki jak
alias cheat="sh [path-to-script]/script_cheatsheet.sh"
abyś mógł uruchomić to narzędzie w następujący sposób:
$ cheat -l all

m1well
źródło
Możesz też dodać trochę kontekstu z pewnym wyjaśnieniem.
Pimp Juice IT
ok zmieniłam to
m1well