Linux commands to help you navigate

by on October 13, 2005 · 11 comments· LAST UPDATED December 2, 2007

in , ,

As a Linux system administrator, you will need to find files in directories all over the file system. Especially those coming from a Windows background, often lost themselves while navigating file system.

Linux and other UNIX (BSD) OS offers an excellent collection of utilities, which can be use to finding the files and executables, remember you cannot memorize all the commands and files ;)
Commands to help you navigate:

  • file: Determines file types
  • which: Locates an executable in your PATH
  • whereis: Locates binaries and man page
  • find: Find the file
  • grep: Search for text/string in the named file name
  • strings: Find text string in a binary file

The which command

It is useful to locate a command. Some opertating system such as Solaris/HP-UX (even linux) have multiple homes. So you wanna find out which version you are going to use by order of the directories in your PATH variable. Try out following commands:
$ which ls
$ which vi
$ which vim

The file command

You would like to find out if a command is a shell script or a binary file or simply cannot recognize file by its extension then use file command to determine file type.
$ file /usr/sbin/useradd

/usr/sbin/useradd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped

Let us try another example:
# file /etc/shadow

/etc/shadow: ASCII text

But wait sec, you don't have to type full command path:
$ file $(which adduser)

/usr/sbin/adduser: perl script text executable

The whereis command

It locates binaries and man pages. When you get message command not found then use whereis command to locate binary file. For example ifconfig command:
$ ifconfig

bash: ifconfig: command not found

Now locate ifconfig binary, enter:
$ whereis -b ifconfig

ifconfig: /sbin/ifconfig

So let us try the full path, enter:
$ /sbin/ifconfig

The grep command

The grep command can search for text or strings such as IP address, domain names and lots of other stuff inside a text file. Often new Linux sys admin forgets to configuration file names. However, you can use grep to find out those configuration file name. For example, find out the file containing IP address
# grep -R "" /etc/* | less

Find out kernel driver module bttv configuration file name, so that you can remove the driver:
# grep -R "bttv" /etc/* | less<

The strings Commands

The grep command is useful to search a text file, if you would like to find text string in a binary file then use strings command.
# strings /usr/bin/users

You might think this is stupid idea to search inside binary file for text string. Well, no it is not a stupid idea. For example, you would like to quickly find out if internet service supports tcpd access control facility via /etc/hosts.allow and /etc/hosts.deny files (read as tcp wrappers) or not. Let us find out if sshd server support tcpd or not:
# strings $(which sshd)| grep libwrap
libwrap refuse returns

The find Command

Use find command to find the files. Find all files belonging to the user charvi:
# find / -user charvi

Remove all core dump files
# find / -name core -exec rm -i{}\;

Please see more find command examples here and here. For more info please read the man pages of find, grep, file, which.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 11 comments… read them below or add one }

1 alberto October 17, 2005 at 2:23 am

Nice, thanks for that information. I’m going to try them


2 aleks April 9, 2008 at 1:57 am

Very nice thank you, this has been very helpful to me.


3 Jason July 8, 2008 at 8:42 pm

Thanks I’m a newbie…this will help!


4 Rahul November 13, 2008 at 10:03 am

Pretty Good


5 Chris November 26, 2008 at 5:59 am

I’ve been looking for something exactly like the file and whereis commands. Especially whereis, I’d always use which and get stuck. Thanks!


6 Bryan December 12, 2008 at 10:11 pm

Thanks. Just what I needed.


7 karanja April 17, 2009 at 11:06 am

Gained a few tricks. thank u.


8 rajashekara June 10, 2009 at 12:31 pm

Thank you very much iam searching for recursion serch


9 Nano January 21, 2010 at 11:07 am

Thanks! I use also the “locate” command to find files (together to the “updatedb” command to refresh the file index). :-)


10 deepak May 17, 2011 at 6:43 pm

can i access the files created and opened in a different runlevel without changing the level. it is really urgent. i have some important files and do not know how to change the run level either.


11 deepak May 17, 2011 at 6:44 pm

how to i change the run level and where are the commands to be given. i am totally blank to this aspect. i really need some help which would be really appreciated


Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , ,

Previous post:

Next post: