| Shortcut | Description |
|---|---|
| Basics | |
| ALT+[ARROW KEY] | Move focus (up for up, left for left, etc) |
| CTRL+Shift+E | Split current terminal vertically: [ | ] |
| CTRL+Shift+O | Split current terminal horizontally: [--] |
| CTRL+Shift+W | Closes current terminal |
| CTRL+Shift+Q | Closes terminator window |
| CTRL+Shift+T | Opens new Tab |
| CTRL+PageUp or CTRL+PageDown | Swiches between tabs |
| CTRL+Shift+G | Reset terminal and clear content |
| Goodies | |
| CTRL+Shift+X | Toggle current terminal to full size |
| CTRL+Alt+W | Change window title |
| CTRL+Alt+X | Change terminal title |
| Mark start of selection >> scroll to end of selection >> SHIFT+Click |
Select more than one display page |
ssh-keygen, set a password. To avoid to type the password every time (e.g. git pull, push, etc) you can use the ssh-agent:
kkr@host341:~$ eval $(ssh-agent) Agent pid 31015 kkr@host341:~$ ssh-add Enter passphrase for /home/kkr/.ssh/id_rsa: ********************** Identity added: /home/kkr/.ssh/id_rsa (/home/kkr/.ssh/id_rsa) kkr@host341:~$Source: rabexc.org
| Command | Description |
|---|---|
| screen -S NAME | Creates and attaches to new screen session |
| screen -ls | Lists available screen sessions |
| screen -x NAME | Attaches to existing session |
To remove a session, login with screen -x NAME and type in quit or press CTRL+d.
| Shortcut | Description |
|---|---|
| CTRL+a d | Detaches from the current screen session (session not removed) |
| CTRL+d | Shortcut for "quit" - Detatches and removes current session |
Adding the following lines to the ~/.screenrc fixes the scroll-problem with the mouse or SHIFT + PAGE_UP:
termcapinfo xterm* ti@:te@Source: Stackoverflow
sh-4.4# promt, you can fix this with defining the shell to use:
echo 'shell -/bin/bash' > ~/.screenrcSource: Stackoverflow
Pressing F8 + F (to switch to full-screen mode) allows you to pass all system keys (e.g. CTRL + ALT + ARROWs) to the remote system. With F8 + Z you can minimize the viewer - and open it again with ALT + TAB.
$ vncserver -localhost no
$ mkdir -p .vnc $ scp 10.10.60.120:.vnc/passwd .vnc/passwd_10.10.60.120 $ chmod 600 .vnc/passwd_10.10.60.120 $ vncviewer --PasswordFile=.vnc/passwd_10.10.60.120 10.10.60.120:1
$ update-alternatives --get-selections Xvnc auto /usr/bin/Xtigervnc animate auto /usr/bin/animate-im6.q16 animate-im6 auto /usr/bin/animate-im6.q16 aptitude auto /usr/bin/aptitude-curses automake auto /usr/bin/automake-1.15 awk auto /usr/bin/gawk builtins.7.gz auto /usr/share/man/man7/bash-builtins.7.gz c++ auto /usr/bin/g++ ... $When you want to change the version of the program you can do this with
$ sudo update-alternatives --config gcc There are 2 choices for the alternative gcc (providing /usr/bin/gcc). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/gcc-4.9 20 auto mode 1 /usr/bin/gcc-4.9 20 manual mode 2 /usr/bin/gcc-6 10 manual mode Press <enter> to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/bin/gcc-6 to provide /usr/bin/gcc (gcc) in manual mode $In some cases you have to install the alternative binary first - e.g. `sudo apt install gcc-4.9`.
$ ssh -p20160 root@10.20.60.203 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:XvRoOq+r9mRiWavIIWVhX52qYLEKCoeH83fa8O4TUvM. Please contact your system administrator. Add correct host key in /home/kkr/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/kkr/.ssh/known_hosts:222 remove with: ssh-keygen -f "/home/kkr/.ssh/known_hosts" -R [10.20.60.203]:20160 ECDSA host key for [10.20.60.203]:20160 has changed and you have requested strict checking. Host key verification failed. $In this case, you can disable the host-key check for local machines:
Host 10.0.* StrictHostKeyChecking no UserKnownHostsFile=/dev/null LogLevel ERROR Host 10.20.60.* StrictHostKeyChecking no UserKnownHostsFile=/dev/null LogLevel ERROR
.bashrc the history of all terminals
will be perserved - and when opening a new terminal, you can access the history of the
other terminals (e.g. with CTRL+R):
# Avoid duplicates
HISTCONTROL=ignoredups:erasedups
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend
# After each command, append to the history file and reread it
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
xz [FILE] for compressing [FILE] to [FILE].xz ([FILE] will be removed)xz -k [FILE] for compressing [FILE] to [FILE].xz ([FILE] will be not removed)unxz [FILE].xz for decompressing [FILE].xz to [FILE] ([FILE].xz will be removed)tar cJ [FILE].xz [FOLDER] for compressing foldersxv --threads=0 [FILE] for compressing with threads| Compression | Compressed Size | Uncompression | |||
|---|---|---|---|---|---|
| Lowest Compression | xz -0 linux-v4.19.19.tar |
4m13.440s | 1.6G Size | unxz linux-v4.19.19.tar.xz |
1m5.245s |
| Default Compression | xz linux-v4.19.19.tar |
15m41.213s | 1.6G Size | unxz linux-v4.19.19.tar.xz |
1m41.542s |
| XZ Compression with TAR | tar cfJ linux-v4.19.19.tar.xz linux-v4.19.19/ |
15m34.576s | 1.6G Size | ||
| Lowest Compression (with Threads) | xz -0 --threads=0 linux-v4.19.19.tar |
1m13.190s | 1.6G Size | unxz --threads=0 linux-v4.19.19.tar.xz |
1m2.777s |
| Default Compression (with Threads) | xz --threads=0 linux-v4.19.19.tar |
3m1.575s | 1.6G Size | unxz --threads=0 linux-v4.19.19.tar.xz |
1m19.941s |
| XZ Compression with TAR | XZ_OPT="--threads=0" tar cfJ linux-v4.19.19.tar.xz linux-v4.19.19/ |
3m6.042s | 1.6G Size | ||
| GZIP Compression with TAR | tar cfz linux-v4.19.19.tar.gz linux-v4.19.19/ |
1m9.054s | 1.7G Size | 0m16.857s | gunzip linux-v4.19.19.tar.gz |
| BZIP2 Compression with TAR | tar cfj linux-v4.19.19.tar.bz2 linux-v4.19.19/ |
3m59.512s | 1.6G Size | ||
cat LIST | parallel -j $(nproc)
--color to highlight matches-I to exclude binary matches-o to show only matches-v to show only what _not_ matchesnice -5 (value=5) to reduce niceness (higher is less):
$ nice -5 bitbake --read=extra.conf someprojectname [...] $Use
nice --5 (value=-5) to increase the niceness(less is more):
$ sudo nice --5 sleep 2 [...] $
find var/log/ -iname "anaconda.*" -exec tar -rvf file.tar {} '+'
Using find to execute for each result a separate instance:
find . -name "*.sh" -exec sed -i 's/#! \?\/bin\/sh/#!\/bin\/bash/' {} \;
Source: Stackoverflowprint0 together with xargs -0:
find . -name "2018-*" -print0 | xargs -0 ~/Dropbox/Pictures/Tools/rename_dropboximage_to_mobile.sh >./2018-11-06 17.50.36.jpg< >./2018-11-01 11.48.37.jpg< >./2018-11-07 21.51.18.jpg< >./2018-11-01 20.57.13.jpg< >./2018-11-06 16.37.25.jpg<Source: stackoverflow.com
DIR=$(realpath $1) LOG=$DIR/hash_list.txt find $DIR -not -type d -print0 | while IFS='' read -r -d '' FILE; do echo -n "Check '$FILE': " if grep -q "$FILE" $LOG ; then echo "already in list" else md5sum "$FILE" | tee -a "$LOG" fi done
| Shortcut | Meaning | Comment |
|---|---|---|
| ALT + F10 | Toggle maximize | |
| G | H | I |
command-not-found will print install proposals like this:
$ ITGSend The program 'ITGSend' is currently not installed. You can install it by typing: apt install d-itg ITGSend: command not found $or
$ dislay Command 'dislay' not found, did you mean: command 'display' from deb graphicsmagick-imagemagick-compat Try: sudo apt install <deb name> $Source: Stackoverflow
One reason for a crash of the command-not-found tool is a wrong encoding:
$ dislay
Sorry, command-not-found has crashed! Please file a bug report at:
http://www.debian.org/Bugs/Reporting
Please include the following information with the report:
command-not-found version: 0.3
Python version: 3.7.3 final 0
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Exception information:
unable to open database file
Traceback (most recent call last):
File "/usr/share/command-not-found/CommandNotFound/util.py", line 23, in crash_guard
callback()
File "/usr/lib/command-not-found", line 90, in main
cnf = CommandNotFound.CommandNotFound(options.data_dir, do_raise=True)
File "/usr/share/command-not-found/CommandNotFound/CommandNotFound.py", line 86, in __init__
self.db = SqliteDatabase(dbpath)
File "/usr/share/command-not-found/CommandNotFound/db/db.py", line 12, in __init__
self.con = sqlite3.connect(filename)
sqlite3.OperationalError: unable to open database file
This can be fixed by setting the locale to UTF-8 in the .bashrc:
export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8
and recreate your system locals:
$ sudo locale-gen en_US.UTF-8 $ sudo dpkg-reconfigure localesSource: Stackoverflow
if [ -n "$SSH_CONNECTION" ] ; then if [ "$(readlink /proc/$$/fd/0)" != "/dev/null" ] ; then echo echo "The update does fail when it is started via SSH (since the network" echo "and the sshd will be shut down)." echo echo "Please trigger script by software (e.g. via web-browser), start it" echo "on the serial console or via SSH with" echo echo " nohup /usr/bin/flashupdate &" echo sleep 10 exit 1 fi fi
There is only one pitfall on Linux/Debian - you have to start the serve with -localhost no, otherwise it binds only on the loopback device and is not reachble from outside.
$ vncserver -alwaysshared -localhost no
vncserver initially, a password must be set. This password must be strong and unique, to avoid security flaws. Strong passwords have the drawback, that they can be hardly remembered - thus we can copy the password (stored encrypted in a file) from our remote to the local workstation and use it for authentification:
$ scp $REMOTEIP:.vnc/passwd ~/.vnc/passwd_$REMOTEIP password: **** $ vncviewer --PasswordFile=$HOME/.vnc/passwd_$REMOTEIP $REMOTEIP:1
| Shortcut | Description |
|---|---|
| F8 | Show popup menu |
| F8 + Z | Minimize |
| F8 + F | Toggle Fullscreen |
| F8 + X | Exit |
$ sudo apt-get update [...] Reading package lists... Done E: The repository 'http://ppa.launchpad.net/octave/stable/ubuntu bionic Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. $Open
/etc/apt/sources.list.d/octave-ubuntu-stable-bionic.list and add [trusted=yes]:
deb [trusted=yes] http://ppa.launchpad.net/octave/stable/ubuntu bionic main # deb-src http://ppa.launchpad.net/octave/stable/ubuntu bionic main