Crmgo Blog

LINUX-BEFEHLE

LINUX-BEFEHLE

LINUX-BEFEHLE Befehl Beschreibung Systeminformationen arch zeigt die Computerarchitektur an uname -m uname -r zeigt die verwendete Kernel-Version an dmidecode -q zeigt die Hardware-Systemkomponenten an - (SMBIOS / DMI) hdparm -i /dev/hda gibt die Festplatteneigenschaften aus hdparm -tT /dev/sda testet die Leistungsfähigkeit…

LINUX-BEFEHLE

LINUX-BEFEHLE

 

Befehl Beschreibung
Systeminformationen
arch Architektur des Computers anzeigen
uname -m
uname -r verwendete Kernel-Version anzeigen
dmidecode -q Hardware-Komponenten anzeigen - (SMBIOS / DMI)
hdparm -i /dev/hda Eigenschaften der Festplatte anzeigen
hdparm -tT /dev/sda Leseleistung der Festplatte testen
cat /proc/cpuinfo Informationen über den Prozessor anzeigen
cat /proc/interrupts Interrupts anzeigen
cat /proc/meminfo Speichernutzung prüfen
cat /proc/swaps Swap-Dateien anzeigen
cat /proc/version Kernel-Version anzeigen
cat /proc/net/dev Netzwerkschnittstellen und deren Statistiken anzeigen
cat /proc/mounts eingehängte Dateisysteme anzeigen
lspci -tv PCI-Geräte als Baumstruktur anzeigen
lsusb -tv USB-Geräte als Baumstruktur anzeigen
date Systemdatum anzeigen
cal 2007 Kalender für das Jahr 2007 anzeigen
date 041217002007.00 Systemdatum und -zeit einstellen (MMTTSShhJJJJ.ss (MonatTagStundeMinuteJahr.Sekunde))
clock -w Systemzeit im BIOS speichern
System stoppen
shutdown -h now System stoppen
init 0
telinit 0
shutdown -h hours:minutes & Systemstopp zu einem bestimmten Zeitpunkt planen
shutdown -c geplanten Systemstopp abbrechen
shutdown -r now System neu starten
reboot
logout aus dem System ausloggen
Dateien und Verzeichnisse
cd /home ins Verzeichnis '/home' wechseln
cd .. ins übergeordnete Verzeichnis wechseln
cd ../.. ins zweistufig übergeordnete Verzeichnis wechseln
cd ins Heimatverzeichnis wechseln
cd ~user ins Heimatverzeichnis des Benutzers user wechseln
cd - ins vorherige Verzeichnis wechseln
pwd aktuelles Verzeichnis anzeigen
ls Inhalt des aktuellen Verzeichnisses anzeigen
ls -F Inhalt des aktuellen Verzeichnisses anzeigen, wobei an die Dateinamen Typkennzeichnungen angehängt werden
ls -l detaillierte Ansicht der Dateien und Verzeichnisse im aktuellen Verzeichnis anzeigen
ls -a versteckte Dateien und Verzeichnisse im aktuellen Verzeichnis anzeigen
ls *[0-9]* Dateien und Verzeichnisse anzeigen, die Ziffern im Namen enthalten
tree Datei- und Verzeichnisbaum ab Root (/) anzeigen
lstree
mkdir dir1 Verzeichnis mit dem Namen 'dir1' erstellen
mkdir dir1 dir2 zwei Verzeichnisse gleichzeitig erstellen
mkdir -p /tmp/dir1/dir2 Verzeichnisbaum erstellen
rm -f file1 Datei mit dem Namen 'file1' löschen
rmdir dir1 Verzeichnis mit dem Namen 'dir1' löschen
rm -rf dir1 Verzeichnis mit dem Namen 'dir1' und seinen gesamten Inhalt rekursiv löschen
rm -rf dir1 dir2 zwei Verzeichnisse und deren Inhalt rekursiv löschen
mv dir1 new_dir Datei oder Verzeichnis umbenennen oder verschieben
cp file1 file2 Datei file1 in Datei file2 kopieren
cp dir/* . alle Dateien des Verzeichnisses dir in das aktuelle Verzeichnis kopieren
cp -a /tmp/dir1 . Verzeichnis dir1 mit seinem gesamten Inhalt in das aktuelle Verzeichnis kopieren
cp -a dir1 dir2 Verzeichnis dir1 in Verzeichnis dir2 kopieren
ln -s file1 lnk1 symbolischen Link auf Datei oder Verzeichnis erstellen
ln file1 lnk1 harten (physischen) Link auf Datei oder Verzeichnis erstellen
touch -t 0712250000 fileditest Datum und Uhrzeit der Dateierstellung ändern; falls nicht vorhanden, Datei mit angegebenem Datum und Uhrzeit erstellen (JJTTSShhmm)
Dateien suchen
find / -name file1 Dateien und Verzeichnisse mit dem Namen file1 suchen. Suche ab Root (/) beginnen
find / -user user1 Dateien und Verzeichnisse suchen, die Benutzer user1 gehören. Suche ab Root (/) beginnen
find /home/user1 -name "*.bin" Alle Dateien und Verzeichnisse suchen, deren Namen auf '.bin' enden. Suche ab '/home/user1' beginnen
find /usr/bin -type f -atime +100 Alle Dateien in '/usr/bin' suchen, auf die seit mehr als 100 Tagen zugegriffen wurde
find /usr/bin -type f -mtime -10 Alle Dateien in '/usr/bin' suchen, die in den letzten 10 Tagen erstellt oder geändert wurden
find / -name *.rpm -exec chmod 755 '{}' \; Alle Dateien und Verzeichnisse suchen, deren Namen auf '.rpm' enden, und deren Zugriffsrechte ändern
find / -xdev -name "*.rpm" Alle Dateien und Verzeichnisse suchen, deren Namen auf '.rpm' enden, wobei Wechseldatenträger wie CD-ROM, Diskette usw. ignoriert werden
locate "*.ps" Alle Dateien suchen, die '.ps' im Namen enthalten. Vorher wird empfohlen, den Befehl 'updatedb' auszuführen
whereis halt zeigt die Speicherorte von Binärdateien, Quellcode und Handbüchern, die sich auf die Datei 'halt' beziehen
which halt zeigt den vollständigen Pfad zur Datei 'halt'
Dateisysteme einhängen
mount /dev/hda2 /mnt/hda2 Partition 'hda2' am Einhängepunkt '/mnt/hda2' einhängen. Stellen Sie sicher, dass das Verzeichnis '/mnt/hda2' existiert
umount /dev/hda2 Partition 'hda2' aushängen. Vor der Ausführung '/mnt/hda2' verlassen
fuser -km /mnt/hda2 erzwungenes Aushängen der Partition. Wird verwendet, wenn die Partition von einem Benutzer belegt ist
umount -n /mnt/hda2 Aushängen ohne Eintrag in /etc/mtab. Nützlich, wenn die Datei nur lesbar ist oder nicht genügend Speicherplatz auf der Festplatte vorhanden ist
mount /dev/fd0 /mnt/floppy Diskettenlaufwerk einhängen
mount /dev/cdrom /mnt/cdrom CD oder DVD einhängen
mount /dev/hdc /mnt/cdrecorder CD-R/CD-RW oder DVD-R/DVD-RW(+-) einhängen
mount -o loop file.iso /mnt/cdrom ISO-Abbild einhängen
mount -t vfat /dev/hda5 /mnt/hda5 Dateisystem Windows FAT32 einhängen
mount -t smbfs -o username=user,password=pass//winclient/share /mnt/share Windows-Netzwerkdateisystem (SMB/CIFS) einhängen
mount -o bind /home/user/prg /var/ftp/user Verzeichnis in Verzeichnis "einhängen" (Binden). Ab Kernel-Version 2.4.0 verfügbar. Nützlich z.B. für die Bereitstellung des Inhalts eines Benutzer-Verzeichnisses über FTP, wenn der FTP-Server in einer "Sandbox" (chroot) läuft und Symlinks nicht möglich sind.
Festplattenspeicher
df -h zeigt Informationen über eingehängte Partitionen mit Gesamt-, verfügbarem und verwendetem Speicherplatz an (Anm. des Übersetzers. Der Parameter -h funktioniert nicht in allen *nix-Systemen)
ls -lSr |more listet Dateien und Verzeichnisse rekursiv auf, sortiert nach aufsteigender Größe, und ermöglicht die seitenweise Anzeige
du -sh dir1 zählt und zeigt die Größe des Verzeichnisses 'dir1' an (Anm. des Übersetzers. Der Parameter -h funktioniert nicht in allen *nix-Systemen)
du -sk * | sort -rn zeigt die Größe und Namen von Dateien und Verzeichnissen, sortiert nach Größe
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n zeigt die von RPM-Paketdateien belegte Festplattengröße, sortiert nach Größe (Fedora, Red Hat usw.)
dpkg-query -W -f='${Installed-Size;10}t${Package}n'| sort -k1,1n zeigt die von DEB-Paketdateien belegte Festplattengröße, sortiert nach Größe (Ubuntu, Debian usw.)
Benutzer und Gruppen
groupadd group_name neue Gruppe mit dem Namen group_name erstellen
groupdel group_name Gruppe group_name löschen
groupmod -n new_group_name old_group_name Gruppe old_group_name in new_group_name umbenennen
useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 Benutzer user1 erstellen, Heimatverzeichnis /home/user1 zuweisen, Shell /bin/bash festlegen, in die Gruppe admin aufnehmen und Kommentar "Nome Cognome" hinzufügen
useradd user1 Benutzer user1 erstellen
userdel -r user1 Benutzer user1 und sein Heimatverzeichnis löschen
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 Benutzerattribute ändern
passwd Passwort ändern
passwd user1 Passwort des Benutzers user1 ändern (nur root)
chage -E 2005-12-31 user1 Ablaufdatum des Benutzerkontos user1 festlegen
pwck Korrektheit der System-Dateien für Benutzerkonten prüfen. Es werden die Dateien /etc/passwd und /etc/shadow geprüft
grpck prüft die Korrektheit der System-Dateien für Benutzerkonten. Es wird die Datei /etc/group geprüft
newgrp [-] group_name ändert die primäre Gruppe des aktuellen Benutzers. Wenn "-" angegeben wird, entspricht dies dem Aus- und erneuten Anmelden des Benutzers. Wenn keine Gruppe angegeben wird, wird die primäre Gruppe aus /etc/passwd zugewiesen
Dateiberechtigungen festlegen/ändern
ls -lh Berechtigungen für Dateien und Verzeichnisse im aktuellen Verzeichnis anzeigen
ls /tmp | pr -T5 -W$COLUMNS Inhalt des Verzeichnisses /tmp ausgeben und die Ausgabe in fünf Spalten aufteilen
chmod ugo+rwx directory1 Berechtigungen für das Verzeichnis directory1 hinzufügen ugo(User Group Other)+rwx(Read Write eXecute) - volle Rechte für alle. Ähnlich kann man dies auch mit "chmod 777 directory1" erreichen
chmod go-rwx directory1 Gruppe und anderen allen Zugriff auf das Verzeichnis directory1 entziehen.
chown user1 file1 Benutzer user1 als Eigentümer der Datei file1 festlegen
chown -R user1 directory1 Benutzer user1 rekursiv als Eigentümer des Verzeichnisses directory1 festlegen
chgrp group1 file1 Gruppe als Eigentümer der Datei file1 auf group1 ändern
chown user1:group1 file1 Eigentümer und Gruppe der Datei file1 ändern
find / -perm -u+s ab Root alle Dateien mit gesetztem SUID-Bit finden
chmod u+s /bin/binary_file SUID-Bit für die Datei /bin/binary_file setzen. Dies ermöglicht jedem Benutzer, die Datei mit den Berechtigungen des Dateieigentümers auszuführen.
chmod u-s /bin/binary_file SUID-Bit von der Datei /bin/binary_file entfernen.
chmod g+s /home/public SGID-Bit für das Verzeichnis /home/public setzen.
chmod g-s /home/public SGID-Bit vom Verzeichnis /home/public entfernen.
chmod o+t /home/public STICKY-Bit für das Verzeichnis /home/public setzen. Ermöglicht das Löschen von Dateien nur durch deren Eigentümer
chmod o-t /home/public STICKY-Bit vom Verzeichnis /home/public entfernen
Spezielle Dateiattribute
chattr +a file1 Datei nur im Anhängemodus zum Schreiben öffnen
chattr +c file1 Ermöglicht dem Kernel, den Inhalt der Datei automatisch zu komprimieren/entkomprimieren.
chattr +d file1 Weist das Dienstprogramm dump an, diese Datei während der Sicherung zu ignorieren
chattr +i file1 Macht die Datei unveränderbar: Bearbeitung, Löschung, Verschieben, Erstellen von Links darauf sind nicht möglich.
chattr +s file1 Ermöglicht eine sichere Löschung der Datei. Das gesetzte Attribut s bedeutet, dass bei der Löschung der Datei der von ihr belegte Festplattenspeicher mit Nullen überschrieben wird, was die Wiederherstellung der Daten verhindert.
chattr +S file1 Weist an, dass bei der Speicherung von Änderungen eine Synchronisierung durchgeführt wird, wie beim Ausführen des Befehls sync
chattr +u file1 Dieses Attribut weist darauf hin, dass der Inhalt der Datei bei der Löschung gespeichert wird und der Benutzer ihn bei Bedarf wiederherstellen kann
lsattr Dateiattribute anzeigen
Archivierung und Komprimierung von Dateien
bunzip2 file1.bz2 Datei 'file1.gz' entpacken
gunzip file1.gz
gzip file1 Datei 'file1' komprimieren
bzip2 file1
gzip -9 file1 Datei file1 mit maximaler Komprimierung komprimieren
rar a file1.rar test_file RAR-Archiv 'file1.rar' erstellen und die Datei test_file einschließen
rar a file1.rar file1 file2 dir1 RAR-Archiv 'file1.rar' erstellen und file1, file2 und dir1 einschließen
unrar x file1.rar RAR-Archiv entpacken
tar -cvf archive.tar file1 TAR-Archiv archive.tar erstellen, das die Datei file1 enthält
tar -cvf archive.tar file1 file2 dir1 TAR-Archiv archive.tar erstellen, das die Dateien file1, file2 und das Verzeichnis dir1 enthält
tar -tf archive.tar Inhalt des Archivs anzeigen
tar -xvf archive.tar Archiv entpacken
tar -xvf archive.tar -C /tmp Archiv in /tmp entpacken
tar -cvfj archive.tar.bz2 dir1 Archiv erstellen und mit bzip2 komprimieren(Anm. des Übersetzers. Der Parameter -j funktioniert nicht in allen *nix-Systemen)
tar -xvfj archive.tar.bz2 Archiv entkomprimieren und entpacken(Anm. des Übersetzers. Der Parameter -j funktioniert nicht in allen *nix-Systemen)
tar -cvfz archive.tar.gz dir1 Archiv erstellen und mit gzip komprimieren
tar -xvfz archive.tar.gz Archiv entkomprimieren und entpacken
zip file1.zip file1 komprimiertes ZIP-Archiv erstellen
zip -r file1.zip file1 file2 dir1 komprimiertes ZIP-Archiv erstellen und mehrere Dateien und/oder Verzeichnisse einschließen
unzip file1.zip ZIP-Archiv entkomprimieren und entpacken
RPM-Pakete (Fedora, Red Hat und ähnliche)
rpm -ivh package.rpm Paket mit Ausgabe von Meldungen und Fortschrittsanzeige installieren
rpm -ivh --nodeps package.rpm Paket mit Ausgabe von Meldungen und Fortschrittsanzeige installieren, ohne Abhängigkeitsprüfung
rpm -U package.rpm Paket aktualisieren, ohne Konfigurationsdateien zu ändern; falls das Paket nicht vorhanden ist, wird es installiert
rpm -F package.rpm Paket nur aktualisieren, wenn es installiert ist
rpm -e package_name.rpm Paket löschen
rpm -qa Liste aller im System installierten Pakete anzeigen
rpm -qa | grep httpd unter allen im System installierten Paketen das Paket finden, das "httpd" im Namen enthält
rpm -qi package_name Informationen über ein bestimmtes Paket anzeigen
rpm -qg "System Environment/Daemons" Pakete anzeigen, die zur Paketgruppe gehören
rpm -ql package_name Liste der Dateien anzeigen, die im Paket enthalten sind
rpm -qc package_name Liste der Konfigurationsdateien anzeigen, die im Paket enthalten sind
rpm -q package_name --whatrequires Liste der Pakete anzeigen, die für die Installation eines bestimmten Pakets aufgrund von Abhängigkeiten erforderlich sind
rpm -q package_name --whatprovides von einem RPM-Paket bereitgestellte Fähigkeit anzeigen
rpm -q package_name --scripts Skripte anzeigen, die bei der Installation/Deinstallation des Pakets ausgeführt werden
rpm -q package_name --changelog Versionshistorie des Pakets anzeigen
rpm -qf /etc/httpd/conf/httpd.conf prüfen, zu welchem Paket die angegebene Datei gehört. Vollständiger Pfad und Dateiname sind anzugeben.
rpm -qp package.rpm -l Liste der Dateien anzeigen, die im Paket enthalten sind, aber noch nicht im System installiert wurden
rpm --import /media/cdrom/RPM-GPG-KEY öffentlichen Schlüssel der digitalen Signatur importieren
rpm --checksig package.rpm Paketsignatur prüfen
rpm -qa gpg-pubkey Integrität des installierten Paketinhalts prüfen
rpm -V package_name Größe, Berechtigungen, Typ, Eigentümer, Gruppe, MD5-Summe und Datum der letzten Änderung des Pakets prüfen
rpm -Va Inhalt aller im System installierten Pakete prüfen. Mit Vorsicht ausführen!
rpm -Vp package.rpm Paket prüfen, das noch nicht im System installiert ist
rpm2cpio package.rpm | cpio --extract --make-directories *bin* Dateien aus dem Paket extrahieren, die "bin" im Namen enthalten
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm Paket installieren, das aus dem Quellcode kompiliert wurde
rpmbuild --rebuild package_name.src.rpm Paket aus dem Quellcode erstellen
YUM - Paketaktualisierungswerkzeug (Fedora, RedHat und ähnliche)
yum install package_name Paket herunterladen und installieren
yum update alle im System installierten Pakete aktualisieren
yum update package_name Paket aktualisieren
yum remove package_name Paket löschen
yum list Liste aller im System installierten Pakete anzeigen
yum search package_name Paket im Repository suchen
yum clean packages RPM-Cache leeren, heruntergeladene Pakete löschen
yum clean headers alle Dateiköpfe löschen, die das System zur Auflösung von Abhängigkeiten verwendet
yum clean all RPM-Cache leeren, heruntergeladene Pakete und Kopfzeilen löschen
DEB-Pakete (Debian, Ubuntu und ähnliche)
dpkg -i package.deb Paket installieren / aktualisieren
dpkg -r package_name Paket aus dem System entfernen
dpkg -l alle im System installierten Pakete anzeigen
dpkg -l | grep httpd unter allen im System installierten Paketen das Paket finden, das "httpd" im Namen enthält
dpkg -s package_name Informationen über ein bestimmtes Paket anzeigen
dpkg -L package_name Liste der Dateien anzeigen, die im im System installierten Paket enthalten sind
dpkg --contents package.deb Liste der Dateien anzeigen, die im Paket enthalten sind, das noch nicht im System installiert ist
dpkg -S /bin/ping Paket finden, das die angegebene Datei enthält.
APT - Paketverwaltungswerkzeug (Debian, Ubuntu und ähnliche)
apt-get install package_name Paket installieren / aktualisieren
apt-cdrom install package_name Paket von CD-ROM installieren / aktualisieren
apt-get update aktualisierte Paketlisten abrufen
apt-get upgrade im System installierte Pakete aktualisieren
apt-get remove package_name im System installiertes Paket entfernen, wobei Konfigurationsdateien erhalten bleiben
apt-get purge package_name im System installiertes Paket entfernen, wobei Konfigurationsdateien gelöscht werden
apt-get check Integrität der Abhängigkeiten prüfen
apt-get clean heruntergeladene Paket-Archivdateien löschen
apt-get autoclean alte heruntergeladene Paket-Archivdateien löschen
Dateiinhalte anzeigen
cat file1 Inhalt der Datei file1 auf das Standardausgabegerät ausgeben
tac file1 Inhalt der Datei file1 auf das Standardausgabegerät in umgekehrter Reihenfolge ausgeben (letzte Zeile wird zur ersten usw.)
more file1 seitenweise Ausgabe des Inhalts der Datei file1 auf das Standardausgabegerät
less file1 seitenweise Ausgabe des Inhalts der Datei file1 auf das Standardausgabegerät, jedoch mit der Möglichkeit zum Blättern in beide Richtungen (hoch/runter), Suche im Inhalt usw.
head -2 file1 die ersten zwei Zeilen der Datei file1 auf das Standardausgabegerät ausgeben. Standardmäßig werden zehn Zeilen ausgegeben
tail -2 file1 die letzten zwei Zeilen der Datei file1 auf das Standardausgabegerät ausgeben. Standardmäßig werden zehn Zeilen ausgegeben
tail -f /var/log/messages Inhalt der Datei /var/log/messages auf das Standardausgabegerät ausgeben, sobald Text erscheint.
Textmanipulation
cat file | grep -i "Criteria" > result.txt allgemeine Syntax zur Verarbeitung des Dateiinhalts und Ausgabe des Ergebnisses in eine neue Datei
cat file | grep -i "Criteria" » result.txt allgemeine Syntax zur Verarbeitung des Dateiinhalts und Ausgabe des Ergebnisses in eine vorhandene Datei. Falls die Datei nicht existiert, wird sie erstellt
grep Aug /var/log/messages aus der Datei '/var/log/messages' Zeilen auswählen und auf das Standardausgabegerät ausgeben, die "Aug" enthalten
grep ^Aug /var/log/messages aus der Datei '/var/log/messages' Zeilen auswählen und auf das Standardausgabegerät ausgeben, die mit "Aug" beginnen
grep [0-9] /var/log/messages aus der Datei '/var/log/messages' Zeilen auswählen und auf das Standardausgabegerät ausgeben, die Ziffern enthalten
grep Aug -R /var/log/* Zeilen auswählen und auf das Standardausgabegerät ausgeben, die "Aug" enthalten, in allen Dateien im Verzeichnis /var/log und darunter
sed 's/stringa1/stringa2/g' example.txt in der Datei example.txt "string1" durch "string2" ersetzen, Ergebnis auf das Standardausgabegerät ausgeben.
sed '/^$/d' example.txt leere Zeilen aus der Datei example.txt löschen
sed '/ *#/d; /^$/d' example.txt leere Zeilen und Kommentare aus der Datei example.txt löschen
echo 'test' | tr '[:lower:]' '[:upper:]' Zeichen von Kleinbuchstaben in Großbuchstaben umwandeln
sed -e '1d' result.txt erste Zeile aus der Datei example.txt löschen
sed -n '/string1/p' nur Zeilen anzeigen, die "string1" enthalten
sed -e 's/ *$//' example.txt Leerzeichen am Ende jeder Zeile löschen
sed -e 's/string1//g' example.txt Zeile "string1" aus dem Text löschen, ohne den Rest zu ändern
sed -n '1,8p;5q' example.txt aus der Datei die Zeilen 1 bis 8 nehmen und daraus die ersten fünf ausgeben
sed -n '5p;5q' example.txt fünfte Zeile ausgeben
sed -e 's/0*/0/g' example.txt Folge von Nullen durch eine einzelne Null ersetzen
cat -n file1 Zeilen bei der Ausgabe des Dateiinhalts nummerieren
cat example.txt | awk 'NR%2==1' bei der Ausgabe des Dateiinhalts keine geraden Zeilen der Datei ausgeben
echo a b c | awk '{print $1}' erste Spalte ausgeben. Standardmäßige Trennung durch Leerzeichen oder Tabulatoren
echo a b c | awk '{print $1,$3}' erste und dritte Spalte ausgeben. Standardmäßige Trennung durch Leerzeichen oder Tabulatoren
paste file1 file2 Inhalt von file1 und file2 tabellarisch zusammenführen: Zeile 1 aus file1 = Zeile 1 Spalte 1-n, Zeile 1 aus file2 = Zeile 1 Spalte n+1-m
paste -d '+' file1 file2 Inhalt von file1 und file2 tabellarisch mit dem Trennzeichen "+" zusammenführen
sort file1 file2 Inhalt von zwei Dateien sortieren
sort file1 file2 | uniq Inhalt von zwei Dateien sortieren, ohne Duplikate anzuzeigen
sort file1 file2 | uniq -u Inhalt von zwei Dateien sortieren, nur eindeutige Zeilen anzeigen (Zeilen, die in beiden Dateien vorkommen, werden nicht auf das Standardausgabegerät ausgegeben)
sort file1 file2 | uniq -d Inhalt von zwei Dateien sortieren, nur doppelte Zeilen anzeigen
comm -1 file1 file2 Inhalt von zwei Dateien vergleichen, ohne Zeilen anzuzeigen, die zur Datei 'file1' gehören
comm -2 file1 file2 Inhalt von zwei Dateien vergleichen, ohne Zeilen anzuzeigen, die zur Datei 'file2' gehören
comm -3 file1 file2 Inhalt von zwei Dateien vergleichen, Zeilen entfernen, die in beiden Dateien vorkommen
Konvertierung von Zeichensätzen und Dateiformaten
dos2unix filedos.txt fileunix.txt Datei im Textformat von MSDOS in UNIX konvertieren (Unterschied in den Wagenrücklaufzeichen)
unix2dos fileunix.txt filedos.txt Datei im Textformat von UNIX in MSDOS konvertieren (Unterschied in den Wagenrücklaufzeichen)
recode ..HTML < page.txt > page.html Inhalt der Textdatei page.txt in die HTML-Datei page.html konvertieren
recode -l | more Liste der verfügbaren Formate anzeigen
Dateisystemanalyse
badblocks -v /dev/hda1 Partition hda1 auf Bad Blocks prüfen
fsck /dev/hda1 Integrität des Linux-Dateisystems der Partition hda1 prüfen/wiederherstellen
fsck.ext2 /dev/hda1 Integrität des Dateisystems ext2 der Partition hda1 prüfen/wiederherstellen
e2fsck /dev/hda1
e2fsck -j /dev/hda1 Integrität des Dateisystems ext3 der Partition hda1 prüfen/wiederherstellen, wobei angegeben wird, dass sich das Journal dort befindet
fsck.ext3 /dev/hda1 Integrität des Dateisystems ext3 der Partition hda1 prüfen/wiederherstellen
fsck.vfat /dev/hda1 Integrität des FAT-Dateisystems der Partition hda1 prüfen/wiederherstellen
fsck.msdos /dev/hda1
dosfsck /dev/hda1
Formatieren von Dateisystemen
mkfs /dev/hda1 Linux-Dateisystem auf der Partition hda1 erstellen
mke2fs /dev/hda1 Dateisystem ext2 auf der Partition hda1 erstellen
mke2fs -j /dev/hda1 journalisiertes Dateisystem ext3 auf der Partition hda1 erstellen
mkfs -t vfat 32 -F /dev/hda1 Dateisystem FAT32 auf der Partition hda1 erstellen
fdformat -n /dev/fd0 Formatierung der Diskette ohne Prüfung
mkswap /dev/hda3 Swap-Bereich auf der Partition hda3 erstellen
Swap-Bereich
mkswap /dev/hda3 Swap-Bereich auf der Partition hda3 erstellen
swapon /dev/hda3 Swap-Bereich auf der Partition hda3 aktivieren
swapon /dev/hda2 /dev/hdb3 Swap-Bereiche auf den Partitionen hda2 und hdb3 aktivieren
Sicherungen erstellen (Backup)
dump -0aj -f /tmp/home0.bak /home vollständiges Backup des Verzeichnisses /home in die Datei /tmp/home0.bak erstellen
dump -1aj -f /tmp/home0.bak /home inkrementelles Backup des Verzeichnisses /home in die Datei /tmp/home0.bak erstellen
restore -if /tmp/home0.bak aus dem Backup /tmp/home0.bak wiederherstellen
rsync -rogpav --delete /home /tmp /tmp mit /home synchronisieren
rsync -rogpav -e ssh --delete /home ip_address:/tmp synchronisieren über ein SSH-Tunnel
rsync -az -e ssh --delete ip_addr:/home/public /home/local lokales Verzeichnis mit einem entfernten Verzeichnis über ein SSH-Tunnel mit Komprimierung synchronisieren
rsync -az -e ssh --delete /home/local ip_addr:/home/public entferntes Verzeichnis mit einem lokalen Verzeichnis über ein SSH-Tunnel mit Komprimierung synchronisieren
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'ddof=hda.gz' "Abbild" der lokalen Festplatte in eine Datei auf einem Remote-Computer über ein SSH-Tunnel erstellen
tar -Puf backup.tar /home/user inkrementelles Backup des Verzeichnisses '/home/user' in die Datei backup.tar unter Beibehaltung der Berechtigungen erstellen
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd/home/share/ && tar x -p' Inhalt von /tmp/local über ein SSH-Tunnel auf einen Remote-Computer nach /home/share/ kopieren
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' Inhalt von /home über ein SSH-Tunnel auf einen Remote-Computer nach /home/backup-home kopieren
tar cf - . | (cd /tmp/backup ; tar xf - ) ein Verzeichnis in ein anderes kopieren unter Beibehaltung der Berechtigungen und Links
find /home/user1 -name '*.txt' | \ xargs cp -av --target-directory=/home/backup/--parents in /home/user1 alle Dateien suchen, deren Namen auf '.txt' enden, und sie in ein anderes Verzeichnis kopieren
find /var/log -name '*.log' | tar cv --files-from=- |bzip2 > log.tar.bz2 in /var/log alle Dateien suchen, deren Namen auf '.log' enden, und daraus ein bzip-Archiv erstellen
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 Kopie der MBR (Master Boot Record) von /dev/hda auf die Diskette erstellen
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 MBR von der Diskette auf /dev/hda wiederherstellen
CDROM
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force ein beschreibbares CDROM löschen
mkisofs /dev/cdrom > cd.iso ein ISO-Abbild der CDROM auf der Festplatte erstellen
mkisofs /dev/cdrom | gzip > cd_iso.gz ein komprimiertes ISO-Abbild der CDROM auf der Festplatte erstellen
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd ein ISO-Abbild eines Verzeichnisses erstellen
cdrecord -v dev=/dev/cdrom cd.iso ein ISO-Abbild brennen
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - ein komprimiertes ISO-Abbild brennen
mount -o loop cd.iso /mnt/iso ein ISO-Abbild einhängen
cd-paranoia -B Audio-Tracks von einer CD in WAV-Dateien rippen
cd-paranoia -- "-3" die ersten drei Audio-Tracks von einer CD in WAV-Dateien rippen
cdrecord --scanbus Bus scannen, um den SCSI-Kanal zu identifizieren
Netzwerk (LAN und WiFi)
ifconfig eth0 Konfiguration der Netzwerkschnittstelle eth0 anzeigen
ifup eth0 Schnittstelle eth0 aktivieren (bringen)
ifdown eth0 Schnittstelle eth0 deaktivieren (runternehmen)
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 der Schnittstelle eth0 eine IP-Adresse und eine Subnetzmaske zuweisen
ifconfig eth0 promisc Schnittstelle eth0 in den Promiscuous-Modus versetzen, um Pakete "abzufangen" (Sniffing)
ifconfig eth0 -promisc Promiscuous-Modus auf der Schnittstelle eth0 deaktivieren
dhclient eth0 Schnittstelle eth0 im DHCP-Modus aktivieren.
route -n lokale Routing-Tabelle anzeigen
netstat -rn
route add -net 0/0 gw IP_Gateway Standard-Gateway-IP-Adresse festlegen
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 statischen Route zum Netzwerk 192.168.0.0/16 über das Gateway mit der IP-Adresse 192.168.1.1 hinzufügen
route del 0/0 gw IP_gateway Standard-Gateway-IP-Adresse löschen
echo "1" > /proc/sys/net/ipv4/ip_forward Paketweiterleitung (Forwarding) erlauben
hostname Computername anzeigen
host www.yandex.ru Namen www.yandex.ru des Hosts in eine IP-Adresse und umgekehrt auflösen
host 93.158.134.3
ip link show Status aller Schnittstellen anzeigen
mii-tool eth0 Status und Art der Verbindung für die Schnittstelle eth0 anzeigen
ethtool eth0 zeigt Statistiken der Schnittstelle eth0 an, einschließlich unterstützter und aktueller Verbindungsmodi
netstat -tupn zeigt alle hergestellten Netzwerkverbindungen nach den Protokollen TCP und UDP ohne Auflösung von Namen in IP-Adressen sowie PID und Prozessnamen, die diese Verbindungen bereitstellen
netstat -tupln zeigt alle Netzwerkverbindungen nach den Protokollen TCP und UDP ohne Auflösung von Namen in IP-Adressen sowie PID und Prozessnamen, die Ports abhören
tcpdump tcp port 80 gesamten Verkehr auf TCP-Port 80 (normalerweise HTTP) anzeigen
iwlist scan den Funkkanal nach Verfügbarkeit von Wireless Access Points scannen
iwconfig eth1 Konfiguration der drahtlosen Netzwerkschnittstelle eth1 anzeigen
Microsoft Windows-Netzwerke (SAMBA)
nbtscan ip_addr NetBIOS-Namen auflösen nbtscan ist nicht in allen Systemen standardmäßig installiert, möglicherweise muss es manuell nachinstalliert werden. nmblookup ist im Paket samba enthalten.
nmblookup -A ip_addr
smbclient -L ip_addr/hostname Ressourcen anzeigen, die auf einem Windows-Computer freigegeben sind
smbget -Rr smb://ip_addr/share kann ähnlich wie wget Dateien von Windows-Computern über das SMB-Protokoll abrufen
mount -t smbfs -o username=user,password=pass//winclient/share /mnt/share SMB-Ressource, die auf einem Windows-Computer bereitgestellt wird, in das lokale Dateisystem einhängen
IPTABLES (Firewall)
iptables -t filter -nL alle Regelketten anzeigen
iptables -nL
iptables -t nat -L alle Regelketten in der NAT-Tabelle anzeigen
iptables -t filter -F alle Regelketten in der Filtertabelle löschen
iptables -F
iptables -t nat -F alle Regelketten in der NAT-Tabelle löschen
iptables -t filter -X alle benutzerdefinierten Regelketten in der Filtertabelle löschen
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT eingehende Telnet-Verbindungen erlauben
iptables -t filter -A OUTPUT -p tcp --dport http -j DROP ausgehende HTTP-Verbindungen blockieren
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT "Durchleiten" (Forward) von POP3-Verbindungen erlauben
iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" Protokollierung von Paketen durch den Kernel, die durch die INPUT-Kette laufen, aktivieren und der Meldung das Präfix "DROP INPUT" hinzufügen
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE NAT (Network Address Translation) für ausgehende Pakete auf der Schnittstelle eth0 aktivieren. Zulässig bei Verwendung mit dynamisch zugewiesenen IP-Adressen.
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 \ -j DNAT --to-destination 10.0.0.2:22 Umleitung von Paketen, die an einen Host gerichtet sind, an einen anderen Host
Überwachung und Fehlersuche
top gestartete Prozesse, von ihnen genutzte Ressourcen und andere nützliche Informationen anzeigen (mit automatischer Aktualisierung der Daten)
ps -eafw gestartete Prozesse, von ihnen genutzte Ressourcen und andere nützliche Informationen anzeigen (einmalig)
ps -e -o pid,args --forest PIDs und Prozesse in Baumform ausgeben
pstree Prozessbaum anzeigen
kill -9 98989 Prozess mit der PID 98989 "tot" schlagen (ohne Einhaltung der Datenintegrität)
kill -KILL 98989
kill -TERM 98989 Prozess mit der PID 98989 korrekt beenden
kill -1 98989 Prozess mit der PID 98989 zwingen, die Konfigurationsdatei neu zu lesen
kill -HUP 98989
lsof -p 98989 Liste der Dateien anzeigen, die vom Prozess mit der PID 98989 geöffnet sind
lsof /home/user1 Liste der geöffneten Dateien aus dem Verzeichnis /home/user1 anzeigen
strace -c ls > /dev/null Liste der Systemaufrufe anzeigen, die vom Prozess ls erstellt und empfangen wurden
strace -f -e open ls > /dev/null Bibliotheksaufrufe anzeigen
watch -n1 'cat /proc/interrupts' Interrupts in Echtzeit anzeigen
last reboot Verlauf der Systemneustarts anzeigen
last user1 Verlauf der Anmeldung des Benutzers user1 im System und dessen Verweildauer anzeigen
lsmod geladene Kernel-Module anzeigen
free -m Status des Arbeitsspeichers in Megabyte anzeigen
smartctl -A /dev/hda Status der Festplatte /dev/hda über SMART überwachen
smartctl -i /dev/hda Verfügbarkeit von SMART auf der Festplatte /dev/hda prüfen
tail /var/log/dmesg die letzten zehn Einträge aus dem Kernel-Boot-Log anzeigen
tail /var/log/messages die letzten zehn Einträge aus dem System-Log anzeigen
Andere nützliche Befehle
apropos …keyword Liste von Befehlen anzeigen, die irgendwie mit den Schlüsselwörtern zusammenhängen. Nützlich, wenn man weiß, was ein Programm tut, aber den Befehl nicht remembers
man ping Handbuch für das Programm aufrufen, in diesem Fall - ping
whatis …keyword Beschreibung der Aktionen des angegebenen Programms anzeigen
mkbootdisk --device /dev/fd0 `uname -r` startfähige Diskette erstellen
gpg -c file1 Datei file1 mit GNU Privacy Guard verschlüsseln
gpg file1.gpg Datei file1 mit GNU Privacy Guard entschlüsseln
wget -r www.example.com Inhalt der Website www.example.com rekursiv herunterladen
wget -c www.example.com/file.iso Datei www.example.com/file.iso mit der Möglichkeit zum Anhalten und späteren Fortsetzen herunterladen
echo 'wget -c www.example.com/files.iso' | at 09:00 Download zu einer angegebenen Zeit starten
ldd /usr/bin/ssh Liste der Bibliotheken anzeigen, die für die Arbeit von ssh erforderlich sind
alias hh='history' Alias hh dem Befehl history zuweisen

