-
Aufbau einer Kommandozeile
- Aus Sicht der Shell (bash) sind alles Argumente
- Aus Sicht eines Kommandos sind alles dem Kommonado übergebene Parameter - Trennung der Elemente einer CMD: Space, Tabulator, Newline
- Jobverwaltung der Bash: '&', STRG+Z, fg, bg, nohup
-
Hilfsmechanismen
- History
- Autovervollständigung (TAB)
- Kommandozeilen-Editor
- Scrollfunktion mit Shift + Bild-nach-oben/-unten -
Umgebung (Einvironment)
- Systemweite Konfiguration: '/etc/profiles'
- Benutzerabhängige Konf.: Dateien im Heimatverzeichnis wie '.bashrc' -
Umgebungsvariablen
- PATH (Suchpfad für ausführbare Kommandos
- DISPLAY (Darstellung von X-Clients)
- HISTSIZE (maximale Anzahl der zu speichernden Kommandos) -
Reihenfolge der Ausführung von Argumenten einer Kommandozeile
- Shell-build-ins (alias) werden vor externen Kommandos ausgeführt (alias rm='rm -i')
- SuSE: rpm, Frontend: yast[2]
- RedHat: rpm, Frontends: yum, redhat-conf ig-packages (grafisch)
- Debian: Format: deb, Werkzeuge: dpkg, dselect, apt-get, aptitude (Nicht bei Sidux), grafisch: synaptic, kpackage
- offene Repositories verwenden, z.B SuSE: Packman-Archiv
-
Quellcode = DIE CHANCE VON OPEN SOURCE
- http://freshmeat.net
- http://sourceforge.net
- http://kernel.org (Download Vanilla-Kernel = Ur-Kernelquellen von Linus Torwalds)
-
Prozesse finden
- 'ps aux | grep X'
- 'pgrep X' (Augabe der PID für scripting)
- 'pstree' -
Prozesse beenden
- 'kill PID'
- 'kill -9 PID' (harte Methode)
- 'killall Prozessname' (BSP: 'killall mozilla-firefox')
- 'pkill Prozessnamensteil' (BSP 'pkill firefo') -
Prozessmonitor
- 'top'
- KDE: STRG + ESC (Kommado: 'ksysguard')
- echo (Kopiert eine Textzeile von STDIN auf STDOUT)
-
cp (Kopiert komplette Dateien oder Verzeichnisbäume)
- BSP: cp /etc/hosts ~
- BSP als Root: cp -r /etc ~/etc-backup`date +%F` - cd (Change Directory)
- ls (listing content), Optionen: -F, -l, -a, -t, -u, -c, -r, -R, -S, -i
- mv (move = Umbenennen bzw. Verschieben), ACHTUNG: es gibt keinen Schalter '-r', es arbeitet immer rekursiv!
-
mkdir (Make Directory), wichtige Schalter: '-p' --> nicht vorhandene Parent-Directories mit erzeugen,
'-m' --> Rechtevergabe möglich wie mit 'chmod' -
rm (remove), Löschen von Dateien und mit dem Schalter '-r' auch von ganzen Vertzeichnisstrukturen
(Löscht nicht automatisch die Dot-Files mit, explizite Angabe z.B. von '.*' erforderlich)
- mount /dev/sdb /media/usb-stick
- mount -t nfs 192.168.6.200:/home/pub /media/doz
- mount -t cifs //192.168.6.200/free4all /media/free
b) automatisch (in der /etc/fstab)
- /dev/sdb /media/usb-stick vfat noauto,user,umask=0000 0 0
- //192.168.6.200/free4all /media/free cifs noauto,user,umask=0000 0 0
- TEST: 'reboot', mount -a, 'mount /media/free'
-
fsck (file system check), speziell bei ext2 erfordelich
- Beim Booten automatischer Reparaturversuch: 'fsck -a /dev/sda'
- Wenn das fehlschlägt: 'fsck -f /dev/sda' (-f = force) - debugfs (Gelöschte Dateien wiederherstellen)
- tune2fs
- badblocks
- chntpw (NT-Passwörten neu setzen)
- foremost (Wiederherstellung geloschter Dateien)
- ext3grep (Wiederherstellung geloschter Dateien mitsamt ihrer Namen)
- testdisk (Wiederhelstellung defekter Partitionen)
-
chown (Change Owner) - ein Kommando nur für Superuser
- Syntax: chown [-R] benutzername[.gruppenname] datei[en]
- BSP1: chown susi /home/susi/*.txt
- BSP2: chown -R susi /home/susi
- BSP3: chown -R susi.susi /home/susi (Bei debianartigen Distributionen wird
eine gleichnamige, separate Gruppe verwendet) -
chmod (Change Modus) - ein Kommando für alle
- Syntax 1: chmod [-R] augo[+|-]rwx datei[en]
- BSP1: chmod a+x mein-script.sh (In Kurzform: chmod +x mein-skript.sh)
- BSP2: chmod -R o-rx mein-verzeichnis (Für Others die Rechte 'read' und 'execute' entfernen)
- Syntax 2: chmod [-R] Oktalmode datei[en]
- BSP1: chmod 440 config-datei (Nur 'Lesen' für 'User' und 'Group')
- BSP2: chmod -R 700 /opt/mein-office
- BSP3: chmod 1777 /srv/austausch
-
Kommandos
- ifconfig
- route
- ip -
Konfigdateien
- SuSE: /etc/sysconfig/network/ifcfg-eth-id-00:30:05:b9:d1:63
- Debian: /etc/network/interfaces
- Allg. Namensauflösung: /etc/resolv.conf
- Allg. Reihenfolge der Namensauflösung: /etc/host.conf, /etc/nsswitch.conf
- Allg. statische Namensauflösung: /etc/hosts
- Allg. Definition von Diensten: /etc/services
- Allg TCP-Wrapper (tcpd): /etc/hosts.allow, /etc/hosts.deny
- Asymmetrisches System: Server exportiert (nfsd) <-- Client importiert (via /etc/fstab)
-
Server
- Konfig.: /etc/exports
- Daemons: portmap, lockd, mountd, nfsd (Bei SuSE über Skript /etc/init.d/nfsserver, bzw. rcnfsserver) - Keine Benutzerauthentifizierung über Benutzername/Passwort-Paar, sondern über einfache Übermittlung der UID, passt sie einem existierenden Benutzer auf dem Server, wird ihm entsprechend Zugang gewährt, passt sie nicht , wird er i.d.R. auf "nobody" gesquashed.
-
Fehlersuche
- Läuft der Portmapper auf allen beteiligten Rechnern?
---> rpcinfo -p [HOST]
- Was wird vom Server exportiert?
---> showmount -e HOST - man-Pages: nfs, exports, mount
-
Mounten eines NFS-Exportes unter Puppy-Linux:
'mount -t nfs -o rw,nolock 192.168.6.200:/home/pub /mnt'
Samba - Server Message Block unter Linux (Ein Open Source-Aquivalent des MS-File- und Printservers)
-
Server
- Konfig.: /etc/samba/smb.conf
Die Definition einer einfachen, öffentlichen Freigabe:
[free4all]
path = /home/writeable_dir
public = yes
writeable = yes
- Daemons: nmbd, smbd (Bei SuSE über zwei Skripte /etc/init.d/nmb sowie /etc/init.d/smb) -
Benutzerauthentifizierung über Benutzername/Passwort-Paar
--> Voraussetzung: ein muss ein gleichlautender Unix-Account existieren!
- Samba-Account bei Verwendung des tdbsam-Backends erzeugen (z.B. Debian): 'pdbedit -a tux'
- Samba-Account bei Verwendung des smbpasswd-Backends erzeugen (z.B. SuSE): 'smbpasswd -a tux' -
Fehlersuche/Verbindungstest
- 'testparm [-v]', z.B. 'testparm -v | grep "passdb backend"'
- 'smbclient -L localhost -U%'
- 'smbclient \\\\192.168.6.200\\tux -U tux'
- Im konqueror: 'smb://192.168.6.200/free4all'
- Unter MS-Windows: '\\192.168.6.200\free4all'
- Mounten ist ebenfalls möglich: 'mount -t cifs -o username=tux,password=xxx //192.168.6.200/tux /mnt'
(Die Angabe des Dateisystemtypes 'cifs' kann meist entfallen.) - man-Pages: smb.conf, smbclient, mount
-
Mounten einer Samba-Freigabe unter Puppy-Linux:
- Mit echtem Benutzer: 'mount -o rw,username=tux,password=xxx //192.168.6.200/tux /mnt'
- Anonym (als nobody): 'mount -o rw,username= //192.168.6.200/free4all /mnt'