May 2024 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Ja, ja, bevor wieder die Diskussion losgeht: Nach den deutschen Rechtschreibregeln sollte diese Seite korrekterweise LinuxTipps heißen, aber ich finde der Inhalt hat nun überhaupt nichts mit tippen zu tun – kopiert ja eh jedeR alles mit der Maus per Cut'n'Paste hier rein . Hm, eigentlich weiss ich ja noch gar nicht, was der Inhalt ist, es ist ja ein Wiki!
Und mit tippen für die Lotterie hat das auch nichts zu tun. Es geht ja um Linux. Windows ist vielleicht ein Lotteriespiel. Wer mal versucht hat, seine 90 Seiten Diplomarbeit mit 40 Graphiken in Word zu speichern, weiß wovon ich rede.
Wohl hat die Seite aber was mit dem Tip für den Ober, waitor bzw. garcon zu tun. Trinkgeld gibt's nämlich nur, wenn jemand sein Geld wert ist. (Bei weiblichen Bedienungen mögen da auch manchmal andere Beweggründe eine Rolle spielen … aber dann ist zumindest das Silikon sein Geld wert.)
Kurzum, diese Seite ist Value for your money.
Der zweite Einwand richtet sich gegen den ersten Teil des Titels: "Wieso Linux, das meiste hier gilt doch für jedes andere *NIX auch?"
Stimmt, aber das Wort Linux im Titel gibt ein besseres Ranking bei Google!
Schon mal keinen Bock gehabt, die handvoll Shell-Befehle, die man mal schnell in einer Datei mitprotokoliert hat, brav mit einem she-bang zu versehen und per chmod +x ausführbar zu machen? Schneller geht's mit sh -c "`cat datei`", es sei denn man muss mit den Dead-Keys bei den Backtics kämpfen.
Sehr lustig ist auch: bash -c "`tail ~/.bash_history | tac`". – RolF
Der Befehl mit der .bash_history macht nun wirklich was er will, da die Befehle der aktuellen Sitzung ja noch nicht in die history Datei geschrieben worden sind. Ein history 10 | tac in den Backtics scheitert leider an den Befehlsnummern, die history mit ausgibt. – RolF
Allzuviel Gutes läßt sich ja nicht über den MS Windows command Interpreter cmd.exe sagen, aber einen Vorteil hat er: Man bewegt sich durch die History der alten Befehle in einem echten Ring-Buffer. Das ist zwar ein bisschen gewöhnungsbedürftig, weil manche Befehle dann sozusagen in der Zukunft liegen und eben nicht mit der Cursor up sondern mit der Cursor down Taste erreicht werden. Hat aber grosse Vorteile, wenn ich eine komplette Sequenz von 3 oder 4 Befehlen noch mal wiederholen muss und die Erst-Ausführung 10 oder 15 Befehle zurück liegt. Ich klicke 10 mal Cursor up und bin dann beim ersten Befehl der Dreier-Sequenz angelangt, lasse ihn mit Enter rennen und tippe dann noch noch zweimal Cursor down jeweils von einem Enter gefolgt, das war's!
In der Bash starte ich mit der History immer beim aktuell ausgeführten Befehl. Das bedeutet für jeden Befehl in der Dreier-Sequenz 10 mal Cursor up und einmal Enter. Ganz schön nervig!
Im xterm macht man dann so kranke Sachen, wie sich mit "history 15" die letzten Befehle ausgeben zu lassen und sie dann mit der Maus per Cut'n'Paste am aktuellen Prompt einzuügen und auszuführen. Aber bei der Bash ist die History weitaus mehr als nur die Bedienung der Cursor Tasten: Es gibt die "!" und "$" Befehle, die solche netten Dingen bewerkstelligen können, wie alte Befehle modifiziert noch ein weiteres Mal auszuführen. Diese ganze Gruppe an Steuerungsbefehlen krankt aber daran, dass ich ein relativ genaues Wissen von dem Befehl haben muss, der sich irgendwo 20 Zeilen in der Vergangenheit befindet und den ich modifiziert ausführen will. Und genau daran hängt's. Natürlich weiss ich noch, dass es ein mount Befehl war, aber an die bescheuerte Option bzw. die Reihenfolge der Optionen kann ich mich nicht mehr erinnern.
Das einzige, was hier hilft, ist das inkrementelle Suchen mit Ctrl-r. In vielen Tutorials wird dieses Feature noch als Endbemerkung an einen Abschnitt über die oben erwähnten Wiederhol- und Ersetzungsbefehle angehängt. Meine Vermutung ist, dass das daran liegt, dass diese Ersetzungbefehle auch in anderen Shells verfügbar sind, das Ctrl-r aber Bash spezifisch. Die normale Reaktion ist dann: Wieso brauche ich inkrementelle Suche, das ist doch 'ne Shell und kein Editor?. Weit gefehlt! Ich kann nur allen raten, es einmal auszuprobieren. Die Lernkurve ist erstaunlich steil: Nach 2 oder 3 Versuchen tippt man schon fast automatisch die signifikanten Buchstaben des Befehls ein und nach dem 5. Mal fragt man sich, wie man bisher überhaupt ohne dieses Feature auch nur ansatzweise produktiv sein konnte.
Aber nicht nur in der Bash gibt es solche stiefmütterlich behandelte Funktionen, die gibt es auch in der oben zur Shell 2.Klasse degradierten cmd.exe. Dort führt nämlich die F8 Taste zu einer inkrementellen Suche in den voran gegangenen Befehlssequenzen. Allerdings sucht die Windows Shell nur nach den Anfangsbuchstaben des Kommandos. Wenn man einen mit && verketteten Befehl eingeben hat und sich nur an den zweiten Teil erinnern kann, hat man Pech, in dem Fall wird nämlich nichts gefunden. Wenn der angezeigte Befehl nicht der gewünschte ist, führt ein weiteres F8 zum nächsten Treffer, der noch ein bisschen weiter zurück liegt.
F7 listet die komplette Befehlshistorie in einem Popup-Fenster. Mit den Pfeil-Tasten lassen sich die einzelnen Befehle selektieren. Ein "Pfeil nach rechts" oder "Pfeil nach links" kopiert den Befehl in die aktuelle Kommandozeile, wo man ihn noch weiter anpassen oder korrigieren kann. Ein [Enter] im Popup-Fenster ist nur was für ganz Wagemutige, dabei wird nämlich der Befehl nicht nur kopiert sondern auch gleich ausgeführt.
– RolF
Neben dem gerade erwähnten Ctrl-r – was übrigens ein Bestandteil der readline library ist und damit nicht nur in der Bash sondern auch in allen anderen Programmen, die readline nutzen, verfügbar ist – ist less, vor allen Dingen in Verbindung mit lesspipe.sh, immer wieder für einige Aha-Effekte gut. Ein einfaches
eval $(lesspipe)
macht aus less einen Allround-Viewer. Er frisst dann Debian oder RedHat Archive, und zeigt auch genau das an, was man davon sehen will. Bei Image Dateien gibt er die Abmessungen und die Farbtiefe aus, bei zip- und tar-Archiven den Inhalt und zumindest bei mir (mit installiertem Ghostscript) zeigt less auch alllen nicht-graphischen Inhalt von pdf-Dokumenten an. Lediglich bei .dvi und bei .wav Dateien hat er mich ein bisschen enttäuscht. Laut der oben schon referenzierten Homepage von lesspipe soll less mit einer kleinen Erweiterung auch fähig sein, Source Code Dateien mit Syntax-Einfärbung anzuzeigen, falls das vom jeweiligen Terminal unterstützt wird.
Im Zweifelsfalle ist einfach mal ausprobieren fast immer das Richtige.
– RolF
So, jetzt weiss ich auch mal was.
Wer einen Apache zu Hause (oder sonstwo) rennen hat kann sich schon mal gluecklich schaetzen, wenn er rennt. Um eine Top 10 Hitlist aller besuchten Seiten zu erhalten und gleichzeitig keine Lust auf komplizierte Auswertungstools hat, sollte folgendes probieren:
/root # awk '/GET/{print$7}' /var/log/apache/access.log \ | sort | uniq -c | sort -nr | nl | head
Klug geschissen ist halb gewusst! MaRc
ok, ich gebs ja zu. Gefunden bei Linux intern…
Und so sieht's aus: (– RolF)
1 359 / 2 66 /oddmuse/wiki.css 3 64 /lamp.gif 4 44 /cgi-bin/wiki.pl?News 5 36 /wiki.js 6 35 /cgi-bin/wiki.pl?WG-Mit-Garten 7 30 /wiki.css 8 26 /pics/blink.png 9 25 /P7291979.jpg 10 24 /pics/smile.png
Auch schon mal schnell 'ne man Page nachgelesen wegen dieser Option -xy die man in schöner Regelmässigkeit mal wieder braucht. Aber eben genau so regelmässig, dass sie kurz vor erneuten Gebrauch prompt wieder aus dem Gedächtnis verschwunden ist.
Also hat man sich endlich zur Seite 5 der Man-Pages vorgescrollt, die 2 Sätze und die genaue Syntax der Option noch mal nachgelesen, setzt frohgemut sein q, um zur Shell zurückzukommen und um sich frisch ans Tippen zu machen. Da kommen schon die ersten Zweifel: "War das jetzt %a oder gross %A für den Wochentag?". Aber leider ist der Text von der Manpage schon komplett vom Terminal ausradiert. Zurückscrollen nutzt auch nichts.
Also noch mal man date eintippen? Das muss nicht sein. Abhilfe schafft die -X Option von less. Um das auch für man-Pages zu nutzen, muss man die Environmentvariable PAGER entsprechend impfen. Für einen ersten Versuch hilft ein temporäres Setzen der Variable für den einen man Befehl:
PAGER="less -X" man xterm
Falls sich das als genehm erweist, packt man es mit einem export vorne dran in die eigene Shell Startup-Datei (bei fast allen wohl .bashrc).
Im Fachjargon heissen diese verschwindenden Fullscreen Zeilen alternate screen. Die Idee dabei ist dass Vollbild-Anwendungen, wie die meisten Editoren oder andere curses Programme nicht die normale Abfolge der vorangegangenen Befehle zerreißen sollen. In vielen Fällen macht das ja Sinn, aber eben nicht immer. In der normalen Linux Konsole gibt es dieses alternate screen Feature auch gar nicht, sondern nur im xterm oder in neueren Versionen von PuTTY. Beim xterm lässt sich das über die Resourcen abschalten:
xterm.vt100.titeInhibit: true
bei PuTTY ist es eine Option von Terminal unter Features. – RolF
Für alle die, die kein LinNeighbourhood benutzen, weil es eben in der Textkonsole nicht funktioniert, und die den Midnight Commander noch nicht so eingerichtet haben, dass er Samba mit einbindet (Geht das überhaupt, oder überschätze ich dieses Tool?), die wichtigen command line Parameter von smbclient:
Wenn gar nichts über das Subnetz bekannt ist, hilft manchmal nmblookup weiter. Oder seit Samba 3.0 auch smbtree.
Okay, das sind jetzt die fünf Punkte. Insofern war meine "Von-3-auf-5-innerhalb-von 3-Wochen Prognose" aber gar nicht so schlecht. – RolF
Man kennt das: Es gilt mal wieder ein Backup zu ziehen – das eine Jahr ist schon wieder rum – und du denkst dir: "Ein Blick auf die Daten kann ja nicht schaden. Muss ja nicht jeden Müll sichern." Und in der Tat da gibt's diese zwei oder drei Verzeichnisse, die im übergeordneten Verzeichnis noch mal als tarball vorhanden sind. Also könnten die eigentlich auch gelöscht werden. Und los geht's mit
rm -rf ...
Abgehakt! Und du kannst dir schon mal Gedanken über die benötigten Optionen von mkisofs und cdrecord machen. Aber nein, statt dessen springt dich ein "Do you really want to remove regular file …" von der Konsole an. Auf den Gedanken "Na, wenn's denn unbedingt sein muss …" folgt ein etwas energischer Anschlag auf die 'Y'-Taste. Und hopp, da steht sie noch mal, diese Nachfrage, diesmal aber mit einem anderem Dateiname. Die 'Y'-Taste muss jetzt schon ein bisschen mehr leiden… und "aua" nochmal, und …
Menschen mit normaler psychischer Konstitution drücken spätestens nach dem siebten Mal "Ctrl-C" und machen der Qual ein Ende. Es beginnen die üblichen Verdächtigungen ("Vielleicht hat sich das Keyboard Layout geändert, ich versuch's mal mit 'Z'") und Verwünschungen ("Hey, du Sack, ich sage -f für force, ich weiss was ich will, also halte mich nicht für einen Trottel und tu gefälligst was ich sage!"
Es hilft alles nichts. Des Rätsels Lösung ist, dass es einen Alias "rm -i" für "rm" gibt, also führt man eigentlich "rm -i -rf" aus. Die Manpage von rm sagt, dass "-i" immer den interaktiven Modus erzwingt und somit Vorrang vor dem "-f" hat. Man könnte jetzt lange nach den zig Dateien suchen, in denen alles ein Alias gesetzt werden kann, und dort diesen Alias de-aktivieren. Eine schnellere Lösung und auch eine, die ohne Flüche über andere abläuft, ist entweder unalias rm oder eine gezielte Anweisung an die Shell, das Aliasing zu umgehen:
command rm -rf ...