Der Kernel arbeitet in einem Adressraum. Das bedeutet, dass ein Modul oder Treiber den gesamten Kernel beschädigen kann.
Strg + Alt + F(1-6) wechselt zwischen den virtuellen Konsolen. ttyN – wobei N die Nummer der Konsole ist?
Strg + Alt + F7 wechselt zur grafischen Konsole.
startx startet das X Windows System (Wechsel in den grafischen Modus).
ho -r oder runlevel – zeigt den Runlevel des Betriebssystems an !!!
init n (n von 0 bis 6) startet einen der Runlevels des Betriebssystems, z. B. 3. Das bedeutet, es wird die Datei rc3.d gestartet, die symbolische Links auf Dateien im Verzeichnis init.d enthält.
Der Name des Links kann mit K-Stop oder S-Start beginnen, gefolgt von einer Ziffer für die Startpriorität.
*************
mount /dev/hda4 mnt/hda4 -t data= _writeback, ordered, journal?
Erstellen eines neuen Dateisystems ext3
1. Erstellen einer Partition mit parted oder fdisk
2. Formatieren der Partition mit mkfs
3. Zuweisen einer Label-Bezeichnung zur Partition mit e2label
4. Erstellen des Einhängepunkts mit mkdir
5. Hinzufügen der Partition zur Datei etcfstab
*************
GRUB-Bootloader
Drücken von E – Eintritt in den Editor für Boot-Einträge. Esc – Abbrechen der Änderungen und Rückkehr zum Menü.
Drücken von B (nach der Bearbeitung) – Ausführen der Befehle und Starten des Betriebssystems.
Drücken von C – Eintritt in die Befehlszeilenschnittstelle; Eingabe von Befehlen und Drücken von Enter zur Ausführung.
help all – Ausgabe aller Befehle.
Kernel auswählen und dann A drücken. Am Ende der Zeile eine Leerstelle und die Runlevel-Nummer hinzufügen.
less /boot/grub/grub.conf – Bootloader-Konfigurationsdatei.
**************************
2.1 Superblock – wichtige Informationen über Festplatten?
dumpe2fs /dev/sda1 | grep superblock – Informationen über Superblöcke.
Verwendung eines Ersatz-Superblocks: alle?
1. Starten von einem Live-CD oder der Installations-CD von CentOS.
2. fsck -y -b 8193 /dev/sda1 – Festplattenprüfung; 8193 ist die Nummer des ersten Ersatz-Superblocks.
3. Einhängen des Dateisystems.
3.1 Auf herkömmliche Weise.
3.2 Falls dies nicht gelingt:
mount sb=8193 /dev/sda1 /mnt – Nr. des Ersatz-Superblocks / Gerät / Einhängepunkt.
4. Hinzufügen der Option sb (sb=8193) zu unserem Dateisystem in /etc/fstab.
*********************
Dateiberechtigungen
123 456 789
s t rwx rwx rwx
s – SUID-Bit – 4 (000): Die Datei erhält die Rechte des Dateibesitzers, nicht des Benutzers, der sie ausführt (z. B. das Dienstprogramm passwd). Muss die Ausführungsrechte haben? *** Im Shell werden Dateien mit SUID-Bit rot hervorgehoben.
t – Sticky-Bit – 1 (000)
1/2/3 – Lesen/Schreiben/Ausführen für den Besitzer
4/5/6 – Lesen/Schreiben/Ausführen für die Gruppe des Besitzers
7/8/9 – Lesen/Schreiben/Ausführen für alle anderen
Die Berechtigung zum Lesen wird durch die Ziffer 4 dargestellt, zum Schreiben durch 2, zum Ausführen durch 1.
Wenn alle Berechtigungen erlaubt sind, beträgt die für eine bestimmte Gruppe festzulegende Berechtigungsziffer für die Datei 7.

