tee is used to send output from a command to both
STDOUT and to a file. You can also use tee to send output to
STDOUT and pass the output on to another command like you would normally using a
pipe. This uses a process substitution syntax.
~$ echo "some error message" | tee >(logger -t test_error_msg)
some error message
~$ grep test_error_msg /var/log/syslog
Feb 24 11:37:54 foohost test_error_msg: some error message
The error message is output to
STDOUT and also sent to the
logger command (which writes it to syslog). This can be usefull when you have silent cron jobs (>/dev/null 2>&1) that log errors to syslog, but at the same time if you run the shell script by hand you can see the error output.
There are several terminals that allow splitting the screen to accommodate multiple regions in a single window. When logged into a non-desktop/server environment Linux
screen is great for this. It has support for splitting the screen vertically and/or horizontally. You can use
ctrl + a + S or
ctrl + a + | to split regions horizontally or vertically. Here’s an excerpt from a
.screenrc file to split the screen into 4 regions, and start ssh sessions to four separate servers in each of those regions.
screen -t bash /bin/bash
screen -t deploy1 /usr/bin/ssh deploy1
screen -t deploy2 /usr/bin/ssh deploy2
screen -t deploy3 /usr/bin/ssh deploy3
screen -t deploy4 /usr/bin/ssh deploy4
Now I can start the screen session…
# screen -c .screenrc-multiwindow
and automatically get this:
$ ssh-keygen -f id_rsa.di-aws -p
Enter old passphrase:
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.