unix befehle leicht gemacht

#0
24.07.2003, 18:50
Member
Avatar Dafra

Beiträge: 1122
#1 Unix-Befehle für Anfänger

Hier wird weiter gebaut von Sabine :-)
Siehe auch Bildbearbeitung auf Kommandozeilenebene
Hilfe
Infos
Datei · Text
Löschen
Sortieren
Prozesse
Dateisuche
Bild-Tools!
Basics
Kopieren
Uhrzeit
Umbenennen
Installieren
Rechte
Stringsuche
M-Tools
Hilfe
Geplante Aktion
Unix
bewirkt
Unix-Kommandozeile
Praktisches Beispiel
Hilfe ausführlich
man
Zeigt ausführliche Hilfe zu Unixbefehl
man ls
Manual, Handbuch (englischsprachige Hilfe) zu allen Parametern eines Befehls.
Hilfe einfach
whatis
Zeigt Kurzinfo zu Unixbefehl
whatis ls
Erklärung wird zweisprachig geliefert
In den Manpages suchen
apropos
Sucht einen Begriff in den Manual-Seiten und gibt alle Fundstellen aus. Genial :-)
apropos formatted
Zeigt eine Liste der Fundstellen, in denen das Wort formatted vorkommt.
Infos
Wer arbeitet am System?
who
Zeigt mir angemeldete Benutzer und Terminals
who
Es werden angemeldete Benutzer angezeigt
Wer bin ich?
whoami
Zeigt mir angemeldeten Benutzer und Terminals
whoami
Es werden Benutzername, Terminalbezeichnung und Anmeldezeit angezeigt
Wo bin ich?
pwd
Zeigt, in welchem Verzeichnis ich mich gerade wirklich befinde: aktuelles Directory mit absoluter Pfadangabe.
pwd
Im Moment befinde ich mich zum Beispiel hier: /home/user/t/
Wer verbirgt sich unter europäischer / dt. IP?
whois
Personen- / Firmendaten zu einer IP oder Domainnamen anzeigen lassen
whois -h whois.ripe.net was.weiss.ich.de
Europäische IP-Adressen + Domains anzeigen lassen
Wer verbirgt sich unter amerikanischer bzw. internat. IP?
whois
Personen- / Firmendaten zu Ami-IP-Adressen anzeigen lassen
whois -h whois.arin.net 123.123.123.123
Internationale IP-Adressen anzeigen lassen
Datum anzeigen
date
Zeigt aktuelles Datum
date -%d.%m.%y
Gibt Datum aus mit Tag, Monat, Jahr
Uhrzeit
Uhrzeit anzeigen
date
Zeigt aktuelle Uhrzeit
date +%H.%M.%S
Gibt Uhrzeit aus mit Stunden, Minuten, Sekunden
System-Uhrzeit stellen unter Unix
date
Die Uhrzeit kann nur von root verändert werden.
date -s 10:05
Systemuhr (bis zum nächsten Rechner-Neustart) auf 10:05 Uhr stellen. Also: zuerst die Systemuhr stellen, und dann die Hardware-Uhr danach ausrichten (siehe hwclock).
Hardware-Uhrzeit einstellen
hwclock
Hardware-Uhr kann ebenfalls nur von root verstellt werden.
hwclock --systohc
Hardware-Uhr übernimmt die mit date eingestellte Systemzeit. Zeit bleibt dann auch nach Rechner-Neustart erhalten.
Basics
Diskette lowlevel formatieren
fdformat
Rohformatierung einer 3.5 Zoll Diskette
fdformat /dev/fd0H1440
Diskette wird lowlevel-formatiert.
Diskette formatieren
mformat
3.5 Zoll Diskette mit 1440 kb unter Unix formatieren für Dos
mformat -t80 -h2 -n18 -ldiskname a:
Die Diskette braucht vor dem Formatieren nicht gemountet werden, da "mformat" aus den mtools stammt.
Rechner runterfahren
shutdown
Mit einem Befehl kann der PC heruntergefahren und wieder neu gebootet werden.
shutdown now -f -r
-f skip fsck on reboot (verhindert einen Festplattencheck beim Neustart
-r reboot after shutdown: PC wird nach dem Runterfahren neu gestartet. Der häufigste Fehler bei Verwendung des shutdown-Befehls ist, dass keine Zeitangabe gemacht wird (hier: now)
Dateien auflisten
ls
Listet Inhalt eines Verzeichnisses auf.
ls -R
-R listet auch Dateien der Unterverzeichnisse mit auf, -l bedeutet ausführlich, lange Form der Auflistung, -t nach Änderungsdatum sortiert.
Dateien auflisten
ls
Standardmäßig wird die Ausgabe am Bildschirm angezeigt. Sie lässt sich aber auch in eine Textdatei umleiten.
ls -R > beliebig.txt
Erzeugt eine Datei beliebig.txt, in der das Ergebnis der Auflistung inkl. Unterverzeichnissen zu finden ist.
Verzeichnis anlegen
mkdir
Neues Verzeichnis mit neuen Unterverzeichnissen anlegen
mkdir -p test/test2/test3
Legt gleichzeitig mehrere Verzeichnisse hintereinander an
Verzeichnis wechseln
cd
Ohne Parameter wechselt cd ins Home-Verzeichnis
cd ..
Ein Leerzeichen und zwei Punkte nach dem Befehl: Ein Verzeichnis nach oben wechseln. Unter DOS war das Leerzeichen nicht nötig.
Ins Verzeichnis einer Diskette verzweigen
cd
Man kann auch von der Festplatte auf eine Diskette verzweigen.
cd /floppy/
Wechseln in das Rootverzeichnis der Diskette, sofern sie schon gemountet ist.
Diskette mounten
mount
Mountet eine Diskette
mount /floppy/
Die Floppy wird ins Dateisystem eingebunden
Prozesse
Speicherressourcen überwachen zeigen
top
Liste der laufenden Prozesse anzeigen mit Angaben zu Hauptspeicherbelastung
top
Es werden Priorität, Größe, CPU- und Hauptspeicherbelastung angezeigt und laufend aktualisiert.
Aktuelle Prozesse zeigen
ps
Zeigt an, welche Prozesse im Moment laufen
ps -efl
-e Anzeige aller Prozesse, -f volles Format, -l mit allen Attributen, -x alle Systemprozesse
Prozess killen
kill
Bricht einen Prozess sicher ab, der sich sonst nicht mehr stoppen lässt
kill -9 (PID)
Abzubrechender Prozess wird gestoppt und aus dem Speicher entfernt
Suche nach Dateien
Suche nach Dateinamen in einem oder mehreren Verzeichnissen
locate
Durchsucht blitzartig alle Verzeichnisse und indiziert das Suchergebnis, so dass es auch am nächsten Tag noch zur Verfügung steht.
locate index.html
Alle Dateien namens "index.html" werden aufgelistet. Es können auch Platzhalter verwendet werden, wie "*.pdf"
Finden einer bestimmten Datei, deren Dateiname bekannt ist
find
Das angegebene Verzeichnis mit allen darunterliegenden Unterverzeichnissen werden durchsucht.
find ordner/ -type f -name "index.htm"
Alle Dateien namens "index.htm" werden aufgelistet.
Finden von Dateien, die in den letzten 2 Tagen geändert wurden
find
Es wird vom aktuellen Verzeichnis ausgegangen und es werden alle Unterverzeichnisse durchsucht
find . -mtime -2 -print
Das Suchergebnis wird auf dem Bildschirm ausgegeben
find . -mtime -2 -print >2tage.txt
Das Suchergebnis wird in der Textdatei 2tage.txt gespeichert
Suche nach Strings
Unterverzeichnisse nach String durchsuchen
find, xargs
Durchsucht Verzeichnisse nach Zeichenkette
find ordner/ -type f -name "*.htm" | xargs grep -l spinne
Durchsucht auch HTML-Dateien in Unterverzeichnissen nach "spinne". Trick: Kombination von Pipe "|" mit "xargs" Befehl.
Suchen - ersetzen
sed
Zeichenkette in Datei suchen und durch andere Zeichenkette ersetzen
sed 's/daß/das/g' aufsatz.tex
Ersetzt jedes Wort ``daß'' durch das Wort ``dass'' in der Datei aufsatz.tex
Suchen - ersetzen mit Sicherung
sed
Zeichenkette in Datei suchen, durch anderen String austauschen, Datei unter anderem Namen speichern
sed 's/paragraph/Absatz/g' datei.tex > dateineu.tex
Ersetzt jedes Wort ``paragraph'' durch das Wort ``Absatz'' in der Datei datei.tex und schreibt das Ergebnis in die Datei dateineu.tex
Datei(en) nach String durchsuchen
grep
Durchsucht Dateiinhalte nach bestimmten Wörtern oder Zeichenketten
grep "Nachtigall" *.htm
Sucht das Wort "Nachtigall" in HTML-Dateien im aktuellen Verzeichnis
Löschen
Bestimmte Verzeichnisse löschen
rm
In vielen Unterverzeichnissen nach .xvpics suchen und diese samt Inhalt löschen
find * -name .xvpics | xargs rm -r
Die .xvpics sind Verzeichnisse mit Thumbnails, die beim Bilderbetrachten angelegt werden.
Datei löschen
rm
unwiederbringlich eine Datei löschen
rm -i dateiname
Mit Parameter -i muss die Löschung erst mit "y" bestätigt werden
Verzeichnis löschen
rmdir
Verzeichnisse werden gelöscht, sofern sie leer sind.
rmdir -r
Es wird rekursiv gelöscht, d.h. auch alle darunterliegenden leeren Unterverzeichnisse.
Druckauftrag löschen
lprm
Druckaufträge löschen, die unter meinem Namen laufen.
lprm -
Als Root lösche ich sämtliche Druckaufträge aller User, sonst nur meine eigenen.
Umbenennen
Datei umbenennen
mv
Dateien oder Verzeichnisse werden umbenannt oder verschoben.
mv datei.alt datei.neu
-b sichert Dateien vor dem Überschreiben, -f überschreibt rücksichtslos, -i will Bestätigung vor dem Überschreiben vorhandener Zieldateien, -u überschreibt nur ältere Versionen gleichnamiger Zieldateien.
Kopieren
Diskette kopieren ähnlich diskcopy unter DOS
dd
Gesamte Quelldiskette in eine Datei kopieren, dann diese Datei auf Zieldiskette
dd if=/dev/fd0 of=disk1.img bs=18k
In unserem Beispiel heißt die Datei "disk1.img". Nach Diskettenwechsel dann die erzeugte Datei auf die Ziel-Diskette schreiben:
dd if=disk1.img of=/dev/fd0 bs=18k
Dateien von Diskette auf Festplatte kopieren und unverändert lassen
cp
unverändert kopieren
cp -p -i /floppy/* .
Dateien unverändert von Diskette auf Festplatte ins aktuelle Verzeichnis kopieren, vor Überschreiben nachfragen
Dateien auf Diskette kopieren
cp
kopieren
cp /home/user/*.* /floppy/
Dateien von Festplattenverzeichnis werden auf Diskette kopiert
Dateien kopieren, die geändert wurden, inkl. Unterverzeichnisse
cp
kopieren
cp -r -u /home/user/*.* /floppy/
Alle Dateien (eines Verzeichnisses inkl. Unterverzeichnisse von Festplatte) auf Diskette speichern, die geändert wurden.
Dateien unverändert aus Linux- ins Win-Verzeichnis kopieren, die in den letzten 30 Tagen geändert wurden
cpio
Dateien seit einem bestimmten Änderungsdatum kopieren
find . -mtime -30 -print | cpio -pvmd /windows/user/
Windowsverzeichnis muss vorher gemountet werden, Datum der Files bleibt unverändert.
Dateien von Diskette unverändert auf HD kopieren
cpio
kopieren
find . -print | cpio -pvmd /home/user/daten/
Beim Kopieren von Dateien in Unterverzeichnissen Datum der Files unverändert lassen
Sicherungskopie eines Verzeichnisbaumes auf HD
cp
kopieren mit aktuellem Datum
cp -pR /home/mein/ /home/dein/neues
Komplettes Verzeichnis wird in ein neues kopiert
Sortieren
Dateiinhalt sortieren
sort
Sortiert Dateiinhalte nach verschiedenen Kriterien
sort -fnr
-f Groß- und Kleinbuchstaben gleich behandeln, -n numerische Werte numerisch sortieren, -r in umgekehrter Richtung sortieren
Dateinamen sortiert in Textdatei schreiben
ls
Die Dateinamen eines Verzeichnisses sortiert nach Änderungsdatum (neueste oben in der Liste), in einer Textdatei auflisten.
ls -c /home/user/*.* >ergebnis.txt
zeigt eine nach Datum sortierte Liste der Dateien im angegebenen Verzeichnis, nur Dateinamen
Datenbank sortieren
sort
wird zum Sortieren von Dateien oder Dateiinhalten benutzt
sort -f -t":" -k2 quelle.txt > ziel.txt
Sortiert Datenbank nach Feld 2, ignoriert Groß- u. Kleinschreibung, der Doppelpunkt wurde als Trennzeichen definiert.
Datei (Text)
Textdatei anlegen
cat
Text eingeben
cat > dateiname
Eine neue Textdatei wird angelegt und geschrieben, STRG+D gespeichert.
Textdatei verändern
cat
Text erweitern
cat >> dateiname
Vorhandene Textdatei wird erweitert
Führende Leerzeichen z.B. in HTML-Datei entfernen.
sed
entfernt in der Quelldatei die Leerzeichen und sichert die neue Datei mit anderem Namen
sed 's/^ *//g' index.html > index_neu.html
Kennst du das auch? Du holst dir per Copy + Paste einen Textabschnitt aus dem Net, und der ist völlig unformatiert.. Und da hilft dieser Befehl!
Wörter zählen
wc
zählt Zeilen, Wörter und Buchstaben einer Datei
wc -wlc
-w zählt words, -l zählt lines, -c zählt characters
Programme unter Unix installieren
rpm-Datei installieren
rpm
Ein fertiges Package (rpm-Datei) als Root installieren. Vorher schauen, was für Pakete installiert sind: rpm -q -a
rpm -i package.rpm
In dem Package enthaltene Dateien werden entpackt, das Packet weiß schon, wo es hingehört :-) Evtl. muss noch die Readme oder Hilfedatei für weitere Schritte gelesen werden.
tar-File herstellen
tar
Alle html-Dateien in ein tar-File packen (auch die aus darunterliegenden Unterverzeichnissen)
tar cvzf paeckchen.tgz *.html
In der Datei "paeckchen.tgz" sind nachher alle Dateien inkl. Subdirectories enthalten, die den Dateinamenszusatz html haben.
tar-File auspacken
tar
tar-File wird entkomprimiert und samt seiner Unterverzeichnisse entpackt.
tar xzf paeckchen.tgz
Die in dem tar-File enthaltenen Dateien werden entpackt, evtl. enthaltene Verzeichnisse hergestellt
Oft benötigte Rechtevergabe
Geplante Aktion
Unix
bewirkt
Unix-Kommandozeile
Praktisches Beispiel
Verzeichnis vor Auflistungszugriffen schützen
chmod
Verzeichnis schützen, wenn dort keine index.html oder index.htm o.ä. vorhanden
chmod 711 verzeichnis
Der Inhalt eines Verzeichnisses, wie z.B. eines Bilderverzeichnisses, kann von außen nicht mehr aufgelistet werden. Sehr nützlich im Web!
Verzeichnis lesbar, benutzbar und für Webserver veränderbar machen
chmod
Ändert Zugriffsrechte auf Dateien und Verzeichnisse
chmod 777 -R verzeichnis
Wird besonders für Webprojekte oft benötigt. Das Verzeichnis wird lesbar und benutzbar für die Welt, und der Webserver kann dort reinschreiben.
find . -type d | xargs chmod 777
find . -type f | xargs chmod 666
Damit setzt Du alle Verzeichnisse und alle Files auf Welt-schreibbar.
Script auf Server ausführbar machen
chmod
Ändert Zugriffsrechte und macht z.B. ein CGI-Script ausführbar
chmod 755 gaestebuch.cgi
Das entsprechende Script wird ausführbar gemacht und kann auf einem Server benutzt werden.
FAQs zur Rechtevergabe

