1. column
I, as a programmer, do not mind those nastily formatted tabular data, like...
Pid Name %CPU
1230 Firefox 15
600 Code 12
809 Terminal 1.2
But when I learnt about column, I was pretty fascinated by how easy it is to make it neat!
column <file_name> -t
Pid Name %CPU
1230 Firefox 15
600 Code 12
809 Terminal 1.2
2. less
How many times did you feel disgusted by the mess you made on your terminal screen? Maybe you printed a huge file or did ps aux. I have been there.
A very neat solution is to use less. The text is displayed upon applying a filter for paging through text one screenful at a time.
You don't have any clutter on your terminal once you exit less.
3. sort
Imagine having a file with ID and Names like this.
16 Siri
20 Cortana
13 Mithil
9 Jarvis
A quick sort on the IDs would be super helpful right?
sort <file_name> -n
9 Jarvis
13 Mithil
16 Siri
20 Cortana
4. tr
I can't really think of a better situation to use this right now, but hey it works.
Say you have to replace the occurence of a character. tr (translate) does this for you.
echo "This is a sentence" | tr " " "\n"
This
is
a
sentence
5. head and tail
Head and tail themselves are pretty solid tools, but together they have their own use case.
Say you want the 11th line in a text file. You can do this by :
head <file_name> -n 11 | tail -n 1
That was all for this post. What are your preferred helpful Unix tools?
Photo by Karl Pawlowicz on Unsplash
Top comments (5)
I'm a huge fan of the (relatively) straight forward
find
command. When coupled with-exec
, you can do some pretty creative things, fairly quickly.I've used
find
historically for getting backup files which are more than 2 weeks old, and deleting them. It's a simple way of keeping backups from taking over hard drive space, without needing to do everything manuallyThat coupling with exec takes it to another level. What are your other favourites?
Going to be boring and say
grep
. I think a lot of people have it as a go-to tool to filter the returned output of a command into something useful.I don't spend a lot of time in the terminal using Linux/Unix specific commands. Most of my time on the terminal is spend using Git, and increasingly more often, redis-cli
Yeah.
git grep
is super handy to find files with particular snippets of code.I started with competitive programming recently and I used to save code as filename.py and then testcase_filename for the testcases.
ls | grep -v testcase
came in handy to code files and clear the noise.I don't use tr very often, but it's very handy for getting rid of odd binary codes in text files and translating between upper and lower case. I have seen much fancier uses of it, but don't recall any at the moment.
Here's a quick way to show someone the format of a data file without revealing any sensitive data.