You are currently browsing the archives for the ۞ Linux Befehle category.

Archive for the ‘۞ Linux Befehle’ Category

Linux Terminal-multiplexer screen HowTo

Mittwoch, Januar 27th, 2010

Was ist Screen eigentlich?

  • screen ist ein sogenannter “Terminal-multiplexer”.
  • screen kann in einem Terminal ausgeführt werden (XTerm, gnome-terminal, Putty oder ssh-konsole usw.) und benötigt somit keinen X-Server.
  • Der User hat die Möglichkeit mehrere Programme auszuführen und zwischen diesen hin und her zuwechseln ohne mehrere Terminals geöffnet zu haben.

screen ist ein nettes Tool, um mit mehreren Personen gemeinsam auf einem Bildschirm (engl. “screen”) zu arbeiten, bzw. in einem Terminal (ssh usw.). Man kann so z.B. jemand beim Einstellen zuschauen. Man kann z.B. in einem Screenfenster mit mc das Dateien kopieren, in einem anderen mittels BitchX chatten und in einem dritten mit lynx im Internet surfen. Dies gilt für alles was sich in einem Linux-Terminal ausführen lässt und macht screen zu einem sehr mächtigem Linux Tool. Sobald ihr screenerfolgreich installiert habt, startet ihr es mit dem Kommando screen in einem Linux-Terminal eurer Wahl. Es erwartet euch dort eine ganz normale Linux-Shell.

Wichtigsten Screen-Befehle

Befehl Kommando Beschreibung

[Strg + a] ?

help Zeigt den eingebauten Hilfebildschirm

[Strg + a] 0

select Schaltet zum Bildschirm 0

select

[Strg + a] 9

select Schaltet um auf Bildschirm 9

[Strg + a] A

title Erlaubt dem User, dem aktuellen Bildschirm einen Namen zu geben.

[Strg + a] c

create erzeugt einen neuen von Screen verwalteten Bildschirm

[Strg + a] d

detach Beendet den screen prozess, der die Session und das Terminal verbindet

[Strg + a] n

next Schaltet zum Bildschirm mit der nächsthöheren Nummer

[Strg + a] p

previous Schaltet zum Bildschirm mit der nächstniedrigeren Nummer

[Strg + a] x

lockscreen Sperrt die Konsole, bis das Passwort des Benutzers eingegeben wurde

[Strg + a] [LEER]

next Alternative zu n; u.U. handlicher zu bedienen

[Strg + a] "

windowlist -b Listet alle Fenster der aktuellen Session

Folgende Tastenkombination erzeugt einen Screen:

[Strg + a] c

Wir sind nun In dem Modus in dem wir Screen weitere Kommandos und Anweisungen geben können. Durch drücken von c geniert ihr ein neues virtuelles Fenster (create). Dieses ist jetzt wieder leer. Um das ganze zu testen schreiben wir irgendetwas rein:

linux:~#aluowaafmöasr

Und dann wollen wir folgendes probieren:

  • [Strg + a] nIhr springt zum nächsten (next) Fenster und seid wieder in eurem ersten Fenster.
  • [Strg + a] pDamit wechselt ihr zum vorherigen Fenster (previous) und seht Fenster 1.
  • [Strg + a] NWobei N für eine Nummer steht. Ihr könnt nun durch auswahlen einer Nummer direktzu einem Fenster eurer Wahl wechseln. Gezählt wird ab 0. Also ist unser erstes Fenster

    mit [Strg + a] 0 zu erreichen.

  • [Strg + a] AShift muss gedrückt gehalten werden bevor ihr das zweite Mal A drückt. Nun könnt ihr euremFenster einen Namen geben. Das wird beim nächsten Schritt hilfreich sein.
  • [Strg + a] "Nun solltet ihr eine Übersicht über eure von screen generierten virtuellen Fenster sehen.Und wie gesagt, nun könnt ihr sie mit den Namen identifizieren. (Shift nicht vergessen!)
  • [Strg + a] KMit K für Kill könnt ihr nun Fenster schließen die ihr nicht mehr benötigt.screen wird euch (nach der Standarteinstellung) fragen ob ihr das Fenster wirklich

    schließen wollt, und mit y (yes) bestätigt ihr das.

Screen Übung:

  • Ein paar screen aufmachen
  • Jeweils Programme starten
  • Jeweils Namen vergeben

Nachdem ihr nun ein paar Prozesse laufen habt, beendet Ihr euer Terminal, öffnet ein neues und führt das folgenden Befehl aus:

linux:~#screen -r (reattach)

Eure ganzen Programme sind immernoch vorhanden

Screen speichert eure ganzen Programme in einer Session und lässt diese im Hintergrund laufen.

Aus screen ausloggen:

[Strg + a] d

(detach)

Diese Funktion ist für den alltäglichen Betrieb sehr praktisch. Man kann beispielsweise mittels find und nach einer Datei suchen und nebenher die Logdateien mit more ansehen.

Mit dem Befehl:

linux:~#screen -r

seht ihr, dass immernoch nebenher gesucht wird
Im screen Modus kann nicht mit dem Mausrad hochscrollen werden. Um das zu tun benutzt ihr folgendes Kommando um in den “scrollback buffer” per “copy mode” zu kommen:

[Strg + a] [

Nun könnt ihr ganz simpel mit den Pfeiltasten hoch und runter scrollen und euch

was zu markieren. Markiert werden kann mit:

[Strg + a] ]

Beenden von screen:

[Strg + a] K

Ihr befindet euch nun wieder in eurer normalen Shell ohne screen im Vordergrund.

Screen Links:

Screen-FAQ

Eine FAQ bezüglich Screen. Leider nicht für Anfänger geeignet.

Screen man-page

Die manpage von Screen online.

Engl. Einführung zu Screen

Engl. Anleitung zu Screen

Find-L: Auffinden aller (Nicht-) leeren Dateien in einem Verzeichnis

Samstag, Juni 27th, 2009

Das Erstellen einer leeren Datei unter Linux ist recht einfach. Wenn eine Datei nicht existiert können Sie einfach eine leere Datei mit dem Befehl Touch erstellen.

$ Touch DATEI
$ Ls-l-Datei

   -rw-r - r - 1 Otto Otto 0 2009-05-02 20:15 DATEI

Findet alle leeren Dateien in einem Verzeichnis kann aber auch mit einem einzigen Befehl erledigt werden. Genauso auch für nicht-leeren Dateien.

Angenommen Sie möchten alle leeren Dateien im Verzeichnis / home / Otto aufspüren, dann lautet der Befehl:

 $ Find-L / home / Otto-maxdepth 1-type f-Größe 0

Standardmäßig findet der Befehl keine symbolischen Dateien. Verwenden Sie die-L-Option um diese ebenfalls zu erhalten.

Der Ausdruck -maxdepth 1 legt die maximale Tiefe fest bei der Suche. Standardmäßig sucht der Befehl find rekursiv in das Verzeichnis. Eine maximale Tiefe von 1 bedeutet, dass Sie nur die Dateien direkt in /home/Otto suchen. Beachten Sie, dass die Tiefe 0 die Ebene der Befehlszeilenargument ist. (/home/Otto). Sie können maxdepth und mindepth zu fein Kontrolle der Tiefe verwenden wie Sie wollen.

-type f bedeutet regelmäßige Dateien. Dies ist nicht unbedingt notwendig für leere Dateien (im Gegensatz zu denen die nicht leer sind)

Größe 0 ist selbsterklärend.

Wenn Sie alle nicht-leeren Dateien im gleichen Verzeichnis finden wollen so setzen Sie einfach ein ! vor -Größe 0:

 $ Find-L / home / Otto-maxdepth 1-type f! -Größe 0

Beachten Sie, dass F-Typ notwendig. Ohne diesen Ausdruck, Unterverzeichnisse in /home/Otto wie /home/Otto/.Trash erscheint in der Ausgabe.

Meistens wollen Sie aber nicht nur Dateien finden, sondern auch diese Dateien weiterverarbeiten. Angenommen Sie möchten alle leeren Dateien in einem Verzeichnis löschen:

Aus Sicherheitsgründen sollte das find-Kommando zuerst eine Liste der Dateien finden. Anschließend werden diese Dateien dann mit dem Befehl xargs weiterverarbeitet.

 $ Find-L / home / Otto-maxdepth 1-type f-Größe 0
     / home/Otto/file1.txt
     / home/Otto/file2.txt

 $ Find-L / home / Otto-maxdepth 1-type f-Size-0-print0 | xargs -0 rm-r-f

Top10 Linux “Killer” Befehle

Samstag, Februar 14th, 2009

Top 10 Killer Kommandos – Linux Befehle, die für Ihren Dateien oder sogar Ihr gesamtes Betriebssystem absolut tödlich verlaufen können.
Um dieses gefährliche Szenario zu vermeiden, habe hier eine Liste der Top-Ten Linux Killer-Befehle, die Sie unbedingt vermeiden sollten.

1. Code:

rm -rf /

Dieser Befehl wirkt rekursiv und löscht auf einen Schlag gewaltsam alle Dateien im Root-Verzeichnis.

rm-rf / funktioniert allerdings nicht mehr mit den meisten neueren Distributionen.

Auch jetzt sind die meisten großen Distributionen (Ubuntu, Fedora, openSUSE, Mandriva) immun dagegen

(weiterlesen…)

Überprüfen ob ein Prozess aktiv ist

Sonntag, Januar 4th, 2009

Das Standard-Tool zur Anzeige laufender Prozesse ist ja eigentlich ps.

Um damit aber schnell zu erkennen, ob ein Prozess mit
einem bestimmten Namen läuft und wie die Prozess-ID (PID) lautet, müssen Sie ps schon mit grep verketten, das alle nicht zutreffenden Prozesse aus der Antwort ausfiltert.

Mit pgrep ist das dagegen ganz leicht: Einfach den Prozessnamen als
Parameter angeben und es liefert die PIDs aller Prozesse zurück, bei
denen die angegebene Zeichenfolge im Namen vorkommt.
Es gibt noch zwei interessante Zusatzparameter für pgrep.

So finden Sie zum Beispiel heraus, ob der Beagle-Dämon für den User “uwe” läuft:

pgrep -u uwe beagled

Um statt der Prozess-ID den Namen als Antwort zu erhalten, verwenden Sie den Parameter -l.

So erhalten Sie zum Beispiel die Namen aller aktiver Prozesse, die mit top zu tun haben: pgrep -l top