7 Awesome Command-Line Tools
Some familiar tools and some you probably haven’t tried yet
The terminal/command line is a sacred tool that developers have under their belt. It is possibly the most used tool for programmers. I believe that is because of how lightweight it is and also the unbelievable amount of things you can do with it. Some developers even go the extra mile to do everything inside of the terminal. Kudos to them.
I’ll be showing some of the CLI (Command-Line Interface) tools that I personally think are awesome and use pretty much on a daily basis. Granted, there are so many tools out there for the command line that this list barely scratches the surface.
1. vim
What kind of terminal list wouldn’t include vim
? There are tons of debates about whether or not vim
is the editor for programming or if it’s a tool invented for lunatics, but we will not be discussing that here.
For those of you who are not familiar with vim
, it is a text editor that improves on the out-of-the-box vi
tool shipped with any UNIX system. It allows you to edit or create a file through your terminal.
This tool is helpful if you want to quickly edit a file while you are in the terminal and don’t want to open up your IDE or a GUI text editor like VSCode or Sublime Text.
Keep in mind that this tool can be a little tricky to use when first learning it, as many of the shortcuts are not as intuitive as modern-day text editors. However, if you do invest the time to learn vim
, it can be extremely powerful for a developer. This is why vim
has a huge community. This community is so large that developers will even make plug-ins for popular IDEs and text editors to emulate the vim
experience.
2. vtop
top
is a very common command that is used within the terminal to display information about processes that your system has running and general information about the memory and CPU usage of your machine. If you have ever used top
, it can be a little confusing to look at. So how can we make this information a little easier to process? Introducing vtop
, an implementation of top
that has graphs!
I like having a visual guide for anything, and having one for top
information is killer. I have this running all day so that I can keep an eye on my system’s load.
You’re going to need npm
for this tool.
3. fzf
This next one is a really cool tool. It’s called fzf
. It’s a general-purpose command-line fuzzy finder that allows you to find files based on whatever you type. On its own, it’s an OK tool. It will list all the different files in the current directory you’re in. You can think of it as a Spotlight search, but in your terminal.
Now the real power of this tool comes when you combine fzf
with other existing commands like kill
or cat
. In order to do this, you’re going to need to run the install script that is provided with the package or inside the repository:
/usr/local/opt/fzf/installor~/.fzf/install
You will need to restart your terminal or source
your .bashrc
. It will ask you some questions, and once you’ve answered all of them, you will have unlocked fzf
's fullest potential.
Now you can run commands like:
cat **[TAB]
vim **[TAB]
ssh **[TAB]
fzf
will kick into gear and find all the possible entries that can work with the command:
Another cool application of this is using it with the kill
command. This is probably the one I use most. The days of typing ps -ef | grep [process-name]
and then either manually typing or copying the process ID to kill are long gone. Instead, you can run kill [tab]
or kill -9 [tab]
. Fuzzy-find the process you want to kill and press enter. It will automatically fill the process ID in for you.
There are tons of other use cases that I can go over, but these are the main ones I would like to point out.
4. trash-cli
Ever rm -rf
something and immediately realize that it wasn’t something you wanted to delete forever? I hope this isn't just me. If you don’t want to deal with that kind of anxiety, then I would recommend using trash-cli
.
This tool basically just puts items inside your system’s trash instead of wiping it completely from existence.
Instead of typing out trash
, I have an alias in my .bashrc
that replaces the rm
command:
alias rm=trash
Now when something is deleted using rm
, you don’t have to worry about it being gone forever. You can simply retrieve it from the trash if you like. And yes, this works with different flags that rm
provides.
5. speed-test
This one is pretty straightforward. If you want to see how fast your internet is without having to open up Chrome, speed-test
is for you.
This is a tool I use quite frequently and always like to have in my back pocket just so that I don’t have to chew up additional resources from Chrome. Also, it’s pretty cool to do it in the terminal.
You’re going to need npm
for this tool.
6. wikit
This one is a much smaller repo, and I love it. I have my terminal open all day via iTerm2, so being able to search Wikipedia is awesome. wikit
allows you to do that from the terminal. You’d be surprised by how often I use this one on a day-to-day basis.
You’re going to need npm
for this tool.
7. cointop
This last one might not be for everyone, but I use it every day. For those of you who are in the crypto world, then you probably already know about this tool.
I dabble in cryptocurrency here and there, and keeping up with so many different types of coins — let alone their prices — can be exhausting. With prices moving so quickly in the crypto world, cointop
is a lifesaver.
cointop
is a play on the top
command. However, instead of displaying system information, cointop
displays information about cryptocurrencies.
Conclusion
There are so many more CLI tools that I use on a day-to-day basis, but these are the ones that stand out to me in my toolkit. I can go on forever about CLI tools. They are one of my favorite things to tinker with in the world of software. I always get excited whenever I find a new CLI tool that allows me to accomplish something so minuscule.
I also love the fact that most of these tools are community-driven — a bunch of developers just working on a small tool because they think they’re neat.
I’ll see you all in the next one!
'Data Analytics(en)' 카테고리의 다른 글
10 Crazy Cool Project Ideas for Python Developers (1) | 2020.10.29 |
---|---|
Master Python Lambda Functions With These 4 Don’ts (0) | 2020.10.27 |
Change The Way You Write Python Code With One Extra Character (0) | 2020.10.26 |
Data-Preprocessing with Python (0) | 2020.10.25 |
Advanced Python: 9 Best Practices to Apply When You Define Classes (0) | 2020.10.24 |