chmod [Optionen] [Modus] Datei – ändert die Zugriffsrechte. -v – gibt Debug-Informationen aus, -R – rekursiver Modus, ändert die Zugriffsrechte für alle Unterverzeichnisse und Dateien
chmod 4755 test.txt _4 – fügt das SUID-Bit hinzu, 7 – volle Rechte für den Besitzer, 5 und 5 – Lese- und Ausführrechte für Gruppe und Andere. Dieser Befehl wurde auf eine Datei im Home-Verzeichnis (Ordner) von root ausgeführt und gab die Meldung aus: You have new mail in /var/spool/mail/root ?
-rwsr-xr-x root root 1 _muss gelesen werden als rws (s statt x) rx rx, root – Besitzer, root – Gruppe des Besitzers, 1 – Anzahl der Links
Rückgängig: chmod 0755 test.txt oder chmod 755 test.txt – 0 vor 7 wird standardmäßig eingesetzt.
chmod 750 test.txt – 0 setzt den Wert der Rechte auf Null
chmod -R u=rwx,g=rx,o=x myfiles – zweite Methode zum Ändern der Zugriffsrechte für ein Verzeichnis oder eine Datei.
chmod -R u-x,g-x,o-x myfiles – dritte Methode zum Ändern der Zugriffsrechte für ein Verzeichnis oder eine Datei, getrennt für jede Benutzergruppe, wobei a – Besitzer, g – Gruppe des Besitzers, o – alle anderen.
chmod -R a-x myfiles – vierte Methode zum Ändern der Zugriffsrechte für ein Verzeichnis oder eine Datei für alle Benutzer. In den Methoden 3 und 4 können -/+ verwendet werden.
chmod +x script.sh – Ausführrecht für alle Gruppen hinzufügen. Fünfte Methode zum Ändern der Zugriffsrechte.