Wo hast du denn die Zahlen her? Ich meine, was bedeuten sie?

r = 4
w = 2
x = 1

r hat den Wert 4, w hat den Wert 2 und x hat den Wert 1.

Damit kannst Du alle Kombinationen aus r, w und x als eine Zahl zwischen 0 und 7 ausdrücken:

--- 0
--x 1
-w- 2
-wx 3 ( = 2 + 1 )
r-- 4
r-x 5 ( = 4 + 1 )
rw- 6 ( = 4 + 2 )
rwx 7 ( = 4 + 2 + 1)
rwx|rwx|rwx
Besitzer|Gruppe|Rest der Welt

Die "666" kann ich mir nicht erklären!

Die Permissions für jeden dieser drei Abschnitte kannst Du auch als eine Zahl von 0 bis 7 ausdrücken. Die Gesamtpermission also als eine dreistellige Zahl mit Ziffern zwischen 0 und 7.

Üblich sind:

644 rw-r--r-- ==> Besitzer darf lesen+schreiben, Rest nur Lesen.
600 rw------- ==> Besitzer darf lesen+schreiben, Rest darf nix.
640 rw-r----- ==> Besitzer darf lesen+schreiben, Gruppe lesen,
Rest darf nix.

Bei "chmod" kannst einzelne Permissions ändern:

