10 Interesting Linux Command Line Tricks and Tips Worth Knowing

I passionately enjoy working with commands as they offer more control over a Linux system than GUIs (Graphical User Interfaces) applications, therefore am always on the lookout to discover or figure out interesting ways and ideas to make Linux so easy and fun to operate, primarily from the terminal.

It is always thrilling when we discover new tricks or tips while using Linux especially a command line geek like myself.

Suggested Read: 5 Interesting Command Line Tips and Tricks in Linux – Part 1

And the feeling of wanting to share newly learned practices or commands with millions of Linux users out there, particularly the newbies who are still getting their way around this exciting operating system normally sets in.

Suggested Read: 10 Useful Linux Command Line Tricks for Newbies – Part 2

In this article, we will review a number of useful command line tricks and tips that can significantly enhance your Linux usage skills.

1. Lock or Hide a File or Directory in Linux

The simplest way of locking a file or directory is by using Linux file permissions. In case your the owner of a file or directory, you can block (remove read, write and execute privileges) other users and groups from accessing it as follows:

$ chmod 700 tecmint.info
OR
$ chmod go-rwx tecmint.info

To know more about Linux file permissions, read this article Managing Users & Groups, File Permissions & Attributes in Linux.

To hide the file/directory from other system users, rename it with a (.) at the start of the file or directory:

$ mv filename .tecmint.info

2. Translate rwx Permissions into Octal Format in Linux

By default, when you run the ls command, it displays file permissions in rwx format, but to understand the equivalence of this format and the octal format, you can learn how to translate rwx permissions into Octal format in Linux.

3. How to Use ‘su’ When ‘sudo’ Fails

Although sudo command is used to execute commands with superuser privileges, there are moments when it fails to work as in the example below.

Here, I want to empty the contents of a large file named uptime.log but the operation has failed even when I used sudo.

$ cat /dev/null >/var/log/uptime.log 
$ sudo cat /dev/null >/var/log/uptime.log
Empty Large File Content in Linux
Empty Large File Content in Linux

In such as case, you need to switch to the root user account using su command to perform the operation like so:

$ su
$ sudo cat /dev/null >/var/log/uptime.log
$ cat /var/log/uptime.log
Switch to Super User
Switch to Super User

Try to understand the difference between su and sudo, in addition, read through their man pages for more guidelines:

$ man sudo
$ man su

4. Kill a Process in Linux

Sometimes when you want to terminate a process using kill or killall or pkill commands, it may fail to work, you realize that the process still continues to run on the system.

In order to destructively kill a process, send the -KILL siganl to it.

First determine its process ID and then kill it like so:

$ pidof vlc
$ sudo kill -KILL 10279
Find and Kill Process in Linux
Find and Kill Process in Linux

Check the kill command for additional usage options and information.

5. Delete File Permanently in Linux

Normally, we use the rm command to delete files from a Linux system, however, these files do not completely get deleted, they are simply stored and hidden on the hard disk and can still be recovered these files in Linux and viewed by another person.

To prevent this, we can use the shred command which overwrites the file content and optionally deletes the file as well.

$ shred -zvu tecmint.pdf

The options used in the above command:

  1. -z – adds a final overwrite with zeros to hide shredding.
  2. -u – helps to truncate and remove file after overwriting.
  3. -v – shows progress.
Delete File Permanently in Linux
Delete File Permanently in Linux

Read through shred man page for additional usage instructions:

$ man shred

6. Rename Multiple Files in Linux

You can rename multiple files in Linux on the go by invoking the rename command.

It renames the filenames supplied according to a rule specified in the first argument.

The command below renames all .pdf files to .doc, here 's/\.pdf$/\.doc/' is the rule:

$ rename -v 's/\.pdf$/\.doc/' *.pdf
Rename Multiple Files in Linux
Rename Multiple Files in Linux

The next example renames all files matching "*.bak" to strip the extension, where 's/\e.bak$//' is the rule.

