I’m just using the Cosmic Terminal that’s part of the Pop!_OS Cosmic Alpha, but I ran into similar issues with Gnome terminal and even with Termius.
Scenario: I’m currently working on leveraging a VPS to act as the gateway to my homelab so I have one ssh session to Unraid server and one to VPS. One in each tab. Obviously the name shows up as what the username@servername is called in each tab. But I keep getting tripped up and sometimes try to do something from the wrong machine. Once I even failed to realize that the ssh session to one of them cut out and I was back on my desktop and took me an embarrassingly long time to realize why stuff was failing.
So what are y’all using to keep that organized in your work flow? Separate terminal windows instead of tabs? Some shell customizations to make them look different than one another? Or just so ingrained in your brain that you never have this problem?
bash setup/config/PS1 is your friend here. I frequently find myself with a myriad of terminals between a bunch of usernames and servers at work, and setting up a proper prompt is key to help you keep track.
My bashrc makes my prompt look like this:
username@hostname:/absolute/path
$ inputgoeshere… with color coding, of course. Yes, I use a multiline prompt. I somehow never saw that before using ParrotSec despite being a bash user for 25 years. I modified the ParrotSec default to suit my needs better, and I like it:
- Obvious which user I am.
- Obvious which host I’m on.
- Obvious which path I’m in.
- It’s easy to copy and paste a complete source/destination for pasting into, for example, an rsync comman
I pasted my PS1 config here: https://pastebin.com/ZcYwabfB
Stick that line near the bottom of your ~/.bashrc file if you want to try it out.
Hey that’s super helpful, thank you. Definitely going to try this out.
i use tmux with named windows on each server and just terminals locally
Tmux is 100% what OP needs to be using.
I also have the prompt set to the host name. I’ve never understood why people included their usernames; I don’t log in to more than one account on each machine.
Color coding
I use tmux or screen, and set the status bar in different remotes to different colors.
I made it so that the ps1 on my servers shows the servername@[server IP]
deleted by creator
You’ll get used to it eventually, but you can e.g. tweak your PS1 to an all-caps hostname, or use a custom tmux layout with dedicated panes for each box you connect to.
You’ll get used to it eventually
I’ve been earning my living mostly with connecting to remote systems via ssh (and other means) for quite a few years and I still occasionally mess up and enter commands on a wrong terminal. Less now than I used to, but it still happens. The trick is to learn youself to pause for a second and confirm the target for any potentially destructive or otherwise harmful command, no matter if it’s locally or to some server other side of the world.
I (manually) set the background color of my terminals depending on the machine I connect to. I currently have profiles for red, green, blue, and black backgrounds with black as my default. I usually use red for ones I want to be especially careful of.
That’s a great idea. Do you have it persist between sessions? Like one server #1 it’s always green?