chmod g+w file.ext
g+w Schreiberlaubnis für Gruppe setzen
o-w Schreiberlaubnis für Rest der Welt löschen
u+w Schreiberlaubnis für Besitzer setzen
go+x Ausführerlaubnis für Gruppe und Rest der Welt setzen
u+rwx Alle Erlaubnisse für Besitzer setzen.

oder halt alle auf einmal.

Danke für die Erklärungen zur "chmod-Mathematik" :-) an den Wolf

Und zum Schluss noch ein seehr nützliches Helferlein zum Setzen von Rechten unter Unix, der Dateirechtesetzer:
www.gesamtschule-eiserfeld.de/gee/intranet/selfhtml/helferlein/chmod.htm
Bildbearbeitung auf Kommandozeilenebene
Bildbearbeitung durch einzelne Kommandos
mittels netpbm-Tools
netpbm
pnmscale,
pnmcut
pnmflip
ppmtopgm
pnmgamma
pnmsmooth
Bilder scalieren, beschneiden, drehen, umrechnen in schwarz-weiß, heller oder dunkler machen, weichzeichnen
Praktische Beispiele auf einer gesonderten Seite: http://nafoku.de/t/unix/pbm.shtml

Die netpbm-Tools sind eine sehr alte Sammlung von Routinen zum Manipulieren von Bildern. Das Prinzip:
1. in eines der Formate pbm, pgm oder ppm wandeln
(b=bits, also s/w, g=grey, p=pixel, also Farbe)
pnm steht für irgendeines der b/g/p
2. machen was man will
3. zurückwandeln

