|
|
(One intermediate revision by the same user not shown) |
Line 8: |
Line 8: |
| See the many examples of .bashrc in the config repo. | | See the many examples of .bashrc in the config repo. |
|
| |
|
| === Keyboard-driven copy-paste === | | === Monitor running processes === |
| HOW DID I LIVE SO LONG WITHOUT THIS!
| | * top, htop are meh |
| You can do keyboard-driven copy-paste from terminal buffer using screen!
| | * This must be perfected, it is the answer, it shows a TREE of terminal processes: |
| * Ctrl-A-esc to get into buffer navigation mode
| | watch -n 1 ps fT |
| * space to mark the start of the copy buffer (non-column)
| |
| * space to mark the end of the copy buffer
| |
| * then you can use Ctrl-A-] to paste - wait, wut? useless... what about X buffer? | |
| ** add this to "your screen .rc file" to send buffer to X clipboard too! | |
| bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'
| |
| | |
| === Always use screen when ssh'ing ===
| |
| Best to accomplish this with a script.
| |
| This will also allow us to provide host-specific background graphics and profile colors, sweeeeet! | |
| mah-haus-provided ssh commands!
| |
| mh bitpost {screenname}
| |
| save term background/profile
| |
| change term background/profile - with host pic in upper right!!
| |
| use this script to ssh bitpost:
| |
| https://stackoverflow.com/a/1075956/717274
| |
| also:
| |
| On my Ubuntu system (10.4) I had to modify the regular expression to account for the date/time info it prints next to each session.
| |
| if(/^\s*(\d+)\.(\S+)\s+(([^)]*))\s+(([^)]*))/) { ($num, $tag, $status) = ($1, $2, $4); –
| |
| or:
| |
| ssh -t user@some.domain.com /usr/bin/screen -xRR
| |
| -t is needed to force terminal creation (even tho sending a command)
| |
| -x
| |
| -R restore existing or create if none
| |
| # see MY screen settings with at to see what i really want
| |
|
| |
| better to let screen do the ssh?
| |
| screen -S 1-9 -p 0 -X screen -t Remote ssh 19
| |
|
| |
| reset term background/profile
| |
| | |
| === Screen Session ===
| |
| I always use screen session names, and show them if set in PS1 (see .bashrc_ui).
| |
| | |
| Then using this will create the session if needed or connect if exists. Perfect.
| |
| | |
| #!/bin/bash
| |
| # -R will simply reattach if found, otherwise run as if a new request.
| |
| screen -d -R -S #sessionname# #optionalcommand# | |
|
| |
|
| === Drop a dead ssh session === | | === Drop a dead ssh session === |
| Remember this one to drop a dead ssh session! | | Remember this one to drop a dead ssh session! |
| [enter]~. | | [enter]~. |
The linux terminal is your lifeblood. There are so many - TOO MANY - options. I'll gather a few of my favorite things here.
Host-specific color and banner
This is mucho importante to quickly tell which machine you are on:
- use figlet and jp2a to create ascii art
- update ~/.bashrc to echo the ascii art in a host-specific color, and to persist that color in the prompt
- make sure to include an interactive check to avoid the banner if not interactive
See the many examples of .bashrc in the config repo.
Monitor running processes
- top, htop are meh
- This must be perfected, it is the answer, it shows a TREE of terminal processes:
watch -n 1 ps fT
Drop a dead ssh session
Remember this one to drop a dead ssh session!
[enter]~.