Zeile 978: |
Zeile 978: |
| | | |
| [http://www.mkssoftware.com/docs/man1/getopts.1.asp getopts], ein in der Bash enthaltenes Kommando, hilft Kommandozeilenoptionen zu verarbeiten. | | [http://www.mkssoftware.com/docs/man1/getopts.1.asp getopts], ein in der Bash enthaltenes Kommando, hilft Kommandozeilenoptionen zu verarbeiten. |
| + | |
| + | Siehe auch |
| + | * https://www.redhat.com/en/blog/arguments-options-bash-scripts |
| | | |
| === Exit-Status === | | === Exit-Status === |
Zeile 1.032: |
Zeile 1.035: |
| | | |
| * [http://www.easylinux.de/2005/09/084-umleitungen/ Einführung in Pipes] | | * [http://www.easylinux.de/2005/09/084-umleitungen/ Einführung in Pipes] |
| + | |
| + | ==== heredoc ==== |
| + | |
| + | Man kann auch kleine Textschnipsel in ein Skript selbst schreiben und dann weiterleiten: |
| + | |
| + | cat <<EOF |
| + | Dies ist ein Text, der |
| + | an cat weitergegeben wird. |
| + | EOF |
| + | |
| + | Statt EOF kann in den so genannten "heredocs" auch irgendein anderes Wort |
| + | zur Bezeichnung des Endes des heredocs geschrieben werden. Es muss nur |
| + | das Gleiche am Anfang und am Ende sein. |
| | | |
| ==== sed ==== | | ==== sed ==== |
Zeile 1.124: |
Zeile 1.140: |
| | | |
| === Dateisuche === | | === Dateisuche === |
| + | |
| + | ==== Suchen auch in Unterordnern ==== |
| Ein rekursives MS-DOS-<code>dir</code> lässt sich mit dem Befehl find erreichen: | | Ein rekursives MS-DOS-<code>dir</code> lässt sich mit dem Befehl find erreichen: |
| | | |
Zeile 1.129: |
Zeile 1.147: |
| | | |
| Es findet alle Dateien, die ein xy im Dateinamen enthalten und gibt den vollständigen Pfad aus. Die Anführungszeichen sind wichtig, ansonsten würde die Shell bereits die Sternchen auswerten. | | Es findet alle Dateien, die ein xy im Dateinamen enthalten und gibt den vollständigen Pfad aus. Die Anführungszeichen sind wichtig, ansonsten würde die Shell bereits die Sternchen auswerten. |
| + | |
| + | ==== Suchen nach Dateinamen und Wörtern im Dateiinhalt ==== |
| + | |
| + | Will man an Hand des Dateinamens eine Vorauswahl der Dateien treffen, deren Inhalt auf ein bestimmtes Wort untersucht wird, kann man <code>find</code> und <code>grep</code> kombinieren: |
| + | |
| + | find . -name package.json -print0 | xargs -0 grep mylib |
| + | |
| + | Dieser Befehl sucht im aktuellen Verzeichnis und dessen Unterverzeichnissen nach Dateien mit dem Namen package.json. In diesen sucht es nach der Zeichenfolge "mylib". |
| | | |
| === Berechtigungen === | | === Berechtigungen === |
| * '''Berechtigungen''' für automatisch eingebundene '''FAT32'''-Laufwerke/Festplatten werden in der Datei ''/etc/fstab'' vorgegeben. Sie können nicht mit ''chmod'' oder ''chown'' geändert werden. | | * '''Berechtigungen''' für automatisch eingebundene '''FAT32'''-Laufwerke/Festplatten werden in der Datei ''/etc/fstab'' vorgegeben. Sie können nicht mit ''chmod'' oder ''chown'' geändert werden. |
− | * Informationen u.a. zum SUID-Bit und zum Abschalten auf ganzen Partitionen finden sich auf dem [http://www.informatikserver.at/selflinux/html/grundlagen_sicherheit07.html Informatikserver.at] | + | * Informationen u.a. zum SUID-Bit und zum Abschalten auf ganzen Partitionen finden sich auf |
| + | ** dem [http://www.informatikserver.at/selflinux/html/grundlagen_sicherheit07.html Informatikserver.at] |
| + | ** https://www.informatik-aktuell.de/betrieb/betriebssysteme/rechte-im-dateisystem-mehr-als-nur-rwx.html |
| | | |
| Mit | | Mit |
| namei -om PATH | | namei -om PATH |
| können die einzelnen Berechtigungen eines Pfades PATH angezeigt werden. | | können die einzelnen Berechtigungen eines Pfades PATH angezeigt werden. |
| + | |
| + | ==== SUID ==== |
| + | Mit Setzen des SUID-Bits für ein binäres Programm (also keinem Shell-Skript) mit |
| + | chmod u+s PROGRAMM |
| + | wird der Benutzer, der das Programm aufrufen darf (z.B. Ausführungs-Bit "x" bei der einschlägigen Gruppe gesetzt), das Programm unter dem Benutzer, der Eigentümer des Programms ist, ausführen. |
| + | |
| + | ==== SGID ==== |
| + | Mit Setzen des SGID-Bits für ein Verzeichnis erben neu angelegte Dokumente/Verzeichnisse in diesem Verzeichnis dessen Gruppe als Gruppenzugehörigkeit. |
| + | |
| + | ==== umask ==== |
| + | |
| + | In den Konfigurationsdateien <code>/etc/profile</code>, <code>~/.profile</code> (z.B. umask 027) oder <code>/etc/login.defs</code> (z.B. UMASK 027), je nach Linux-Ausgabe, kann zentral die Standard-Umask vorgegeben werden. Damit kann insbesondere standardmäßig vorgegeben werden, dass die erzeugten Dokumente nicht world-readable sind (umask 007). |
| + | |
| + | Angeblich<ref> Vgl. https://forum.chip.de/discussion/1838389/default-umask</ref> kann man auch user-spezifisch die Default-Umask setzen: Siehe dazu /etc/default/useradd oder /etc/adduser.conf |
| | | |
| === Speicherplatz === | | === Speicherplatz === |
Zeile 1.142: |
Zeile 1.184: |
| df -h | | df -h |
| * Den vom aktuellen Verzeichnis und seinen Unterverzeichnis '''belegten Platz''' erfährt man durch | | * Den vom aktuellen Verzeichnis und seinen Unterverzeichnis '''belegten Platz''' erfährt man durch |
− | du --human-readable --summarize | + | du --human-readable --summarize |
| + | * Um zu sehen, welcher Platz von den einzelnen Dateien bzw. Verzeichnisse des Arbeitsverzeichnisses eingenommen wird, hilft das Tool [[xargs]]. Z.B. um alle Dateien/Verzeichnisse im Gigabyte-Bereich zu finden: |
| + | ls --almost-all -1 | xargs -n1 -d '\n' du -h --summarize | sed -n -e '/[[:digit:]]G\s/p' |
| | | |
| === Mounten === | | === Mounten === |
Zeile 1.292: |
Zeile 1.336: |
| Ähnliche Funktionalität wie OverlayFS scheint '''Ovl.o''' zu bringen: | | Ähnliche Funktionalität wie OverlayFS scheint '''Ovl.o''' zu bringen: |
| * [http://home.comcast.net/~artn/ovlfs/ovl.man.txt Manpage für ovl.o] | | * [http://home.comcast.net/~artn/ovlfs/ovl.man.txt Manpage für ovl.o] |
| + | |
| + | ==== Mounten eines iPhone-Dateisystems ==== |
| + | |
| + | Sollte beim Anstecken eines iPhones über USB-Kabel an einen Linux-Rechner und anschließendem Entsperren des iPhones durch Wischen von unten nach oben der Ordner mit den Fotos und Videos nicht automatisch gemountet werden, hilft wahrscheinlich die Installation von <code>ifuse</code>: |
| + | sudo aptitude install ifuse |
| | | |
| | | |
Zeile 1.349: |
Zeile 1.398: |
| | | |
| Erstelle Snapshot | | Erstelle Snapshot |
− | borg create --stats --progress <repopath>::documents_$(date -I) $(readlink ~/documents) | + | borg create --stats --progress <repopath>::documents_$(date -I) $(realpath ~/documents) |
| | | |
| | | |
| Man kann auch einen Lauf starten, bei dem nichts verändert wird: | | Man kann auch einen Lauf starten, bei dem nichts verändert wird: |
| borg create --dry-run --list \ | | borg create --dry-run --list \ |
− | --progress <repopath>::documents_$(date -I) $(readlink ~/documents) | + | --progress <repopath>::documents_$(date -I) $(realpath ~/documents) |
− | | |
| | | |
| ===== Borg-Repo-Pfad ===== | | ===== Borg-Repo-Pfad ===== |
Zeile 1.415: |
Zeile 1.463: |
| | | |
| Siehe | | Siehe |
| + | * https://recoverit.wondershare.de/harddrive-tips/repair-linux-disk.html |
| * http://www.technologyblog.de/2014/06/defekte-sektoren-reparieren-unter-linux-mit-badblocks/ | | * http://www.technologyblog.de/2014/06/defekte-sektoren-reparieren-unter-linux-mit-badblocks/ |
| * http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2010/08/Integritaet-gespeicherter-Daten-sicherstellen | | * http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2010/08/Integritaet-gespeicherter-Daten-sicherstellen |
Zeile 1.452: |
Zeile 1.501: |
| | | |
| == Netzwerk == | | == Netzwerk == |
− | Siehe [[oldCt:Linux-Tipps#Netzwerk]] | + | * Siehe [[Netzwerk]] |
| * Siehe [[Samba]] | | * Siehe [[Samba]] |
| * Siehe zudem [[Installation von OpenSuse über PXE]] | | * Siehe zudem [[Installation von OpenSuse über PXE]] |
Zeile 1.513: |
Zeile 1.562: |
| Siehe | | Siehe |
| * https://www.heise.de/ct/artikel/FAQ-Netzwerke-analysieren-und-konfigurieren-mit-ip-4769802.html | | * https://www.heise.de/ct/artikel/FAQ-Netzwerke-analysieren-und-konfigurieren-mit-ip-4769802.html |
| + | |
| + | ==== Netzwerktool ss ==== |
| + | |
| + | Mit |
| + | ss -ntlp |
| + | kann man sich die offenen Ports und die daran lauschenden Anwendungen anzeigen lassen. |
| + | |
| + | ==== Netzwerktool netstat ==== |
| + | |
| + | Zur Installation: |
| + | sudo aptitude install net-tools |
| + | |
| + | Zum Anzeigen der am Netzwerk lauschenden Programme: |
| + | |
| + | sudo netstat -tulpn |
| + | |
| + | ==== lsof ==== |
| + | |
| + | Mit Hilfe von |
| + | sudo lsof -nP -i | grep LISTEN |
| + | kann man sich ebenfalls die offenen Netzwerk-Ports (und die daran angedockten Prozesse) anzeigen lassen. |
| + | |
| + | ==== Netzwerkanalyse ==== |
| + | |
| + | Siehe [[Netzwerk]] |
| | | |
| === WLAN === | | === WLAN === |
Zeile 1.695: |
Zeile 1.769: |
| | | |
| === Videos === | | === Videos === |
| + | |
| + | |
| + | Siehe auch [[Fotografie#Film_und_Video]] |
| | | |
| ==== Abspielen ==== | | ==== Abspielen ==== |
Zeile 1.759: |
Zeile 1.836: |
| * [https://jitsi.org/ Jitsi] | | * [https://jitsi.org/ Jitsi] |
| ** [https://jitsi.org/jitsi-meet/ Jitsi Meet] kann sofort (ohne Registrierung) auf https://meet.jit.si/ ausprobiert werden. | | ** [https://jitsi.org/jitsi-meet/ Jitsi Meet] kann sofort (ohne Registrierung) auf https://meet.jit.si/ ausprobiert werden. |
| + | * https://opentalk.eu/de |
| + | * [https://www.golem.de/news/aus-dem-verlag-odin-rooms-macht-videocalls-sicher-und-klar-2409-188992.html Odin Rooms] |
| + | zu sein. |
| + | |
| + | Bekannte kommerzielle Alternativen zum veralteten Skype sind |
| + | * Microsoft Teams |
| + | * Cisco Webex |
| + | * Zoom |
| | | |
| === Digitalkameras unter Linux === | | === Digitalkameras unter Linux === |
Zeile 1.847: |
Zeile 1.932: |
| | | |
| Von der Shell kann man einen Netzwerkdrucker folgendermaßen zum Client hinzufügen: | | Von der Shell kann man einen Netzwerkdrucker folgendermaßen zum Client hinzufügen: |
− | lpadmin -p printer -E -v ipp://server/printers/printer | + | lpadmin -p "$PRINTER" -E -v "ipp://$SERVER/printers/$PRINTER" |
− | wobei man <code>printer</code> jeweils durch die CUPS-Drucker-Bezeichnung, z.B. "DESKJET-840C" ersetzen muss. | + | wobei man <code>$PRINTER</code> jeweils durch die CUPS-Drucker-Bezeichnung, z.B. "DESKJET-840C" ersetzen muss. |
| + | |
| + | Mit |
| + | lpstat -p -d |
| + | kann man sich die vorhandenen Drucker anzeigen lassen. |
| + | |
| + | Mit |
| + | lpoptions -d DRUCKER |
| + | kann man den Standard-Drucker auswählen. |
| + | |
| + | |
| + | Mit |
| + | lpstat -o -a |
| + | kann man sich alle noch offenen Druckaufträge anzeigen lassen. |
| + | |
| + | Mit |
| + | lpstat -W completed -o -a |
| + | kann man sich alle abgeschlossenen Druckaufträge anzeigen lassen. |
| | | |
| Siehe auch | | Siehe auch |
| + | * [http://localhost:631/help/options.html CUPS-Hilfe zu Kommandozeilenbefehlen auf eigenem Rechner] |
| * [[Drucken]] allgemein | | * [[Drucken]] allgemein |
| + | * https://www.linux-praxis.de/verwaltung-von-druckern-und-druckerwarteschlangen |
| + | |
| + | ==== Troubleshooting ==== |
| + | |
| + | |
| + | ===== HP 7740 verschiebt Seiteninhalt ===== |
| + | |
| + | Fehler: HP 7740 verschiebt die Seite auf dem Blatt Papier, so dass ein leerer oberer und rechter Rand entsteht. |
| + | |
| + | Mögliche Behebung: Avahi auch für IPv6 einstellen. |
| + | |
| + | In /etc/nsswitch.conf die folgende Zeile korrigieren: |
| + | |
| + | hosts: mymachines '''mdns_minimal''' [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns |
| + | |
| + | Das mdns_minimal hat also keine "4" mehr im Namen. |
| + | |
| + | Neustart von Avahi mit |
| + | |
| + | sudo systemctl restart avahi-daemon.service |
| + | |
| + | Der Drucker, der dann automatisch gefunden wird, druckt die Seitenränder richtig. |
| + | |
| + | Siehe https://wiki.archlinux.org/title/Avahi |
| + | |
| + | ===== CUPS in Docker ===== |
| + | |
| + | https://hub.docker.com/r/olbat/cupsd |
| + | |
| + | ===== Drucker deaktiviert sich von selbst ===== |
| + | |
| + | Um zu vermeiden, dass man jedes Mal den Drucker wieder auf "aktiviert" stellen muss, fügt man in der Datei <code>/etc/cups/printer.conf</code> die Zeile |
| + | ErrorPolicy retry-job |
| + | hinzu. Siehe |
| + | * https://debianforum.de/forum/viewtopic.php?t=126837 |
| + | |
| + | === Driverless Printing === |
| + | |
| + | Seit ca. 2020 wird die Linux-Druckerunterstützung auf "treiberlos" (driverless) umgestellt. |
| + | Stattdessen werden sowohl für Windows als auch für Linux verwendbare PPD-Dateien genutzt. |
| + | |
| + | Grundsätzlich gehen diese PPD-Dateien einem eigenen Treiber für Linux vor. |
| + | |
| + | Siehe |
| + | * https://linuxmint-user-guide.readthedocs.io/en/latest/printers.html |
| + | |
| + | === Xerox Drucker === |
| + | |
| + | Siehe [[Xerox_C325]] |
| + | |
| | | |
| === HP-Drucker === | | === HP-Drucker === |
Zeile 1.862: |
Zeile 2.015: |
| hp-setup -i | | hp-setup -i |
| und wählt 2 für <code>net</code> aus. | | und wählt 2 für <code>net</code> aus. |
| + | |
| + | ==== HP OfficeJet Pro 7740 ==== |
| + | |
| + | Jedenfalls im Zusammenspiel mit Linux hat der HP OfficeJet Pro 7740 nicht die Qualität und Zuverlässigkeit des HP OfficeJet 8600 Pro Plus. |
| + | |
| + | Aber er funktioniert, wenn nicht mal wieder ein Firmware-Update das Zusammenspiel mit Linux oder Windows zerschießt. |
| + | |
| + | Nach dem letzten Firmware-Update konnten manche Linux-Systeme den Drucker nicht finden. Bei den Systemen mit Ubuntu 24.04 musste der Drucker manuell eingerichtet werden. Beim Drucker hinzufügen musste man folgende URL angeben: |
| + | ipps://hpofficejet.fritz.box:443/ipp/print |
| + | |
| + | Dann hplip bzw. hpcups auswählen. Dann funktioniert es manchmal. |
| + | |
| + | Allerdings nicht überall. Dann kann man versuchen, die o.a. ipp-Adresse zu nutzen und den Drucker als generischen PCL-Drucker anzulegen. Ich habe als Marke '''"Generic"''' gewählt und als Modell '''"PCL 6/PCL XL"'''' und als Treiber '''"Generic ... /hpijs-pcl5e"''' (Ubuntu 24.04). Dann geht es aber nur schwarzweiß und nur in A4. Außerdem musste ich hpijs installieren: |
| + | |
| + | sudo aptitude install printer-driver-hpijs hpijs-ppds |
| | | |
| === Brother === | | === Brother === |
Zeile 1.892: |
Zeile 2.060: |
| | | |
| Mit Hilfe von scanimage und tesseract lassen sich auch PDFs mit per OCR erkanntem (überlagerndem) Text erstellen. | | Mit Hilfe von scanimage und tesseract lassen sich auch PDFs mit per OCR erkanntem (überlagerndem) Text erstellen. |
| + | |
| + | Das Projekt [https://openpaper.work/de/ Paperwork] bietet auf dieser Basis eine Volltextsuche über sämtliche gescannten Dokumente. Die Installation hat bei mir gut über [[AppImage]] funktioniert. Siehe die [https://openpaper.work/de/download/linux#appimage Anleitung auf der Projekt-Seite]. |
| | | |
| === Einzelne Scanner === | | === Einzelne Scanner === |
Zeile 2.023: |
Zeile 2.193: |
| * [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page FreeCAD] ([[OpenSource]]) | | * [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page FreeCAD] ([[OpenSource]]) |
| ** [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Draft_tutorial Einstiegstutorial] | | ** [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Draft_tutorial Einstiegstutorial] |
− | | + | * [[OpenSCAD]] - a simple CAD application based on scripts |
| | | |
| === Business Software === | | === Business Software === |
| | | |
| * [http://www.linux-community.de/Internal/Artikel/Online-Artikel/Versuch-einer-Entscheidungshilfe-fuer-die-richtige-Linux-Unternehmenssoftware Überblick über Linux-Business-Software] | | * [http://www.linux-community.de/Internal/Artikel/Online-Artikel/Versuch-einer-Entscheidungshilfe-fuer-die-richtige-Linux-Unternehmenssoftware Überblick über Linux-Business-Software] |
| + | |
| * Ein weiteres [[DMS]] ist [http://www.archivista.ch/de/pages/support/installation.php Archivista] | | * Ein weiteres [[DMS]] ist [http://www.archivista.ch/de/pages/support/installation.php Archivista] |
| + | |
| + | Siehe auch |
| + | * [[Informationstechnik#Dokumentenmanagementsystem]] |
| | | |
| === Groupware-Server === | | === Groupware-Server === |