this post was submitted on 17 Jan 2024
170 points (96.2% liked)
Linux
48378 readers
1265 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
I keep a Gnome Shell instance always running with a Screen session. However, what I actually use to run CLI commands is Emacs Shell, built-in to Emacs.
Emacs Shell has most of the bells and whistles you get from things like Fish shell. So I like to use Dash, a minimal POSIX shell that is much lighter weight than Bash, Zsh, or Fish. Dash provides no features -- no tab completion, no history, no line editing -- and I have Emacs add all of those features on top of Dash for me. It is amazing what a good, scriptable terminal emulator can accomplish.
Emacs Shell can be scripted using the same scripting language it uses to script the editor, file browser, window manager, and everything else. So you can script the shell to search for regular expressions and make things clickable with the mouse, or only display portions of output, creating simple interactive views around shell commands. You can bind certain click buttons or keystrokes in the editor or file manager to run shell commands in new windows. You can script the shell with "expect"-like behavior (automatically input responses to certain prompts). You can capture and collate the output of multiple commands running in parallel.
Dash for the win 🔥