SGID-Bit – 2 (000) – die Gruppenrechte des Besitzers werden vererbt. Wenn das SGID-Bit für ein Verzeichnis gesetzt ist, übernehmen die darin erstellten Dateien beim Start den Gruppen-Identifikator des Verzeichnisses und nicht die Gruppe, der der Datei-Besitzer angehört.
Ausführung eines Programms mit den Rechten des Gruppenbesitzers? Wie geht das richtig?
SGID-Bit für eine Datei: chmod 2755 test.txt

Sticky-Bit – 1 (000) – wenn es auf ein Verzeichnis gesetzt wird, können Dateien dieses Verzeichnisses nur vom Besitzer dieses Verzeichnisses, vom Besitzer der Datei oder von root gelöscht und umbenannt werden. Nur das Schreibrecht für dieses Verzeichnis zu haben, reicht nicht aus.
chmod 1755 test.txt

chown [Optionen] [Besitzer]:[Gruppe] test.txt – ändert den Besitzer der Datei und die Gruppe. -v – gibt Debug-Informationen aus, -R – rekursiver Modus.
[Besitzer]:[Gruppe] – das sind der neue Besitzer und die neue Gruppe.
chown -R user1:user1 * – ändert den Besitzer und die Gruppe für alle Dateien und Unterverzeichnisse des aktuellen Verzeichnisses. Der Besitzer eines Unterverzeichnisses kann nicht geändert werden. Wer hat die Rechte, den Besitzer einer Datei oder eines Verzeichnisses zu ändern?
chgrp group1 file1 – ändert die Gruppe.