7. Check for Spelling of Words in Linux

The look command displays lines beginning with a given string, it can help you to check for the spelling of word from within the command line. Although it is not so effective and reliable, look is still a useful alternative to other powerful spelling-checkers:

$ look linu
$ look docum
Spell Checking in Linux
Spell Checking in Linux

8. Search for Description of Keyword in Manual Page

The man command is used to display manual entry pages of commands, when used with the -k switch, it searches the short descriptions and manual page names for the keyword printf (such as adjust, apache and php in the commands below) as regular expression.

$ man -k adjust
$ man -k apache
$ man -k php
Show Description of Keyword in Manual Pages
Show Description of Keyword in Manual Pages

9. Watch Logs in Real-Time in Linux

With watch command, you can run another Linux command periodically while displaying its output on fullscreen and alongside tail command which is used to view the last parts of a file, it is possible to watch the recording of log entries in a logfile.

In the example below, you will watch the system authentication logfile. Open two terminal windows, display the log file for watching in real-time in the first window like so:

$ sudo watch tail /var/log/auth.log

You can also use tail command which shows the last parts of a file. Its -f flag enables watching changes in a file in real-time, therefore it is possible to watch the recording of log entries in a log file.

$ sudo tail -f /var/log/auth.log

And run the commands below in the second terminal as you observe the logfile content from the first window:

$ sudo mkdir -p /etc/test
$ sudo rm -rf /etc/test

10. List All Shell builtin Commands

A shell builtin is a command or a function, called from within and executed directly in the shell itself, instead of an external executable program which the shell would load from the hard disk and execute.

To list all shell builtins and their usage syntax, run:

$ help

As a concluding remark, command line tricks and tips always come in handy and make learning and using Linux easy and fun especially for newbies.

You can as well share with us other useful and interesting command line tricks or tips in Linux that you have come across via the comment form below.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

36 Comments

