Terminal: Difference between revisions

From Bitpost wiki
No edit summary
No edit summary
 
Line 12: Line 12:
* This must be perfected, it is the answer, it shows a TREE of terminal processes:
* This must be perfected, it is the answer, it shows a TREE of terminal processes:
  watch -n 1 ps fT
  watch -n 1 ps fT
=== Keyboard-driven copy-paste ===
HOW DID I LIVE SO LONG WITHOUT THIS!
You can do keyboard-driven copy-paste from terminal buffer using screen!
* Ctrl-A-esc to get into buffer navigation mode
* 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]~.

Latest revision as of 14:25, 28 February 2018

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]~.