Even if the sight doesn’t make you ecstatic, it’s worth taking a look at these mandatory command line tools.
Photo: SkillUp | shutterstock.com
Some developers work with the command line (also called Command Line Interface; CLI) because they love it – others because they have no other choice. No matter which category you belong to: These nine CLI tools will (additionally) help your productivity and efficiency.
tldr
Don’t worry, we’ll save you a lengthy, fascinating treatise on the unique magic that the Unix shell unfolds. The fact is: If you want to work with it, it is sometimes necessary to read a manual beforehand. However, Unix Docs (also man pages or manual pages) are a double-edged sword in this regard: the information you need is there – it’s just a question of where. Tracking down the piece of documentation you need can be a daunting task. The good old command line can help with this – to call up an official manual, all you need to do is:
$ man
However, man pages are characterized primarily by their information density – and the fact that they sometimes lack current information for newer tools. The CLI tool tldr enables you to search more specifically:
$ tldr

tldr in action.
Foto: Matthew Tyson | IDG
If you npm have installed is the tldr-Installation just a short command away:
npm install -g tldr
ngrok
As soon as you tldr Once installed, you can use it to explore many more commands. For example:
$ tldr ngrok
Reverse proxy that creates a secure tunnel from a public endpoint to a locally running web service.
With ngrok gives you a stress-free way to access a development machine from a remote browser. But the tool can do much more. For example, you can use it to develop in the cloud and view the results in the browser. You can also come with ngrok You can also publish running services quickly and easily via HTTPS – without having to deal with the security infrastructure. Assuming you are building a service worker that requires HTTPS, then all you need to do for a secure context is, ngrok to start.

The CLI tool ngrok makes life easier for devs on various levels.
Foto: Matthew Tyson | IDG
An example where HTTP port 8080 is exposed:
$ ngrok http 8080
The ngrok-Output looks like this:
https://f951-34-67-117-59.ngrok-free.app -> http://localhost:8080
Anyone can then visit the assigned URL (don’t bother).
screen
This command-line tool allows you to “set aside” a shell session with or without a running process, and then resume it at any time – even if you end the original session.
$ tldr screen
Hold a session open on a remote server. Manage multiple windows with a single SSH connection.
Let’s say you start ngrokto remotely access a web application: you start the process, then leave it in screen run and program something for so long. Meanwhile it’s running ngrok keep going all the time – you can about screen access it again at any time. Illustrated in code, this would look like this:
$ screen
// Now we are in a new session
$ ngrok http 8080
// Now ngrok is running, exposing http port 8080
Type ctrl-a
// Now we are in screen's command mode
Type the "d" key, to "detach".
// Now you are back in the shell that you started in, while screen is running your ngrok command in the background:
$ screen -list
There is a screen on:
128861.pts-0.dev3 (04/25/24 14:36:58) (Detached)
Tipp
If you want to name an ongoing session that you are currently in, use the keyboard shortcut Ctrl + A and type :sessionname a. This is particularly useful if you want to work with multiple screen instances.

Screen is a comprehensive and powerful CLI tool.
Foto: Matthew Tyson | IDG
If, as in the example, only one screen-Instance is running, executes the command $ screen -r (for “re-attach”) you back to your ngrok-Meeting. If there are multiple screens, you can call them up again using their ID:
$ screen -r
If you want to end your session permanently, quit ngrok with Ctrl + C and then enter exit into the command line.
sdkman & nvm
If you are using Java or JavaScript on a server, you should be familiar with sdkman (for Java) and nvm (for Node). Both command line tools are useful when it comes to juggling multiple programming language versions on the same machine – eliminating the need for both path adjustment and environment variables.
With sdkman For example, you can explore newer Java versions and then jump back to the current LTS release. This process is done by the sdk-Command abstracted.

sdkman displays all available Java installations on a local computer – including the one that is currently in use.
Foto: Matthew Tyson | IDG
Switching between versions is incredibly easy – $ sdk use java 19-open will take you directly to JDK version 19.
$ tldr sdk
Manage parallel versions of multiple Software Development Kits.
Supports Java, Groovy, Scala, Kotlin, Gradle, Maven, Vert.x and many others.
Die nvm-Utility works very similarly:
$ tldr nvm
Install, uninstall or switch between Node.js versions.
Supports version numbers like "12.8" or "v16.13.1", and labels like "stable", "system", etc.

A look at nvm.
Foto: Matthew Tyson | IDG
fzf
As well as grep as well as find are standard parts of the command line command palette. However, both tools are not as functional as they should be. That calls fzf on the agenda – a “Fuzzy File Finder”. What “fuzzy” means is that the details of what you’re looking for don’t necessarily have to be clearly defined. An example:
$ tldr fzf
Command-line fuzzy finder.
Similar to sk.
As soon as you fzf start, the CLI tool immediately indexes the file system to provide suggested results for your searches.

In this example, we’re looking for a project we recently worked on.
Foto: Matthew Tyson | IDG
Out of 878,937 possibilities fzf selected the 25 files and directories that could meet our requirements – without any detours.
exa
With exa become boring old ones ls-Listings more beautiful and useful:
$ tldr
A modern replacement for ls (List directory contents).
For a better developer experience without mental overhead ls just with one exa-Alias from. The tool respects most ls-Standard options – exa -l so (for example) works exactly as you would expect.

Exa is the new ls.
Foto: Matthew Tyson | IDG
bat
Die bat-Utility is similar to this cat-Tool – but it’s better:
$ tldr bat
Print and concatenate files.
A cat clone with syntax highlighting and Git integration.
This is essentially a convenience or developer experience optimization – similar to the case of exa. If you bat You can expect a full-fledged file viewer – including titles, borders, line numbers and, in particular, a helpful syntax highlighting function for programming languages or configuration files. Reacts bat on less/more commands – and is marked with “q” ended. Navigation is done using the arrow keys.

Bat is a simple utility that makes browsing files on the console a real experience.
Foto: Matthew Tyson | IDG
nethack
An absolute command line classic nethack – the original, console-based ASCII dungeon crawler. While the CLI tool won’t directly boost your productivity, it can definitely help you get a few minutes of peace and quiet to drill through complex dev issues.

There are newer versions of the Nethack concept – but sometimes the original is best.
Foto: Matthew Tyson | IDG
This article originally appeared at our sister publication Infoworld.com.
