The other day, a fellow Linux user and I were discussing Linux commands. He asked me which command I use the most, and I told him that 'sudo
' is one of my most frequently used commands. I use the sudo
command almost everyday to install, update, remove packages, among other administrative tasks on my Linux box. I guess "sudo"
is among the most frequently used command for many Linux users. If you've ever wondered what your top most used commands on Linux are, here's how to find them.
Table of Contents
Introduction
The Linux terminal is a powerful tool that allows users to interact with their systems and perform a wide range of tasks. As we use the Linux terminal, we learn many commands that help us do things. It can be helpful to know the which commands we use the most. This can help us learn new commands and fix problems.
There are a few ways to find the most used Linux commands. One way is to use the history
command. This command shows us a list of all the commands we have used in the current session.
We can also combine the history
command with other commands, such as sort
and uniq
, to count how many times each command was used.
Furthermore, we can use third-party tools like muc or a custom script to track your command usage in Linux.
Regardless of the chosen method, deciphering the top Linux commands empowers users to enhance their command-line proficiency and streamline their interactions with the Linux environment.
At the end, we have also included a simple Python script to determine the most or least frequently used Linux commands.
Related Read: 15 Essential Linux Commands Every Beginner Should Know
Find Top Most Used Commands in Linux
As you may know, the history file (~/.bash_history
) maintains a record of all the commands you execute in the Terminal. You can easily determine which commands you use most frequently by referring to this file.
Let me show you the top 5 most used commands on my Linux box:
$ history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5
Sample Output:
228 sudo 51 nala 38 ls 25 ip 19 cd
As you can see in the output, "sudo"
is the top most used command and I have executed it 228 times. And "cd
" is the least used command.
Let us break down the above command and see what each option does.
history
: This command displays a list of previously executed commands in your terminal session. It typically shows a sequential list of command numbers followed by the commands themselves.|
(Pipe): The pipe symbol|
is used to take the output of one command and use it as the input to the next command. In this case, it takes the output of thehistory
command and passes it as input to the next command in the pipeline.awk '{print $2}'
: Thisawk
command is used to extract the second column (i.e., the command itself) from each line of input. The output will consist of just the commands you've executed, one command per line.|
(Pipe): Similar to before, this pipe symbol passes the output of theawk
command to the next command in the pipeline.sort
: This command sorts the list of commands alphabetically. It arranges the commands in ascending order.|
(Pipe): Another pipe to pass the sorted list of commands to the next command.uniq -c
: Theuniq
command is used to remove duplicate lines from the sorted list of commands. The-c
option makesuniq
display the count of occurrences for each unique line. So, it will count how many times each unique command appears.|
(Pipe): Another pipe to pass the output ofuniq -c
to the next command.sort -nr
: This command sorts the list of unique commands and their counts in reverse numerical order (-nr
). This means that the commands you've used the most will appear at the top.|
(Pipe): Another pipe to pass the sorted list to the final command.head -5
: Finally, thehead
command is used to display the first 5 lines of the sorted list. These will be the top 5 most frequently executed commands from your command history.
So, when you run this entire command, you'll get a list of the top 5 most frequently executed commands from your command history, along with the number of times each command has been executed.
Heads Up: You can use ExplainShell to find what each part of a command does.
If you don't want to limit the number of results, simply remove the last part of the above command:
$ history | awk '{print $2}' | sort | uniq -c | sort -nr
Here is the another version of same command which shows little bit extra details:
$ history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | \grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n5
Sample Output:
1 228 45.2381% sudo 2 51 10.119% nala 3 38 7.53968% ls 4 25 4.96032% ip 5 19 3.76984% cd
This command is a complex one-liner for analyzing your command history and producing a summary of the most frequently executed commands, along with the percentage of each command's occurrence.
Display Most Used Commands in Fish
The aforementioned commands are Bash-specific. If you're on Fish shell, run:
$ history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head -5
Visualize Most Used Commands using muc
muc (stands for Most Used Commands) is a command line tool designed to visualize the commands you use most frequently in your Linux or Unix terminal. It works by analyzing your command history, which is stored in the $HISTFILE
environment variable.
It offers features like customizing the appearance of the output and setting the number of commands to display.
Install muc in Linux
muc can be installed through different methods, such as using an AUR (Arch User Repository) helper for Arch Linux, or directly from the GitHub repository for other distributions.
For Arch Linux Users (via AUR):
You can use an AUR helper like paru
or yay
to install the muc-git
package. For example, to install muc using paru, you can run:
$ paru -S muc-git
Alternatively, you can manually build it using git
and makepkg -si
.
Install muc using cargo:
You can install muc using Cargo, the Rust package manager. be sure you've installed Rust in your Linux system.
Once rust is installed, run the following command to install muc using cargo package manager
$ cargo install --git=https://github.com/nate-sys/muc
For Nix Users:
Use the outputs provided by the flake.nix
inside the repository to install muc
.
This can be done either with the overlays.default
output for your system configuration or the package output to imperatively install it.
You can use commands like nix install github:nate-sys/muc
or create an ad-hoc shell with nix shell github:nate-sys/muc
.
To quickly run muc, use:
nix run github:nate-sys/muc
Display Frequently Used Linux Commands using muc
Once installed, you can run muc
to visualize your most used commands.
Basic Usage:
Just type muc
and press Enter.
$ muc
This will display your most used commands.
Be default, muc uses your HISTFILE
to find the most frequently used commands. If it can't find this file, it will throw an error with message, "Error: "Could not find HISTFILE environment variable. Supply the file path with the --file option"
".
In that case, you should pass the actual path of your HISTFILE location to muc like below.
$ muc --file ~/.bash_history
Sample Output:
[▮▮▮▮▮▮▮▮▮▮] 37.96% 238 sudo apt, nmcli, reboot ... [▮▮▮ ] 12.60% 79 apt [▮▮ ] 10.85% 68 nala [▮ ] 6.22% 39 ls [▮ ] 5.42% 34 nmcli [▮ ] 4.94% 31 ip [▮ ] 3.99% 25 reboot [ ] 3.35% 21 nano [ ] 3.03% 19 docker [ ] 2.07% 13 rm ...60 (9.57%) others Total: 627 commands
As you see in the output above, muc displays your most used commands in a simple and clear format.
Heads Up: You can find your HISTFILE location using command:
$ echo $HISTFILE
Custom Number of Commands:
By default, muc will display the top 10 most used commands.
To display a custom number of top commands, use -c
followed by the number:
$ muc -c 5 # Shows top 5 commands
Specify Shell:
If you're using a specific shell like oh-my-zsh or fish, you can specify it:
$ muc --shell ohmyzsh # For oh-my-zsh $ muc --shell fish # For Fish shell
Customize Appearance:
You can use various options with muc
to customize the output, such as changing the appearance of the bar or showing a different number of top commands.
To change the appearance of the bar in the output, use --bar
parameter like below:
$ muc --bar "=,*,-,=" # Custom bar appearance
Using Regular Expressions:
For advanced users, you can parse the history file yourself using regular expressions:
$ muc --regexp "<your-regex>"
For more details, refer to the official muc GitHub repository given below.
Displaying Least Frequently Executed Commands
In the previous examples, we have sorted the result in descending order (reverse) i.e largest to smallest. To display the top most used commands in ascending order (i.e. smallest to largest), use this command instead:
$ history | awk {'print $2'} | sort | uniq -c | sort -n | tail -n5
Sample output:
29 exit 30 ssh 33 cd 118 pngquant 153 sudo
This will display the least frequently used commands at the top.
Say Hello to Command Frequency Analyzer (CFA) Script
We made a simple Python script named Command Frequency Analyzer
, shortly CFA
, to display the top most used or least used commands in Linux.
The Command Frequency Analyzer
script is a simple Python script designed for Linux and Unix users to analyze and track their command line usage.
It reads the command history file of the user's shell (Bash, Zsh, or Fish) and calculates the frequency of each command used. Users can choose to display either the most frequently or least frequently used commands.
The script is user-friendly and adaptable to different shell environments, making it an invaluable tool for anyone looking to optimize their command line efficiency or simply curious about their command line habits.
Display Most Frequently or Least Frequently Used Commands using CFA
The CFA script is available in GitHub for FREE to use.
1. Ensure Python is Installed:
This script requires Python. You can check if Python is installed by typing python --version
or python3 --version
in your terminal.
2. Download CFA Script:
Git clone the script to your local system using command:
$ git clone https://gist.github.com/7f93a7acb8607929c28974c9c2db6e69.git cfa
This will clone the script into a local directory called cfa
.
3. CD into the cfa directory:
$ cd cfa
4. Run the Script:
Execute the script by typing the following command:
$ python3 cfa.py
Simply follow the prompts.
The script will first ask if you want to see the most used or least used commands. Respond with most
or least
.
Next, it will prompt for the number of commands to display. Enter a number of your choice (e.g., 5
, 10
).
Depending upon the user's choice, CFA script will analyze the shell history file and display the most or least used commands.
Sample Output for most frequently used commands:
Do you want to display the 'most' used or 'least' used commands? Enter most/least: most Enter the number of commands to display: 5 Top 5 most used commands: sudo: 233 nala: 51 ls: 39 ip: 25 cd: 19
Sample Output for least frequently used commands:
Do you want to display the 'most' used or 'least' used commands? Enter most/least: least Enter the number of commands to display: 5 Top 5 least used commands: ./muc1.sh: 1 ./muc.sh: 1 touch: 1 rustc: 1 source: 1
The CFA script will analyze the following files depending on the shell you use.
~/.bash_history
for BASH~/.zsh_history
for ZSH~/.local/share/fish/fish_history
for FISH.
If you have configured different file for your shell history, simply change its path by editing the cfa.py
file.
If you want to look into the code, visit the CFA GitHub Gist link given below.
Frequently Asked Questions (FAQ)
A: Finding the top most used commands on Linux can be very helpful for understanding your command line habits and improving your efficiency.
A: You can use the history
command combined with tools like awk
, sort
, and uniq
to list and count your most used commands.
A: Yes, muc (Most Used Commands) is a tool designed for this purpose.
A: You need Rust and Cargo installed for installing muc on most distributions.
A: Yes, muc allows customization like changing the appearance of the output and specifying the number of top commands to display.
A: Yes, you can use regular expressions with muc or modify the command pipeline used with history
to exclude specific commands.
A: The basic method using history
and shell commands is available on most Unix-like systems. muc is also available for various distributions.
A: Command Frequency Analyzer (CFA) is a Python script that analyzes your shell command history to identify the most or least frequently used commands.
A: It supports Bash, Zsh, and Fish shells.
A: Download the script and run it using command: python3 cfa.py
A: No, it uses standard Python libraries.
A: Yes, the script prompts you to enter the number of commands you want to see.
A: It checks the SHELL
environment variable to determine your current shell.
A: As long as Python is installed and the history file is in the standard location, it should work on any Linux distribution.
Conclusion
Whether you're a beginner or an experienced user, knowing your most used commands is a valuable step towards mastering the Linux command line.
Discovering the top most used Linux commands provides useful insights into our command-line habits, enabling us to learn new commands, troubleshoot issues, and enhance our overall Linux experience.
By using tools like the history
command or muc, you can easily see which commands you use the most.
Now, it's your time. Go and find out your top most frequently used commands on your Linux box!
Related Read: Apply Tags To Linux Commands To Easily Retrieve Them From History