umask XXXX – ändert (legt fest) den Zugriffsmodus, definiert die Zugriffsrechte für neu erstellte Verzeichnisse und Dateien!!!
Der umask-Wert wird von der Zahl 777 für Verzeichnisse und von der Zahl 666 für Dateien subtrahiert.
umask – zeigt an, welcher umask im System verwendet wird, bei mir: 0022.
Neue Verzeichnisse: 0777 - 0022 = 0755. Neue Dateien 0666 - 0022 = 0644

umask 0 1 2 3 4 5 6 7
Zugriffsmaske r w x r w - r - x r - - - w x - w - - - x - - -

mount [Optionen] [Gerät] [Einhängepunkt] – Einhängen von Dateien
umount [Optionen] [Gerät] ODER [Einhängepunkt] -f – erzwingt das Aushängen
mount – Liste der eingehängten Dateisysteme
Beim Einhängen können Berechtigungen festgelegt werden. Man kann das gesamte Dateisystem nur schreibgeschützt einhängen. Dies überschreibt zuvor zugewiesene Berechtigungen.
CD einhängen: mount -t iso9660 /dev/cdrom /mnt – Dateisystemtyp wird angegeben (für CDs nicht zwingend erforderlich)
Image einhängen: mount -o loop -t iso9660 image.iso /mnt/iso – nicht gelungen?
iso9660 zum Einhängen von Unix-Systemen und CD/DVDs; mount -t ext3 /dev/sda4 /disk; mount erstellt keine Partitionen.
nfs zum Einhängen von Netzwerk-Dateisystemen
vfat, ntfs zum Einhängen von Windows-Partitionen
ufs für Solaris
In der Datei /etc/fstab ist eine Liste von Dateisystemen für das automatische Einhängen beim Start des Betriebssystems angegeben.
[Gerät] [Einhängepunkt] [Dateisystemtyp] [Optionen] [dump-Flag (veraltet)] [fsck-Flag (0=nicht prüfen, 1=prüfen, 2=prüfen nach Prüfung von 1)]
cat /etc/fstab –
Gerätenamen:
hdc – Festplatten
scsi –

