PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Ubuntu] Frage zu Shellkommando: help


Gast
2011-01-25, 13:24:42
Hallo!

Ich habe eine Frage zu dem Befehl 'help' in einem normalen Terminalfenster von Ubuntu. Normalerweise müßten über diesen Befehl doch alle verfügbaren Shell-Befehle kurz aufgelistet werden? Bei mir wird jedoch nur eine sehr verkürzte Auswahl angezeigt. Befehle wie 'mkdir' oder 'mv' werden nicht gelistet. Selbst wenn man explizit 'help mkdir' eingibt kommt keine Syntax, sondern nur dieser Hinweis:

bash: help: no help topics match `mkdir'. Try `help help' or `man -k mkdir' or `info mkdir'.


Über den Befehl 'info mkdir' bekomme ich zwar die Syntax, aber nur in Form einer kilometerlangen Textdatei, die sich auch nur mit Ctrl-C wieder 'abschießen' läßt. Das ist imho völlig ungeeignet, wenn man nur kurz die Syntax eines Befehls nochmal gegenprüfen will.

Muß ich unter Ubuntu irgendein zusätzliches Paket installieren damit ich über 'help' alle Shellbefehle gelistet bekomme? Ist irgendetwas bei mir falsch konfiguriert?


Schonmal Danke fürs lesen!

derpinguin
2011-01-25, 13:33:33
man mkdir ist dein Freund

Gast
2011-01-25, 14:35:25
man mkdir ist dein Freund
Danke für den Tip - das ist schonmal deutlich besser als 'info mkdir'.

Was mir aber immernoch fehlt ist eine kurze Übersicht aller möglichen Shellkommandos. Manchmal ist man sich ja nicht mehr sicher wie der Befehl korrekt abgekürzt lautet, oder ob er überhaupt auf diesem System zur Verfügung steht.

Ich dachte, daß hierzu eigentlich das 'help'-Kommando da wäre...

Im Prinzip suche ich sowas:
http://www.wvss-wetzlar.de/openbooks/ubuntu/ubuntu24_001.htm

Nur möchte ich nicht jedesmal Firefox bemühen müssen. Und ich hätte auch gern, daß die Befehlsliste nur die tatsächlich verfügbaren Kommandos auf dem jeweiligen PC anzeigt.

mii
2011-01-25, 14:37:55
wenn du alle Befehle inkl. Beschreibung haben möchtest, probiers damit:


ls -1 /bin/ /usr/bin/ /usr/sbin/ /sbin/ > /tmp/t && while read i; do whatis $i; done < /tmp/t && rm /tmp/t

Gast
2011-01-25, 14:51:22
wenn du alle Befehle inkl. Beschreibung haben möchtest, probiers damit:


ls -1 /bin/ /usr/bin/ /usr/sbin/ /sbin/ > /tmp/t && while read i; do whatis $i; done < /tmp/t && rm /tmp/t


Wow! - Da sind tatsächlich endlich mal ALLE Befehle am Stück. Vielen Dank - das ist wirklich mal eine Übersicht. - Könnte man fast mal ausdrucken. Vor allem scheinen es auch wirklich nur die verfügbaren Befehle zu sein. Allerdings sind es doch recht viele (nicht nur Shellbefehle), so daß die Übersicht ein bischen verloren geht.

Könnte es vielleicht sein, daß Kommandos wie 'mv' und 'mkdir' nicht als Shellbefehle gelten? Ich frage mich immernoch, warum 'help' diese und andere nicht anzeigt. Der Output beginnt unter anderem mit der Einleitung:

These shell commands are defined internally.

Zählen Befehle wie 'mv' oder 'mkdir' möglicherweise nicht als interne shell-commands?

mii
2011-01-25, 15:07:27
ja ne shell selbst hat viele befehle auch direkt integriert.

Schau dir z.b. mal diese seite an.
http://linuxseiten.kg-it.de/index.php?index=bash_befehle


Die Linux/Unix-Shell ist allgemein sehr mächtig. :)

Gast
2011-01-25, 22:47:17
ls -1 /bin/ /usr/bin/ /usr/sbin/ /sbin/ > /tmp/t && while read i; do whatis $i; done < /tmp/t && rm /tmp/t

:ugly::lol:
Was umständlicheres ist dir wohl nicht eingefallen?

Die "schöne" Variante:
ls -1 /bin/ /usr/bin/ /usr/sbin/ /sbin/ | xargs -n 1 whatis

Gast
2011-01-25, 22:50:49
Zählen Befehle wie 'mv' oder 'mkdir' möglicherweise nicht als interne shell-commands?
Das sind keine externen shell-commandos, sondern einfach Programme die du aus der Shell aufrufst.
Wenn du "mv a b" eintippst ruft die shell das Programm /bin/mv auf und übergibt diesem die Parameter a und b. Dieses Programm (und nicht die Shell selber!) verschiebt dann a nach b.

Gast
2011-01-25, 22:52:10
Das sind keine externen shell-commandos,
das sollte natürlich "keine internen shell-commandos" heißen.

Gast
2011-01-28, 18:51:48
Falls dir Portabilität am Herzen liegt (also du damit rechnen musst, dass deine Skripte mal nicht nur auf GNU/Linux laufen), seien dir folgende Links ans Herz gelegt (jeweils das Kapitel Shell & Utilities):

http://pubs.opengroup.org/onlinepubs/009695399/ (älter, aber nicht veraltet)

http://pubs.opengroup.org/onlinepubs/9699919799/ (neuer)

Sofern du dich an dieses Set von Utilities hälst und deren Parameterbeschreibungen hälst, bist du relativ sicher, dass deine Skripte auch auf anderen unixoiden Systemen laufen (ok, Solaris backt sich die ein oder andere Extra-Wurst, aber das kriegt man dann auch in den Griff)

Gast
2011-01-28, 22:23:09
Wow! - Da sind tatsächlich endlich mal ALLE Befehle am Stück. Vielen Dank - das ist wirklich mal eine Übersicht. - Könnte man fast mal ausdrucken. Vor allem scheinen es auch wirklich nur die verfügbaren Befehle zu sein.
Das sind nicht ALLE Befehle am Stück, sondern alle Programme, die sich zu diesem Zeitpunkt auf deinem PC in den Ordnern /bin/, /usr/bin/, /sbin/ und /usr/sbin/ befinden. Diese sind bei dir dann natürlich auch alle verfügbar, sonst würden sie ja erst gar nicht aufgelistet werden.
Wenn du zB das Programm "mv" entfernst, dann taucht es auch nicht mehr in dieser Liste auf.

Lord_X
2011-01-29, 20:07:09
...Selbst wenn man explizit 'help mkdir' eingibt kommt keine Syntax, sondern nur dieser Hinweis:

bash: help: no help topics match `mkdir'. Try `help help' or `man -k mkdir' or `info mkdir'.


