Linux Assignment

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

GREP:grep command searches the given file for lines containing a match to the given strings or words.

By default, grep prints the matching lines. Use grep to search for lines of text that match one or many regular expressions, and outputs only the matching lines.

The name, "grep", derives from the command used to perform a similar operation, using the Unix/Linux text editor ed: g/re/p grep command syntax grep 'word' filename grep 'string1 string2' filename cat otherfile | grep 'something' command | grep 'something' Use grep to search file Search /etc/passwd for boo user: $ grep boo /etc/passwd You can force grep to ignore word case i.e match boo, Boo, BOO and all other combination with -i option: $ grep -i "boo" /etc/passwd Use grep recursively You can search recursively i.e. read all files under each directory for a string "192.168.1.5" $ grep -r "192.168.1.5" /etc/ Use grep to search words only When you search for boo, grep will match fooboo, boo123, etc. You can force grep to select only those lines containing matches that form whole words i.e. match only boo word: $ grep -w "boo" /path/to/file Use grep to search 2 different words use egrep as follows: $ egrep -w 'word1|word2' /path/to/file Count line when words has been matched grep can report the number of times that the pattern has been matched for each file using -c (count) option: $ grep -c 'word' /path/to/file Also note that you can use -n option, which causes grep to precede each line of output with the number of the line in the text file from which it was obtained: $ grep -n 'word' /path/to/file Grep invert match You can use -v option to print inverts the match; that is, it matches only those lines that do not contain the given word. For example print all line that do not contain the word bar: $ grep -v bar /path/to/file UNIX / Linux pipes and grep command grep command often used with pipes. For example print name of hard disk devices: # dmesg | egrep '(s|h)d[a-z]' Display cpu model name:

# cat /proc/cpuinfo | grep -i 'Model' However, above command can be also used as follows without shell pipe: # grep -i 'Model' /proc/cpuinfo How do I list just the names of matching files? Use the -l option to list file name whose contents mention main(): $ grep -l 'main' *.c Finally, you can force grep to display output in colors: $ grep --color vivek /etc/passwd chmod command (change file permissions) The chmod command is used to change access permissions to files and directories. The format is chmod permissions filename > chmod 755 file.txt To see what permissions a file or directory has in linux, you use the ls command with option -l (eg: ls -l) which gives a long format listing. > ls -l -rwxr--r-- 1 root root 765 Apr 23 09:22 file.txt The permissions are the first 10 characters of the line (-rwxrwx---) and can be broken down as follows. File type rwx r-r-All 1 root root 765 Size Apr 23 file.txt

Owner Group

Links Owner Group

Mod Filename date

The r,w and x stand for... r = read w = write x = execute The first character on the line shows what type of file or directory it is, and can be one of these things... - = file d = directory l = symbolic link b = block-type special file c = character-type special file p = named pipe S = socket s = XENIX semaphore m = XENIX shared data (memory) file D = Solaris door n = HP-UX network special file

The remaining 9 characters are broken down into 3 groups of 3 characters. The first three are the permissions for the owner, the middle three are permissions for the group which has access to the file and the last three are the permissions for everybody else. WHO:If you want to know which users are currently logged in to your Linux system, which console they're using, and the date and time they logged in, issue the who command. You'll see output something like this: In the output shown here, the term tty stands for teletype. In the olden days of computing, a terminal was just a keyboard with an attached printer, so you read everything off the teletype. If you've logged in with multiple virtual consoles and changed your identity on any of them, you may have some trouble figuring out who you are--or at least what user is logged in to the console you're using. If you find yourself in such an identity crisis, try this related command: whoami The whoami command will tell you the name of the current user. Just as a side note, you can also use the who am i command (a variant of the who command) to return the name of the current user. But it doesn't always work s you might expect. If you're logged in as root, and use the su command to switch to another user, who am i will return "root" as the current user. For this reason, I recommend that you train yourself to always use the whoami command when you want to know the current user name.

You might also like