logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
18. April 2024, 17:54:04
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Tutorials  |  Thema: navi - Ein interaktives Spickzettel-Tool für die Befehlszeile « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: navi - Ein interaktives Spickzettel-Tool für die Befehlszeile  (Gelesen 934 mal)
Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« am: 16. Oktober 2023, 10:19:05 »

Beschreibung:

navi ist ein interaktives Spickzettel-Tool für die Befehlszeile.

Mit ihm lassen sich Befehle zusammen mit Kommentaren in .cheat Dateien aufschreiben, um diese dann später mithilfe des fuzzy finders fzf übersichtlich in einem Menü zu suchen und auszuführen. Zudem kann navi auch externe Spickzettel Projekte wie tldr.sh oder auch cheat.sh abfragen

Das tolle ist dabei, dass nach der Auswahl eines Befehls dieser vorher noch abgeändert werden kann, bevor dieser ausgeführt wird. Dafür stehen verschiedene Möglichkeiten zur Verfügung,

in dem Befehl wurde eine Variable mit angegeben, z.B. ein austauschbarer Dateiname in Form von <Dateiname>. Dann wird diese Variable vorher von navi ausgefüllt, indem der Benutzer selbst was einträgt und/oder falls mit angeben wurde in der .cheat Datei dem Benutzer ein paar Vorgabewerte zur Auswahl gelassen werden.

Dies ermöglicht einen seine meist/selten benutzte Befehle in einen .cheat Datei aufzuschreiben, diese mit sinnvollen Vorgabewerte zu belegen und diese bei Bedarf dann mithilfe von navi auszuführen oder vorher noch abzuändern.

Projekt Statistiken:







Installation Anmerkungen:

Nach dem navi installiert wurde, sollte man navi sich als shell widget einrichten, damit ausgeführte Befehle mit in die Shell History mit aufgenommen werden, + der Befehl bevor er ausgeführt wird noch mal bearbeitet werden kann.

Der Standardpfad für .cheat Dateien befindet sich unter:

Code:

navi info cheats-path

Dort können so viele Unterordner und .cheat Dateien angelegt werden wie man möchte. Das Verzeichnis wird rekursiv von navi durchsucht. Es ist navi auch egal, ob ihr alle Befehle in nur eine große Datei schreibt, oder für jeden Befehl eine neue .cheat Datei anlegt. Wie ihr euch organisiert bleibt euch überlassen.

Sonstige Anmerkung:

Ich würde empfehlen, falls man navi ohne gespeicherten .cheat Dateien startet (üblicherweise beim ersten Mal), nicht das Standard Cheat Repo herunterzuladen und sich lieber selbst Spickzettel für Befehle zu schreiben. Zum einen hat man dann keine Sammlung überflüssiger Befehle in navi. Und zum anderen prägen sich diese so besser ein, wenn man diese selbst schreibt. Man kann ja auch mit --tldr und --cheatsh auch auf externe Spickzettel zurückgreifen, ohne diese gleich herunterzuladen.

Wie die Spickzettel Syntax aussieht, könnt ihr hier nachlesen. Zudem werde ich als Beispiel ein paar von Andreas seinen ffmpeg Befehlen, die er uns hier aus seinem Spickzettel gepostet hat, in eine .cheat Datei konvertieren. Damit man ein Beispiel hat.

Tipps und Tricks:

Befehlszeile als Suchebegriff verwenden

Wenn man in der Befehlszeile bereits etwas eingegeben wurde (z.b. den Befehlsname) und dann die Tastenkombination für navi gedrückt wird, (STRG+g) wird der Teil der Befehlszeile schon als Suchbegriff in navi verwendet. Somit hat man seine Befehlsliste in navi bereits nach diesem Befehl gefiltert. Voraussetzung ist, dass man als Schlagwort in seiner Cheat Datei den Befehlsnamen verwendet mit verwendet hat.

LG
Sebastian
« Letzte Änderung: 25. November 2023, 21:58:47 von Sebastian » Gespeichert

Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi Cheats
« Antwort #1 am: 17. Oktober 2023, 10:59:10 »

In dem Post werde ich mal ein paar navi Cheats Pflegen

suletuxe_password.cheat
Code:

% suletuxe, password
# Generiert ein Passwort
<<random-generator> tr -cd '<allow-character-string>' | head -c<number-of-characters>
$ random-generator: printf '%s\n' "/dev/urandom" "/dev/random"
$ allow-character-string: printf '%s\n' '[:graph:]' 'A-Za-z0-9@#$%&_+=!?'

suletuxe_paclog.cheat

Code:

% suletuxe, paclog, pacman
# Ruft das pacman.log von Tag X auf
paclog --after="$(date -I -d "<day>")" | \
paclog --before="$(date -I -d "<day>+1day")"
$ day: printf '%s\n' "today" "yesterday"

# Ruft das pacman.log ab Zeitpunkt X auf
paclog --after="$(date -Iminutes -d "<time-string>")"
$ time-string: printf '%s\n' "10 minutes ago" "yesterday" "-3 days"

# Ruft das paclog zwischen Zeitpunkt X-Y auf
paclog --after="$(date -Iminutes -d "<time-string-after>")" | \
paclog --before="$(date -Iminutes -d "<time-string-before>")"
$ time-string-after: printf '%s\n' "-1 week" "-1 day" "-10 minutes" "now"
$ time-string-before: printf '%s\n' "-1 week" "-1 day" "-10 minutes" "now"

suletuxe_systemctl.cheat

Bitte den Unterschied zwischen List loaded Unit und List Unit Files beachten. Zudem können nicht alle Vorschläge in sämtlichen konstilationen verwenden werden. Man muss schon wissen, wie man diese Befehle einsetzt. Sie dienen nur der Tipp Erleichterung

Code:

% suletuxe, systemd, systemctl, units
# List loaded Units
systemctl list-units --type <units-type> --state <units-state> --<scope>
$ units-type: printf '%s\n' service timer socket target automount mount device path scope slice swap
$ units-state: printf '%s\n' running inactive waiting failed error
$ scope: printf '%s\n' user system all

# List Unit Files
systemctl list-unit-files --type <units-type> --state <unit-file-state> --<scope>
$ units-type: printf '%s\n' service timer socket target automount mount device path scope slice swap
$ unit-file-state: printf '%s\n' enabled disabled masked
$ scope: printf '%s\n' user system all

suletuxe_checkrebuild.cheat

Ist ein sudo für checkrebuild wirklich nötig? Habe das jetzt so aus Andreas sein Post übernommen. Konnte das noch nie richtig testen da ich noch kein Paket hatte das über dieses Tool gefunden wurde.

Code:

% suletuxe, checkrebuild
# Listet Packete auf die Neu gebaut werden müssen
sudo checkrebuild

suletuxe_aurrebuild.cheat

Code:

% suletuxe, aurrebuild
# Baut die Ausnahme Liste für aurrebuild auf
aurrebuild --update-exceptions

# Baut Pakete die einen neu Bau benötigen und nicht auf der /etc/rebuildexclude Liste stehen neu
aurrebuild

suletuxe_pacman.cheat

Code:

% suletuxe, pacman, Datenbank
# Ändert den Paketinstallationsgrund
sudo pacman -D <Installationsgrund> <Paket>
$ Installationsgrund: printf "%s\n" "--asdeps" "--asexcplicit"
$ Paket: pacman -Qq --- \
    --multi \
    --expand \
    --preview 'pacman -Qi {1}' \
    --header Paket

# Überprüft, ob alle erforderlichen Dateien vorhanden sind und ob die installierten Pakete die erforderlichen Abhängigkeiten aufweisen.
pacman -Dk

% suletuxe, VORSICHT, pacman, Datenbank
# Führt ein Systemupdate durch und überspringt alle Überprüfungen für Abhähgigkeiten
sudo pacman -Syudd

suletuxe_paccheck.cheat

Code:

% suletuxe, paccheck, pakete
# Überprüft den Ihnalt eines oder mehere Pakete Anhand ihrer MD5 Summe.
; Wenn kein Paket angegeben wird, werden alle Überprüft.
sudo paccheck --quiet --md5sum <Pakete>
$ Pakete: pacman -Qq --- \
    --multi \
    --expand \
    --preview 'pacman -Qi {1}' \
    --header Paket

ytfzf.cheat

Code:

% ytfzf, youtube, invidious
# Zeigt Videos aus der Subcription Liste
ytfzf -c S

# Filtert nach Typ
ytfzf --type=<type> "<Suchbegriff>"
$ type: printf "%s\n" video playlist channel all

# Gibt Informationen zu einem Video aus
ytfzf -I <info> "<Suchbegriff>"
$ info: printf "%s\n" link video-json json format raw

# Filtert Videos nach einer Zeitspanne
ytfzf --upload-date=<time> "<Suchbegriff>"
$ time: printf "%s\n" hour today week month year

# Zeige zu dem Videos Tumbnails/Vorschaubilder an
; Erfodert ein Terminal wie Kitty das Grafiken unterstütz und ueberzug
ytfzf -t "<Suchbegriff>"

# Spielt nur Ton ab
ytfzf -m "<Suchbegriff>"

# Lädt das Ausgewählte Video herunter
ytfzf -d "<Suchbegriff>"

# Filtert Videos Grob nach Länge
ytfzf --video-duration=<laenge> "<Suchbegriff>"
$ laenge: printf "%s\n" short long

# Sortiert die Video Liste
; Manche Sortierungen gelten nur für Youtube bzw. Odysee siehe dazu man ytfzf(5)
ytfzf --sort-by=<sort> "<Suchbegriff>"
$ sort: printf "%s\n" relevance rating upload_date oldest_first view_count
 suletuxe.cheat.png
« Letzte Änderung: 04. November 2023, 06:47:47 von Sebastian »
Gespeichert


Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi - suletuxe_pacman.cheat
« Antwort #2 am: 29. Oktober 2023, 08:53:47 »

Hallo Suletuxe,

Ich habe die Liste der Navi Cheats mit den pacman Befehlen aus unserem letzten Treffen erweitert.
Denn Installationsgrund Änderungs Cheat habe ich zudem noch erweitert, sodass ihr jetzt auch mit der Tab Taste mehrere Pakete aus der Liste auswählen könnt, um den Installationsgrund gleich für mehrere Pakete auf einmal zu ändern.

Happy Cheating 

suletuxe_pacman.cheat

Code:

% suletuxe, pacman, Datenbank
# Ändert den Paketinstallationsgrund
sudo pacman -D <Installationsgrund> <Paket>
$ Installationsgrund: printf "%s\n" "--asdeps" "--asexcplicit"
$ Paket: pacman -Qq --- \
    --multi \
    --expand \
    --preview 'pacman -Qi {1}' \
    --header Paket

# Überprüft, ob alle erforderlichen Dateien vorhanden sind und ob die installierten Pakete die erforderlichen Abhängigkeiten aufweisen.
pacman -Dk

% suletuxe, VORSICHT, pacman, Datenbank
# Führt ein Systemupdate durch und überspringt alle Überprüfungen für Abhähgigkeiten
sudo pacman -Syudd

Edit:

Einen weiteren Befehl hinzugefügt und mit dem Schlagwort VORSICHT markiert. Da es sich um einen Befehl handelt, womit man sein System zerschießen kann.
« Letzte Änderung: 31. Oktober 2023, 20:44:35 von Sebastian » Gespeichert

Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi - suletuxe_paccheck.cheat
« Antwort #3 am: 30. Oktober 2023, 19:53:44 »

Die Liste der Navi Cheats um diesen erweitert:

suletuxe_paccheck.cheat

Code:

% suletuxe, paccheck, pakete
# Überprüft den Ihnalt eines oder mehere Pakete Anhand ihrer MD5 Summe.
; Wenn kein Paket angegeben wird, werden alle Überprüft.
sudo paccheck --quiet --md5sum <Pakete>
$ Pakete: pacman -Qq --- \
    --multi \
    --expand \
    --preview 'pacman -Qi {1}' \
    --header Paket

