Bash-Befehle, die nicht auf eine Seite passen – Ausgabe scrollbar machen

Bash-Befehle, die nicht auf eine Seite passen – Ausgabe scrollbar machen

Wahrscheinlich wurde diese Frage schon irgendwo beantwortet, aber es ist schwierig, den Suchbegriff zu formulieren.

Ich verwende ein Bash-Terminalfenster und einige Befehle sind zu groß, um auf die Seite zu passen (z. B. ps -A)

Ich erinnere mich vage an einen Befehlszeilenparameter/eine Befehlszeilenmethode, die die Befehlsausgabe seitenweise anzeigt, sodass ich durch die Ausgabe scrollen kann, aber ich kann mich nicht erinnern, was es ist … irgendwelche Hinweise?

Antwort1

Für Befehle, die ich häufig verwende, richte ich in der Regel functionein.bashrcum sie zu paginieren, wenn sie länger als ein Bildschirm sind.

Wie in Ihrem Beispiel: (ps -A)

function ps { command ps "$@" |& less -F; }

Dies wird psdurch eine Funktion namens ersetzt, die den ursprünglichen Befehl mit den in der Befehlszeile angegebenen Argumenten psaufruft und dann die Ausgabe (stdoutpsUndstderr, unter Verwendung der |&Pipe) in less -F, das anhält, wenn mehr als ein Bildschirm voll ist, aber sofort beendet wird, wenn weniger als ein Bildschirm voll ist.

SEHR praktisch, stört bei nichts, womit ich bisher gearbeitet habe, und ist einfach cool!

Sie können den Befehlen/Funktionen sogar häufig verwendete Optionen hinzufügen:

function nm { command nm --demangle "$@" |& less -F; }

Dies führt nmimmer dazu, dass C++-Symbole entwirrt werden. UNDpaginiert die Ausgabe. Juhu!

Ich renneDebian, daher verwende ich den apt-cacheBefehl ziemlich oft,suchenUndzeigenmeistens. Diese Funktion bewirkt, dass diese bestimmten Optionen paginiert werden,suchenDie Ausgabe wird sortiert und alles paginiert:

function apt-cache { case  "$1" in "search") command apt-cache "$@" | sort | less -F;; *) command apt-cache "$@" | less -F;; esac; }

Wenn der Befehl „Suchen“ lautet, sortieren Sie die Ausgabe und paginieren Sie sie dann mit . less -FWenn der Befehl jedoch etwas anderes ist, paginieren Sie einfach, ohne zu sortieren.

Gelegentlich vergesse ich, dass ich die Funktionen habe, und mache dann so etwas wie:

apt-cache search gcc | less

Die Funktion stört nicht, alles funktioniert wie erwartet, es gibt so oder so keine Schäden.

Noch eine kleine Änderung: Ich verwende auf allen meinen Systemen dasselbe .bashrc, sodass ein Dienstprogramm manchmal nicht installiert ist und die Funktion nicht benötigt wird. Ich mache sie folgendermaßen bedingt:

which apt-cache &>/dev/null && function apt-cache { case  "$1" in "search") command apt-cache "$@" |& sort | less -F;; *) command apt-cache "$@" |& less -F;; esac; }

Dabei wird der whichBefehl nur verwendet, um zu ermitteln, ob ein Programm verfügbar ist. Wenn nicht, schlägt es stillschweigend fehl und die Installation der Funktion wird übersprungen. Tada!

Antwort2

Die normale Methode besteht darin, die Ausgabe an „less“ weiterzuleiten.

ls -R / | less

qist der Schlüssel zum Beenden, genau wie eine Manpage.

Wenn der Befehl Fehler oder andere Ausgaben an stderr erzeugen könnte, möchten Sie diese möglicherweise ebenfalls an die Pipe weiterleiten.

ls -R 2>&1 | less

Jede Maschine, die Bash hat, sollte auch Less haben. Auf alten Linux-Maschinen war das Programmmehr, aber das erledigt immer nur eine Seite auf einmal,wenigerermöglicht Ihnen, nach Belieben zu scrollen.

Antwort3

Leiten Sie die Ausgabe an „more“ weiter.

output | more -d


Enter - > Scroll by line
Space - > Scroll by Page
q     - > Quit

Getestet auf einem RPM-basierten Betriebssystem.

verwandte Informationen