Über den Befehl 'info mkdir' bekomme ich zwar die Syntax, aber nur in Form einer kilometerlangen Textdatei,

versuchs mal umgekehrt: "mkdir --help"

user@pc:~$ mkdir --help
Aufruf: mkdir [OPTION]... VERZEICHNIS...
Erzeugen der/des Verzeichnisse(s), wenn sie noch nicht existieren.

Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
-m, --mode=MODUS Zugriffsrechte setzen (wie chmod), nicht a=rwx − umask
-p, --parents kein Fehler, wenn vorhanden; übergeordnete
Verzeichnisse erzeugen, wenn notwendig
-v, --verbose für jedes angelegte Verzeichnis eine Meldung ausgeben
-Z, --context=K SELinux-Sicherheitskontext jedes erzeugten Verzeichnisses
auf K setzen
--help diese Hilfe anzeigen und beenden
--version Versionsinformation anzeigen und beenden

Melden Sie Programmfehler für mkdir (auf Englisch, mit LC_ALL=C) an bug-coreutils@gnu.org
Homepage für GNU coreutils: <http://www.gnu.org/software/coreutils/>
Allgemeine Hilfe zur Benutzung von GNU-Software: <http://www.gnu.org/gethelp/>
Melden Sie Übersetzungsfehler für mkdir an <translation-team-de@lists.sourceforge.net>
For complete documentation, run: info coreutils 'mkdir invocation'