In our each day use of Linux/Unix methods, we use many command-line instruments to finish our work and to grasp and handle our methods—instruments like du
to watch disk utilization and high
to indicate system assets. Some of those instruments have existed for a very long time. For instance, high
was first launched in 1984, whereas du
‘s first launch dates to 1971.
Over the years, these instruments have been modernized and ported to completely different methods, however, basically, they nonetheless observe their unique thought, look, and really feel.
These are nice instruments and important to many system directors’ workflows. However, in recent times, the open supply neighborhood has developed various instruments that supply further advantages. Some are simply eye sweet, however others drastically enhance usability, making them an important selection to make use of on trendy methods. These embrace the next 5 alternate options to the usual Linux command-line instruments.
1. ncdu as a alternative for du
The NCurses Disk Usage (ncdu
) instrument gives comparable outcomes to du
however in a curses-based, interactive interface that focuses on the directories that eat most of your disk area.
ncdu
spends a while analyzing the disk, then shows the outcomes sorted by your most used directories or information, like this:
ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for assist
--- /house/rgerardi ------------------------------------------------------------
96.7 GiB [##########] /libvirt
33.9 GiB [### ] /.crc
7.zero GiB [ ] /Projects
. four.7 GiB [ ] /Downloads
. three.9 GiB [ ] /.native
2.5 GiB [ ] /.minishift
2.four GiB [ ] /.vagrant.d
. 1.9 GiB [ ] /.config
. 1.eight GiB [ ] /.cache
1.7 GiB [ ] /Videos
1.1 GiB [ ] /go
692.6 MiB [ ] /Documents
. 591.5 MiB [ ] /tmp
139.2 MiB [ ] /.var
104.four MiB [ ] /.oh-my-zsh
82.zero MiB [ ] /scripts
55.eight MiB [ ] /.mozilla
54.6 MiB [ ] /.kube
41.eight MiB [ ] /.vim
31.5 MiB [ ] /.ansible
31.three MiB [ ] /.gem
26.5 MiB [ ] /.VIM_UNDO_FILES
15.three MiB [ ] /Personal
2.6 MiB [ ] .ansible_module_generated
1.four MiB [ ] /backgrounds
944.zero KiB [ ] /Pictures
644.zero KiB [ ] .zsh_history
536.zero KiB [ ] /.ansible_async
Total disk utilization: 159.four GiB Apparent measurement: 280.eight GiB Items: 561540
Navigate to every entry through the use of the arrow keys. If you press Enter on a listing entry, ncdu
shows the contents of that listing:
--- /house/rgerardi/libvirt ----------------------------------------------------
/..
91.three GiB [##########] /photos
5.three GiB [ ] /media
You can use that to drill down into the directories and discover which information are consuming essentially the most disk area. Return to the earlier listing through the use of the Left arrow key. By default, you’ll be able to delete information with ncdu
by urgent the d key, and it asks for affirmation earlier than deleting a file. If you wish to disable this habits to stop accidents, use the -r
possibility for read-only entry: ncdu -r
.
ncdu
is out there for a lot of platforms and Linux distributions. For instance, you should utilize dnf
to put in it on Fedora immediately from the official repositories:
$ sudo dnf set up ncdu
You can discover extra details about this instrument on the ncdu
web page.
2. htop as a alternative for high
htop
is an interactive course of viewer just like high
however that gives a nicer person expertise out of the field. By default, htop
shows the identical metrics as high
in a pleasing and colourful show.
By default, htop
appears like this:
In distinction to default high
:
In addition, htop
gives system overview data on the high and a command bar on the backside to set off instructions utilizing the operate keys, and you’ll customise it by urgent F2 to enter the setup display. In setup, you’ll be able to change its colours, add or take away metrics, or change show choices for the overview bar.
While you’ll be able to configure current variations of high
to attain comparable outcomes, htop
gives saner default configurations, which makes it a pleasant and simple to make use of course of viewer.
To be taught extra about this venture, examine the htop
home page.
three. tldr as a alternative for man
The tldr
command-line instrument shows simplified command utilization data, largely together with examples. It works as a shopper for the neighborhood tldr pages project.
This instrument will not be a alternative for man
. The man pages are nonetheless the canonical and full supply of knowledge for a lot of instruments. However, in some instances, man
is an excessive amount of. Sometimes you do not want all that details about a command; you are simply attempting to recollect the fundamental choices. For instance, the person web page for the curl
command has virtually three,000 strains. In distinction, the tldr
for curl
is 40 strains lengthy and appears like this:
$ tldr curl# curl
Transfers information from or to a server.
Supports most protocols, together with HTTP, FTP, and POP3.
More data: <https://curl.haxx.se>.- Download the contents of an URL to a file:
curl http://instance.com -o filename
- Download a file, saving the output below the filename indicated by the URL:
curl -O http://instance.com/filename
- Download a file, following [L]ocation redirects, and routinely [C]ontinuing (resuming) a earlier file switch:
curl -O -L -C - http://instance.com/filename
- Send form-encoded information (POST request of sort `software/x-www-form-urlencoded`):
curl -d 'identify=bob' http://instance.com/kind
- Send a request with an additional header, utilizing a customized HTTP methodology:curl -H 'X-My-Header: 123' -X PUT http://instance.com
- Send information in JSON format, specifying the suitable content-type header:curl -d '"name":"bob"' -H 'Content-Type: software/json' http://instance.com/customers/1234
... TRUNCATED OUTPUT
TLDR stands for “too long; didn’t read,” which is web slang for a abstract of lengthy textual content. The identify is suitable for this instrument as a result of man pages, whereas helpful, are typically simply too lengthy.
In Fedora, the tldr
shopper was written in Python. You can set up it utilizing dnf
. For different shopper choices, seek the advice of the tldr pages project.
In normal, the tldr
instrument requires entry to the web to seek the advice of the tldr pages. The Python shopper in Fedora permits you to obtain and cache these pages for offline entry.
For extra data on tldr
, you should utilize tldr tldr
.
four. jq as a alternative for sed/grep for JSON
jq
is a command-line JSON processor. It’s like sed
or grep
however particularly designed to cope with JSON information. If you are a developer or system administrator who makes use of JSON in your each day duties, that is an important instrument in your toolbox.
The principal good thing about jq
over generic text-processing instruments like grep
and sed
is that it understands the JSON information construction, permitting you to create advanced queries with a single expression.
To illustrate, think about you are looking for the identify of the containers on this JSON file:
"apiVersion": "v1",
"kind": "Pod",
"metadata":
"labels":
"app": "myapp"
,
"name": "myapp",
"namespace": "project1"
,
"spec":
"containers": [
"command": [
"sleep",
"3000"
],
"image": "busybox",
"imagePullPolicy": "IfNotPresent",
"name": "busybox"
,
],
"restartPolicy": "Never"
If you attempt to grep
immediately for identify
, that is the end result:
$ grep identify k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep
returned all strains that include the phrase identify
. You can add just a few extra choices to grep
to limit it and, with some regular-expression manipulation, yow will discover the names of the containers. To receive the end result you need with jq
, use an expression that simulates navigating down the information construction, like this:
$ jq '.spec.containers[].identify' k8s-pod.json
"busybox"
"nginx"
This command offers you the identify of each containers. If you are searching for solely the identify of the second container, add the array component index to the expression:
$ jq '.spec.containers[1].identify' k8s-pod.json
"nginx"
Because jq
is conscious of the information construction, it gives the identical outcomes even when the file format adjustments barely. grep
and sed
could present completely different outcomes with small adjustments to the format.
jq
has many options, and masking all of them would require one other article. For extra data, seek the advice of the jq
project page, the person pages, or tldr jq
.
5. fd as a alternative for discover
fd
is a straightforward and quick various to the discover
command. It doesn’t goal to exchange the entire performance discover
gives; as a substitute, it gives some sane defaults that assist loads in sure situations.
For instance, when trying to find source-code information in a listing that accommodates a Git repository, fd
routinely excludes hidden information and directories, together with the .git
listing, in addition to ignoring patterns from the .gitignore
file. In normal, it gives sooner searches with extra related outcomes on the primary attempt.
By default, fd
runs a case-insensitive sample search within the present listing with coloured output. The identical search utilizing discover
requires you to supply further command-line parameters. For instance, to look all markdown information (.md
or .MD
) within the present listing, the discover
command is that this:
$ discover . -iname "*.md"
Here is identical search with fd
:
$ fd .md
In some instances, fd
requires further choices; for instance, if you wish to embrace hidden information and directories, it’s essential to use the choice -H
, whereas this isn’t required in discover
.
fd
is out there for a lot of Linux distributions. Install it in Fedora utilizing the usual repositories:
$ sudo dnf set up fd-find
For extra data, seek the advice of the fd
GitHub repository.
Great alternate options alongside confirmed utilities
While I nonetheless use all of the outdated important instruments commonly, particularly when connecting remotely to servers, the choice instruments present some further advantages which are invaluable in lots of situations. They significantly assist me handle and work on my Linux desktop and laptop computer machines.
Do you utilize every other instruments that assist your workflow? Add them within the feedback part under.