djpeg: jpeg -> pgm/ppm
cjpeg: pgm/ppm -> jpeg

pnmscale macht Größenveränderungen.
pnmflip macht Spiegelungen und 90° Drehungen:
-lr links<->rechts
-bt oben<->unten
-ccw drehen nach links 90°
-cw drehen nach rechts 90°
-r180 drehen um 180°

Lässt sich über den Pipemechanismus z.B. mit pnmscale verbinden.

Die Erläuterungen zu den pbm-Tools stammen vom Wolf
MTools
Identisch mit Dos-Befehlen:
Unterscheidet sich nur durch das vorangestellte "m" :-)
mtools
Zeigt alle verfügbaren Befehle der mtools an.
mattrib, mbadblocks, mcat, mcd, mcopy, mdel, mdeltree, mdir, mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount, mpartition, mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype, mwrite, mzip (supported commands)
fdformat formatiert Disketten, erzeugt aber kein Dateisystem
mformat legt ein DOS-Dateisystem an
Seitenanfang Seitenende
24.07.2003, 20:09
Member
Avatar Xeper

Beiträge: 5291
#2 Das was du hier bastelst find ich sehr gut ;)

Aber bitte beachte das nicht alle UNIX Befehle gleich sind.

Beispiel:

Auf NetBSD gibt es kein gnu tar: wenn du das benutzen willst ist der Befehl gtar.

Auf den meisten anderen UNIX Systemen reicht es nicht route zu schreiben sondern du musst route show/print schreiben damit du die routing tab bekommst.

Auf alle UNIX Systemen sind die Geräte (device_names) verschieden.

Das meiste was du hier auflistest sind ganze Programme und nicht nur kleine Shell abhängige Befehle. Viele Programme gibt es nicht auf anderen UNIX Systemen lauten einfach anders etc.
Zb. gibt es kein hwclock in NetBSD und soweit ich weiß auch nicht in Irix.

MFG
Xeper
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: