Linux Up Skill - Day 11

Linux Up Skill - Day 11
Photo by Gabriel Heinzer / Unsplash

Halfway through the course now and only one lesson behind. Lesson 11 of the Linux Up Skill Challenge is called “Finding things…” So we’ll be looking at searching for files and the text inside them. Sounds great! It looks like we are going to look at locate, find, grep, and which. A handy lesson indeed!

We are going to start with looking for a file called access.log. So we use locate access.log and return with an error the command is not found. Well then we’re off to sudo apt install mlocate to fix that. Then we try locate access.log again for:

david@linux-up-skill:~$ locate access.log /var/log/apache2/access.log /var/log/apache2/other_vhosts_access.log

The lesson points out that locate searches an index that is updated nightly by cron so if you need to manually update the index you can run sudo updatedb to accomplish this.

Now we are looking at find. It starts with the example find /var -name access.log which returns permission denied errors. If I change it to sudo find /var -name access.log I get the expected result. So it just searches the directory listed. The second example is find /home -mtime -3 which returns any file with a last modified date in the last 3 days. Neat! That’d be very handy when it is a recently touched file. find searches the filesystem directly instead of an index, which will be good to remember.

The lesson then touches on using grep -R to recursively search a directory. sudo grep -R -i “PermitRootLogin” /etc/* gives the results:

david@linux-up-skill:~$ sudo grep -R -i "PermitRootLogin" /etc/* /etc/ssh/sshd_config:#PermitRootLogin prohibit-password /etc/ssh/sshd_config:# the setting of "PermitRootLogin without-password".

This is pretty cool way to look into files for a specific string. The lesson does point out that this only works on plain text files but it is still very handy if you are sifting through logs.

The lesson then touches on which. This command lets me see where commands are being run from. For example, which nano is run from /usr/bin/nano.

I finish up the lesson by reading through the additional resources provided with the lesson. These are all great at helping getting into the depths of the commands.