(last edit: 2020-05-05)
ps ax | grep "init \[" | cut -d[ -f2 | cut -d] -f1
Seit Debian 9 (stretch) liefert ifconfig perverse unanschauliche Nettwerk-Devicenamen. Rückkehr zum alten Zustand a la „eth0“…
edit /etc/default/grub
... GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" ...
und dann
# update-grub
und dann rebooten. Fertig!
Seit Libre Office 4.x wird das Importieren von *.sdw und *.sxw nicht mehr unterstützt!
Kein Problem, solange es noch LibreOffice-3.5.4.2 im Debian-Paketsystem gibt.
Neben der hyperaktuellen 4.x-Version (wird aus von http://de.libreoffice.org/download/ heruntergeladenen Paketen unter /opt/libreoffice4.1 installiert) kann man mit dselect die letztständige 3er-Version …
libreoffice-base libreoffice-l10n-de openoffice.org-filter-binfilter
… samt Abhängigkeiten installieren (Executable befindet sich in /usr/lib/libreoffice/program/soffice).
Parallelbetrieb der beiden Versionen geht problemlos, und das Paket „openoffice.org-filter-binfilter“ ist für Archäologen wichtig!
Nützlich bei Gigabyte-großen Files, die der Midnight Commander nicht mehr in /tmp expandieren kann …
tar -zxvf bigarchive.tgz
tar -jxvf bigarchive.tar.bz2
unzip somearchive.zip
Multipart-Archive (*.rar) .. alle Files im selben Ordner ablegen, das erste angeben genügt!
unrar e firstfile.rar
Nicht ganz ungefährlich (behandelt files und dirs)!
Alle nach lowercase:
rename 'y/A-Z/a-z/' *
Alle nach uppercase:
rename 'y/a-z/A-Z/' *
Sanfter und nachvollziehbarer geht's mit „tr“:
echo "filename" | tr [:lower:] [:upper:]
Arger mit fälsch cödierten Ümläüten? man convmv!
z.B. ISO8859-1 –> UTF-8 (besser zunächst OHNE –notest !)
convmv -f iso8859-1 -t utf8 --notest *.mp3
z.B. CP1250 –> UTF-8, +dive into subdirs (besser zunächst OHNE –notest !)
convmv -f cp1250 -t utf8 -r --notest *
Gute Infos hier: https://wiki.archlinux.org/index.php/bluetooth
Bei KDE4-Systemen: einfach das Debian-Paket
bluedevil
installieren, USB-Bluetooth-Dongle anstecken, als normaler user
bluetooth-wizard
unter KDE aufrufen, dann am Bluetoothgerät die Pairingfunktion anwerfen (beim Minikeyboard: power-ON, dann ESC und K zugleich gedrückt halten),
am KDE-Bildschirm erscheint dann die Aufforderung zur Auswahl des Gerätes und zur Eingabe eines Strings vom Gerät - fertig!
Um das Device nach reboot wieder zu verwenden, braucht man ein File namens /etc/udev/rules.d/10-local.rules:
# Set bluetooth power up ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
Nützliches zum Verständnis:
hciconfig --all
sdptool browse
e2fsck -y /dev/hda1 mount /dev/hda1 / -o remount,rw
Firefox: *.tar.gz von www.mozilla.org herunterladen.
Damit der Browser mit User_innenrechten auto-upgedatet werden kann, empfiehlt sich, das *.tar.gz in das Homedir des users zu expandieren.
Sofern es andere User_innen gibt, kann root ein symlink in dieser Art anlegen:
ln -s /home/user/firefox /opt/firefox
Dann dürfen alle Desktoplinks aller User_innen auf /opt/firefox/firefox verweisen.
Passiert oft: ein Baum wird von einem anderen Filesystem kopiert, wegen verdrehten Mountoptionen haben alle Files die Rechtebits rwxrwxrwx (chmod 777 *) gesetzt. Abhilfe:
find * -type f -exec chmod 644 {} \;
HP-Laser CP15151n druckt aus allen Anwendungen, aber keine *.pdf aus okular.
Längeres googeln ergibt:
Das Paket cups-bsd muß installiert sein (damit muß lpr entfernt werden)
Und hinterher ein Nasenbär und keiner weiß warum.
Wie bekommt man hier das letzte Feld mit GOLD?
export STRINGMONSTER="gaga:gugu:gogo:GOLD"
Es gibt „rev“ zur zeichenweisen Rückwärts-Ausgabe.
Also:
echo $STRINGMONSTER|rev
bewirkt
DLOG:ogog:ugug:agag
Lösung als Einzeiler:
echo $STRINGMONSTER|rev|cut -d: -f1|rev
gibt nun das LETZTE Feld aus:
GOLD
apt-get install calibre ebook-convert junk.epub junk.pdf
Es gibt das fertig im Paket binutils:
$ objcopy -I ihex -O binary file.hex file.bin
# blkid -L /dev/sda1
..gibt tabellarisch aus wie folgt:
device fs_type label mount point UUID -------------------------------------------------------------------------------------------------------------------------------- /dev/sda1 ext3 /boot d716dea3-19e1-4bcd-89b8-14b45a6e9f91
Es geht auch mit:
blkid -L /dev/sd*
Das Tool ..
uuid
.. gibt in etwa das aus:
fd23d7b2-c5c9-11e6-a14c-002522aa4e25
Ändern einer Partition-UUID auf einen neuen Zufallswert:
tune2fs /dev/sdm1 -U `uuid`
a) extx-Filesysteme: geht auch nachträglich!
e2label /dev/sdx3 "Seagate #23_partition #3"
b) Win$-artiges: geht zusammen mit der Formatierung
mkdosfs /dev/sdx1 -n "name10char"
df -hl .
gibt z.B. aus:
josef@maria:~$ df -hl . Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/sdf1 1,8T 1,5T 238G 87% /media/bible
starte forced fsck mit Progressbar:
e2fsck -C 0 /dev/sdi3
Letzter fsck … war wann? (es gibt auch andere informative Dinge hier zu holen!)
dumpe2fs -h /dev/sda7 | grep "Last checked:"
In /etc/ld.so.conf.d stehen einige Files namens *.conf
Diese nach Bedarf editieren|ergänzen und ..
# ldconfig
.. aufrufen - Fertig!
Variante:
# export LD_LIBRARY_PATH="my_lib_path" # ldconfig
(Die Variable $LD_LIBRARY_PATH ist per default leer und hilft nur ldconfig dabei, den Lib-Cache zu aktualisieren).
mount UUID=d716dea3-19e1-4bcd-89b8-14b45a6e9f91 /mnt
ist im obigen Beispiel gleichbedeutend mit
mount /dev/sda1 /mnt
Konverter-Tool: man gpsbabel
Anzeige-Webservices: http://www.bikemap.net , http://www.mopedmap.net
Die brauchen *.gpx-files, aber alle möglichen Waypointfileformate lassen sich mit gpsbabel konvertieren. - Z.B. …
gpsbabel -i nmea -f "mio-track.log" -o gpx -F "mio-track.gpx"
Darum ist ein *.style - File zur Formatbeschreibung erforderlich. Das File „speedview.style“ sieht in diesem Fall so aus:
DESCRIPTION Android SpeedView EXTENSION log FIELD_DELIMITER PIPE RECORD_DELIMITER NEWLINE IFIELD LAT_DECIMAL,"","%f" IFIELD LON_DECIMAL,"","%f" IFIELD TIMET_TIME,"","%f" IFIELD PATH_SPEED,"","%f" IFIELD ALT_METERS,"","%f"
Und dann kann es losgehen:
gpsbabel -i xcsv,style=speedview.style -f „android-speedview.log“ -o gpx -F „android-speedview.gpx“
Nachträge:
Kernelsupport für v4l, USB-Kameratreiber für eMPIA (ist im Kernel 2.6.31 dabei)
Vergrößerte Anzeige mit mplayer:
mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:input=0:noaudio:outfmt=yuy2:fps=30 -vf dsize=1200:900:0
oder auch
mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:input=0:noaudio:fps=30 -vf dsize=1200:900:0 -vo gl2
- v4l-conf zeigt viele nützliche Infos an. - Mit Cheese läuft fast alles.
tar -czvf xxx.tar.gz subdirname
tar -hczvf backup.tgz folder_with-subfolders-and_symlinks
Das funktioniert, tar -czvfh hingegen nicht!!??
rpm -ivh xxx.rpm -> installieren rpm -vhU xxx.rpm -> update installieren
wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
wget -q http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb dpkg -i debian-multimedia-keyring_2008.10.16_all.deb
Ein unendlich weitläufiges Thema, didaktisch wohl aufbereitet hier (Javascript muß enabled sein!): http://www.regexr.com/
Dazu nur ein Beispiel aus der C-Programmierpraxis ..
Aufgabe: suche alle Prototypen der verwendeten Testbefehle
Lösung mit grep:
grep -E "void cmd_\w+[(]\w*[)];" *.c
.. ergibt:
... motor.c:void cmd_left(void); motor.c:void cmd_right(void); nvdata.c:void cmd_rnv(void); nvdata.c:void cmd_wnv(void); ...
Erschwerend ist die für Anfänger unverständliche Mischung aus Metazeichen und Zeichen mit direkter Bedeutung im Commandstring des Befehls „grep -E ..“
Was im Beispiel geschieht:
* durchsuche alle Files vom Typ „*.c“ im current directory
* finde darin alle Zeilen, in denen ein String mit folgenden Eigenschaften vorkommt:
- Teilstring „void cmd_“
- danach zumindest ein (oder beliebig mehr) lesbare(s) Zeichen
- danach eine „(„
- danach null (oder beliebig mehr) lesbare(s) Zeichen
- danach eine “)“, unmittelbar dahinter ein „;“
* gib den Filenamen, ein„:“ als Separator und die Zeile mit dem auf das angegebene Muster passenden String aus
(Burny sei Dank!)
Dokumente zum Suchbegriff
# apropos ifconfig
alle Files, in deren Namen „ifconfig“ vorkommt, finden
# locate ifconfig
Vollen Pfad zum Kommando finden
# whereis ifconfig
Vollen Pfad zum Kommando finden, aber nur, wenn es im Suchpfad liegt
# which ifconfig
Suche installierte Pakete mit „pcsc“ im Paketnamen
# aptitude search pcsc | grep -E "^i "
(gilt so für mc-4.8.18)
systemweit: /etc/mc/mc.ext
userspezifisch: ~/.config/mc/mc.ext
Derzeit sieht das so aus:
# ================================================================================================== # # Midnight Commander 4.8.22 extension file # cautiously improved by koarrl 2019-06-03 (Debian-buster-amd64) # # This file should be located/symlinked as ~/.config/mc/mc.ext # # !! not yet tested completely !!! xxx # # ================================================================================================== # see /etc/mailcap for system-wide MIME types # man see .. :-) # All lines starting with # or empty lines are thrown away. # Lines starting in the first column should have following format: # # keyword/descNL, i.e. everything after keyword/ until new line is desc # # keyword can be: # # shell (desc is, when starting with a dot, any extension (no wildcars), # i.e. matches all the files *desc . Example: .tar matches *.tar; # if it doesn't start with a dot, it matches only a file of that name) # # regex (desc is an extended regular expression) # Please note that we are using the GNU regex library and thus # \| matches the literal | and | has special meaning (or) and # () have special meaning and \( \) stand for literal ( ). # # type (file matches this if `file %f` matches regular expression desc # (the filename: part from `file %f` is removed)) # # directory (matches any directory matching regular expression desc) # # include (matches an include directive) # # default (matches any file no matter what desc is) # # Other lines should start with a space or tab and should be in the format: # # keyword=commandNL (with no spaces around =), where keyword should be: # # Open (if the user presses Enter or doubleclicks it), # # View (F3), Edit (F4) # # Include is the keyword used to add any further entries from an include/ # section # # command is any one-line shell command, with the following substitutions: # # %% -> % character # %p -> name of the current file (without path, but pwd is its path) # %f -> name of the current file. Unlike %p, if file is located on a # non-local virtual filesystem, i.e. either tarfs or ftpfs, # then the file will be temporarily copied into a local directory # and %f will be the full path to this local temporal file. # If you don't want to get a local copy and want to get the # virtual fs path (like /#ftp:ftp.cvut.cz/pub/hungry/xword), then # use %d/%p instead of %f. # %d -> name of the current directory (pwd, without trailing slash) # %s -> "selected files", i.e. space separated list of tagged files if any # or name of the current file # %t -> list of tagged files # %u -> list of tagged files (they'll be untaged after the command) # # (If these 6 letters are in uppercase, they refer to the other panel. # But you shouldn't have to use it in this file.) # # # %cd -> the rest is a path mc should change into (cd won't work, since it's # a child process). %cd handles even vfs names. # # %view -> the command you type will be piped into mc's internal file viewer # if you type only the %view and no command, viewer will load %f file # instead (i.e. no piping, so it is different to %view cat %f) # %view may be directly followed by {} with a list of any of # ascii (Ascii mode), hex (Hex mode), nroff (color highlighting for # text using backspace for bold and underscore) and unform # (no highlighting for nroff sequences) separated by commas. # # %var -> You use it like this: %var{VAR:default}. This macro will expand # to the value of the VAR variable in the environment if it's set # otherwise the value in default will be used. This is similar to # the Bourne shell ${VAR-default} construct. # # Rules are applied from top to bottom, thus the order is important. # If some actions are missing, search continues as if this target didn't # match (i.e. if a file matches the first and second entry and View action # is missing in the first one, then on pressing F3 the View action from # the second entry will be used. default should catch all the actions. # # Any new entries you develop for you are always welcome if they are # useful on more than one system. You can post your modifications # as tickets at www.midnight-commander.org ### Changes ### # # Reorganization: 2000-05-01 Michal Svec ### TODO ### # # Postscript Open: ps2svga [gs -DEVICE=jpeg|zgv or something] # Images asciiview # # All X Apps [Nothing/Warning] if no DISPLAY # Not found [Default/Warning] # Empty Output [Default/Warning] # Edit: CopyOut+EDIT+CopyIn # Security Check gzip/bzip EDIT (mktemp) # # Maybe: Open/XOpen/GOpen/KOpen/... for Console/X/GNOME/KDE/etc. directory/\.(*)$ Open=tar -czf "%d".tgz "%d" ### IDEs ########################################################################################### shell/.geany Open=geany %f & ### CAD ############################################################################################ # EAGLE-6.6.0 must be installed for this! # EAGLE boards (related schematics are auto-opened by Eagle's Control Panel) regex/\.(lbr)$ Open=nohup kwrite %f /dev/null 2>&1 & # View=%view{ascii} file %f View=lbrContent %f | more regex/\.(brd|BRD)$ Open=export LD_LIBRARY_PATH="/opt/eagle/lib32"; nohup /opt/eagle/bin/eagle %f /dev/null 2>&1 & # Attention! The extension *.sch is used by OrCAD and EAGLE as well! # So a wrapper bash script ~/bin/launchCAD is needed which serves both. # OrCAD386 schematics furthermore need a stripped-down DOSemu with OrCAD386 installed! regex/\.(sch|SCH)$ Open=nohup launchCAD %f /dev/null 2>&1 & # qCAD dxf schematics (this needs qCAD-prof-3.12.something) regex/\.(dxf|DXF)$ Open=nohup /opt/qcad/qcad %f /dev/null 2>&1 & ### Android stuff ################################################################################## # Android Development IDE (adt-bundle-linux-..) must be installed # and sdk/platform-tools included in $PATH because aapt is needed here! # (a ripped standalone binary is sufficient) # *.apk regex/\.apk$ Open=%cd %p/uzip:// View=%view{ascii} aapt d badging "`echo "%f" | sed 's/\\\//g'`" | grep -Ev "label|icon|densit|main|other" ### GPS stuff ###################################################################################### # *.gpx regex/\.(gpx|GPX)$ Open=nohup gpxviewer %f /dev/null 2>&1 & View=nohup gpxviewer %f /dev/null 2>&1 & ### GIT Repo ####################################################################################### # gitfs changeset regex/^\[git\] Open=%cd %p/changesetfs:// View=%cd %p/patchsetfs:// ### Mail ########################################################################################### # Mailboxes type/^ASCII\ mail\ text Open=%cd %p/mailfs:// ### Install Packages ############################################################################### # apt shell/.deba Open=%cd %p/deba:// View=%view{ascii} apt-cache show `echo %p | sed 's/\([0-9a-z.-]*\).*/\1/'` # deb regex/\.u?deb$ Open=%cd %p/deb:// View=%view{ascii} dpkg-deb -I %f && echo && dpkg-deb -c %f # dpkg shell/.debd Open=%cd %p/debd:// View=%view{ascii} dpkg -s `echo %p | sed 's/\([0-9a-z.-]*\).*/\1/'` # RPM packages (SuSE uses *.spm for source packages) regex/\.rpm$ Open=%cd %p/rpm:// View=%view{ascii} if rpm --nosignature --version >/dev/null 2>&1; then RPM="rpm --nosignature" ; else RPM="rpm" ; fi ; $RPM -qivlp --scripts %f ### Archives ####################################################################################### # .tar regex/\.(tar|TAR)$ Open=%cd %p/utar:// View=%view{ascii} tar tvvf - < %f # .tgz, .tpz, .tar.gz, .tar.z, .tar.Z, .ipk regex/\.t([gp]?z|ar\.g?[zZ])$|\.ipk|\.gem$ Open=%cd %p/utar:// View=%view{ascii} gzip -dc %f 2>/dev/null | tar tvvf - # .tar.bz regex/\.tar\.bz$ # Open=%cd %p/utar:// View=%view{ascii} bzip -dc %f 2>/dev/null | tar tvvf - # .tar.bz2, .tar.b2 regex/\.t(ar\.bz2|bz2?|b2)$ Open=%cd %p/utar:// View=%view{ascii} bzip2 -dc %f 2>/dev/null | tar tvvf - # .tar.lzma, .tlz regex/\.t(ar\.lzma|lz)$ Open=%cd %p/utar:// View=%view{ascii} lzma -dc %f 2>/dev/null | tar tvvf - # .tar.xz, .txz regex/\.t(ar\.xz|xz)$ Open=%cd %p/utar:// View=%view{ascii} xz -dc %f 2>/dev/null | tar tvvf - # .tar.F - used in QNX regex/\.tar\.F$ # Open=%cd %p/utar:// View=%view{ascii} freeze -dc %f 2>/dev/null | tar tvvf - # .qpr/.qpk - QNX Neutrino package installer files regex/\.(qp[rk])$ Open=%cd %p/utar:// View=%view{ascii} gzip -dc %f 2>/dev/null | tar tvvf - # .lha type/^LHa\ .*archive Open=%cd %p/ulha:// View=%view{ascii} lha l %f # .ha regex/\.([Hh][Aa])$ Open=%cd %p/uha:// View=%view{ascii} ha lf %f # .rar regex/\.[rR]([aA][rR]|[0-9][0-9])$ Open=%cd %p/urar:// View=%view{ascii} rar v -c- %f # .ALZip regex/\.(alz|ALZ)$ Open=%cd %p/ualz:// View=%view{ascii} unalz -l %f # .cpio shell/.cpio.Z Open=%cd %p/ucpio:// View=%view{ascii} gzip -dc %f | cpio -itv 2>/dev/null shell/.cpio.xz Open=%cd %p/ucpio:// View=%view{ascii} xz -dc %f | cpio -itv 2>/dev/null shell/.cpio.gz Open=%cd %p/ucpio:// View=%view{ascii} gzip -dc %f | cpio -itv 2>/dev/null shell/.cpio Open=%cd %p/ucpio:// View=%view{ascii} cpio -itv < %f 2>/dev/null # ls-lR regex/(^|\.)ls-?lR(\.gz|Z|bz2)$ Open=%cd %p/lslR:// # patch regex/\.(diff|patch)(\.bz2)$ Open=%cd %p/patchfs:// View=%view{ascii} bzip2 -dc %f 2>/dev/null regex/\.(diff|patch)(\.(gz|Z))$ Open=%cd %p/patchfs:// View=%view{ascii} gzip -dc %f 2>/dev/null regex/\.(diff|patch)$ Open=%cd %p/patchfs:// View=%view{ascii} /bin/cat %f 2>/dev/null # ar library regex/\.s?a$ Open=%cd %p/uar:// #Open=%view{ascii} ar tv %f View=%view{ascii} file %f && nm -C %f # trpm regex/\.trpm$ Open=%cd %p/trpm:// View=%view{ascii} rpm -qivl --scripts `basename %p .trpm` # 7zip archives (they are not man pages) regex/\.(7z|7Z)$ Open=%cd %p/u7z:// View=%view{ascii} 7za l %f 2>/dev/null # ace regex/\.(ace|ACE)$ Open=%cd %p/uace:// View=%view{ascii} unace l %f Extract=unace x %f # arc regex/\.(arc|ARC)$ Open=%cd %p/uarc:// View=%view{ascii} arc l %f Extract=arc x %f '*' Extract (with flags)=I=%{Enter any Arc flags:}; if test -n "$I"; then arc x $I %f; fi # zip regex/\.([Zz][Ii][Pp])$ Open=%cd %p/uzip:// View=%view{ascii} unzip -v %f # zoo regex/\.([Zz][Oo][Oo])$ Open=%cd %p/uzoo:// View=%view{ascii} zoo l %f # gzip type/^gzip Open=gzip -dc %f | %var{PAGER:more} View=%view{ascii} gzip -dc %f 2>/dev/null regex/\.(gz|Z)$ View=%view{ascii} gzip -dc %f 2>/dev/null # bzip2 type/^bzip2 Open=bzip2 -dc %f | %var{PAGER:more} View=%view{ascii} bzip2 -dc %f 2>/dev/null regex/\.bz2?$ View=%view{ascii} bzip2 -dc %f 2>/dev/null # bzip type/^bzip Open=bzip -dc %f | %var{PAGER:more} View=%view{ascii} bzip -dc %f 2>/dev/null # compress type/^compress Open=gzip -dc %f | %var{PAGER:more} View=%view{ascii} gzip -dc %f 2>/dev/null # lzma regex/\.lzma$ Open=lzma -dc %f | %var{PAGER:more} View=%view{ascii} lzma -dc %f 2>/dev/null # xz regex/\.xz$ Open=xz -dc %f | %var{PAGER:more} View=%view{ascii} xz -dc %f 2>/dev/null ### File System Images ############################################################################# # ISO9660 regex/\.([iI][sS][oO])$ Open=%cd %p/iso9660:// View=%view{ascii} isoinfo -l -i %f ### Mirco$oft stuff ################################################################################ # .arj regex/\.a(rj|[0-9][0-9])$ Open=%cd %p/uarj:// View=%view{ascii} arj l %f # .cab regex/\.([cC][aA][bB])$ Open=%cd %p/ucab:// View=%view{ascii} cabextract -l %f # msi regex/\.([Mm][Ss][Ii])$ Open=%cd %p/msiextract -D:// View=%view{ascii} msiextract -l %f ### Sources ######################################################################################## # C #shell/.c Include=editor regex/\.(c|cpp|h)$ Include=editor # Fortran shell/.f Include=editor # C|Cpp Header regex/\.(h|hpp)$ Include=editor # Asm51 regex/\.(S|s|D|d)$ Include=editor # C++ regex/\.(C|cc|cpp)$ Include=editor ### Binaries, Executables ############################################################################ # .so libraries regex/\.(so|so\.[0-9\.]*)$ View=%view{ascii} file %f && nm -C -D %f # Object type/^ELF View=%view{ascii} file %f && nm -C %f ### Documentation & plaintext lists ################################################################## # *.txt *.mir *.csv *.log regex/\.([tT][xX][tT]|[mM][iI][rR]|[cC][sS][vV]|[lL][oO][gG])$ Include=editor # awk filter scripts like "fi:xxx" regex/(^fi:.*)$ Include=editor shell/README Include=editor shell/minicom.cap Include=editor # Texinfo #regex/\.(te?xi|texinfo)$ # GNU Info page type/^Info\ text Open=info -f %f shell/.info Open=info -f %f # Manual page regex/(([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])|\.man)$ Open=case %d/%f in */log/*|*/logs/*) cat %f ;; *) { zsoelim %f 2>/dev/null || cat %f; } | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more} View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) cat %f ;; *) { zsoelim %f 2>/dev/null || cat %f; } | nroff -c -Tlatin1 -mandoc ;; esac # Perl pod page shell/.pod Open=pod2man %f | nroff -c -Tlatin1 -mandoc | %var{PAGER:more} View=%view{ascii,nroff} pod2man %f | nroff -c -Tlatin1 -mandoc # Troff with me macros. # Exception - "read.me" is not a nroff file. shell/read.me Open= View= shell/.me Open=nroff -c -Tlatin1 -me %f | %var{PAGER:more} View=%view{ascii,nroff} nroff -c -Tlatin1 -me %f # Troff with ms macros. shell/.ms Open=nroff -c -Tlatin1 -ms %f | %var{PAGER:more} View=%view{ascii,nroff} nroff -c -Tlatin1 -ms %f # Manual page - compressed regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.g?[Zz]$ Open=case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more} View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz$ Open=case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more} View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz2$ Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more} View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$ Open=case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more} View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff -c -Tlatin1 -mandoc ;; esac regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.xz$ Open=case %d/%f in */log/*|*/logs/*) xz -dc %f ;; *) xz -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more} View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) xz -dc %f ;; *) xz -dc %f | nroff -c -Tlatin1 -mandoc ;; esac # CHM regex/\.(chm|CHM)$ Open=which kchmviewer > /dev/null 2>&1 && (kchmviewer %f &) || (xchm %f &) ### Images ######################################################################################### type/^GIF Include=image type/^JPEG View=%view{ascii} identify %f; test -x /usr/bin/exif && echo && exif %f 2>/dev/null Include=image type/^PC\ bitmap Include=image type/^PNG Include=image type/^TIFF Include=image type/^PBM Include=image type/^PGM Include=image type/^PPM Include=image type/^Netpbm Include=image shell/.xcf Open=nohup gimp %f /dev/null 2>&1 & # Open=nohup gimp %f >/dev/null 2>&1 & shell/.xbm Open=bitmap %f shell/.xpm Include=image View=sxpm %f shell/.ico Include=image regex/\.([pP][sS])$ Open=okular %f 2>/dev/null & ### Sound files #################################################################################### # The below-listed debian packets must be installed for playing|viewing *.aac, *.wav, *.mp3, *.ogg files! # * mplayer # * sox # * libsox-fmt-all # * vorbis-tools # * ffmpeg # # ATTENTION! mplayer and ffmpeg cannot handle filenames with whitespaces, but play "%f" can! # So there's an ugly sed workaround to remove unwanted backslashes # *.wav *.snd *.voc *.au *.smp *.aiff regex/\.(wav|WAV|snd|SND|voc|VOC|au|AU|smp|SMP|aiff|AIFF)$ Open=play "%f" # *.mp3 (cut relevant viewer output lines) regex/\.(mp3|MP3)$ View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/Freq: /,$p' | sed '/Frame#/,$d' Open=play "%f" # *.ogg (cut first 5 and last 1 line of viewer output) regex/\.(ogg|OGG)$ View=%view{ascii} ogginfo %f | tail -n+5 | head -n-1 Open=play "%f" # *.wma regex/\.(wma|WMA)$ View=%view{ascii} mplayer -quiet -slave -frames 0 -vo null -ao null -identify "%f" 2>/dev/null | head -n15 | tail -n8 Open=mplayer -vo null "`echo "%f" | sed 's/\\\//g'`" # *.aac *.m4a regex/\.(aac|AAC|m4a|M4A)$ # Open=rm -f /tmp/tmp.mp3; ffmpeg -i "%f" -ac 2 -ab 128k /tmp/tmp.mp3; play /tmp/tmp.mp3 Open=rm -f /tmp/tmp.mp3; ffmpeg -i "`echo "%f" | sed 's/\\\//g'`" -ac 2 -ab 128k /tmp/tmp.mp3; play /tmp/tmp.mp3 regex/\.(mod|MOD|s3m|S3M|xm|XM|it|IT|mtm|MTM|669|stm|STM|ult|ULT|far|FAR)$ Open=mikmod %f # Open=tracker %f regex/\.([wW][aA][wW]22)$ Open=vplay -s 22 %f regex/\.([sS][pP][xX]|[fF][lL][aA][cC])$ Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi regex/\.([mM][iI][dD][iI]?|[rR][mM][iI][dD]?)$ Open=timidity %f ### Playlists ###################################################################################### regex/\.([mM]3[uU]|[pP][lL][sS])$ Open=if [ -z "$DISPLAY" ]; then mplayer -vo null -playlist %f; else (xmms -p %f >/dev/null 2>&1 &); fi ### Videos ######################################################################################### regex/\.(avi|AVI)$ Include=video regex/\.(asfx|ASFX)$ Include=video regex/\.(divx|DIVX)$ Include=video regex/\.(mkv|MKV)$ Include=video regex/\.(mov|MOV|qt|QT)$ Include=video regex/\.(mp4|MP4|m4v|M4V|mpeg|MPEG)$ Include=video # MPEG-2 TS container + H.264 codec regex/\.(mts|MTS)$ Include=video regex/\.(ts|TS)$ Include=video regex/\.(vob|VOB)$ Include=video regex/\.(wmv|WMV)$ Include=video regex/\.(flicv|FLICV)$ Include=video regex/\.(ogm|OGM)$ Include=video regex/\.(ram|RAM)$ Open=(realplay %f >/dev/null 2>&1 &) # Exception: .3gp are video files not manual pages regex/\.(3gp|3GP])$ Include=video ### Documents ###################################################################################### # Concerning old StarOffice formats: # There must be a symlink: /opt/libreoffice3.0 -> /usr/lib/libreoffice # So the old but Debian-supplied version (which still reads StarOffice files) .. # .. can coexist with the newest /opt/libreoffice4.x installed from Debian packet sources # Debian packets needed for opening/viewing these files: # * odt2txt # * libzip2 # *.sdc *.sdw regex/\.(sdc|SDC|sdw|SDW)$ View=/opt/libreoffice3.x/program/soffice --nologo --view %f & Open=/opt/libreoffice3.x/program/soffice --nologo %f & # *.sxc *.sxw *.odc *.ods *.odt *.odg *.docx *.xslx *.xls *.xlw *.rtf *.doc *.dot *.wri *.vsd *.pptx regex/\.(sxc|SXC|sxw|SXW|odc|ODC|ods|ODS|odt|ODT|odg|ODG|docx|DOCX|xlsx|XLSX|xls|XLS|xlw|XLW|rtf|RTF|doc|DOC|dot|DOT|wri|WRI|vsd|VSD|pptx|PPTX)$ View=libreoffice --nologo --view %f 2>/dev/null & Open=libreoffice --nologo %f 2>/dev/null & # Postscript type/^PostScript View=%view{ascii} ps2ascii %f Open=(gv %f &) # PDF type/^PDF View=%view{ascii} pdftotext %f - Open=nohup okular %f /dev/null 2>&1 & # html regex/\.(htm|HTM|html|HTML)$ # Open=(if test -n "" && test -n "$DISPLAY"; then ( file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null # View=%view{ascii} links -dump %f 2>/dev/null || w3m -dump %f 2>/dev/null || lynx -dump -force_html %f Open=~/firefox/firefox %f # AbiWord shell/.abw Open=(abiword %f &) # Framemaker type/^FrameMaker Open=fmclient -f %f # DVI regex/\.(dvi|DVI)$ Open=run-mailcap %f 2>&1 & View=%view{ascii} catdvi %f # TeX regex/\.(tex|TEX)$ Include=editor # DjVu regex/\.(djvu?|DJVU?)$ Open=djview %f & View=%view{ascii} djvused -e print-pure-txt %f ### Miscellaneous ################################################################################## # Makefile regex/[Mm]akefile$ Open=make -f %f %{Enter parameters} # Imakefile shell/Imakefile Open=xmkmf -a # Makefile.PL (MakeMaker) regex/^Makefile.(pl|PL)$ Open=%var{PERL:perl} %f # dbf regex/\.(dbf|DBF)$ Open=%view{ascii} dbview %f View=%view{ascii} dbview -b %f # REXX script regex/\.(rexx?|cmd)$ Open=rexx %f %{Enter parameters};echo "Press ENTER";read y # Disk images for Commodore computers (VIC20, C64, C128) regex/\.(d64|D64)$ Open=%cd %p/uc1541:// View=%view{ascii} c1541 %f -list Extract=c1541 %f -extract # Glade, a user interface designer for GTK+ and GNOME regex/\.(glade|GLADE)$ Open=if glade-3 --version >/dev/null 2>&1; then (glade-3 %f >/dev/null 2>&1 &); else (glade-2 %f >/dev/null 2>&1 &); fi # Gettext Catalogs shell/.mo View=%view{ascii} msgunfmt %f || cat %f # lyx regex/\.(lyx|LYX)$ Open=lyx %f View=%view{ascii} lyxcat %f # torrent regex/\.(torrent|TORRENT)$ View=%view{ascii} ctorrent -x %f 2>/dev/null ### Default ######################################################################################## # Default target for anything not found above default/* Open= View= ### Includes ###################################################################################### include/editor View=%view{ascii} file %f && nm -C %f Open=nohup kwrite %f /dev/null 2>&1 & include/image Open=(gwenview %f 2>/dev/null &) View=%view{ascii} identify %f include/video Open=(mplayer %f >/dev/null 2>&1 &) ### EOF ###
(gilt so für mc-4.8.22 - Debian-buster)
Das File wird erwartet in …
(A) ~/.mc.menu
(B) ~/.config/mc/menu
(C) systemweit: /etc/mc/mc.menu
Achtung auf de Namensverwirrung! Das File muß UNBEDINGT $USER gehören und mode 600 (rw——-) haben!
Die Bearbeitung aus dem mc-GUI ist verwirrend dank 2 Möglichkeiten:
1. „Befehl“ - „Menüdatei bearbeiten“ - „Lokal“ … holt systemweite Kopie (C) und läßt sie als (B) editieren
2. „Befehl“ - „Menüdatei bearbeiten“ - „Benutzer“ … läßt (B) editieren
„F2“ verwendet vorzugsweise (A), sonst (B), sonst (C)
Ich habe ein mc-Bastelprojekt, am besten (A) nicht anlegen und (B) als ein symlink zum Bastelprojekt verwenden. Dann wird die Möglichkeit 1. nicht mehr anwendbar.
Derzeit sieht das so aus:
shell_patterns=0 # 1 = use shell patterns, 0 = use regex #### mc-menu for Debian-buster 2019-06-03 ################################### # (beautified by koarrl) # # ATTENTION! # * mc searches for this file ... # a) in ~/.mc.menu # b) in ~/.mc/menu # c) in /etc/mc/mc.menu # * This file must be owned by $USER, mode 600 (rw-------) # * Leading blanks are essential, so better edit this with mcedit! # * Blank or comment lines will separate user menu macro items # # For more info see http://linuxcommand.org/lc3_adv_mc.php # # %% The % character # %f The current file (if non-local fs, file will be copied locally and %f will be full path to it) # %p The current file # %d The current working directory # %x The current file's extension # %b The current file's basename (w/o extension) # %s Selected: the tagged files if any, otherwise the current file # %t The list of tagged files # %u The list of tagged files - and they are untagged on return from expand_format! # %view Runs the commands and pipes standard output to the view command # # If %view is immediately followed by '{', recognize keywords ascii, hex, nroff and unform # # If the format letter is in uppercase, it refers to the other panel # # With a number followed the % character you can turn quoting on (default) and off. # For example: # %f quote expanded macro # %1f ditto # %0f don't quote expanded macro # # = or =? .. default conditional - sets the default entry on a menu # + or +? .. addition conditional - determines if a menu entry is displayed # # A conditional is added to a menu entry just before the first line. # It starts with either a + (for an addition) or a = (for a default) followed by one or more sub-conditions. # Sub-conditions are separated by either a | (meaning or) or a & (meaning and) allowing us to express some complex logic. # It is also possible to have a combined addition and default conditional by beginning the conditional with =+ or +=. # Two separate conditionals, one addition and one default, are also permitted preceding a menu entry. # # sub-conditions # -------------- # f pattern Match currently selected file # F pattern Match last selected in other panel # d pattern Match currently selected directory # D pattern Match last selected directory in other panel # t type Type of currently selected file # T type Type of last selected file in other panel # x filename File is executable # ! sub-cond Negate result of sub-condition # # file types # ---------- # t r regular file # t d directory # t n not a directory # t l link # t x executable file # t t tagged # t c character device # t b block device # t f FIFO (pipe) # t s socket # ############################################################################## ------- (by koarrl 2019-06-03) ------- # ---- "d" ... diff 2 tagged files ------------------------------------------- # if only one file is tagged: compare selected against tagged # if more than 2 files are tagged: take #1 & 2, more are ignored = + t t d diff tagged files echo "------------" echo "%%d/%%t="%d/%t # list of tagged files in current panel (bright yellow) echo "%%D/%%T="%D/%T # list of tagged files in opposite panel (bright yellow) echo echo "%%d/%%f="%d/%f # current file in current panel (light blue) echo "%%D/%%F="%D/%F # current file in opposite panel echo echo "%%d/%%p="%d/%p echo "%%D/%%P="%D/%P echo echo "%%d/%%s="%d/%s echo "%%D/%%S="%D/%S echo "------------" if [ "%T" != "" ]; then MYLEFT=%D/`echo %T|cut -d" " -f1` MYRIGHT=%d/`echo %t|cut -d" " -f1` echo "kompare "$MYLEFT" "$MYRIGHT nohup kompare $MYLEFT $MYRIGHT >/dev/null 2>&1 & # diff first tagged files in different panels else MYFILES=`echo %t|cut -d" " -f1-2` echo "kompare "$MYFILES nohup kompare %d/$MYFILES >/dev/null 2>&1 & # diff first 2 tagged files in current panel fi # ---- "r", "R" ... rename pics and videos by their EXIF date ---------------- # Depends on koarltool "RenameByExifdates-0.05" or newer! + t t r rename tagged pix & vids by EXIF dates /home/koarl/bin/RenameByExifdates %u + t t R rename tagged pix & vids by EXIF dates & backup /home/koarl/bin/RenameByExifdates b %u # ---- "S" ... synchronize left & right panel using rsync -------------------- S rsync both panels rsync -rvcb %D/* %d # copy newer files from %D to %d & create backups if needed rsync -rvcb %d/* %D # copy newer files from %d to %D & create backups if needed # ---- "X" ... delete tagged files if a copy exists in the other panel ------- + t t X delete tagged files if copy exists in other panel if [ %d = %D ]; then echo "The two directories must be different." exit 1 fi for i in %t ; do if [ -f %D/"$i" ]; then SUM1=`sum "$i"` SUM2=`sum %D/"$i"` if [ "$SUM1" = "$SUM2" ]; then rm "$i" && echo "${i}: DELETED." else echo "$i and "%D"/$i differ: NOT deleted." fi else echo "$i has no copy in "%D": NOT deleted." fi done # ----------------------------------------------------------------------------
Problem: Mehrere hardwaregleiche Konverter an einem Rechner, die fix je ihrer Aufgabe zugeordnet werden sollen
Lösungsvarianten:
a) udev verstehen und verwenden (bevorzugt!)
Neuen Serialconverter anstecken, mit ..
# dmesg | tail -n20
.. seinen unique string herausfinden. Nun ein File wie z.B. „/etc/udev/rules.d/z97_ftdi_usbsio.rules“ anlegen. Das ist eine Liste verschiedener Device-Individuen, die sich in einer Eigenschaft unterscheiden lassen.
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDXBY8S", SYMLINK+="ftdi_digitus"
Neu-Einlesen der Rules-Tabellen geschieht mit:
# udevadm control --reload
Und dann das Device einmal ab- und wieder anstecken. Damit wird in /dev ein Symlink namens „ftdi_digitus“ angelegt.
b) (DONTUSE!) Devices unterscheiden per vendor/productID oder per Drivername
c) (DONTUSE, veraltet!) FT232-Konverter verwenden, diesen entweder mit dem FTDI-Tool http://rtr.ca/ft232r/ft232r_prog-1.24.tar.gz modifizieren oder die eingebaute unique number abfragen!
Unbedingt nötig sind erst mal ein paar Minimal-Setupfiles nach Bedarf.
Diese Files enthalten nämlich die paar Settings, die nicht über die commandline einstellbar sind. Würg.
/etc/minicom/minirc.8n1+le (kein HW-Handshake, local echo ON):
pu bits 8 pu parity N pu stopbits 1 pu hasdcd No pu rtscts No pu localecho Yes pu addlinefeed No
/etc/minicom/minirc.8n1-le (kein HW-Handshake, local echo OFF - wie z.B. für halbduplex-Debug-SIO):
pu bits 8 pu parity N pu stopbits 1 pu hasdcd No pu rtscts No pu localecho No pu addlinefeed No
Und dann: Beispiel für ein KDE-Desktop-Linkfile, das minicom für das FTDI-Modul unter /dev/ftdi_digitus anwirft:
[Desktop Entry] Comment[de_AT]= Comment= Encoding=UTF-8 Exec=xterm -geometry 118x16+1680+0 -fg white -bg black -fn 7x13 +sb -T 'minicom Digitus' -e minicom -c on 8n1+le+lf -b 9600 -D /dev/ftdi_digitus GenericName[de_AT]= GenericName= Icon=utilities-terminal MimeType= Name[de_AT]=FTDI_SPI_38400 Name=FTDI_SPI_38400 Path= ServiceTypes= StartupNotify=false SwallowExec= SwallowTitle= Terminal=false TerminalOptions= Type=Application X-DBUS-ServiceName= X-DBUS-StartupType=none X-DCOP-ServiceType= X-KDE-SubstituteUID=false X-KDE-Username=root
Problem 1: Der Arduino erwartet sich serielle Befehle, die mit LF beendet werden.
Lösung: eine Übersetzungstabelle namens „table.ardu“ mit minicom im Untermenü anlegen:
„Ctrl-A“ „O“ –> Menü „Bildschirm und Tastatur“ –> dann „O“ für Zeichenkonvertierung
Bei ENTER-Drücken muß statt 0x0d ein 0x0a gesendet werden!
Nachteil: „local echo on“ bewirkt dann, daß die Antwortzeile nicht bei Spalte 0 anfängt.
Krücke: im Minicom-Fenster „Ctrl-A“ „U“ eingeben.
Problem 2: wie kann man das im ~/.minirc.ardu formulieren?
pu port /dev/ttyS0 pu baudrate 38400 pu rtscts No pu convf table.ardu pu localecho Yes
Aufruf gelingt dann mit:
minicom -c on ardu
Es gibt das gut versteckte Feature, einer jeden neu empfangenen Zeile eine Timestamp voranzustellen. „Ctrl-A N“ –> 4 Varianten:
Hier befindet sich alles, was dazugehört:
cd /home/.gnupg
Importiere alle public keys hier:
gpg --import *.asc
Zeige alle keys aus pubring.gpg an:
gpg --list-keys
Die Ausgabe davon sieht z.B. so aus:
/home/franz/.gnupg/pubring.gpg ------------------------------ pub 1024D/021FBAB1 2001-04-18 uid Fritz Maier <f.maier@kafka.com> sub 4096g/637542F9 2001-04-18 pub 1024D/363AD90D 2005-11-15 uid Franz Moser <f.moser@kafka.com> sub 1024g/80FAC3DB 2005-11-15
Exportiere Franz Mosers key (siehe oben!) in ASCII-lesbarer Form:
gpg --export -a 363AD90D | tee Franz_Moser_pub.asc
Schlüsselpaar erzeugen (geht interaktiv):
gpg --gen-key
Fritz Maier entschlüsselt Franz Mosers Geheim-File (erfordert interaktive Eingabe der Passphrase):
gpg -d Geheimfile.pgp > Geheimfile.plain
Achtung! geht so nur bei physikalisch gleichen devices.
dd bs=512k if=/dev/hda of=/dev/hdd
lsof /dev/dsp
z.B. beim Kopieren anwachsende Files in Kilobyte-Stufen beobachten:
watch -n1 ls -lk
<cr><lf> … DOS/Windoof
<cr> ……. Mac
<lf> ……. Linux
von <cr><lf> nach <lf>:
sed -r s/"\r"// infile > outfile
DOS –> Linux:
sed s/.$// infile > outfile
Mac –> Linux:
sed s/\r/\n/ infile > outfile
Linux –> DOS:
sed s/$/\r/ infile > outfile
Linux –> Mac:
sed s/\n/\r/ infile > outfile
DOS –> Mac:
sed s/\r// infile > outfile
Mac –> DOS:
sed s/\n/\r\n/ infile > outfile
Text in einzelne Wörter pro Zeile zerlegen und sortieren:
(sehr lustig bei Patenten…
sed s/' '/'\n'/g patent.txt|sort
Das Tool tr kann das: Angabe der zu löschenden Zeichen muß leider oktal erfolgen. Nachfolgendes Beispiel löscht alle Zeichen < 0x20 außer CR (015 oct) und LF (012 oct), und alle über 0x7f. Vielleicht gibt es eine kürzere Formulierung …?
cat ghostchars.txt | tr -d '\000-\011,\013-\014,\016-\037,\200-\377' > clean.txt
Wirkt nur bei mit „:“ getrennten Zeilen, fügt CR-LF ein
sed s/:/\\r\\n:/g in.hex > out.hex
Das Datum
17.Okt.2003, 10:23:19
wird umgestellt zu
10 (Oktober), der 17., 10 Uhr, 23 min, 2003 (Jahr!), Sekunden
und sodann intuitiv eingegeben:
date 101710232003.19
Hualp! *)
/usr/bin/rdate -s timeserver /sbin/hwclock -wu
Beispiel mit Klartext-Datum, minutengenau
FILENAME=franz`date +'%Y_%m_%d_%H_%M'.tar.gz`
Z.B. Ümläutä von iso-8859-15 auf UTF-8
convmv --notest -r -f iso-8859-15 -t utf8 *
ps axf
Sollte jemand jemals aus Neugier oder planlos dazugehörige Pakete installieren, wirds schlimm.
Die Homepartition wird nicht mehr gemountet, der mount-Befehl verkackt, graphischer login wird verweigert etc.
A pain in the ass, wie der Engländer sagt.
Nicht wirkt jedenfalls: /etc/selinux/config editieren und ..
SELINUX = disabled
.. einfügen und rebooten.
Was (bei grub2-Verwendern) hilft: /etc/default/grub editieren und ..
GRUB_CMDLINE_LINUX="selinux=0"
.. einfügen, ..
update-grub
.. als root eingeben und rebooten. Bzw. beim Booten die appendline händisch übergeben.
Und danach zur spurlosen Entsorgung:
dpkg --purge selinux-policy-default selinux-basics libsetools-tcl python-semanage libsemanage1 \\ libqpol1 selinux-utils libsemanage-common libustr-1.0-1 policycoreutils python-selinux \\ checkpolicy setools bwidget python-magic python-sepolgen
Rebooten und die Welt ist wieder in Ordnung!
mkswap /dev/hdxx swapon -a
zcat file.gz
df -hlTx tmpfs
du -h dirname (-h: in MB, -k: in kB, -b: in Bytes)
du -h *|sort -nr|tee dulist.txt
echo $PWD --> /home/franz/privat basename $PWD --> privat
LONGPATH=`pwd` echo $LONGPATH --> /home/franz/privat/pfui/olga/stöckelschuh
SHORTPATH=${LONGPATH/*pfui/pfui} echo $SHORTPATH --> pfui/olga/stöckelschuh
Variante:
SHORTPATH=${LONGPATH/*pfui//pfui} echo $SHORTPATH --> /pfui/olga/stöckelschuh
PENGUIN=/home/franz/homeworks DOSPATH=`echo $PENGUIN | sed 's/\//\\/ g'` echo $DOSPATH --> \home\franz\homeworks
auf der commandline:
setterm -blank 0
bzw. in /etc/console-tools/config:
.. BLANK_TIME=... ..
dpkg-reconfigure console-data
bzw. denken an /etc/console/boottime.kmap.gz
Ist das SUID-Bit des su-Befehls verlorengegangen? Kommt vor.
chmod 4755 /bin/su
find / -perm -4000 -o -perm -2000 -exec ls -ldb {} \;» suidfiles.txt
# losetup /dev/loop0 file ..... file erscheint auf /dev/loop0 # mount /dev/loop0 /mnt ........ mounten # umount /mnt .................. bzw. unmounten # losetup -d /dev/loop0 ........ detach (weg damit)
# losetup -P /dev/loop0 disk.img # fdisk -l /dev/loop0 .......... Partitionstabelle anzeigen (wie gewohnt)
Die gesamte Disk erscheint also auf /dev/loop0, wobei:
Partition 1 entspricht /dev/loop0p1
Partition 2 entspricht /dev/loop0p2
etc.
z.B. 2 MBytes voll 00 00 00 …
dd if=/dev/zero of=nix bs=1k count=2000
Nach erstmaligem Aufruf gibt es ein Rechteproblem,
der Assistent („Einstellungen“-„System-Berechtigungen einrichten“ fordert zunächst die Einrichtung einer Gruppe „burning“.
(als root):
# addgroup burning
Dann in /etc/group gewünschte User zu „burning“ hinzufügen, neu einloggen.
Beim nächsten k3b-Aufruf will der Assistent nun die Tools …
/usr/bin/cdrdao
/usr/bin/wodim
/usr/bin/growisofs
suid-root setzen, wobei sgid-root richtig wäre. Also händisch als root ändern:
# cd /usr/bin # chmod 2710 cdrdao wodim growisofs
k3b neu starten, alles funktioniert!
Die Weiterentwicklung von k9copy wurde leider eingestellt, und die letztständigen Sourcen http://sourceforge.net/projects/k9copy/files/k9copy-kde4/2.3.8/k9copy-2.3.8-Source.tar.gz lassen sich nicht fehlerfrei copmpilieren.
Zum Glück kann man das letzte stabile Paket auch unter wheezy installieren. - Zunächst die Abhängigkeiten auflösen:
apt-get install dvdauthor libavutil50 libfame-0.9-1 libgraphicsmagick3 liblavfile-2.0-0 liblavjpeg-2.0-0 liblavplay-2.0-0 libmjpegutils-2.0-0 libmpeg2encpp-2.0-0 libmplex2-2.0-0 libquicktime2 libswscale0 libxine1 libxine1-bin libxine1-ffmpeg libxine1-misc-plugins libxine1-plugins libxine1-x mjpegtools
Und dann das passende *.deb von hier holen:
http://www.deb-multimedia.org/pool/main/k/k9copy/k9copy_2.3.6-0.0_i386.deb bzw. http://www.deb-multimedia.org/pool/main/k/k9copy/k9copy_2.3.6-0.0_amd64.deb
und auch dieses Paket dazuinstallieren - FERTIG!
Double-Layer-DVD kopieren mit k9copy:
Daten-Backup in Ordner erstellen Einlegen in DVD-ROM(/dev/sr0, liest schneller als Brenner) warten auf Infobox .. "kopieren mit k9copy (Wizard)" Quelle: /dev/sr0 Ziel: DVD-Backup als Ordner /home/franz/k9copy (Unterordner sicherheitskopie wird autom. angelegt) Verkleinerungsfaktor > 4,4GB weiter, weiter, ... fertigstellen!
ODER (manchmal kommt die Infobox nicht)
k9copy starten, Assistent anwerfen, dann wie oben
showkey (geht nur auf Textkonsole!)
Secure Copy (auf der commandline)
scp ./file user@hostname://home/user
sftp-Übertragung (z.B. mit konqueror)
sftp://user@hostname
Wenn es dann Probleme mit Meldungen wie dieser gibt:
The host key for this server was not found, but another type of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. Please contact your system administrator.
$ rm ~/.ssh/known_hosts
.. und danach Verbinden mit dolphin/sftp und das Dialogfenster „username/password“ beantworten.
(angeblich hilft dagegen auch:)
$ ssh-keygen -R <hostname>
# groupadd -g 200 microchip # adduser franz microchip
Neues udev-Rule-File anlegen:
/etc/udev/rules.d/25-microchip.rules :
# R/W access to Microchip USB devices ATTR{idVendor}=="04d8", OWNER:="root", GROUP:="microchip", MODE:="0660"
Geändertes Rules-Fle speichern, dann:
# udevadm control --reload-rules
und das USB-Device einmal ab- und wieder anstecken, dann gilt's!
losetup -f /media/loc/sdb1/file mount /dev/loop0 /mnt
bzw.
losetup /dev/loop0 /dev/loop0: [0811]:431 (/media/loc/sdb1/file)
bzw.
mount /dev/loop0 /mnt -t loop
…
umount /mnt losetup -d /dev/loop0
Medium erscheint in /sys/block/sd* Kernelconfig muß ……….? unterstützen.
exif -i dscf8039.jpg|grep 0x9003|cut -d"|" -f2
…ergibt:
2006:01:15 14:48:42
bzw. …
exif -i dscf8039.jpg|grep 0x9003|cut -d"|" -f2|sed s/://g|sed s/" "//
… ergibt:
20060115144842
und dann:
touch -t "200601151448.42" dscf8039.jpg
/sbin/ifconfig|grep -C1 "eth0"|grep "inet addr"|cut -d ":" -f2|cut -d " " -f1
als user:
set-language-env
bzw.
export LANG=de_AT@euro
in /etc/inputrc:
set input-meta on set output-meta on set convert-meta off (Kommentar daneben ist falsch herum!)
a) Global gültig: /etc/bash.bashrc
b) Lokal (im homedir):
.bash_profile (wird für login shells ausgeführt, inkludiert ~/.bashrc, sonst nix)
.bashrc - PATH kann für user erweitert werden - export HISTCONTROL=ignoreboth (!!) - Tab-completion besser global setzen
Starten als user (aus der login-shell):
X
bzw. (suid-root gesetzt!)
/usr/bin/X11/X &
Beenden (als root) mit:
kill `pidof "X"`
Section "InputDevice" Identifier "Void1" Driver "void" EndSection Section "ServerLayout" Identifier "Simple Layout" Screen "Screen 1" InputDevice "Void1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection
xlsfonts
xrandr
mknod logpipe p xconsole -file logpipe & echo "all-log-text" > txpipe
Fenster: wie schließen außer durch kill? Fenster-Resize: wie?
fbtv -q
(braucht Framebuffer-Treiber!)
my_kernel vga=0x…
Colours | 640x480 800x600 1024x768 1280x1024 1600x1200 --------+--------------------------------------------- 256 | 0301 0303 0305 0307 031C 32,768 | 0310 0313 0316 0319 031D 65,536 | 0311 0314 0317 031A 031E 16.8M | 0312 0315 0318 031B 031F
(a) clientseitig
Achtung, das Paket cifs-utils muß installiert sein! (wegen /sbin/mount.cifs)
/etc/fstab ergänzen:
//Winserver/Winfolder /mnt/Winfolder cifs credentials=/root/.credentials,iocharset=utf8,codepage=cp850,uid=franz,gid=users,file_mode=0644,dir_mode=0755,domain=dahoam
UND ein file namens /root/.credentials:
username=fraunz password=raiffeisen domain=hoamatland
Die direkte Angabe username,password in /etc/fstab geht nicht mehr so wie früher bei smbfs!
Clientseitige Änderung des Passworts durch den user:
smbpasswd -r sambaservername -U username
(b) serverseitig - in smb.conf:
[global] workgroup = dahoam SO_RCVBUF=8192 SO_SNDBUF=8192 socket options = TCP_NODELAY follow symlinks = yes wide symlinks = yes unix extensions = no characterset = ISO8859-15 client code page = 850 [homes] comment = Zugang für WinDOOF-User read only = no valid users = smb1 invalid users = root
Benötigte Software: vcdimager, cdrdao
VCD auslesen:
vcdrip --cdrom-device=/dev/scd0 --rip
–> *.mpg datei liegt jetzt im aktuellen Verzeichnis!
(S)VCD-Image aus *.mpg - Datei erzeugen:
vcdimager --type=svcd --cue-file=videocd.cue --bin-file=videocd.bin --iso-volume-label=VideoCD MPGDatei.mpg
–> videocd.bin und videocd.cue liegen jetzt im aktuellen Verzeichnis!
Brennen der SVCD mit cdrdao:
cdrdao write --device 0,1,0 --driver generic-mmc --speed 16 videocd.cue
cat /dev/input/event0|hexdump
oder:
xxd /dev/input/event0
oder (Rohdaten):
mode2
oder (wenn lircd schon gestartet):
irw
ifconfig eth0 down; ifconfig eth0 up hw ether aa:bb:cc:dd:ee:ff
All CGI applications must output a valid HTTP header, followed by a blank line, before any other data.
In other words, * two * newline characters have to be output after the „Content-type: …“ header.
Here is how the output should look:
Content-type: text/html <HTML> <HEAD><TITLE>Output from CGI Script</TITLE></HEAD> <BODY> ................. </BODY> </HTML>
Das geht nicht ganz einfach mit wget, weil google keine robots mag.
Eine längere commandline hilft dann aber weiter.
Z.B. die Suche der Antwort auf die Frage, wie oft das Wort „Kuhfladen“ auf google gefunden wird (diese commandline läßt sich noch reduzieren!):
wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9" --header="Accept:text/html" http://www.google.at/search?q=Kuhfladen
Die Anzahl der hits findet sich in dem einzeiligen(!) Antwortfile mit dem Namen „search?q=Kuhfladen“ …
… von google.at:
~~~blabla~~~<div id="resultStats">Ungefähr 151.000 Ergebnisse<~~~blabla~~~
… oder von google.com:
~~~blabla~~~<div id=resultStats>About 151,000 results<~~~blabla~~~
Das Antwortfile kann mit diesem selbsterklärenden bash-Einzeiler universell auf seine Essenz reduziert werden:
grep -o -E "<div id=[\"]?resultStats[\"]?>[[:print:]]{32}" | cut -d">" -f2 | cut -d "<" -f1
(würg-Problem wegen „ä“…alles ist UTF8-codiert, das „ä“ aber nicht … sed-Filter nötig!)
und liefert somit den output:
Ungefähr 151.000 Ergebnisse
bzw.
About 151,000 results
Outputfiltering geht auch so (quick & dirty):
grep -oE "hr [0-9.]+ Ergebnisse" | cut -d" " -f2
Als kürzestmöglicher Einzeiler sieht das dann so aus:
wget -qO- --user-agent="" http://www.google.at/search?q=Kuhfladen | grep -oE "hr [0-9.]+ Ergebnisse" | cut -d" " -f2
Oder mit der lustigen Google-Verarschung:
wget -qO- --user-agent="James Bond (build version 007, with license to kill)" http://www.google.at/search?q=Kuhfladen | grep -oE "hr [0-9.]+ Ergebnisse" | cut -d" " -f2
# telnetd: getnameinfo. # Connection closed by foreign host.
→ Namensauflösung beim Zielrechner funktioniert nicht! Zuallermindest muß in /etc/hosts die IP des Hostrechners mit irgendeinem Namen eingetragen sein.
sa-learn --spam --dir /home/tux/Mail/SPAM_MISSED/cur/*
Nach Update von perl passiert das:
"Cannot open bayes databases /home/rich/.spamassassin/bayes_* R/W: tie failed: Inappropriate ioctl for deviceCannot open bayes databases"
Running sa-learn with „–import“ option resolves the problem.
Vorerst mal: * ntfs-3g (Userspace-Tool) installieren * kpartx (Devicemapper-Tool für raw images) installieren Und den Kernel-Devicemapper-Driver muß man auch haben. * Kerneloption CONFIG_FUSE_FS gesetzt? Evtl. neu compilieren!
Jetzt gehts los mit …
# kpartx -l rawdisk.img
- patzt beim ersten Gebrauch das /dev/loop0 mit dem Raw-Image an. Gut so. - und zeigt nicht sehr klartextmäßig:
loop0p1 : 0 97675137 /dev/loop0 63 loop0p2 : 0 156264255 /dev/loop0 97675200 loop0p3 : 0 3919860 /dev/loop0 253939455 loop0p4 : 0 54717390 /dev/loop0 257859315
Deutlicher sieht man die Partitions per …
# fdisk -l /dev/loop0
Disk /dev/loop0: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00066d5a Device Boot Start End Blocks Id System /dev/loop0p1 * 1 6080 48837568+ 7 HPFS/NTFS /dev/loop0p2 6081 15807 78132127+ b W95 FAT32 /dev/loop0p3 15808 16051 1959930 82 Linux swap /Solaris /dev/loop0p4 16052 19457 27358695 83 Linux
Damit wurden sozusagen „virtuelle partitions“ namens „loop0px“ erzeugt.
# kpartx -a -v rawdisk.img
- das gibt etwa so etwas aus:
add map loop0p1 (253:0): 0 97675137 linear /dev/loop0 63 add map loop0p2 (253:1): 0 156264255 linear /dev/loop0 97675200 add map loop0p3 (253:2): 0 3919860 linear /dev/loop0 253939455 add map loop0p4 (253:3): 0 54717390 linear /dev/loop0 257859315 ...
Und nun endlich:
# mount -t ntfs-3g /dev/mapper/loop0p1 /mnt
KURZFASSUNG:
# mount -t ntfs-3g /dev/sdx1 /mnt
bzw.
# mount -t ntfs-3g -o force /dev/sdx1 /mnt
Zuerst socat und minicom installieren!
Lantronix konfigurieren: mit telnet (Default=DHCP, Serviceport=9999, Datenport=10001)
Seriell-Device anlegen:
socat PTY,link=/dev/socat TCP:192.168.3.193:10001 & SOCATDEV=`ls -l /dev/socat|cut -d">" -f2` chown root:dialout $SOCATDEV chmod 660 $SOCATDEV
Kontrolle:
ls -lL /dev/socat
minicom konfigurieren ( link /etc/minicom/minirc.socat anlegen) Und starten:
minicom --color=on socat
Es empfiehlt sich, die allerneueste Version als *.tgz zu organisieren und zu verwenden. https://youtube-dl.org/downloads/latest/
Ganzes Video (als *.mp4):
youtube-dl https://www.youtube.com/watch?v=F69PBQ4ZyNw
Nur als *.mp3:
youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=F69PBQ4ZyNw