this post was submitted on 07 Oct 2023
377 points (89.5% liked)
Linux
48143 readers
779 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Knowing vim is pretty essential for working on servers. My usual setup is ssh + tmux + vim. I suppose you could substitute nano for vim if it's installed.
I know I couldn't.
I've not run into a server without nano installed yet and it's perfectly serviceable if all I need is to edit one value in a config file
I have the exact same setup.
Do you use
tmux
on your main computer, especially if you're using a WM? I can't imagine the need fortmux
with tiling window managers if you have workspaces and can partition windows how you like.Not the GP but I also use tmux (or screen in a pinch) for almost any SSH session, if only as insurance against dropped connections. I occasionally use it for local terminals if there is a chance I might want a command to outlive the current graphical session or migrate to SSH later.
Occasionally it's nice to be able to control the session from the command line, e.g. splitting a window from a script. I've also noticed that wrapping a program in tmux can avoid slowdowns when a command generates a lot of output, depending on the terminal emulator. Some emulators will try to render every update even if it means blocking the output from the program for the GUI to catch up, rather than just updating the state of the terminal in memory and rendering the latest version.
I would definitely use
tmux
on my servers, but I'm wondering about why I'd use it for the desktop. Your use-case of needing commands/output beyond the need of a graphical interface is interesting (would like to know a couple of examples), I should probably consider that.I can do the splitting with a window manager though, wouldn't need
tmux
for that. I agree with the program GUI part.Examples of local commands I might run in
tmux
could include anything long-running which is started from the command line. A virtual machine (qemu
), perhaps, or a video encode (ffmpeg
). Then if I need to log out or restart my GUI session for any reason—or something goes wrong with the session manager—it won't take the long-running process with it. While the same could be done withnohup
orsystemd-run
, usingtmux
allows me to interact with the process after it's started.I also have systems which are accessed both locally and remotely, so sometimes (not often) I'll start a program on a local terminal through
tmux
so I can later interact with it through SSH without resorting tox11vnc
.Thanks for the comment. Long-running commands make a lot of sense.
Do you happen to run your GUI session inside of a
tmux
session? If you log in and out, wouldn't thetmux
session inside of the user-session terminate?