Nach Andreas seinen Beitrag von hier
« Letzte Änderung: 31. Oktober 2023, 20:35:30 von Sebastian » Gespeichert

Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi - Optimierung - pacman, paccheck Cheat
« Antwort #4 am: 31. Oktober 2023, 20:43:26 »

Habe die Cheats:


suletuxe_pacman.cheat
suletuxe_paccheck.cheat


Noch mal optimiert so das diese bei der Auswahl der Pakete in navi eine Paketvorschau zeigen.
 suletuxe_pacman.cheat2.png
Gespeichert


Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi - ytfzf.cheat
« Antwort #5 am: 04. November 2023, 06:51:07 »

Die Liste um ytfzf.cheat erweitert.

Code:

% ytfzf, youtube, invidious
# Zeigt Videos aus der Subcription Liste
ytfzf -c S

# Filtert nach Typ
ytfzf --type=<type> "<Suchbegriff>"
$ type: printf "%s\n" video playlist channel all

# Gibt Informationen zu einem Video aus
ytfzf -I <info> "<Suchbegriff>"
$ info: printf "%s\n" link video-json json format raw

# Filtert Videos nach einer Zeitspanne
ytfzf --upload-date=<time> "<Suchbegriff>"
$ time: printf "%s\n" hour today week month year

# Zeige zu dem Videos Tumbnails/Vorschaubilder an
; Erfodert ein Terminal wie Kitty das Grafiken unterstütz und ueberzug
ytfzf -t "<Suchbegriff>"

# Spielt nur Ton ab
ytfzf -m "<Suchbegriff>"

# Lädt das Ausgewählte Video herunter
ytfzf -d "<Suchbegriff>"

# Filtert Videos Grob nach Länge
ytfzf --video-duration=<laenge> "<Suchbegriff>"
$ laenge: printf "%s\n" short long

# Sortiert die Video Liste
; Manche Sortierungen gelten nur für Youtube bzw. Odysee siehe dazu man ytfzf(5)
ytfzf --sort-by=<sort> "<Suchbegriff>"
$ sort: printf "%s\n" relevance rating upload_date oldest_first view_count
Gespeichert

Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
navi - Tipps und Tricks
« Antwort #6 am: 09. November 2023, 18:44:19 »

Anfangspost um diese Sektion erweitert:

Tipps und Tricks:

Befehlszeile als Suchebegriff verwenden

Wenn man in der Befehlszeile bereits etwas eingegeben wurde (z.b. den Befehlsname) und dann die Tastenkombination für navi gedrückt wird, (STRG+g) wird der Teil der Befehlszeile als Suchbegriff in navi verwendet. Somit hat man seine Befehlsliste in navi bereits nach diesem Befehl gefiltert. Voraussetzung ist, dass man als Schlagwort in seiner Cheat Datei den Befehlsnamen verwendet mit verwendet hat.
« Letzte Änderung: 09. November 2023, 18:56:52 von Sebastian » Gespeichert

Dietrich
Full Member
***

Offline

Einträge: 120



Immer schön neugierig bleiben

Profil anzeigen
Re:navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« Antwort #7 am: 13. Dezember 2023, 19:40:03 »

Hallo Sebastian,
ich wollte nachvollziehen wo die .cheats liegen

Pfad gesucht:[dietrich@dietrich-medion ~]$ navi info cheats-path
/home/dietrich/.local/share/navi/cheats

Pfad gefunden, MC geöffnet um zu sehen was da liegt, nichts gefunden

Im angegebene Pfad gibt es keinen Unterordner navi


 NAVI_MC-2023-12-13_.png
« Letzte Änderung: 13. Dezember 2023, 19:41:15 von Dietrich »
Gespeichert

Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
Re:navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« Antwort #8 am: 13. Dezember 2023, 20:45:58 »

Hallo Dietrich,

Soweit alles richtig und zu erwarten. Denn Pfad der dir navi mitgeteilt hat, also:

Zitat:
/home/dietrich/.local/share/navi/cheats