cat /etc/mtab (mount) – Anzeige von Informationen über eingehängte Dateisysteme. Wird manuell nicht bearbeitet.
/etc/filesystems – Liste möglicher Dateisysteme. Wird vom Befehl mount zur automatischen Vervollständigung verwendet, wenn der Schalter -t mit einem Dateisystemtyp fehlt.

Das Dateisystem proc existiert nur im RAM. Es dient als Schnittstelle zu den Datenstrukturen des Kernels. Dies ist ein virtuelles Dateisystem, das beim Systemstart in den Arbeitsspeicher geladen wird und keinen Platz auf der Festplatte belegt. Viele Dateien darin können geändert werden, wodurch die Kernel-Parameter in Echtzeit angepasst werden können.
cat /proc/cpuinfo, meminfo, mounts, devices, filesystems, modules, version, cmdline – Liste der beim Booten an den Kernel übergebenen Parameter. Eine gute Informationsquelle über das System!!!

Umgang mit Dateien:
Erstellen Sie eine Textdatei mit einem Texteditor wie vi/vim, durch Umleitung der Ausgabe von echo oder cat.
Editor vim:
i – Texteingabe. Esc – nach der Eingabe Rückkehr in den Normalmodus.
: – zur Eingabe von Befehlen zur Dateibearbeitung, Konfigurationsänderungen und anderen Befehlen.
Nun können Sie eingeben: w – zum Speichern der Datei und q – zum Verlassen des Editors. q! – Verlassen ohne Speichern.
/ – Suche
touch test.txt – Aktualisiert die Zugriffszeit einer zuvor erstellten Datei (erstellt eine neue Datei im aktuellen Verzeichnis). Standardmäßig wird eine Datei mit den Berechtigungen 644 erstellt. Üblicherweise werden diese auf 775 oder 755 geändert.
touch 's probelom'.txt – Erstellt eine Datei mit einem Leerzeichen im Namen.

cp [Optionen] [Quelle] [Ziel] – Kopieren einer Datei oder eines Verzeichnisses.
cp test.txt test1.txt – Erstellt test1 als Kopie von test.txt; cp /etc/test.txt ~ – Kopiert test.txt in das Home-Verzeichnis.
cp -r /etc/ /root/dok – Kopiert den Inhalt des Verzeichnisses /etc/ in das neu erstellte Verzeichnis /root/dok. Es ist nicht möglich, gleichzeitig eine Datei zu kopieren und ein Verzeichnis zu erstellen; nur der Inhalt des Verzeichnisses wird kopiert.

mv [Optionen] [Quelle] [Ziel] – Verschieben von Dateien
mv file.txt /tmp/ – Verschiebt file.txt nach /tmp/, ohne den Namen zu ändern.
mv /tmp/file.txt ~/file2.txt – Verschiebt file.txt und benennt es in file2.txt um.

Ein symbolischer Link verweist auf eine Datei, ein harter Link auf den Inode der Datei.
ln [Optionen] [Ziel] [Name des Links] – Erstellen von Links zwischen Dateien.
ln -s file.txt lnk – Erstellt einen symbolischen (weichen) Link lnk (über -s). Anstelle des Dateipfads kann ein Alias angegeben werden, der auf die Datei verweist.
ln file2.txt file.txt – Erstellt einen harten Link – verweist auf den Inode der Datei.
unlink lnk – Löschen eines symbolischen Links.

cat – Anzeige, less – seiten- oder zeilenweiser Output, q – Beenden, Shift + PgUp/PgDn – Navigation.
cat test.txt test1.txt – Ausgabe des Inhalts von 2 Dateien auf dem Bildschirm.
cat test.txt test1.txt > test2.txt – Zusammenführung von Dateien zu einer einzigen.
cat test1.txt > test2.txt – Ersetzen des Inhalts der Datei test2 durch den Inhalt der Datei test1.
cat test1.txt >> test2.txt – Anhängen des Inhalts der Datei test1 an den Inhalt der Datei test2.
cat - >> test1.txt – Hinzufügen von Daten direkt aus der Shell zur Datei test1. Strg + C – Änderungen speichern.

head -n 20 test.txt – Ausgabe der ersten 20 Zeilen der Datei (Standardmäßig 10 Zeilen).
tail -n 20 test.txt – Ausgabe der letzten 20 Zeilen der Datei (Standardmäßig 10 Zeilen).
nl test.txt – Ausgabe der Datei mit Zeilennummerierung.

df [Optionen] [Datei] – Statistik zur Nutzung des Dateisystems. Man kann df, df -h oder df -h /dev/sda1 verwenden.
du [Optionen] [Datei] – Statistik zum Festplattenspeicherplatz. du -hs /usr/share – Ausgabe der Größe des Verzeichnisses /usr/share.
-h – stellt die Statistik in einer für Menschen lesbaren Format dar – MB usw. -s – summiert die Ergebnisse der Unterverzeichnisse und der darin enthaltenen Dateien.

echo [Optionen] [Zeichenkette] – Anzeige einer Textzeichenkette. echo -n 'blablabla' – zeigt blablabla in derselben Zeile an.
echo 'blablabla' – zeigt blablabla in einer neuen Zeile an.
echo 'blablabla' > file.txt – Ersetzen des Dateiinhalts, echo 'blablabla' >> file.txt – Anhängen an den Dateiinhalt.

wc [Optionen] [Datei] – Datei-Statistik !!!
-c – Anzahl der Bytes in der Datei, -m – Anzahl der Zeichen in der Datei, -l – Anzahl der Zeilen in der Datei, -L – Länge der längsten Zeile
-w – Anzahl der Wörter in der Datei.

