Zuerst auf dem neuen Rechner:
cd Verzeichnis_für_die_zu_kopierenden_Dateien
netcat -l -p 8765 | tar xvSpf -
Auf dem alten Rechner:
cd Verzeichnis_mit_zu_kopierenden_Dateien
tar cSpf - .. | netcat -w 40 host-ip 8765
In neueren netcat Versionen hat sich die Syntax für listen
verändert: Aus netcat -l -p 8765
wird bloß noch netcat -l 8765
Unix LF zu CR/LF:
sed "s/$/`echo \\\r`/"
CR/LF zu Unix LF:
sed 's/.$//'
Der Trick läuft über „here documents“:
ftp -n 192.168.1.1 <<EOF user bla fasel get foo.txt quit EOF
cat index.html | grep -o '<a .*href=.*>' | sed -e 's/<a/\n<a/g' | sed -e 's/<a .*href=['"'"'"]//' -e 's/["'"'"'].*$//' -e '/^$/ d'
Weil die Bash so viel kann, bekommt sie eine eigene Seite für Bash Eingabe Tricks
Mit column lassen sich Tabulator- getrennte Texte formatiert anzeigen:
cat mydata.csv | column -tn -s $'\t'
Wenn man sich diese Kommandofolge nicht merken will, kann man sie auch als Alias ablegen
alias showtabs="column -tn -s $'\t'"
und dann den Alias benutzen
cat mydata.csv | showtabs
Mit Tmux kann man Sessions verlassen, ohne das die Tochterprozesse beendet werden. Mit dem folgenden Script kann man seine aktuelle Tmux Konfiguration speichern und wieder neu starten, falls TMux mal zwischendurch durch einen Neustart beendet wurde:
#!/usr/bin/env bash # Save and restore the state of tmux sessions and windows. # TODO: persist and restore the state & position of panes. set -e dump() { local d=$'\t' tmux list-windows -a -F "#S${d}#W${d}#{pane_current_path}" } save() { dump > ~/.tmux-session } terminal_size() { stty size 2>/dev/null | awk '{ printf "-x%d -y%d", $2, $1 }' } session_exists() { tmux has-session -t "$1" 2>/dev/null } add_window() { tmux new-window -d -t "$1:" -n "$2" -c "$3" } new_session() { cd "$3" && tmux new-session -d -s "$1" -n "$2" $4 } restore() { tmux start-server local count=0 local dimensions="$(terminal_size)" while IFS=$'\t' read session_name window_name dir; do if [[ -d "$dir" && $window_name != "log" && $window_name != "man" ]]; then if session_exists "$session_name"; then add_window "$session_name" "$window_name" "$dir" else new_session "$session_name" "$window_name" "$dir" "$dimensions" count=$(( count + 1 )) fi fi done < ~/.tmux-session echo "restored $count sessions" } case "$1" in save | restore ) $1 ;; * ) echo "valid commands: save, restore" >&2 exit 1 esac
for i in $(ps ax | grep -i wwjc | grep -v grep | cut -d "?" -f 1); do pstree -a -p -l $i ; done