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 
WG-Mit-Garten RecentChanges Aktuelles TestSeite Index Home

LinuxTips

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!


Dateiinhalte mal schnell ausführen

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

Bash history und Ctrl-r

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

lesspipe -- die andere Art zu staunen

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

Hitlist vom Apache anzeigen (Top 10)

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

Verschwindende Man-Pages

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

smbclient

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:

smbclient //winrechner/sharename -U winuser
Das Wichtige dabei: Grosses U für den User. Das Passwort wird dann interaktiv abgefragt.
smbclient -I 192.168.1.67 -N -L winrechner -U winuser
Listet die freigegebenen Verzeichnisse auf dem Rechner winrechner auf. Da winrechner zur Option -L gehört, dürfen da keine doppelten Slashes davor sein. -N ist die dankbare Option die vermeidet, dass ich, nur um die Shares anzugeben, ein Passwort eingeben muss. Die Option -I und IP-Adresse muss nicht unbedingt sein, hilft aber Probleme mit dem Master-Browser oder dem WINS-Server(die es fast immer gibt) zu umschiffen.

Wenn gar nichts über das Subnetz bekannt ist, hilft manchmal nmblookup weiter. Oder seit Samba 3.0 auch smbtree.

5 Gründe warum Redhat Linux nervig ist

  1. dos2unix ändert nicht nur den Zeilenumbruch, sondern auch die Dateiattribute. Die Dateien sind danach nicht mehr ausführbar und auch nicht mehr world-readable. So was ist fatal, wenn das auf html-Dateien, auf die der Web-Server zugreifen soll, oder auf Skripte angewendet wird. Wieso kann dafür nicht eine vernünftige Variante von recode genutzt werden?
  2. Und noch mal Ausführungsrechte: DIRCOLORS sind für "ls" per default aktiviert. Das ist ja eigentlich eine feine Sache. Ich muss nicht mehr extra auf die Dateiattribute schauen, sondern es reicht zu sehen, dass eine Datei grün dargestellt wird, um zu wissen, dass sie ausführbar ist. Unsinnigerweise werden aber nicht nur Dateien mit dem x-Bit, sondern auch Dateien, die auf .sh oder .bat enden, grün dargestellt. Ist RedHat ein beschränktes Windows-System, das keine Ausführungsrechte kennt, oder ein freies UNIX?
    Was habe ich schon auf die Shell geflucht, weil sie nicht einsehen wollte, dass mein Skript kann-alles.sh ausführbar ist! Es war nicht ausführbar (ich hatte es vorher durch dos2unix gejagt), aber es wurde halt immer noch in grüner Farbe angezeigt.
  3. vim ist mit "highlight last search" vorkonfiguriert und der einzige Editor auf dem System. Soll heissen es nutzt nichts, die .viminfo zu öffnen und dort hlsearch zurückzusetzen. Beim Schließen des Editors – eben vim – wird die .viminfo gerade noch mal geschrieben. Und ein "set nohlsearch" in der Editor-Session ist nach dem nächsten Editorstart auch wieder vergessen. Und vim ist ja nicht emacs, den man nur einmal in Leben startet und dann alles mit macht!
    Auch wenn sich mir der Sinn dieses Highlight Features nicht erschließen will, wäre ja nicht unbedingt was dagegen auszusetzen, wenn das Highlighting nicht so bescheuert eingestellt wäre, dass ich dann weißen Text auf gelbem Hintergrund lesen muss.
  4. Das Partitionier-Tool des Installers weigert sich hartnäckig vier primäre Partitionen anzulegen. Drei sind noch okay, aber die vierte wandelt er dann automatisch in eine extended Partition um. Und das wohlgemerkt auch bei einer kompletten Neu-Installation, wenn also kein anderes System schon auf der Platte ist.
  5. Es gibt, wie bei fast allen anderen Distributionen auch, für einen User eine spezielle exklusive Gruppe mit dem gleichen Namen. Trotzdem sind die Home-Verzeichnisse nur mit Zugriffsrechten für den Eigentümer angelegt. Die Gruppe darf nichts! Wenn jetzt generell alle User in der Gruppe users wären, dann wäre es ja noch einzusehen, dass die Gruppe nicht auf das potentiell mit privaten Daten versehene Home-Verzeichnis zugreifen darf. Aber diese Konstellation gibt es ja gerade nicht.

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

Noch was nerviges

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 ...