Bienvenido! - Willkommen! - Welcome!

Bitácora Técnica de Tux&Cía., Santa Cruz de la Sierra, BO
Bitácora Central: Tux&Cía.
Bitácora de Información Avanzada: Tux&Cía.-Información
May the source be with you!

Tuesday, October 26, 2010

Linux commands to help you navigate

Source by nixcraft · 9 comments
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
Output:
/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
Output:
/etc/shadow: ASCII text
But wait sec, you don't have to type full command path:
$ file $(which adduser)
Output:
/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
Output:
bash: ifconfig: command not found
Now locate ifconfig binary, enter:
$ whereis -b ifconfig
Output:
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 192.168.1.1
# grep -R "192.168.1.1" /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.so.0
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.

No comments: