Over the last couple of weeks I've had various people that I respect suggesting different tools to me and I've been really happy with the results. I'll share them with you below, but I'd also love to hear about whatever tools you have that might help others in their daily life.
There are several option in shells for Linux command line and if you are anything like me then you may have just learned Bash as it was already there and gotten used to it. After years of seeing Zsh recommended, I decided to give it a try along with Oh-My-Zsh that is usually recommended for additional functionality. The command line experience is just given more power and polish with Zsh over Bash. This recommendation came to me along with the Command Line Power User course.
Features (as listed on Wikipedia):
- Programmable command-line completion that can help the user type both options and arguments for most used commands, with out-of-the-box support for several hundred commands
- Sharing of command history among all running shells
- Extended file globbing allows file specification without needing to run an external program such as find
- Improved variable/array handling
- Editing of multi-line commands in a single buffer
- Spelling correction and autofill of command names (and optionally arguments, assumed to be file names)
- Various compatibility modes, e.g. Zsh can pretend to be a Bourne shell when run as /bin/sh
- Themeable prompts, including the ability to put prompt information on the right side of the screen and have it auto-hide when typing a long command
- Loadable modules, providing among other things: full TCP and Unix domain socket controls, an FTP client, and extended math functions.
- The built-in where command. Works like the which command but shows all locations of the target command in the directories specified in $PATH rather than only the one that will be used.
- Named directories. This allows the user to set up shortcuts such as ~mydir, which then behave the way ~ and ~user do.
This is a framework for managing your Zsh configuration with helpers, plugins, and themes. It adds to the already wonderful Zsh experience and have found several included plugins that are very nice. My current configuration makes use of
fzf. I'm really enjoying them.
MobaXterm is a terminal emulator for windows. It can be used with different bash emulators. If you have the Windows Subsystem for Linux installed on Windows 10 then it will work together without any additional configuration. MobaXterm also worked flawlessly with my 'agnoster' theme for Zsh when the standard WSL2 Ubuntu terminal required additional fonts. If you aren't familiar with MobaXterm, it is a tabbed terminal emulator with split screen and MultiExec modes which can be a huge help when you are working remotely on different servers. I have used this to kickoff scripts on different servers at the same time or to jump through a gateway server into a build box to execute several scripts at the same time. I can ssh and enter passwords on several terminals at the same time to cut down on the setup time.
Notable is a note keeping tool for markdown files. This is a free product with a single developer maintaining it. It has a subreddit for support and the developer is very active there. I currently use this tool primarily for reading my notes as there are some things that I'd like to see added before I use it as my primary markdown editor. All of those changes have been acknowledged by the developer as being in planning. The biggest benefits that I see in Notable is the interface that allows you to add tags to your markdown files, collect them in notebooks, and quickly go between different groups. When a document is opened the default view is the 'preview' or 'rendered' html that results from the markdown, but there is an edit view that is easily entered in the same frame. Once the new editing features are added then this will be my primary markdown environment, until then I keep VSCode on deck with the Markdown-All-In-One plugin for composing markdown files quickly during meetings.
Really it's just having ligatures in general. I picked up Cascadia Code initially, but after adopting it for use in VSCode, I found that
JetBrains Mono actually supports ligatures as well. It's a really small touch that I feel makes the development experience feel nicer.