Sammlung praktischer Linux-Befehle

Aus Geekbox Wiki
Wechseln zu: Navigation, Suche

VNC durch Tunnel

zu installieren: x11vnc, ssh-server auf server; xvncviewer auf client

ssh x@x.x.x.x -L 12345:localhost:5900 "x11vnc -display :0 -noxdamage -ncache 10"
xvncviewer localhost:12345 -encodings "tight" -quality 0 &

rename

find -name "* *" -type d | rename 's/ /_/g'    # do the directories first
find -name "* *" -type f | rename 's/ /_/g'

ssh-tunnel über jump server

localpc$ ssh -L 10023:ziel_von_zwischen_aus:22 zwischennutzer@zwischen
localpc$ ssh -p 10023 zielnutzer@localhost

screen-sharing

CTRL-A
:multiuser on

CTRL-A
:acladd <zweiter Benutzername>
screen -x <dieser Benutzername>

ssh ohne Passwort aber mit Passphrase

ssh-keygen -t rsa -b 4096 #Passphrase NICHT leer lassen
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system

für Systeme ohne GDM o.ä. in die ~/.profile:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi

PulseAudio simultan mit zwei Quellen

Einrichten mit zwei Soundkarten

  • Senke und virtuelle Quellen erzeugen:
    pactl load-module module-null-sink sink_name=mix
    pactl load-module module-loopback sink=mix
    pactl load-module module-loopback sink=mix
    
  • In pavucontrol unter Aufnahme (All Streams anzeigen) für die beiden Loopbacks die gewünschten Quellen einstellen (z.B. Mic und Monitor einer Soundkarte).
  • Monitor of Null-Ausgabe als Quelle für den Ziel-Stream auswählen.

Module entfernen

einzelne Module entfernen:

pactl unload-module <ID>

Default-Einstellungen laden:

pulseaudio -k

Siehe auch: Linux und Ich

Prozess starten und überwachen welche Dateien er nutzt

$prozess $parameter & strace -p $(pgrep $prozess |grep -P "[0-9]*$") -e open
  • statt open kann man auch stat, lstat bzw. access probieren.
  • Falls man das Ergebnis "grepen" will, muss dem "| grep xy" ein "2>&1" vorangestellt werden, da die Ausgabe seltsamerweise auf stderr gegeben wird.

Verzeichnisinhalt zeilenweise und maschinenlesbar auflisten

ls -1Ab #das erste zeichen hinter - ist eine eins, kein kleines L!

(praktisch zum Weiterverarbeiten der Liste mit einer for Schleife; ggf vorher grepen usw.)

Suchen und Ersetzen ohne einen Editor zu öffnen

v.a. um Werte in configdateien zu ändern etc.

sudo sed -i 's/firefox.desktop/chromium-browser.desktop/g' /usr/share/applications/defaults.list

im Beispiel wird Chromium für alles als Standardprogramm gesetzt, wofür bisher Firefox zuständig war.

Rückgängigmachen von versehentlichen Deinstallationen

sudo apt-get install $(for i in $(cat /var/log/dpkg.log |grep -oP "(?<=`date +%Y-%m-%d`\s\d\d\:\d\d:\d\d\sremove)\s\S*\s"); do echo -n "$i "; done;)

Der Befehl stellt alles "heute" deinstallierte wieder her.

relatiert:

[00:40:53 CEST] Moses: und als warnung: verwedendet besser nicht tasksel, macht nur probleme :-D 

gefilterte Prozessausgabe ohne grep-Prozess

ps ax | grep <myprocess> | grep -v grep

besser ist jedoch, pgrep zu nutzen:

pgrep -fl <myprocess>

bzw. um nur die PID zu ermitteln (hat allerdings den Nachteil, dass der Prozessname exakt angegeben werden muss (-> bashcompletion nutzen: pidof sky<TAB> -> pidof skype):

pidof <myprocess>

grep mit mehreren Strings

grep string1\|string2

Siehe auch: Reguläre Ausdrücke

Fehler direkt entsorgen

fehlerproduzierenderprozess 2> /dev/null

Ein Anwendungsfall folgt:

Pfad zu den USB-Geräten einer bestimmten VendorID finden

147e ist hier die VendorID

for i in /sys/bus/usb/devices/*-*; do if [[ $(cat $i/idVendor 2> /dev/null) == *147e* ]]; then echo $i ; fi ; done;

Dateien in umgekehrter Nummerierung umbenennen

Im aktuellen Verzeichnis wird der Ordner <neuer Ordner> erstellt, in dem sich die Dateien nach dem Umbennen befinden. Sonst kommt es ohne Benutzung eines prefixes zu Komplikationen.

mkdir <neuer Ordner>; j=<Anzahl Dateien>; for i in *.foo; do mv "$i" "./<neuer Ordner>/<prefix>$j.foo"; let j--; done

Tooltip-Farben ändern

zu ändernde Dateien:

/usr/share/themes/<Theme>/gtk-3.0/settings.ini
/usr/share/themes/<Theme>/gtk-3.0/gtk.css
/usr/share/themes/<Theme>/gtk-2.0/gtkrc

Nach tooltip foreground und background (fg/bg) suchen und ändern. Z.B. in "tooltip_bg_color:#000000\ntooltip_fg_color:#F5F5B5".

Netzwerk nach Hosts scannen (Fing)

sudo nmap -sP 192.168.178.20-40

USB Stromsparmodus für bestimmtes USB Gerät deaktivieren

# USB Laser Mouse mit Produktnamen ersetzen:
for i in /sys/bus/usb/devices/*; do if [ "$(cat "${i}/product" 2>/dev/null)" == "USB Laser Mouse" ]; then echo $i; echo 'on' | sudo tee "${i}/power/control"; fi; done

siehe auch

Checkliste für ein frisch eingerichtetes Linux