URL: https://www.overclockers.at/linux/nuetzliche_shell-einzeiler_217442/page_3 - zur Vollversion wechseln!
Tatsache!
Code:issue ~/flame/mozilla-profile/profile/9td2rfwf.default $ for i in {1..8};do yes > /dev/null &;done bash: syntax error near unexpected token `;'
Cool, das '+' bei find kannte ich nicht. Es gibt aber auch bei find/xargs combo eine Moeglichkeit die "filename safety" zu gewaehrend:Zitat von COLOSSUSStatt des klassichen Pipe-Konstruktsverwendet man besserCode:find ... | xargs <programm> <prog_args>
Code:find ... -exec <programm> <prog_args> {} +
`find` ersetzt dabei die Zeichenfolge {} mit der Liste der gefundenen Pfadnamen, und zwar in einer Art und Weise, die auch bei exotischen Dateinamen (mit '\n' und dergleichen im Pfadnamen) nicht bricht. Auszerdem spart man sich einen zusaetzlichen Prozess
Ich verwend aus anderen gruenden auch xargs: ich kann Programme parallel starten und bestimmen wie viele args jeweils uebergeben werden sollen.Code:find ... -print0 | xargs -0 ...
-n 1 -> wie viele argumente uebergebenCode:find ... -print0 | xargs -0 -n 1 -P 4
Macht immer eine Abfrage bei crontab -r. Wer sich fragt wozu man sowas braucht möge bitte einen Blick auf seine Tastatur werfen, und schauen wo E und R dort sindCode:echo "alias crontab='crontab -i'" >> ~/.bashrc
Interessant. Ich geb zu, ich hab angenommen dass find solche Namen korrekt escaped. In einem Java Source-Tree wirst du sie aber jedenfalls nicht findenZitat von COLOSSUS`find` ersetzt dabei die Zeichenfolge {} mit der Liste der gefundenen Pfadnamen, und zwar in einer Art und Weise, die auch bei exotischen Dateinamen (mit '\n' und dergleichen im Pfadnamen) nicht bricht. Auszerdem spart man sich einen zusaetzlichen Prozess
Geil, hehe; ist mir zum Glueck noch nie passiert.Zitat von watchoutZitat von COLOSSUS`find` ersetzt dabei die Zeichenfolge {} mit der Liste der gefundenen Pfadnamen, und zwar in einer Art und Weise, die auch bei exotischen Dateinamen (mit '\n' und dergleichen im Pfadnamen) nicht bricht. Auszerdem spart man sich einen zusaetzlichen Prozess
Code:tr -dc _A-Za-z0-9\!\"\#\$\%\\&\'\(\\)\*\+\,\.\/\:\;\<\=\>\?\@\[\\\]\^\`\{\|\}\~\- < /dev/urandom | head -c 63
Ich hab nix spektakuläres aber für mich gerade unheimlich wichtiges. Weil mir irgendwann das OS eines Debian Wheezy Server zerschossen wurde (durch update??) und das Ding beim letzten Stromausfall durch die USV runtergefahren wurde und sich jetzt beim Hochfahren aufhängt sind die für mich heute wertvollsten Einzeiler unter einem FreeBSD 10.3 Live System vom USB Stick:
Ändert mir das gerade laufende Live System von read only auf writeable damit ich die Mountpoints für folgendes erstellen lassen kann:Code:# mount -u -a -o rw
Code:# zfs send productpool/dataset@today | zfs receive backup/dataset
Ein read-only gemountetes Dateisystem (hier am Beispiel von "/"; also dem rootfs) kann man unter GNU/Linux generell via
Code:mount -o remount,rw /
Code:mount -o remount,ro /dev/sda1 /
Im Monitor integrierte Lautsprecher muten (so als wuerde man das via OSD erledigen):
Code:sudo ddcutil setvcp $(sudo ddcutil capabilities | awk '/Audio mute/{print "0x"$2}') 1
Code:sudo ddcutil setvcp $(sudo ddcutil capabilities | awk '/Audio mute/{print "0x"$2}') 0
Code:for i in *.zip ;do mkdir ${i%.*}; cd ${i%.*}; unzip ../$i; cd .. ; done
Wer schnell checken will, ob ein fuer OpenSSL lesbares X.509-Zertifikat CERTFILE.pem zu einem privaten Schluessel KEYFILE.pem passt, kann das mit "modernen" ECC-Keys (auf Kurven wie secp256k1 usw.) so tun:
Code:md5sum <(openssl x509 -in CERTFILE.pem -noout -pubkey) <(openssl ec -in KEYFILE.pem -pubout)
Code:md5sum <(openssl x509 -in KEYFILE.pem -noout -pubkey) <(openssl rsa -in CERTFILE.pem -pubout)
Kein Einzeiler, sondern eine Tastenkombination, die mir mein Leben mit UNIX-artigen Systemen mit readline Bibliothek ungemein vereinfacht hat:
Ctrl+r
Mit [clink] geht das auch auf der Windows cmd.
Das drückt man, und gibt Teile eines gewünschten Befehls ein, derer da in der History schon ähnliche existieren. Ich z.B. habe viele Encoderbefehle, die wirklich sehr lang sind, aber wo die Bitrate immer 2500 kbit/s beträgt. Also starte ich GNU screen oder tmux, drücke Ctrl+r, 25, Enter, done.
Kann ich jedem an's Herz legen, der es noch nicht kennt und der hin und wieder gleiche oder ähnliche Befehle auf der Kommandozeile ausfpühren können will. Dieses "Intelligent reverse Search" Feature macht einem das Leben mit wiederholten Tasks echt leicht. Auch was hochparameterisierte Programme angeht.
"Cursor Rechts" kopiert den aufgerufenen Befehl auf ein Prompt, das wir jetzt editieren können, was die Parameter angeht. Ctrl+➝ und Ctrl+← springen von Wort zu Wort, man kann also anpassen und per Enter bestätigen. Mit einem schnellen Ctrl+d logged man sich aus jedem Terminal aus, auch unter Windows, so man denn clink hat. Neat!
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025