Linux Seminar

From n0r1sk software solutions
Jump to: navigation, search

LinuxSeminar All + All -

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
  • + - 3. Erste Befehle
    • ls
      • ls -al
      • ls -ali
      • ls -al --sort=time
      • ls -alr --sort=size
      • ls -alSr
      • ls -alitr
  • + - 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
    • whatis
      • whatis ls
        • whatis lsls (1)               - list directory contents
    • type
      • wo ist das binary von ls
        • + - type ls
          • ls is aliased to `ls --color=auto'
        • eklärung von alias kommt später
    • 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

  • + - 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
    • 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
    • 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
  • + - 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
    • 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

    • 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
    • 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
  • + - 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

  • + - 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
  • + - 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
  • + - 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
      • 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
        • + - 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
  • + - 16. Bücherliste