Ist der Ort wo, navi nach .cheat Dateien sucht. Am anfang hast du ja noch keine, also musst du dort deine ersten .cheat Dateien ablegen. Um diese dort ablegen zu können musst du also noch zwei Ordner von Hand anlegen unter /home/dietrich/.local/share/ und zwar die navi/cheats sodass der Pfad halt stimmt wo navi danach sucht.


PS:

Falls nicht schon geschen, denke dran navi auch als Shell Widget einzurichten, damit du navi über STRG+G öffnen kannst. Nur so kannst du dann auch nachträglich die Befhele die dir navi einfügt auch noch nachträglich abändern, bevor sie ausgeführt werden.

Wie das gemacht wird habe ich in Fett Schrift verlinkt. Falls du dir unsicher sein solltest, beschreib einfach vorher hier im Forum was du versuchen würdest. Dann schau ich da noch mal rüber.

LG
Sebastian
Gespeichert

Dietrich
Full Member
***

Offline

Einträge: 120



Immer schön neugierig bleiben

Profil anzeigen
Re:navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« Antwort #9 am: 13. Dezember 2023, 20:58:40 »

Ok zu eins erledigt,
zu zwei
da ich mit bash arbeite, nur die erste Zeile eintragen richtig ?

Wenn ja , schon erledigt
Gespeichert
Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
Re:navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« Antwort #10 am: 13. Dezember 2023, 21:29:18 »

Richtig und zwar diese hier

Code:

# bash
eval "$(navi widget bash)"


Wenn du STRG+G im Terminal drückst sollte Navi dann starten. Terminal muss aber einmal neugestartet werden damit der Eintrag auch geladen wird.
Gespeichert

Dietrich
Full Member
***

Offline

Einträge: 120



Immer schön neugierig bleiben

Profil anzeigen
Re:navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« Antwort #11 am: 15. Dezember 2023, 17:05:17 »

So meine Lieben,
Navi ist jetzt lauffähig, musste mich erstmal mit der Syntax für die Cheats auseinandersetzen, aber dank der Beispiele von Sebastian nicht so schwer.
Jetzt werde ich meine eigene Cheat Liste erstellen und dann kann damit gearbeitet werden.

Es vereinfacht doch die Arbeit, muss mein Arbeitsblatt nicht mehr ansehen Kopieren und einfügen.
Jetzt nur noch den im Kopf verbliebenen Rest des Befehls in der Konsole eingeben Strg g drücken und die passenden Vorschläge erscheinen.

Wissen geteilt und um mindesten N+1 mehr geworden 

LG
Dietrich
Gespeichert
Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
Re:navi - Ein interaktives Spickzettel-Tool für die Befehlszeile
« Antwort #12 am: 15. Dezember 2023, 21:41:13 »

Das ist doch super, damit macht das Terminal auch gleich noch mal mehr Spaß, wenn man seine Befehle immer so einfach zur Hand hat.

Die Syntax ist auch eigentlich ziemlich einfach. Ich habe euch diese ja bei einem Treffen schon mal vorgestellt. Im grunde gibt es da nicht viel zu beachten.

Eine Zeile, die mit einem % anfängt, dahinter kann man Tags (Schlagwörter) schreiben, die für den nächsten bzw. nächsten Befehle passend sind.
Eine Zeile die mit # beginnt, dort hinterlegt man eine Beschreibung zum Befehl.
Eine Zeile, ohne jegliche Sonderzeichen am Anfang, ist dann der eigentliche Befehl.
In < > kann man eine Variable (Platzhalter) Namen in seinem Befehl einfügen.
Und die Zeile, die mit einem $ und einem Variable-Namen beginnt, dort kann man ein Befehl hereinschreiben, der den Inhalt der Variable füllen soll.

PS:

Vergisst nicht eure Cheats hier zu teilen, wenn ihr der Meinung seid, dass für andere diese ebenfalls interessant sein können. Vielleicht fällt dem ein oder anderen auch noch ein Befehl bzw. Cheats zu verfeinern bzw. zu optimieren.
Gespeichert

Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Tutorials  |  Thema: navi - Ein interaktives Spickzettel-Tool für die Befehlszeile « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!