Umlaute:
-asis Option ohne Leerzeichen davor!!
keinen automatischen Zeilenumbruch:
-wordwrap Option mit Leerzeichen davor!!
Wer war wann zuletzt eingeloggt?
Dies läßt sich ganz einfach mit dem Befehl lastlog feststellen.
Wer war wann eingeloggt?
Auch für das gibt es einen Befehl: last . Je länger das System schon läuft, desto länger dauert die Ausgabe! Mittels dem Pipesysmbol läßt es sich auch nach bestimmten Begriffen suchen:
www:# last | grep root Zeigt alle Logins vom root an
Uhrzeit stellen
Bei Linux gibt es zwei Uhrzeiten: eine vom BIOS und die Linux eigene Zeit.
Anzeigen der BIOS Uhr:
# hwclockAnzeigen der Linux Uhr:
# dateSetzen der BIOS Uhr auf den 4.6.2002 16:45:05 Uhr:
# hwclock --set --date="6/4/2002 16:45:05"Setzen der Linuxzeit durch die BIOS Uhr:
# hwclock --hctosys
\u zeigt der Username an
\h zeigt den Hostnamen an
\w zeigt das aktuelle Verzeichnis an
export PS1="\u@\h:\w # "läßt das Prompt so aussehen:
root@www:/usr/src #
#! /bin/sh ftp -i -n host.sonstwo.marty44.net << "EOF" user testuser geheim cd html mput *.html bye EOFDer Parameter "-i" gibt an, das ftp nicht nachfragen soll, ob es eine Datei bei multiplen Up/Downloads empfangen/senden soll (mput/mget). Um zu verhindern, das ftp nach einen Usernamen und Passwort fragt, ist der Parameter "-n" da. Allerdings sollte dann danach die erste Anweisung gleich das ftp Kommando USER sein. Ftp kennt ziemlich viele Kommando's (grüne Schrift), siehe dazu auch "man ftp".
nervendes Piepsen der Bash abschalten
Wer viel mit der Tabtaste zur Autovervollständigung von Pfadnamen arbeitet, kennt das nervtötende Piepsen. Mit folgenden Eintrag in der Datei ~/.bashrc oder ~/.profile läßt es sich ausschalten:
setterm -blength 0Natürlich kann der Befehl auch so eingegeben werden, dann gilt er nur für die aktuelle Sitzung.
LILO entfernen
Falls es mal von Not sein sollte den LILO zu entfernen, geht dies einfach mit dem Befehl:
lilo -u /dev/geraet
Welchen Dateien öffnet ein Programm?
Jeder kennt bestimmt die Fehlermeldung von irgendwelchen Programmen, das irgendwo eine Datei nicht gefunden wurde. Mit strace kann man nachvollziehen, welche Dateien ein Programm öffnen will:
strace -e trace=file PROGRAMMMit strace kann man auch nach Netzwerkaufrufen und so weiter suchen, siehe dazu man strace.
ein Patchset erstellen
Um ein Patchset von zwei Versionen eines Programmes zu erstellen empfiehlt sich diff. Hier als Beispiel an einen Linux Kernel:
root:~# cd /usr/src root:/usr/src# ls -l drwxr-xr-x 14 573 573 4096 Dec 24 11:20 linux-2.4.20 drwxr-xr-x 14 573 573 4096 Dec 24 11:16 linux-2.4.20working root:/usr/src# diff -Naur linux-2.4.20 linux-2.4.20working > patch-2.4.21pre2-mips-silly-console_setupIntern hat so ein Patch eine auf den ersten Blick chaotische Struktur: patch-2.4.21pre2-mips-silly-console_setup
ein Patchset einspielen
Meistens klappt das Einspielen eines Patches mit dem nachfolgeden Befehl. Allerdings haben patch und diff so viele Optionen, so das dies hier keine Allgemeinlösung ist. Zuerst muß man in das Hauptverzeichnis wechseln von dem Programm, was man patchen will und danach den patch Befehl ausführen.
root:~# cd /usr/src/linux-2.4.20 root:/usr/src/linux-2.4.20# patch -Np1 -i /von/wo/auch/immer/patch-2.4.21pre2-mips-silly-console_setup
Logeinträge über den syslog unter der Shell
Wenn man zum Beispiel in einen Shellscript einen Logeintrag erstellen will, kann man dazu das Programm logger verwenden:
root:~# logger -p local7.info Dies ist ein TestDie Option -p gibt an, wo der syslog den Eintrag hinschreibt (hier in dem Beispiel ist es local7). Der Zusatz .info gibt den Loglevel an, alle möglichen Werte sind in der Manpage zu logger aufgelistet. Wie der Eintrag dann im Log erscheint, hängt natürlich auch von der Konfiguration des syslogd ab.
Probleme bei der Installation von Debian Buster / Devuan ASCII 2.1 auf einem Microsoft Surface 3 Pro
Während der Installation bemerkt der Installer das eine WLAN Netzwerkkarte vorhanden ist, kann sie aber nicht in Betrieb nehmen da die Firmware Datei fehlt.
Lösung: Datei pcie8897_uapsta.bin von https://github.com/wkennington/linux-firmware/tree/master/mrvl
herunterladen und auf einen USB Stick packen. Den Installer einmal probieren lassen die Datei selbst vom USB Stick zu laden.
Schlägt dies fehl, den USB Stick mounten. Via Alt-F2 Konsole wechseln und aktivieren:
# mount /dev/sdc1 /mnt (eventuell vorher das richtige Device via dmesg | grep sd lokalisieren) # mkdir -p /lib/firmware/mrvl # cp /mnt/pcie8897_uapsta.bin /lib/firmware/mrvl/ # umount /mntMit Alt-F1 wieder auf die Installerkonsole wechseln und erneut die Firmware suchen lassen. Sie sollte nun gefunden werden. In der Netzwerkkartenauswahl anschließ libertas auswählen.
Später in der Installation wird Grub als Bootmanager eingerichtet. Da das Surface UEFI nutzt, kann es passieren das man folgende Fehlermeldung erhät:
Unable to install GRUB in dummy Executing 'grub-install dummy' failed. This is a fatal error.Mit Alt-F2 die Konsole wechseln und manuell das efivarfs mounten:
# mount -t efivarfs efivarfs /target/sys/firmware/efi/efivarsZuück zur Installerkonsole mit Alt-F1 und erneut den Grubeintrag auswählen. Grub sollte nun ohne Probleme durchlaufen.
nicht darstellbare Zeichen in einer UTF-8 Datei entfernen
iconv -f utf8 -t utf8 -o Clean_UFT8_Eurobilltracker_hits_by_80060.csv -c Eurobilltracker_hits_by_80060.csv
apr undefined reference to sys_siglist Fehler bei make test
Falls man folgende Fehlermeldung bei make test erhält:
/bin/sh /tmp/t/apr-1.7.2/libtool --silent --mode=compile --tag=CC gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I../include -I./../include -o globalmutexchild.lo -c globalmutexchild.c && touch globalmutexchild.lo /bin/sh /tmp/t/apr-1.7.2/libtool --silent --mode=link --tag=CC gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I../include -I./../include -no-install -o globalmutexchild globalmutexchild.lo ../libapr-1.la -luuid -lrt -lcrypt -lpthread -ldl /usr/bin/ld: ../.libs/libapr-1.so: undefined reference to `sys_siglist' collect2: error: ld returned 1 exit status make[2]: *** [Makefile:115: globalmutexchild] Error 1 make[2]: Leaving directory '/tmp/t/apr-1.7.2/test' make[1]: *** [/tmp/t/apr-1.7.2/build/apr_rules.mk:119: all-recursive] Error 1 make[1]: Leaving directory '/tmp/t/apr-1.7.2/test' make: *** [Makefile:129: check] Error 2sys_siglist scheint outdated zu sein, man kann das configure Skript zwingen diese Funktion nicht zu nutzen:
ac_cv_have_decl_sys_siglist=no ./configure --prefix=/usr --disable-static --with-installbuilddir=/usr/share/apr-1/buildAnsonsten wie gehabt auf https://www.linuxfromscratch.org/blfs/view/svn/general/apr.html vorgehen.
Update von meson auf die alte Art
python3 setup.py build python3 setup.py install --root=dest cp -rv dest/* /
Update von tzdata auf einen LFS System
mkdir t cd t tar -xf ../tzdata2021e.tar.gz ZONEINFO=/usr/share/zoneinfo mkdir -pv $ZONEINFO/{posix,right} for tz in etcetera southamerica northamerica europe africa antarctica asia australasia backward; do zic -L /dev/null -d $ZONEINFO ${tz} zic -L /dev/null -d $ZONEINFO/posix ${tz} zic -L leapseconds -d $ZONEINFO/right ${tz} done cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO zic -d $ZONEINFO -p America/New_York unset ZONEINFO
Certbot manuell installieren
als root
pip install --upgrade pip
pip install certbot certbot-apache
certbot certonly
- Fragen beantworten
Zertifikat und Key sollten dann unter /etc/letsencrypt/live/FQDN liegen
Apache anpassen (bei mir /etc/httpd/extra/httpd-vhosts.conf) Bsp:
<VirtualHost *:443> ServerAdmin ssl_ca_admin@example.com DocumentRoot "/srv/www" ServerName einBsp.example.com
SSLEngine on SSLCertificateFile /etc/letsencrypt/live/FQDN/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/FQDN/privkey.pem SSLHonorCipherOrder on SSLCipherSuite 'EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA:EECDH:EDH+AESGCM:EDH:+3DES:ECDH+AESGCM:ECDH+AES:ECDH:AES:HIGH:MEDIUM:!RC4:!CAMELLIA:!SEED:!aNULL:!MD5:!eNULL:!LOW:!EXP:!DSS:!PSK:!SRP' SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
<Directory "/srv/www"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog "/var/log/httpd/SSLwww_error.log" CustomLog "/var/log/httpd/SSLwww_access.log" combined </VirtualHost>
renewal Prozess:
certbot renewcrontab
5 1 2 1,3,5,7,9,11 * /usr/bin/certbot renew -q 15 1 2 1,3,5,7,9,11 * /usr/sbin/apachectl -k graceful
zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 4. Februar 2023