find [Suchpfad] [Suchoption] [Wert] [Aktionsoption] – Suche nach Dateien oder Verzeichnissen.
-name – Name der zu findenden Datei oder des zu findenden Verzeichnisses
-type – Typ des Objekts: f – reguläre Datei, d – Verzeichnis, b – Blockgerät, c – Zeichengerät, p – benannter Kanal, l – symbolischer Link, s – Socket,
-size – Dateigröße als Suchkriterium verwenden
-mtime – Änderungsdatum
-ctime – Zeitpunkt der letzten Änderung der Dateiattribute. Was ist der Unterschied zwischen mtime und ctime?
-atime – Zeitpunkt des letzten Zugriffs auf die Datei touch?
-perm 777 – mit Zugriffsrechten 777
-print – einfach den vollständigen Pfadnamen der Datei ausgeben
-exec – einen bestimmten Befehl für die gefundenen Objekte ausführen
find / -name pab -type d
find /tmp/ -name core -type f -print | xargs /bin/rm –f – Suche nach einer Datei, Ausgabe auf dem Bildschirm mit print, und Übergabe des Ergebnisses an den Befehl rm als Argument mittels xargs.
find /etc/ -perm 777 -type f – Suche nach Dateien mit Rechten 777 im Verzeichnis etc.
find /etc/ -name pablish -exec rm -rf {} \; – Ausführung des Befehls rm -rf für die gefundenen Objekte. Anstelle von {} wird das gefundene Ergebnis als Argument eingesetzt.

F4 - Datei öffnen
Arbeiten mit Verzeichnissen:
mkdir - Erstellen, ls - Anzeigen, mv - Umbenennen/Verschieben, rm -rf - Löschen belegter Verzeichnisse, rmdir - Löschen leerer Verzeichnisse !!!
mkdir –p ~/test/cda/blabla _100% Unterverzeichnisse im Home-Verzeichnis erstellen
mkdir -p /root/dok/dir2{dir1,dir2,dir3} – Erstellen der Verzeichnisstruktur dok/dir2 mit 3 Abschnitten dir1-3
«.» - aktuelles Verzeichnis, «..» - übergeordnetes Verzeichnis, für die Root «.» = «..»
mkdir -m 700 dir2 - explizite Festlegung der Rechte für das neue Verzeichnis
rm -rf* - Löschen des gesamten Inhalts der aktuellen Partition,
wobei -r - rekursiver Modus, -f - Deaktivierung der Bestätigungsabfragen
rmdir ~/test _Löschen des leeren Unterverzeichnisses im Home-Verzeichnis
mknod _Erstellen von byteorientierten Geräten - Drucker, Modems rm _delet?
mknod _Erstellen von blockorientierten Geräten - Festplatte?
mknod _Erstellen von benannten Pipes rm _delet?
Sockets können mit rm gelöscht werden

ls - Ausgabe des Verzeichnisinhalts.
ls -lhR /etc/ | less - Ausgabe über Pipe an den Befehl less weiterleiten
-a - alle, einschließlich versteckter Dateien (beginnen mit Punkt), -h - Dateigröße, -l - alle Informationen, -i - Inodes (Index-Deskriptoren), -R - Informationen zu allen Unterverzeichnissen -t - Sortierung nach Zeit, /*.txt - Suche nach Muster
Man ls - Hilfe.
q - Beenden, Pg Up, Pg Dn - Navigation. / - Sucheingabe, n - nach unten, N - nach oben
ls ../.. _Anzeige zwei Ebenen nach oben, ls ../man _im übergeordneten Verzeichnis das Verzeichnis man finden
ls -l /dev/sda = file /dev/sda, ls –l /root /tmp /usr … - Ausgabe mehrerer Dateien
ls –l /etc/*/*.conf - Suche nach Erweiterung, «überspringend» 1 Ebene
ls -l /etc/[^a-w]*.conf - sucht Verzeichnisse nicht im Bereich a-w mit der Erweiterung conf.
ls –ld - Rechte für das aktuelle Verzeichnis.
cd – change directory - Verzeichniswechsel
cd /usr/share/doc - Wechsel über absoluten Pfad
cd - _ins vorherige Verzeichnis, cd .. _eine Ebene nach oben, cd ~ _ins Home-Verzeichnis,
cd ~/myfiles - Wechsel von überall in das neu erstellte Unterverzeichnis des Home-Verzeichnisses.

grep [Optionen] Muster [Pfad zur Suchdatei] - Suche nach Muster.
rpm -qa | grep chk - Suche nach chk in der Ausgabe aller im System installierten Pakete.

/dev/null - die sogenannte „Black Hole“, wird verwendet, um unerwünschte Programmausgaben zu absorbieren
command > /dev/nul 2>&1 - Weiterleitung aller Fehler nach /dev/null.
/dev/zero - kann zur Erstellung einer Datei mit der gewünschten Größe verwendet werden
dd if=/dev/zero of=file.iso bs=1024 count=1024 - Erstellen einer ISO-Datei mit 1 MB.
/dev/random, /dev/urandom - werden von Skripten zur Generierung zufälliger Zahlen verwendet.

BASH:
# - Eingabeaufforderung mit Administratorrechten
$ - Eingabeaufforderung eines normalen Benutzers - kann im Home-Verzeichnis ohne Auswirkungen auf das Gesamtsystem arbeiten

Ctrl + C - aktuellen Prozess unterbrechen (Signal SIGINT)
Ctrl + D - Beenden des Shell-Interpreters
Ctrl + L - Bildschirm löschen
Ctrl + Z - Prozess in den Hintergrundmodus verschieben
Alt + D - alle Zeichen von der aktuellen Position bis zum Ende des Wortes löschen
Alt + R - gesamte Zeile löschen
Doppeltes TAB - alle verfügbaren Befehle
Esc + D - vom Cursor bis zum Ende des Wortes löschen

echo $BASH_VERSION - BASH-Version. $ - Variablenzeichen, d. h. Ausgabe der Variable BASH_VERSION.
echo $BASH - Speicherort von BASH

Format der Befehle: Befehlsname [Flags/Optionen] [Argumente]
./name_script.sh – Starten des Skripts aus dem Home-Verzeichnis
Konfigurationsdateien für BASH
1. Lokale – befinden sich in den Home-Verzeichnissen der Systembenutzer und haben Vorrang vor den globalen.
.bash_logout – Skript, das beim Abmelden vom System ausgeführt wird
.bash_history – Datei mit der Befehlshistorie, die nach dem Verlassen des Systems durch den Benutzer in die Datei gespeichert wird. Kann so konfiguriert werden, dass sie sofort?
.bash_profile – Skript, das bei Ihrer Anmeldung am System ausgeführt wird (in einigen Systemen wird bashlogin verwendet)
.bashrc – Skript, das jedes Mal ausgeführt wird, wenn eine neue Shell geöffnet wird. Es wird ausgeführt, sowie alle darin aufgeführten Befehle.
2. Globale:
/etc/profile
/etc/bashrc

history – Anzeigen der Befehlshistorie. Die Anzahl der Zeilen wird durch die Variable echo $HISTSIZE festgelegt, standardmäßig 1000 Zeilen.
history N – zeigt die letzten N Zeilen an.
history -d N – löscht Zeile N.
!! – führt den zuletzt eingegebenen Befehl aus
!N – führt Befehl N aus
!string – der letzte Befehl, der mit der Zeichenkette string beginnt

Umlenkung von Eingabe/Ausgabe.
Dateideskriptor – eine nicht-negative ganze Zahl, die vom Betriebssystem einer vom Prozess geöffneten Datei zugewiesen wird. Im System sind ständig 3 Dateideskriptoren geöffnet.

Nummer Name Beschreibung Kommentar
0 stdin Standard-Eingabe – Eingabe von Daten über die Tastatur, wird von der Tastatur bedient
1 stdout Standard-Ausgabe – Ausgabe auf den Monitorbildschirm, wird vom Monitor bedient
2 stderr Wird zur Ausgabe von Fehlermeldungen verwendet

cat file1 file3 2>err_file – Fehler beim Ausgeben der nicht existierenden Datei file3 wird in die neu erstellte Datei err_file umgeleitet. 2 steht für stderr.
cat < /etc/resolv.conf – Umlenkung aus einer Datei.
cat > file, dann Enter drücken und von der neuen Zeile aus Text eingeben. Beenden der Eingabe mit Strg + c. Der eingegebene Text wurde zur neu erstellten Datei file hinzugefügt.
date > date.txt – Bei der Umlenkung in eine Datei werden vorhandene Daten überschrieben.
date >> date.txt – Bei der Umlenkung in eine Datei werden vorhandene Daten angehängt.
vi <(ls /etc) – Umlenkung des Verzeichnisinhalts etc. in einen Texteditor. Unter welchem Namen soll die Ausgabe gespeichert werden?
echo -e "'ls -l /etc/[^a-w]*.conf'\n" – sucht nach Verzeichnissen, die nicht mit a-w beginnen und die Erweiterung conf haben. Funktioniert nicht??? '- ?
Mögliche Umlenkungen:

Von Wohin
stdout Datei
stdout Stderr
stdout und stderr Stdout
stdout und stderr Stderr
stdout und stderr Datei
stderr Datei
stderr Stdout
Pipes verbinden den Standardausgang eines Befehls mit dem Eingang eines anderen und werden durch | dargestellt:
ls /usr/share | wc -l – Zählt die Anzahl der Zeilen im Verzeichnis

