Linux Seminar
LinuxSeminar
- + -
1. Die Boot-CD
- booten der vorbereiteten live cd
- kurze erklärung was gebootet wird
- + -
2. Der Prompt
- pwd
- was ist unser "print working directory"
- whoami
- als wer sind wir angemeldet
- id
- pwd
- + -
3. Erste Befehle
- ls
- ls -al
- ls -ali
- ls -al --sort=time
- ls -alr --sort=size
- ls -alSr
- ls -alitr
- ls
- + -
4. Verwenden der Hilfe
- HILFE!!!
- am beispiel ls
- --help
- ls --help
- man ls
- man pages
- was sind man pages
- + -
die sektionen
Section 0 - EverythingSection 1 - CommandsSection 2 - System CallsSection 3 - Library CallsSection 4 - Special Files Section 5 - File Formats and ConversionsSection 6 - Games for LinuxSection 7 - Macro Packages and ConventionsSection 8 - System Management CommandsSection 9 - Kernel Routines
- + -
manpages drucken
man -t manpage | ps2pdf - manpage.pdf- es muss ghostscript istalliert sein- den Parameter "-" nicht vergessen
- info
- älteres programm
- info pages uns man pages meist die selben
- am beispiel ls
- whatis
- whatis ls
- whatis lsls (1) - list directory contents
- whatis ls
- type
- wo ist das binary von ls
- + -
type ls
- ls is aliased to `ls --color=auto'
- eklärung von alias kommt später
- + -
type ls
- wo ist das binary von ls
- file
- type mkdir
- whatis file
- liest die erste zeile der manpagedes gewünschten befehls
- + -
file (1) - determine file type
file /bin/mkdir /bin/mkdir: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped
- HILFE!!!
- + -
5. Verzeichniss und Dateimanagement
- hoch und runter im verzeichnissbaum
- cd
- cd -
- cd /
- cd ~
- cd ..
- ..
- gibts nicht überall
- verzeichniss erstellen
- mkdir
- mkdir -p
- erstellt auch unterverzeichnissesollten diese nicht vorhanden sein
- dateien und verzeichnisse löschen
- rmdir
- nur bei lehren verzeichnissen
- rm
- rm -Rf
- löschen auf der root demonstrieren
- rmdir
- inhalt von dateien anzeigen
- cat
- less/more
- alter dos befehl more
- less - springen in datei shift+g ,gg
- suchen im less / ?
- less *.txt :n :Nmeherer Dateien hintereinander
- dateien suchen
- find
find . -name *xyz*
find . -type f -exec file ’{}’ \; Runs ‘file’ on every file in or below the current directory. Notice that the braces are enclosed in single quote marks to protect them from interpretation as shell script punctuation. The semicolon is similarly protected by the use of a backslash, though ’;’ could have been used in that case also.
- locate
- locate erfordert die findutils
- besteht aus zwei befehlenupdatedblocate
- find
- in dateien suchen
- grep -ir lalelu /usr
- dateien erstellen
- touch
- dateien kopieren
- cp
- cp -R
- cp -Rp
- dateien umbenennen/verschieben
- mv
- pipes und umleitungen
| das pipe zeichen zb. bei ps
> stdout in file
>> stdout in file append
Type 0 (standard input), Type 1 (standard output), and Type 2 (standard error)
du -sc >> filesystem.txt 2>duerrors.txt
Sometimes programs have already been told to direct standard error to someplace other than the display. But you might wish to see just what the errors are, so you want to redirect standard error back to the display where you can see how a program is proceeding. To do this, you would type: $ programname 2>&1
xargs
- ls | xargs file
- hoch und runter im verzeichnissbaum
- + -
6. Berechtigungen
- file berechtigungen
- chown - ownership ändern
- chmod - rechte ändern
- chmod u+s suid bit setzen
- magick-pattern #!/bin/bash
- + -
7. VIM
- DER editor
- auf jedem system vorhandenzumindest vi
- grundsätzliche bedienung
- insert
- execute
- :q :wq :q! :w!
- syntax higlight
- :set ic
- y5y
- p5p
- d5d
- weitere hilfe
- beispiel mit sortierung
- zuerst mit dem visuellen modus auswählen
- !sort
- mehrere fenster
- ^Wn
- neuses leeres Fenster
- datei laden :e filename
- ^Wj ^Wk
- nächstes vorheriges fenster
- ^Wn
- vim7 tabs
- neuer tab mit :tabnew
- switch mit :tabn oder C+PageUp C+PageDown
- vim aufruf mit meherern dateien
- druchgehen mit :n :N
- Completion
- durchsucht bereits geschriebenes
- mit auswahlfeld
- C+p
- + -
8. LSB Verzeichnissbaum
erwähnung der LSB
an homepage erklären!
DirectoryDescriptionbinEssential command binariesbootStatic files of the boot loaderdevDevice filesetcHost-specific system configurationlibEssential shared libraries and kernel modulesmediaMount point for removeable mediamntMount point for mounting a filesystem temporarilyoptAdd-on application software packagessbinEssential system binariessrvData for services provided by this systemtmpTemporary filesusrSecondary hierarchyvarVariable dataEach directory listed above is specified in detail in separate subsections below. /usr and /var each have a complete section in this document due to the complexity of those directories.Specific OptionsThe following directories, or symbolic links to directories, must be in /, if the corresponding subsystem is installed:DirectoryDescriptionhomeUser home directories (optional)lib<qual>Alternate format essential shared libraries (optional)rootHome directory for the root user (optional)Each directory listed above is specified in detail in separate subsections below.
/proc und /sys
- proc filesystem unsicher
- noch nicht alles in sys portiert
zusätlich werden auch die /bin befehle exakt benennt
warum hat root ein eigenes verzeichniss?
- + -
9. Linux from Scratch
- devices
devfs - alludev - neu
arbeiten udev
- + -
finden von sys schnittstelle
- udevinfo -q path -n /dev/sda
- udevinfo -a -p `udevinfo -q path -n /dev/sda`
- + -
beispiel eth0 karte ändern
- befehl: udevinfo -a -p /sys/class/net/eth0/
- output: looking at class device '/sys/class/net/eth0': SYSFS{address}="00:52:8b:d5:04:48"
- rule: KERNEL="eth*", SYSFS{address}="00:52:8b:d5:04:48", NAME="lan"
wie funktioniert die nummerierung
- hda (ide)
- sda (scsi usb)
- cciss (hp raidcontroller)
ethernet interfaces haben keine device datei unter /dev !!!!diese werden über die konfigdatei /etc/iftab konfiguriertoder eben neu mit udev
welche devices gibt es
/dev/zero
- man zero
/dev/null
- valhalla
/dev/random
- lässt sich erst auslesen wenn genug daten vorhanden
/dev/loop
- + -
finden von sys schnittstelle
- partitionierung
- trennung von partition table und formatierung am datenträger
- fdisk
- urvater der partitionierung
- fdisk -l > partition table sichern
- cfdisk
- komfortabel
- nicht immer vorhanden
- editieren von partitionen
- formatierung
- welche dateisysteme gibt es
- ext2
- ext3
- reiserfs
- xfs
- jfs
- zfs
- squashfs/unionfs
- was sind inodes
- wie ist der aufbau?
- erklärung hard / softlinks
- + -
erstellen von hard - softlinks
- ln-s, ln
- welche dateisysteme gibt es
- der bootloader
- warum gibt es was
- bedeutung in der heutigen zeit
- grub
- wo liegt die konfiguration
- wie wird konfiguriert
- lilo
- nachteile
- konfiguration
- der init prozess
- der init prozess ist der vater aller prozesseer hat die prozessnummer 1
- telinit - init
- inittab
- default runlevel
- serielle konsole
- start stop scripte
- aufbau der scripte
- init zewck
- ~ http://en.wikipedia.org/wiki/Init
- shutdown -h now(zeit)
- shutdown -r now(zeit)
- shutdown -a
- konfiguration von diensten
- erwähnung des xinit.d
- /etc
- bedeutung
- /etc/init.d/skel
- devices
- + -
10. Prozessmanagement
- ps -ef
- liefert alle prozesse, auch wenn sie nicht mir gehören
- auswertung immer mit grepalso ps -ef | grep xy
- pstree
pstree -a zeigt alle prozesse als baum anhier sieht man auch die abhängigkeit des gestarteten programmes zur bash │ ├─konsole │ │ ├─bash │ │ │ └─su │ │ │ └─bash │ │ ├─bash │ │ │ └─watch -n2 df -h
pstree zeigt auch schön den init - als erster prozess
pstree -an zum ausgeben der liste sortiert nach pids
- kill
kill bedeutet nicht nur killsondern signale an laufende prozesse schicken
häufig verwendet werden kill und kill -9
- kill ohne parameter sendetSIGTERM - 15
- kill -9 ist SIGKILL
man kann nur prozesse killen die man selbst gestartet hatauser man ist root
versucht man einen prozess mit kill zu beendenso wird dem prozess mitgeteilt sich sauber zu beenden.also unter umständen pid files zu löschen usw.bei kill -9 läuft man "mit dem messer" durch das system.sprich der prozess wird vom kernel hart gekillt
daemons verarbeiten oft das signal HUP oder SIGHUPdas bedeutet, dass der prozess sich nicht beendet sondern konfigurationsfiles neu einliestdie meisten daemons welche beim init script eine "reload" funktion haben, verwenden kill HUPauf die prozess id. beispiel "openvpn"
kill signale laut man signal
Signal Value Action Comment ------------------------------------------------------------------------- SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process SIGINT 2 Term Interrupt from keyboard SIGQUIT 3 Core Quit from keyboard SIGILL 4 Core Illegal Instruction SIGABRT 6 Core Abort signal from abort(3) SIGFPE 8 Core Floating point exception SIGKILL 9 Term Kill signal SIGSEGV 11 Core Invalid memory reference SIGPIPE 13 Term Broken pipe: write to pipe with no readers SIGALRM 14 Term Timer signal from alarm(2) SIGTERM 15 Term Termination signal SIGUSR1 30,10,16 Term User-defined signal 1 SIGUSR2 31,12,17 Term User-defined signal 2 SIGCHLD 20,17,18 Ign Child stopped or terminated SIGCONT 19,18,25 Continue if stopped SIGSTOP 17,19,23 Stop Stop process SIGTSTP 18,20,24 Stop Stop typed at tty SIGTTIN 21,21,26 Stop tty input for background process SIGTTOU 22,22,27 Stop tty output for background process
kill verarbeitet nur PIDSkillall verarbeitet NAMEN
nicht alle prozesse hören auf alle signale
- kill -9 1 oder kill -9 initfunktioniert nicht
- es gibt dann meistens andere wege mit denprozessen zu kommunizieren telinit init 0 6 3 usw.
- nice
- Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
- nice startet prozesse mit einem gewünschten nice wert
- negative werte können nur von root gesetzt werden
- renice
- ändert die scheduler priorität eines laufenden prozesses
- nur root kann prozesse mit negativen werten renicen
- lsof
- lsof /home/notbuu top level list open files
- lsof +D /home/notbuu recursive directory
- lsof | grep *fsdfsd*
- lsof -i 4 -alle ipv4 connections anzeigen
- anzahl max-files cat /proc/sys/fs/file-max
- fuser
- background foregroundbash speziefischgibt es aber auch unter anderen shells - andere befehle
- prozesse starten, stoppen und in den hintergrund legenstrg+z - bglaufende jobs anzeigenjobs
- prozess im backgroud startet man mit & zum schluss
- prozesse so starten, dass sie nicht bei abmeldung beendet werden
wenn auf der konsole prozesse gestartet werden,so sind die prozesse immer childs der bash - siehe das cat beispiel
auch wenn prozesse im hintergrund gestartet werden sind sie tot sobald die bash beendet wird
sicheres starten nur mit "nohup" möglich
- ps -ef
- + -
11. Mounten
- mount
mount a file system
mount mountet nur filesystem welchea. dem kernel bekannt sindb. als utility implementiert sind(squashfs)
man mount
die jeweiligen filesystem parameterunterscheiden sich sehr stark beispiel smbfs (-o username=,password=)usw. teilweise auch zwischen versionen
alles ist mountbar inkl. iso filessolange es ein modul dafür gibt
mount was wohin
- es reicht auch was, wenn das wohin in der fstab steht
/etc/fstab vorstellen
dd
- nützlicher befehl zum erzeugen von dateienbestimmter größe
- dd if=/dev/zero of=lalelu count=1 bs=1M
loop mounting
- 100 mb große datei erstellen
- mkfs.reiserfs -f datei
- mount -o loop datei /mnt/
- wird auch für crypto filesysteme verwendetzb. von truecrypt
- umount
- mount
- + -
12. Netzwerk und SSH
- netzwerkkonfiguration
- ifconfig
- /etc/sysconfig/interfaces
- /etc/resolv.conf - dns und suchliste
- hosts wird immer zuerst verwendet
- hostname
- ssh
- ssh ist der ersatz für telnet
- verschlüsselt public/private key
- das passwort kann beim scripten nicht übergeben werdenzertifikate austauschen - ....
- ssh und ssh -Xssh username@host
- scp
- beispiel scp user@host:/....
- sftp wird in der configuration angegebensshd_config anschauen
- gute windows clients:putty am kompatibelstensshshell kann auch sftpsftp/ftp usw. clientfilezilla
- netzwerkkonfiguration
- + -
13. Mail Transport Agent
- mail transport agent
- gab es schon immer, da email als "default" für kernel meldungendefiniert wurde
- früher sendmail, jetzt postfix seltener exim
- alle mailsysteme haben ihre stärken oder schwächen
- kommandline mail-mail
- mail root
- mail bediehnung erklären
- mutt
- mutt ist besser um viele mails zu verwalten
- besser löschfunktion
- bediehnung erklären
- + -
15. X Server
- verkehrtes server konzeptserver läuft auf clientclient auf server
- schwierig zu konfigurieren
- ssh -X - display variable setzen
- export/unset $DISPLAY
- beispiele mit X only und TWM bringen
- xpenguins
- auf server kein X server notwendig
- grml-x -nostart -mode '1024x768' -f /usr/bin/xterm
- 14. Allgemeine Befehle
- Commands
- dmesg
- /var/log/messages
- + -
logrotate.d
- der logrotated rotiert logfiles
- wird per konfigfiles gesteuert
- beispiel zeigen
- + -
tar
- + -
tape archiver
- tar erstellt nur archivediese sind NICHT kompremiert.
- nur mit schalter wird gzip oder bz2 eingeführt
- deshalbt auch meistens tar.gz oder tar.bz2
- bz2 komprimiert besser, aber auch langsamer
- + -
entpackenen
- tar -zxvf gzip extract verbose filemode
- tar -jxvf bz2 extract verbose filemode
- + -
packen
- tar -zcvf gzip compress verbose file destination source
- tar -jcvf bz2 compress verrbose file destination source
- das ganze kann man auch in zwei schritten erledigensiehe gunzip / gzip
- + -
tape archiver
- + -
gzip/gunzip
- das wichtigere ist gunzip
- + -
split
- splittet dadeiten
- zb: tar archive
- split -b 100m source destination
- + -
md5sum
- programm zum erzeugen vonmd5hashes - kurze erklärung geben
- + -
watch
- überwachung von befehlen
- zb.: beim cp befehl
- watch -n2 cp .....
- + -
tail
- tail -n 10 datei - liest die letzten 10 zeilen der datei
- tail -n 10 -f datei - zeigt die letzten10 zeilen der datei an und liest laufend weiter
- wird auch für installer usw. verwendetsiehe java.bin
- time
- + -
date
- aktuelle uhrzeite anzeigen
- ntpdate -q - uhrzeit von ntpserver anzeigen oder laden
- + -
df/du
- diskfree -h
- du -hs .
- du -h *
- + -
dmesg
- Utility to print or control the kernel message buffer
- in dmesg sieht man alle kernel messagesbeispiel anzeige sda stick usw
- echo
- export
- + -
hostname
- hostname -f
- + -
uname
- Utility to print system information
- uname -a
- uptime
- + -
www auf der konsole
- + -
lynx
- nur erklären, keine frames
- gut fürs scripten geeignet
- + -
links
- mit frame unterstützung
- auch mit farbe
- sehr gänging
- + -
w3m
- kann auch bilder im framebuffer
- ncftp
- lftp
- + -
lynx
- Commands
- + -
16. Bücherliste
- der "kofler"
- nutshell



