<> = Userspace-Tips = == Die gängigen Kommandozeilen-Programme == '' Zu den meisten Kommandos gibt es auch Optionen (Schalter), die mit einem Minuszeichen eingeleitet werden. Der Schalter {{{-h}}} gibt oft einen Hilfetext aus, ausführlicher ist ein Blick in die Man[ual]-Pages (vgl. ''{{{man}}}'').'' || {{{ls}}} || Zeigt Dateien an, entspricht {{{dir}}} unter DOS. {{{ls -al}}} gibt alle Dateien im Langformat aus. {{{la}}} ist eine praktische Abkürzung für {{{ls -la}}}.|| || {{{cd}}} || Wechselt das Verzeichnis, entspricht {{{cd}}} unter DOS, mit der Ausnahme, daß, wenn man nichts angibt, man in das HomeDir verfrachtet wird (unter DOS wurde der Name des aktuellen Verzeichnisses angezeigt) || || {{{cp}}} || Kopiert Dateien, entspricht {{{copy}}} || || {{{mv}}} || Verschiebt Dateien, entspricht {{{move}}} || || {{{rm}}} || Löscht Dateien, entspricht {{{del}}} unter DOS || || {{{mount}}} || Hängt Dateisysteme ein. Anders als unter DOS sind Datenträger nicht automatisch unter einem Laufwerksbuchstaben verfügbar, sondern müssen erst mittels {{{mount}}} zugänglich gemacht werden || || {{{mkdir}}} || Erstellt ein Verzeichnis || || {{{cat}}} || {{{cat}}} gibt den Inhalt von Dateien aus, entspricht {{{type}}} || || {{{pwd}}} || Gibt den aktuellen Verzeichnisnamen aus, entspricht {{{cd}}} unter DOS, wenn kein Verzeichnisname angegeben wurde || || {{{man}}} || Zeigt die Hilfe-Seite von Programmen an (Beispiel: {{{man ls}}}) || || {{{ssh}}} || Mit {{{ssh}}} kann man sich auf fremden Rechnern einloggen und dort arbeiten und fernwarten || || {{{scp}}} || Damit lassen sich Dateien auf einen anderen Rechner kopieren || || {{{touch}}} || Erstellt eine leere Datei mit den aktuellen Zeitstempel || || {{{more}}} || Zeigt Dateiinhalt seitenweise an, Abbruch mit Q|| || {{{less}}} || Zeigt Dateiinhalt ebenfalls seitenweise an, ist manchmal etwas flexibler als {{{more}}}|| || {{{find}}} || Sucht Dateien || || {{{file}}} || Zeigt den Dateityp einer Datei an || || {{{grep}}} || Gibt nur jene Zeilen einer Datei aus, die ein bestimmtes Muster enthalten.|| || {{{wc}}} || Wordcount: Zählt die Wörter in einem Text.|| || {{{top}}} || Zeigt die rechnerauslastung im terminalfenster an. Refreshrate liegt standardmässig bei ca 3 sek. || Mehr z.B. unter [[http://nafoku.de/t/unix.htm]] oder [[http://www.gesamtschule-eiserfeld.de/gee/linux/linux.html]] und [[http://blog.addison-wesley.de/wp-content/uploads/2010/2877_Kommandoreferenz-Poster.pdf|Linux-Kommandoreferenz-Poster]] '''pdf''' == Was kann man damit machen? == Prinzipiell können all die Befehle einfach eingegeben werden. Nachdem man gedrückt hat, wird dieser Befehl ausgeführt,bis er sich beendet hat. Aber mit der Shell (dem Kommandointerpreter) von Unix-artigen Systemen kann man viel mehr machen, als nur einfach der Reihe nach Befehle auszuführen. Wenn man an die Befehlszeile "&" anhängt, so wird der Befehl im Hintergrund ausgeführt, sodaß man sofort weitere Befehle eingeben kann. Das hilft vor allem, wenn man Programme mit langer Laufzeit ausführen möchte. Natürlich kann man die Ausgabe eines Programmes auch in eine Datei umleiten (geht inzwischen auch unter DOS): {{{ $ ls > ausgabedatei }}} oder an eine Datei anhängen: {{{ $ ls >> ausgabedatei }}} oder per "Pipe" an ein Programm zur weiteren Bearbeitung weiter reichen: {{{ $ ls | more }}} == Und was, wenn da "Access denied" steht? - Basics Dateirechte == Dann hat man mit hoher Wahrscheinlichkeit nicht das Recht, die gewünschte Aktion mit seinem Tool durchzuführen. So weit, so gut - nur, woran erkenne ich, was ich lesen, bearbeiten oder ausführen darf? Oder anders herum, was meinen die Manuals, wenn sie mir raten, einer bestimmten Datei(gruppe) Rechte wie 0744 zuzuweisen? Ein einfaches {{{ $ ls -l }}} hilft hier schnell weiter. {{{ $ ls -l -rw-r-xr-- 1 user group 9089 Mar 17 00:46 file.ext drwxr-xr-x 1 user group 4096 Mar 17 00:46 directory }}} In unserem Verzeichnis liegen also eine Datei "file.ext" und ein Verzeichnis "directory", die beide dem Benutzer "user" und der Gruppe "group" gehören. Beide sind mit Rechten für den Eigentümer ("user") sowie für die Gruppe ("group") und für alle anderen Nutzer versehen. Diese Rechte werden binär abgebildet - 0 entspricht keinerlei Rechten, 1 entspricht "darf ausführen", 2 entspricht "darf schreiben", 4 entspricht "darf lesen". Um diese Rechte miteinander zu kombinieren, werden die Werte addiert, 6 bedeutet also beispielsweise "darf lesen und schreiben". Verzeichnisse müssen übrigens grundsätzlich ausführbar sein, damit man in sie "hineinschauen" kann. Schauen wir also weiter. In obigem Beispiel würde die Binärangabe wie folgt aussehen: {{{ file.ext = eigentümer 0110 gruppe 0101 andere 0100 => 0654 directory = eigentümer 0111 gruppe 0101 andere 0101 => 0755 }}} Weist uns also eine Anleitung an, einer Datei(gruppe) die Rechte 0664 mitzugeben, heißt das, dass sowohl der Eigentümer als auch Mitglieder der Gruppe die Datei lesen und bearbeiten, aber nicht ausführen können. Andere können die Datei nur lesen. Bekommen wir nun als Fehlermeldung ein "Access denied", bietet es sich an, mit einem {{{ ls -l }}} nachzuschauen, welche Rechte die Datei(gruppe) hat und ob man als Benutzer innerhalb dieses Rechteraums Zugriff hat. Wenn nicht, kann man diese Rechte als Eigentümer oder als Root nachträglich vergeben. {{{ chmod 0644 file.ext }}} würde beispielsweise Mitgliedern der Gruppe die Ausführungsrechte für die Datei file.ext entziehen - im Gegensatz zu {{{ chmod 0664 file.ext }}}, das allen Mitgliedern der Gruppe Schreib- und Leserechte auf die Datei gewährt. = Daemons = * MailServer = USB mit "speziellen" Geräten = Einige USB-Geräte brauchen nach dem Einstecken noch etwas Feinschliff, oder gar sich ändernde Modul-Parameter. Leider ist das noch nicht so dolle dokumentiert. Ich habe hier z.B. einen Drucker, der sich als serielle Schnittstelle am US-Bus anmeldet. Leider braucht das usbserial.o-Modul aber Vendor- und Product-ID. Voraussetzung ist, daß {{{hotplug}}} installiert ist. Danach kommt die Speziel-Behandlung: {{{ $ cat /usr/lib/hotplug/special-local-config/usb.usermap usbgenericserial 0x03 0x04b8 0x0202 0 0 0 0 0 0 0 0 0 }}} Das Verzeichnis special-local-config muß einfach nur ein Unterverzeichnis (frei wählbar) sein. update-usb.usermap (gehört zu dem Debian'schen {{{hotplug}}}-Paket liest alle Dateien mit dem Namen {{{usb.usermap}}} aus all den Unterverzeichnissen von {{{/usr/lib/hotplug/}}} und generiert daraus die {{{/etc/hotplug/usb.usermap}}}. Wenn man kein Debian hat, kann man die Zeile(n) da also auch direkt eintragen. Als erstes kommt ein Script-Name (dieses Script muß dann in {{{/etc/hotplug/usb/}}} liegen). Danach kommt ein Bezeichner, der angibt, was für ein Vergleich mit den hinten angegebenen Zahlen (und den Angaben, die das USB-Gerät mit sich bringt) gemacht werden soll. 0x03 ist anscheinend Vergleich von Vendor- und ProductID (das haben zumindest viele andere Einträge so...). Danach kommen besagte Vendor- und ProductID sowie einige nullen (da kommen sonst noch weitere USB-Merkmale hin, aber da wir die ja nicht brauchen...) Nun sollte man also einmal {{{ # update-usb.usermap }}} aufrufen, um die {{{/etc/hotplug/usb.usermap}}} zu erzeugen (falls man die Daten da nicht direkt hineingeschrieben hat). Als nächstes gilt es, das Script {{{/etc/hotplug/usb/usbgenericserial}}} zu erzeugen. Ich habe darin folgendes stehen: {{{ $ cat /etc/hotplug/usb/usbgenericserial #!/bin/sh echo "${PRODUCT}" | tr '/' ' ' | while read VENDOR_ID DEVICE_ID REVISION_ID; do modprobe usbserial vendor=0x${VENDOR_ID} product=0x${DEVICE_ID} done }}} In der Variable {{{$PRODUCT}}} sind Vendor-, Product- und Revision-ID gespeichert, getrennt durch "/". Ich brauchte für das {{{usbserial.o}}}-Modul Vendor- und ProductID (da das Modul leider keine 2MB-Tabelle von 10000 unterstützten seriellen USB-Geräten beinhaltet...) und lade dann das Modul. = Daten-CDs brennen = == Brennprogramme auf der Kommandozeile == Im wesentlichen gibt es [[http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html|cdrecord]] und [[http://cdrdao.sourceforge.net/|cdrdao]]. cdrecord erwartet als Input .iso, .raw oder .wav. Ein typischer Aufruf wäre z.B. {{{ cdrecord dev=1,0,0 speed=32 -data -eject -data -v testimage.iso }}} cdrdao nimmt eine .bin und .cue als Input. {{{ cdrdao write --driver generic-mmc --device 1,0,0 testimage.cue }}} Was ist mit "Overburn"? Auch recht einfach: cdrecord gibt man die Parameter {{{ -dao --overburn }}} mit und cdrdao nur ein {{{ --overburn }}}. Natürlich muß der CD Brenner das ganze noch mitmachen. Neuere CD-Brenner haben Funktionen, die vor Buffer-Underruns schützen sollen. Diese Funktionen gibt es inzwischen unter einer Vielzahl von Namen: BURN-Free, Freeburn, BURN‐Proof, Just-Link, Lossless-Link, etc. cdrdao benutzt diese direkt, während cdrecord diese standartmäßig abschaltet (Beim Samsung SM-348B allerdings z.B. behauptet cdrecord es abzuschalten, aber funktioniert weiter). cdrecord kann man mit dem Parameter {{{ driveropts=burnfree }}} aber dazu bringen, dieses Feature doch zu benutzen. == Erzeugen eines Images auf der Konsole == Mit [[http://www.andante.org/mkisofs.html|mkisofs]] erzeugt man einfach CD-Images. {{{ mkisofs -j -r -l -V "Titel" -o /tmp/imagefile.iso /pfad/zu/meinen/daten/* }}} || {{{-j}}} || erzeuge ein Dateisystem nach dem Joilet System. Dieser "Standart" wird von Windows benutzt und entspricht nicht ganz dem iso9660 Standart. Ich bevorzuge deshalb diesen Parameter wegzulassen. Wer sein System auf UTF-8 umgestellt hat darf unter Windows statt der erwarteten Umlaute einen netten ix erwarten. || || {{{-r}}} || erzeuge ein Dateisystem nach dem relaxten Rock-Ridge Verfahren. Dateirechte und lange Dateinamen werden unterstützt. Das relaxt bedeutet, daß die Dateirechte sinnig gesetzt sind, daß jeder Benutzer darauf zugreifen kann. || || {{{-l}}} || erzeuge ein Dateisystem mit langen Dateinamen. Dateinamen können maximal 32 Zeichen lang sein. Umlaute werden durch Unterstriche ersetzt || || {{{-V "Titel"}}} || Gib der CD-ROM den Titel "Titel" || || {{{-o imagefile.iso}}} || Name der Imagedatei. || == Interessante Utilities für die Konsole == [[http://hes.iki.fi/bchunk/|bchunk]] erzeugt aus der .bin/.cue Kombination einzelne .iso's und .wav's. cdw ist eine Nutzeroberfläche für die Konsole (im Stil vom mc), um CDs zu brennen und zu kopieren... == Seltsame CD-Images == Bisher gibt es unter Linux keine Möglichkeit propritäre CD-Image Formate von Windows Programmen zu brennen. Dazu gehören u.a. cdi (DiscJuggler), nrg (Ahead Nero) und .ccd (CloneCD). ---- == Brennprogramme für X (auch für Audio-CDs) == * k3b (gehört zum [[KDE]] Lager ) scheint eines der (Maus-)nutzerfreundlichsten Brennprogramme für X zu sein. Die letzte Version unterstützt das bebrennen von BluRay Rohlingen. * Xfburn ( wird oft unter [[XFCE]] verwendet ) * Brasero ( gehört zum [[GNOME]] Lager ) == Weiterführende Links == * [[http://www.kefk.net/Linux/Anwendungen/CD-Recording/index.asp]] * [[http://www.gentoo.de/inhalte/doku/burn-guide/]] ---- = Audio-CDs = == Audio-CDs auf der Konsole einlesen == Mit 'cdda2wav' lässt sich die CD wie folgt einlesen: [user@world]$ cdda2wav -D /dev/scd0 -B -D -B: alle Audiotracks in jeweils eine wav-Datei schreiben Zuvor sollte ein neues Verzeichnis erstellt und mit 'df' geprüft werden ob die Partition so ca. 700 MB verfügbaren Platz hat, ebenfalls wichtig die CD braucht nicht gemountet zu sein. 'cdda2wav' erstellt nicht nur die wav Dateien sondern auch inf-Dateien. Sollten Schwierigkeiten auftreten solltet ihr prüfen ob eure CD einen Schutz aufweist. === Ist das soeben beschriebene legal? === Eindeutig Ja. 'cdda2wav' ist ein Tool zum Lesen von Audio CDs. Es dient nicht dazu einen eventuellen Schutz zu umgehen, denn dass wäre illegal. == Encoden der WAV-Dateien == Da gibt es verschiedene Möglichkeiten, das gebräuchliste Format ist mp3. Codewandler unter Linux wären 'bladeenc' und 'lame'. Mit: [user@world]$ bladeenc audio_01.wav wird die Datei audio_01.mp3 erzeugt. Mit der etwas komplexeren Befehlsfolge: [user@world]$ time for i in *.wav;do bladeenc $i;done;play audio_01.wav werden sämtliche wav-Dateien im Verzeichnis encodet, der Zeitbedarf für die gesamt Codierung wird mittels 'time' angezeigt, und wenn die letzte Datei codiert wurde spielt der Rechner die erste Audio-Wav-Datei ab. Die Zeit die der Rechner für diese Aktion benötigt ist naturgemäß systemabhängig, auf meinem System (400 MHz AMD K6) sind 45 Minuten keine Seltenheit, darum auch der 'play'-Befehl, denn der Monitor wird in der Zeit abgestellt. ---- = Kernel-Tips = == Wie finde ich heraus, welche Kernel-Versionen gerade aktuell sind? == Es gibt einen alten Dienst namens [[Finger]], mit dem man früher herausfinden konnte, ob ein User eingeloggt ist, was er so vor hat, wann er zuletzt Mails gelesen hat etc. Dieser Dienst wird auf dem Rechner finger.kernel.org mißbraucht, um die aktuellen Kernel-Versionen von sich zu geben: {{{ $ finger @finger.kernel.org [zeus-pub.kernel.org] The latest stable version of the Linux kernel is: 2.6.12.1 The latest snapshot for the stable Linux kernel tree is: 2.6.12-git4 The latest 2.4 version of the Linux kernel is: 2.4.31 The latest 2.2 version of the Linux kernel is: 2.2.26 The latest prepatch for the 2.2 Linux kernel tree is: 2.2.27-rc2 The latest 2.0 version of the Linux kernel is: 2.0.40 The latest -ac patch to the stable Linux kernels is: 2.6.11-ac7 The latest -mm patch to the stable Linux kernels is: 2.6.12-mm1 $ date Thu Jun 23 10:39:06 CET 2005 }}} Allerdings empfiehlt das Team von kernel.org finger nicht mehr zu nutzen. Stattdessen sollte die Seite [[http://www.kernel.org/kdist/finger_banner]] aufgerufen werden. == Neue module in den Kernel einpflegen == '''Dieser Tipp gilt für die Susi Distribution.''' In der Datei''' /etc/sysconfig/kernel''' können Module eingetragen werden die beim Bootvorgang mit in den Kernel übernommen werden sollen. Die Zeile ||'''INITRD_MODULES="aic7xxx ncr53c8xxx ......"'''|| ist dafür vorgesehen Module nachzutragen. Dabei ist zu beachten dass die Modulnamen nur durch leerzeichen getrennt werden. Nach dem editieren muss als root noch der Befehl '''mk_initrd''' ausgeführt werden und beim nächsten booten sind die gewünschten Module im [[Kernel]]. ---- = Links zum Thema Linux = '''Info''' [[http://lug-owl.de/LugWiki/LinuxTips?action=AttachFile&do=get&target=t-online.de-Limux+Stadt+M%C3%BCnchen+schafft+Linux+ab+und+kehrt+zu+Windows+zur%C3%BCck.pdf|Stadt Muenchen schafft Linux ab]]<
> [[http://derstandard.at/3302508/Warum-man-Linux-nutzen-sollte|Warum man Linux nutzen sollte]] <
> [[http://www.zdnet.de/news/digitale_wirtschaft_internet_ebusiness_linux_ueberschreitet_erstmals_ein_prozent_marke_auf_dem_desktop_story-39002364-41003583-1.htm|Linux-Nutzer-Anteil im Internet 2009]] <
> [[http://www.pro-linux.de/news/1/17059/netcraft-apache-weiter-im-aufwind.html|Linux-Nutzer-Anteil im Internet 2011]] <
> [[http://derstandard.at/1256744334626/Google-Von-Kopf-bis-Fuss-auf-Linux-eingestellt|Google von Kopf bis Fuss auf Linux eingestellt]] <
><
><
> [[http://www.distrowatch.com/]] informiert über Linux/Unix/BSD Distributionen <
> [[http://www.linux.de/]] <
> '''Statistik''' <
> http://en.wikipedia.org/wiki/Linux_Counter <
> http://en.wikipedia.org/wiki/Smolt_%28Linux%29 '''Openbooks''' <
> [[http://blog.addison-wesley.de/wp-content/uploads/2010/2877_Kommandoreferenz-Poster.pdf|Linux-Kommandoreferenz-Poster]] <
> [[http://www.fosdoc.de/downloads/OSP_wrobel_gentoo.pdf|Gentoo Linux - Installation - Konfiguration - Administration]] <
> http://www.galileocomputing.de/katalog/openbook <
> http://www.galileodesign.de/katalog/openbook <
> http://www.oreilly.de/online-books/ <
> http://it-rezensionen.chip.de/openbooks/ <
> '''Webseits einzelner Anwendungen ''' <
> [[http://piwik.org/|Die freie Webanalyselösung Piwik]]<
> [[http://www.omegat.org/|Das freie (GPL) Translation-Memory-Tool OmegaT]]<
> '''Magazine''' <
> gedruckt: <
> http://www.ubuntu-user.de <
> http://www.linux-user.de <
> http://www.linux-magazin.de <
> http://www.easylinux.de <
> online de: <
> http://pro-linux.de <
> http://derstandard.at/r1086/LinuxUnix <
> http://www.opensource.ch/ <
> http://www.tecchannel.de/pc_mobile/linux/ <
> http://www.tecchannel.de/server/linux/ <
> http://www.linuxfocus.org/Deutsch/ <
> http://www.linuxnetmag.de <
> online en: <
> http://ftp.gwdg.de/LG/ <
> http://linuxtoday.com <
> http://lwn.net <
> '''Versand''' <
> http://www.ixsoft.de <
> http://www.linuxisos.de <
> http://shop.linuxland.de <
> '''Lernen''' <
> http://www.selflinux.org <
> http://www.linuxhaven.de/dlhp/ <
> http://www.tldp.org/links/nenglish.html#german <
> http://www.linux-fuer-alle.de <
> http://www.lpi-german.de <
> http://www.lpi.org <
> http://linuxhilfe.berlios.de/index.php <
> ''Dateisysteme'' '''HTML'''<
> http://de.wikipedia.org/wiki/Dateisystem <
> [[http://www.admin-magazin.de/Das-Heft/2009/04/Das-neue-Linux-Dateisystem-Btrfs-im-Detail#article_xdateisystem-grundlagen|Dateisystem Grundlagen]] <
> [[http://www.admin-magazin.de/Das-Heft/2010/05/Wie-funktionieren-Linux-Dateisysteme|Wie funktionieren Linux-Dateisysteme Teil 1]] <
> [[http://www.admin-magazin.de/Das-Heft/2010/05/Wie-funktionieren-Linux-Dateisysteme/(offset)/2|Wie funktionieren Linux-Dateisysteme Teil 2]] <
> [[http://www.admin-magazin.de/Das-Heft/2010/05/Wie-funktionieren-Linux-Dateisysteme/(offset)/4|Wie funktionieren Linux-Dateisysteme Teil 3]]<
> [[http://www.admin-magazin.de/Das-Heft/2009/04/Das-neue-Linux-Dateisystem-Btrfs-im-Detail|Linux Dateisystem Btrfs im Detail Teil 1]]<
> [[http://www.admin-magazin.de/Das-Heft/2009/04/Das-neue-Linux-Dateisystem-Btrfs-im-Detail/%28offset%29/2|Linux Dateisystem Btrfs im Detail Teil 2]] <
> [[http://www.pro-linux.de/news/1/15175/ted-ts39o-zu-google-gewechselt.html|Google wechselte von ext2 auf ext4]] <
> http://de.wikipedia.org/wiki/Google_File_System '''PDF'''<
> [[http://wr.informatik.uni-hamburg.de/_media/teaching/wintersemester_2010_2011/sds-1011-lieck-grundlagen_dateisysteme-ausarbeitung.pdf|Grundlagen der Dateisysteme]] <
> [[http://wr.informatik.uni-hamburg.de/_media/teaching/wintersemester_2010_2011/sds-1011-arndt-lokale_dateisysteme-ausarbeitung.pdf|Lokale Dateisysteme]] <
><
> '''PDF Reader''' https://www.fosshub.com/Evince.html <
> '''Debian''' <
> http://debiananwenderhandbuch.de <
> http://www.debian.org/intro/why_debian <
> http://www.debianforum.de/forum/ <
> http://wiki.debian.org/de/ '''Ubuntu''' <
> http://ubuntuusers.de/ '''User Groups''' <
> ''Unix'' <
> http://www.guug.de/ <
> ''Linux'' <
> http://www.lug-kr.de/ <
> http://www.ale.org <
> http://www.muug.ca <
> '''Laptops (veraltet)''' <
> http://www.lug-kr.de/cgi-bin/lugwiki.pl?LaptopLinux <
> http://tuxmobil.de/fujitsu.html <
> '''Übersetzt''' [[http://www.kubieziel.de/computer/halloween-german.html]] Linux Kernel 2.6 - deutsche Übersetzung des "The post-halloween document" <
> = Nicht Linux Links = [[http://www.youtube.com/watch?v=Sb-MKooywHY|Bau einer Windkraftanlage - Youtube Video]]<
> [[http://www.youtube.com/watch?v=sgJLdeirvus|Die Reise der Heißluftballons - Youtube Video]] [[http://www.zeit.de/2011/10/Cebit-Supercomputer|Hinter vielen Diensten steckt ein Supercomputer]]<
> [[http://free-pdf-tools.ru/|Webseite für das bearbeiten deiner PDFs]]<
> [[http://www.printfriendly.com|Webseite für das saubere lesen deiner lieblings Webseiten]]<
> [[http://www.pro-linux.de/artikel/2/1476/abfall-kalender-als-icalendar-datei-erstellen.html|Abfall-Kalender als iCalendar-Datei erstellen]]<
> '''Wort des Tages''' ''Digitalhygiene'' <
><
><
><
><
><
><
><
>