Builtin in Bash integrierte Befehle. enable (enable -a) – zeigt alle an (gibt eine Liste der Befehle aus)
rpm -qa | grep hist – sucht nach hist in den Systempaketen, gibt es nicht, da der Befehl history in Bash integriert ist.
Beim Start wird zunächst der Builtin-Befehl ausgeführt, und erst danach erfolgt die Suche in der Variable $PATH
enable -n pwd – deaktiviert den Builtin-Befehl pwd. Danach wird der Systembefehl pwd ausgeführt, der sich in /bin/pwd befindet
enable -n – Liste der deaktivierten Builtin-Befehle

Variablen
Elternprozess > Kindprozess > Kindprozess usw.
Prozesse können Informationen über Variablen sequenziell von einem höheren auf ein niedrigeres Niveau vom Elternprozess zu den Kindprozessen weitergeben, aber nicht umgekehrt. Ein Kindprozess kann nichts an den Elternprozess übermitteln.
Value=10 – Erstellen einer Variable und Zuweisen ihres Werts. Die Variable ist nur in der aktuellen Sitzung verfügbar.
Export Value=10 – Die Variable kann nun von anderen Programmen verwendet werden.
Unset value – Löschen der Variable
env – Anzeigen der Umgebungsvariablen (exportierte). Hier sehen wir sie erst nach der Ausführung des Befehls: Export Value
typeset – Anzeigen der Umgebungsvariablen, einschließlich der vom Benutzer erstellten.
Vim script.sh, das Skript selbst:
#!/bin/bash
Echo $value
./script.sh – Ausführung des Skripts im Home-Verzeichnis von root.
Die Shell ist der Elternprozess für das Skript. Wir konnten ihm erlauben, die Variable zu verwenden, indem wir sie exportiert haben. Oder wir haben es untersagt, indem wir sie nicht exportiert haben.
Häufig verwendete Variablen: Anzeigen mit echo $
$HOSTNAME – Hostname
$Shell – Name des Kommando-Interpreters
$USER – Name des Benutzers, der sich im System angemeldet hat
$PATH – Liste der Verzeichnisse des Betriebssystems, in denen nach dem Befehl gesucht wird, wenn wir ihn in der Konsole eingeben. Die Suche erfolgt sequenziell durch die Verzeichnisse bis zum ersten Treffer.
$PWD – aktuelles Arbeitsverzeichnis
$HOME – aktuelles Benutzer-Verzeichnis
$UID – numerischer Identifikator des aktuellen Benutzers
$# – Anzahl der übergebenen Argumente
echo $PATH – Variable, die eine Liste von Verzeichnissen im Betriebssystem speichert

Lokale Variablen.
$0 – enthält den Namen der ausgeführten Datei
$1 – erstes Argument
$2 – zweites Argument
$PS1 – die Eingabeaufforderung der Befehlszeile

Vim script.sh, das Skript selbst:
#!/bin/bash
Echo “first arg” - $0
Echo “second arg” - $1
…
Echo “10 arg” - ${10} – Ab dem 10. Argument müssen diese in Klammern angegeben werden.
./script.sh first_arg second_arg – Übergabe des 1. und 2. Arguments an das Skript

Nützliche Befehle:
cat /etc/passwd – Ausgabe der Benutzerliste
pwd – Anzeigen des Arbeitsverzeichnisses. pwd [-LP]
ps aux | grep mingetty – Alle Systemprozesse finden und nur diejenigen anzeigen, die das Wort „mingetty“ enthalten
whoami – gibt den aktuellen Benutzernamen zurück, unter dem der Benutzer arbeitet.
netstat -nr – für die Netzwerkanalyse
su user1 – Wechsel zu einem anderen Benutzer. Die Frage ist, in welchem Fall es nach dem Wechsel zu einem normalen Benutzer sinnvoll ist, den Befehl cd ~ auszuführen?
exit – Rückkehr zur Root-Kommandozeile
useradd – Benutzer hinzufügen – Befehl nicht gefunden bei der Eingabe vor startx?
Frage sudo useradd PPetrov – Fehler tritt erst nach Eingabe des angeforderten Passworts auf?
#passwd Uliashov – Ändern des Passworts von root aus auf ein beliebiges
$passwd Ivanov – Ändern des Passworts vom Benutzer aus entsprechend den Sicherheitskriterien.
date – Systemdatum und -zeit anzeigen
env – Anzeigen der Umgebungsvariablen (exportierte)
typeset – Anzeigen der Umgebungsvariablen, einschließlich der vom Benutzer erstellten.
df –h – Auslastung des Speicherplatzes
rm mod pcspkr – Entladen des Kernel-Treibers aus dem Arbeitsspeicher
modprobe pcspkr
lsmod – Liste der Module
modinfo pcspkr – Ausgabe von Informationen über das Modul

Vorlesung Nr. 4

In jedem Verzeichnis gibt es 2 Links. Das Hinzufügen jedes Unterverzeichnisses fügt +1 Link hinzu.
Manche deaktivieren Swop, um ständiges Zucken der Festplatten zu vermeiden.
fdisk – l – Konfiguration der Festplatte.
free – Statistik zum Arbeitsspeicher
vnc viewer 10.95.4.229
DOS-System erlaubt die Erstellung von 3 Partitionen
Prymary - normal
Extendet – erweitert, darin kann man eine logische Partition erstellen
Von 1 bis 4 Partition ist Prymary oder Extendet. Ab 5 – logisch
swapon –a/ swapoff –a – Ein-/Ausschalten des Swap
etoolabel ???
partprobe?
Viewer vnc herunterladen
mkswap – ???
mkfs hdc1(2-6)
Wenn man eine Partition in einen neuen Ordner einbindet, werden die in diesem Ordner erstellten Dateien nicht in diesem Ordner, sondern in der eingebundenen Partition gespeichert.

1 free
2 cat /proc/swaps
3 swapoff –a /dev/mapper/VolGroup00-LogVol01 -Pfad aus Pkt.2
4 mkfs /dev/mapper/VolGroup00-LogVol01
5 mkdir /novyi
6 mount /dev/mapper/VolGroup00-LogVol01 /novyi
7 Ordner und Dateien im Ordner – Punkt der Einbindung erstellen
8 umount
9 mkswap /dev/mapper/VolGroup00-LogVol01 Gerät partitioniert
10 swapon –a

alias ‘fuck’ = ‘init 0’ nicht tun
Dateisysteme (mount) kann nur root einbinden.
Man kann ein entferntes Dateisystem z.B. für die Dauer eines Backups einbinden.
In etc/fstab kann man einem Benutzer Rechte zum Einbinden eines bestimmten Ordners zuweisen.

Lektion Nr. 6

LVM – Logical Volume Manager – Beschreibung im Internet ansehen.
LV > VG – Gruppe > PV – hd1, …physische Festplatten werden zu einer Gruppe zusammengefasst. Oder umgekehrt, eine Festplatte wird in mehrere Volumes aufgeteilt???. Möglicher Leistungsverlust ~ 5%.
vgs, pvs, lvs
Aufgabe: ein logisches Volume erhalten. ??????????
pvcreate /dev/hdc5
PV
VG
Vgcreate VG1 /dev/hdc5 - Erstellen der Gruppe
Lvcreate –L 100M –n DataBase VG1 - Erstellen des logischen Volumes
Ls /dev/VG1/DataBase - ansehen.
Machen wir:
1 free
2 cat /proc/swaps
3 swapoff –a /dev/mapper/VolGroup00-LogVol01 -Pfad aus Pkt.2 - getrennt
4 lvremove /dev/mapper/VolGroup00-LogVol01 - gelöscht
5 cat /proc/swaps
6 vgs – zeigt freien Speicherplatz free
7 lvcreate –L 100M –n MYVOL1 VolGroup00
8 mkfs /dev/VolGroup00/MYVOL1 – Formatierung
8 mount /dev/mapper/VolGroup00-MYVOL2 /novyi oder mount /dev/VolGroup00/MYVOL1 /novyi
ls –l /Dev/VolGroup00 – Link zu dev/mapper/Vol…
Man kann einen Momentaufnahme des Partitionszustands erstellen:
lvcreate –s /dev//VolGroup00/MYVOL1 –n SNAP_MYVOL1 –L 100M - die Momentaufnahme ist ebenfalls eine neue Partition. Man kann sie als Partition an den Einhängepunkt (mnt) binden, aber wenn man darin eine Datei erstellt, wird sie nicht in der Momentaufnahme gespeichert
Beim Erstellen von Dateien im Einhängepunkt zeigt lvs Änderungen der Momentaufnahme-Partition an
Vor der Änderung der Daten wird deren Historie in den Snapshot geschrieben
Der Snapshot wird in derselben Volume-Gruppe erstellt.
Snapshot nur zum Lesen erstellen:
lvcreate –p r –s /dev//VolGroup00/MYVOL1 –n SNAP_MYVOL1 –L 100M – verhindert das Schreiben im Einhängepunkt.
Befehle:
Ctrl + r + gesuchten Text eingeben
Ctrl + u – gesamten Ausgabe löschen (Fehler bei der Passworteingabe)
Ctrl + W – nach Wörtern löschen
Ctrl + L – Bildschirm löschen???
Alt + . – letzten Parameter anzeigen
Ctrl + S – Bildschirm sperren. Ctrl + Q – entsperren

 

Artikel stammt von hier

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.