Linux/Tipps/Allgemein: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
 
(47 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 112: Zeile 112:
====Wer hat offene Dateien in einem Verzeichnis?====
====Wer hat offene Dateien in einem Verzeichnis?====
  lsof +D /dir
  lsof +D /dir
====Anzahl der offenen Dateien====
lsof | awk '{ print $2 " " $1; }' | sort -rn | uniq -c | sort -rn | head -20


====Wie findet man zum Löschen vorgemerkte (aber noch offene) Dateien?====
====Wie findet man zum Löschen vorgemerkte (aber noch offene) Dateien?====
Zeile 161: Zeile 164:


====Grub-Bootblock installieren====
====Grub-Bootblock installieren====
Beispiel: 1.Platte ist Bootplatte, Rootpartition ist die 2. Partition.
Beispiel: 1.Platte ist Bootplatte, Bootpartition ist die 1. Partition.
  grub
  grub


  grub> root (hd0,1)
  grub> root (hd0,0)
  grub> setup (hd0)
  grub> setup (hd0)
  grub> quit
  grub> quit
Zeile 212: Zeile 215:
  Option      "SuspendTime"  "0"
  Option      "SuspendTime"  "0"
  Option      "OffTime"      "0"
  Option      "OffTime"      "0"
====chroot====
Mit '''chroot''' kann man die Shell in eine andere Installation (z.B. auf einer anderen Platte) bringen und somit simulieren, dass man mit der anderen Installation gebootet hätte.
Optional Devices und tmp der aktuellen Installation binden:
mount --bind /dev/ <anderes Root-Verzeichnis>/dev/
mount --bind /dev/pts <anderes Root-Verzeichnis>/dev/pts
mount --bind /tmp/ <anderes Root-Verzeichnis>/tmp/
Dann:
chroot <anderes Root-Verzeichnis> /bin/bash
Optional alle Env-Variablen der aktuellen Installation löschen:
unset `env | cut -d= -f1`
Dann:
/usr/sbin/env-update
source /etc/profile
Optional (wenn vorher alle Env-Variablen gelöscht wurden):
export HOME=/root
export TERM=xterm
Optional /dev/shm, proc, sysfs und usbfs mounten (proc muss z.B. gemountet werden zum Kernel, Java oder htop compilieren, /dev/shm für Python):
mount -t tmpfs none /dev/shm
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t usbfs usbfs /proc/bus/usb
Vor dem Verlassen des chroots sollte man diese Verzeichnisse wieder unmounten.
====NFS-Optionen herausfinden====
Mit '''nfsstat''' kann man herausfinden, mit welchen Optionen ein NFS gemountet ist:
nfsstat -m
====diff im Subversion-Format====
diff -u <alte_Datei> <neue_Datei>
====Verzeichnis an anderer Stelle nochmal einbinden====
Einmalig:
mount --bind olddir newdir
Dauerhaft in '''/etc/fstab''':
/olddir  /newdir  none  bind
====KDE kann auf eine angeschlossene Digitalkamera nicht zugreifen====
Das ist evtl. ein Rechteproblem. Kamera anschließen und dann als root:
lsusb
Ergebnis (Beispiel):
Bus 6 Device 2: ID '''04cb''':'''01e4''' Fuji Photo Film Co., Ltd
Dann in '''/etc/udev/rules.d/70-libgphoto2.rules''' eine Zeile hinzufügen mit den ermittelten Daten:
ATTRS{idVendor}=="'''04cb'''", ATTRS{idProduct}=="'''01e4'''", GROUP="plugdev"
Quelle: http://www.linuxquestions.org/questions/linux-hardware-18/fuji-finepix-f30-doesnt-work-612826/#post3019566
====Alle Dateien umbenennen nach Kleinschrift====
Im aktuellen Verzeichnis:
for f in `ls`; do mv -v $f `echo $f | tr '[A-Z]' '[a-z]'`; done
Rekursiv:
for f in `find`; do mv -v $f `echo $f | tr '[A-Z]' '[a-z]'`; done
====PDF-Druckertreiber installieren====
Quelle: http://jtwo.de/2008/04/pdf-drucker/
* emerge -av cups-pdf
* http://localhost:631
* '''Drucker hinzufügen'''
* '''Name''', '''Ort''' und '''Beschreibung''' ausfüllen und '''Fortsetzen''' anklicken
* '''CUPS-PDF (Virtual PDF Printer)''' auswählen und wieder '''Fortsetzen'''
* '''Generic''' und wieder '''Fortsetzen'''
* '''Generic CUPS-PDF Printer''' und '''Drucker hinzufügen'''
/etc/cups/cups-pdf.conf:
Out /${HOME}/pdf
====vncserver mit KDE4====
Damit beim Verbinden mit einem vncserver unter KDE4 kein schwarzes Bild auf dem Client erscheint, muss man den vncserver z.B. so starten:
dbus-launch vncserver :2 -geometry 1024x768 -depth 16
Der Server von '''tightvnc''' hat Probleme mit einigen KDE4-Effekten. '''tigervnc''' funktioniert aber einwandfrei.
====Kopieren mit tar====
cp ist nicht immer geeignet zum Kopieren von kompletten Rechnern, weil es z.B. beim Kopieren von manchen Dateien in /proc einfach hängen bleibt. Man kann aber auch mit tar kopieren:
cd <srcdir>
tar -cf - . | (cd <destdir>;tar -xf -)
====Timestamps in der bash history====
Quelle: http://larsmichelsen.com/open-source/bash-timestamp-in-bash-history/
'''/etc/bash/bashrc''':
export HISTTIMEFORMAT="%F %T "
====JPEG-Bilder drehen entsprechend den EXIF-Informationen====
jhead -autorot *.jpg
oder
exifautotran *.jpg
Danach noch das Filedatum wieder auf das Aufnahmedatum setzen:
exiftool '-DateTimeOriginal>FileModifyDate' <DIRECTORY>
====XFS defragmentieren====
Abfrage:
xfs_db -c frag -r /device
Defragmentieren:
xfs_fsr -v /mountpoint
====Externe USB-Festplatte fährt von selbst immer wieder hoch====
Das kann an '''udisks''' liegen.
'''/etc/udev/rules.d/80-udisks.rules''':
KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", ENV{UDISKS_DISABLE_POLLING}="1", ENV{UDISKS_IGNORE}="1", ENV{ID_ATA_FEATURE_SET_SMART_ENABLED}="0"
Wenn das nicht reicht, dann könnte es noch an KDE liegen.
'''/etc/portage/package.use''':
kde-base/kdelibs -udisks
Dann:
emerge -1 kdelibs
====ALSA Audioausgabe auf 2 Geräte gleichzeitig====
Quelle: http://www.avsforum.com/t/1269302/simultaneous-multiple-outputs-with-alsa#post_19060197
Beispiel mit Intel Audio Onboard (ASRock P67 Performance) und HDMI-Audio (5.1) über Nvidia-Grafikkarte (Zotac GeForce GT 630 ZONE Edition).
'''~/.asoundrc''':
pcm.!default {
        type plug
        slave {
                pcm multi
        }
        ttable.0.0 1.0
        ttable.1.1 1.0
        ttable.0.2 1.0
        ttable.1.3 1.0
        ttable.2.4 1.0
        ttable.3.5 1.0
        ttable.4.6 1.0
        ttable.5.7 1.0
}
pcm.multi {
        type multi
        slaves.a.pcm "hw:0,0"
        slaves.a.channels 2
        slaves.b.pcm "hw:1,3"
        slaves.b.channels 6
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1
        bindings.4.slave b
        bindings.4.channel 2
        bindings.5.slave b
        bindings.5.channel 3
        bindings.6.slave b
        bindings.6.channel 4
        bindings.7.slave b
        bindings.7.channel 5
}
ctl.!default {
        type hw
        card 0
}
Stereo-Ausgabe auf Onboard und Nvidia 3:
pcm.!default {
        type plug
        slave {
                pcm multi
        }
        ttable.0.0 1.0
        ttable.1.1 1.0
        ttable.0.2 1.0
        ttable.1.3 1.0
}
pcm.multi {
        type multi
        slaves.a.pcm "hw:0,0"
        slaves.a.channels 2
        slaves.b.pcm "hw:1,3"
        slaves.b.channels 2
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1
}
ctl.!default {
        type hw
        card 0
}
Stereo-Ausgabe auf Onboard und Nvidia 3 '''und''' 7:
pcm.!default {
        type route;
        slave.pcm "multi";
        slave.channels 6;
        ttable.0.0 1.0;
        ttable.1.1 1.0;
        ttable.0.2 1.0;
        ttable.1.3 1.0;
        ttable.0.4 1.0;
        ttable.1.5 1.0;
}
pcm.multi {
        type multi
        slaves.a.pcm "hw:0,0"
        slaves.a.channels 2
        slaves.b.pcm "hw:1,3"
        slaves.b.channels 2
        slaves.c.pcm "hw:1,7"
        slaves.c.channels 2
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1
        bindings.4.slave c
        bindings.4.channel 0
        bindings.5.slave c
        bindings.5.channel 1
}
ctl.!default {
        type hw
        card 0
}
KDE4 kommt nicht damit klar, den Sound auf 2 Soundkarten zu schicken (klingt verzerrt). Für den Fall kann man mehrere ALSA-Devices einrichten und KDE auf eines ausgeben lassen, das nur ein Hardware-Device verwendet. In diesem Beispiel ist '''ALSA:default''' nur eine Soundkarte und '''ALSA:all''' sind alle Soundkarten. Letzteres verwendet man dann bei Programmen, die damit umgehen können (z.B. MythTV).
pcm.!default {
        type hw
        card 0
        device 0
}
pcm.all {
        type route;
        slave.pcm "multi";
        slave.channels 6;
        ttable.0.0 1.0;
        ttable.1.1 1.0;
        ttable.0.2 1.0;
        ttable.1.3 1.0;
        ttable.0.4 1.0;
        ttable.1.5 1.0;
}
pcm.multi {
        type multi
        slaves.a.pcm "hw:0,0"
        slaves.a.channels 2
        slaves.b.pcm "hw:1,3"
        slaves.b.channels 2
        slaves.c.pcm "hw:1,7"
        slaves.c.channels 2
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1
        bindings.4.slave c
        bindings.4.channel 0
        bindings.5.slave c
        bindings.5.channel 1
}
ctl.!default {
        type hw
        card 0
}
Alternative mit Verwendung der Alsa Devicenamen statt Hardwaredevices (wurde benötigt bei einer Asus Grafikkarte, '''aplay -L''' listet die Devicenamen):
pcm.all {
        type route;
        slave.pcm "multi";
        slave.channels 4;
        ttable.0.0 1.0;
        ttable.1.1 1.0;
        ttable.0.2 1.0;
        ttable.1.3 1.0;
}
pcm.multi {
        type multi
        slaves.a.pcm "hw:0,0"
        slaves.a.channels 2
        slaves.b.pcm "hdmi:CARD=NVidia,DEV=3"
        slaves.b.channels 2
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1
}
====X11 Forwarding====
Auf dem Server (auf dem die Applikation läuft) die sshd config anpassen:<br>
'''vi /etc/ssh/sshd_config'''
X11Forwarding yes
Dann:
/etc/init.d/sshd restart
Auf dem Client (auf dem die GUI angezeigt werden soll):
ssh -Y user@server <Applikation>
====Private ID3-Tags von MP3-Dateien entfernen====
eyeD3 --remove-frame PRIV <Datei>
====Alle Dateien ohne Besitzer oder ohne Gruppe finden====
find / -nouser
find / -nogroup
====MySQL komplett sichern====
Backup:
mysqldump -u root -p --all-databases --skip-lock-tables > alldb.sql
Restore:
mysql -u root -p < alldb.sql
====Datumswerte in JPEG-Bildern entfernen====
Alle Werte abfragen:
exiftool -a -s -G -time:all file.jpg
Alle Werte entfernen:
exiftool -alldates= -gpsdatestamp= -gpstimestamp= -MetadataDate= file.jpg
====rsync Fehler 24 (some files vanished before they could be transferred)====
Anscheinend ist die einzige Abhilfe ein Wrapper-Script:
#!/bin/sh
rsync "$@"
e=$?
if test $e = 24; then
    exit 0
fi
exit $e
====Applikationen öffnen Links in Firefox, obwohl Chrome als Standardbrowser eingestellt ist====
xdg-mime default google-chrome.desktop x-scheme-handler/http
xdg-mime default google-chrome.desktop x-scheme-handler/https
1.075

Bearbeitungen