Leave a Reply
  1. “The next example renames all files matching "*.bak" to strip the extension, where 's/\e.bak$//' is the rule:” I know this is an old thread but shouldn’t there be screen shots of the output of this command?

    Reply
  2. 6. (…) the rule: $ rename ‘s/\e.bak$//’ *.bak

    Other example. If you have a list of songs like this:
    $ ls -l
    01. Mecano (Grandes éxitos) – Me cuesta tanto olvidarte – http://www.radio.es.mp3
    02. Mecano (Grandes éxitos) – La fuerza del destino – http://www.radio.es.mp3
    03. Mecano (Grandes éxitos) – Hijo de la luna – http://www.radio.es.mp3
    04. Mecano (Grandes éxitos) – Cruz de navajas – http://www.radio.es.mp3
    05. Mecano (Grandes éxitos) – 7 de Septiembre – http://www.radio.es.mp3
    .
    .
    $ rename ‘s/Mecano (Grandes éxitos) – //g’ *.mp3
    $ rename ‘s/ – http://www.radio.es//g‘ *.mp3
    $
    $ ls -l
    01. Me cuesta tanto olvidate.mp3
    02. La fuerza del destino.mp3
    03. Hijo de la luna.mp3
    04. Cruz de navajas.mp3
    05. 7 de Septiembre.mp3
    .
    .

    Reply
  3. You should only use su if there is no other option, I think the correct way to accomplish clearing the log is to use sudo like this:

    sudo /bin/bash -c ‘cat /dev/null >/var/log/uptime.log ‘

    Reply
    • “You should only use su if there is no other option”

      What? Really, blanket sudo is worse than su.

      What is wrong with:

      su -c '> /var/log/uptime.log'
      

      (Hint: nothing)

      Regarding the solution in.the article that uses:

      $ su 
      $ sudo ...
      

      What is the purposeof the ‘sudo’? Again: nothing.

      Regarding killing processes using pidof and then kill, it can be more effecrive to use pkill (if you are unfamiliar with pkill, you van use prgrep to see which processes pkill would kill, they take mostly the same optioms).

      Reply
    • @chukcha2

      tail -f is actually a easier and command, we will modify the article to show it other than using watch command.

      Reply
    • @Chukcha2

      There was a little typo in the article, we will update it and show the correct command as you have mentioned above.

      Reply
  4. $ rename ‘s/\e.bak$//’ *.bak

    Other example. If you have a list of songs like this:
    $ ls -l
    01. Mecano (Grandes éxitos) – Me cuesta tanto olvidarte – http://www.radio.es.mp3
    02. Mecano (Grandes éxitos) – La fuerza del destino – http://www.radio.es.mp3
    03. Mecano (Grandes éxitos) – Hijo de la luna – http://www.radio.es.mp3
    04. Mecano (Grandes éxitos) – Cruz de navajas – http://www.radio.es.mp3
    05. Mecano (Grandes éxitos) – 7 de Septiembre – http://www.radio.es.mp3
    .
    .
    $ rename ‘s/Mecano (Grandes éxitos) – //g’ *.mp3
    $ rename ‘s/ – http://www.radio.es//g‘ *.mp3
    $
    $ ls -l
    01. Me cuesta tanto olvidate.mp3
    02. La fuerza del destino.mp3
    03. Hijo de la luna.mp3
    04. Cruz de navajas.mp3
    05. 7 de Septiembre.mp3
    .
    .

    Reply
  5. 6. (…) the rule:
    $ rename ‘s/\e.bak$//’ *.bak

    Other example. If you have a list of songs like this:
    $ ls -l
    01. Mecano (Grandes éxitos) – Me cuesta tanto olvidarte – http://www.radio.es.mp3
    02. Mecano (Grandes éxitos) – La fuerza del destino – http://www.radio.es.mp3
    03. Mecano (Grandes éxitos) – Hijo de la luna – http://www.radio.es.mp3
    04. Mecano (Grandes éxitos) – Cruz de navajas – http://www.radio.es.mp3
    05. Mecano (Grandes éxitos) – 7 de Septiembre – http://www.radio.es.mp3
    .
    .
    $ rename ‘s/Mecano (Grandes éxitos) – //g’ *.mp3
    $ rename ‘s/ – http://www.radio.es//g‘ *.mp3
    $
    $ ls -l
    01. Me cuesta tanto olvidate.mp3
    02. La fuerza del destino.mp3
    03. Hijo de la luna.mp3
    04. Cruz de navajas.mp3
    05. 7 de Septiembre.mp3
    .
    .

    Reply
  6. Hi I think that the effective command to watch output from the end of a file name is ‘tail -f filename’. This is much less of a load on the system as well

    Reply
    • @Jim

      Yes, it is actually more easier and effective, i will start using tail -f filename other than with watch command. Thanks for the proposition.

      Reply
  7. Why would you do a watch on tail? Lol, -f does the same thing and will keep more than 10 lines on your screen. Horrible “tips” here.

    Reply
  8. Two things:
    sudo is an acronym for “Switch User then DO” not “SuperUser DO.” It’s an important distinction that most users don’t get. Look at the man page for the visudo and sudoers for more information (also, su means “Switch User” not “Super User”)

    Also, you don’t have to use watch with tail. The tail command has the -f option that does the same thing in real time in stead of evey two seconds.

    Reply
    • @Martin

      sudo elevates a users privileges to that of the target user(normally root) in order to execute a command or perform a given operation on the system, and su is used to switch to another user. Then i just discovered that tail actually has a switch to enable watching changes in a file in real-time.

      Many thanks for the useful response.

      Reply
  9. I’d suggest an improvement to tip 9:

    tail has a flag “-f” for following files as they update. watch on the other hand, updates at a specific interval. it’s like polling vs. events

    Reply
    • @Technochaker

      That’s correct, we will update article to indicate tail -f for watching logfiles. Thanks for the feedback.

      Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.