Unix / Linux – Processes

Unix / Linux – Processes Management ”; Previous Next In this chapter, we will discuss in detail about process management in Unix. When you execute a program on your Unix system, the system creates a special environment for that program. This environment contains everything needed for the system to run the program as if no other program were running on the system. Whenever you issue a command in Unix, it creates, or starts, a new process. When you tried out the ls command to list the directory contents, you started a process. A process, in simple terms, is an instance of a running program. The operating system tracks processes through a five-digit ID number known as the pid or the process ID. Each process in the system has a unique pid. Pids eventually repeat because all the possible numbers are used up and the next pid rolls or starts over. At any point of time, no two processes with the same pid exist in the system because it is the pid that Unix uses to track each process. Starting a Process When you start a process (run a command), there are two ways you can run it − Foreground Processes Background Processes Foreground Processes By default, every process that you start runs in the foreground. It gets its input from the keyboard and sends its output to the screen. You can see this happen with the ls command. If you wish to list all the files in your current directory, you can use the following command − $ls ch*.doc This would display all the files, the names of which start with ch and end with .doc − ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc The process runs in the foreground, the output is directed to my screen, and if the ls command wants any input (which it does not), it waits for it from the keyboard. While a program is running in the foreground and is time-consuming, no other commands can be run (start any other processes) because the prompt would not be available until the program finishes processing and comes out. Background Processes A background process runs without being connected to your keyboard. If the background process requires any keyboard input, it waits. The advantage of running a process in the background is that you can run other commands; you do not have to wait until it completes to start another! The simplest way to start a background process is to add an ampersand (&) at the end of the command. $ls ch*.doc & This displays all those files the names of which start with ch and end with .doc − ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc Here, if the ls command wants any input (which it does not), it goes into a stop state until we move it into the foreground and give it the data from the keyboard. That first line contains information about the background process – the job number and the process ID. You need to know the job number to manipulate it between the background and the foreground. Press the Enter key and you will see the following − [1] + Done ls ch*.doc & $ The first line tells you that the ls command background process finishes successfully. The second is a prompt for another command. Listing Running Processes It is easy to see your own processes by running the ps (process status) command as follows − $ps PID TTY TIME CMD 18358 ttyp3 00:00:00 sh 18361 ttyp3 00:01:31 abiword 18789 ttyp3 00:00:00 ps One of the most commonly used flags for ps is the -f ( f for full) option, which provides more information as shown in the following example − $ps -f UID PID PPID C STIME TTY TIME CMD amrood 6738 3662 0 10:23:03 pts/6 0:00 first_one amrood 6739 3662 0 10:22:54 pts/6 0:00 second_one amrood 3662 3657 0 08:10:53 pts/6 0:00 -ksh amrood 6892 3662 4 10:51:50 pts/6 0:00 ps -f Here is the description of all the fields displayed by ps -f command − Sr.No. Column & Description 1 UID User ID that this process belongs to (the person running it) 2 PID Process ID 3 PPID Parent process ID (the ID of the process that started it) 4 C CPU utilization of process 5 STIME Process start time 6 TTY Terminal type associated with the process 7 TIME CPU time taken by the process 8 CMD The command that started this process There are other options which can be used along with ps command − Sr.No. Option & Description 1 -a Shows information about all users 2 -x Shows information about processes without terminals 3 -u Shows additional information like -f option 4 -e Displays extended information Stopping Processes Ending a process can be done in several different ways. Often, from a console-based command, sending a CTRL + C keystroke (the default interrupt character) will exit the command. This works when the process is running in the foreground mode. If a process is running in the background, you should get its Job ID using the ps command. After that, you can use the kill command to kill the process as follows − $ps -f UID PID PPID C STIME TTY TIME CMD amrood 6738 3662 0 10:23:03 pts/6 0:00 first_one amrood 6739 3662 0 10:22:54 pts/6 0:00 second_one amrood 3662 3657 0 08:10:53 pts/6 0:00 -ksh amrood 6892 3662 4 10:51:50 pts/6 0:00 ps -f $kill 6738 Terminated Here, the kill command terminates the first_one process. If a process ignores a regular kill command, you can use kill -9 followed by the process ID as follows − $kill -9 6738 Terminated Parent and Child Processes Each unix process has two ID numbers assigned to it: The Process ID (pid) and the Parent process ID (ppid). Each user process in the system has a parent process. Most of the commands that you run have the shell as

Unix / Linux – Special Variables

Unix / Linux – Special Variables ”; Previous Next In this chapter, we will discuss in detail about special variable in Unix. In one of our previous chapters, we understood how to be careful when we use certain nonalphanumeric characters in variable names. This is because those characters are used in the names of special Unix variables. These variables are reserved for specific functions. For example, the $ character represents the process ID number, or PID, of the current shell − $echo $$ The above command writes the PID of the current shell − 29949 The following table shows a number of special variables that you can use in your shell scripts − Sr.No. Variable & Description 1 $0 The filename of the current script. 2 $n These variables correspond to the arguments with which a script was invoked. Here n is a positive decimal number corresponding to the position of an argument (the first argument is $1, the second argument is $2, and so on). 3 $# The number of arguments supplied to a script. 4 $* All the arguments are double quoted. If a script receives two arguments, $* is equivalent to $1 $2. 5 $@ All the arguments are individually double quoted. If a script receives two arguments, $@ is equivalent to $1 $2. 6 $? The exit status of the last command executed. 7 $$ The process number of the current shell. For shell scripts, this is the process ID under which they are executing. 8 $! The process number of the last background command. Command-Line Arguments The command-line arguments $1, $2, $3, …$9 are positional parameters, with $0 pointing to the actual command, program, shell script, or function and $1, $2, $3, …$9 as the arguments to the command. Following script uses various special variables related to the command line − #!/bin/sh echo “File Name: $0” echo “First Parameter : $1” echo “Second Parameter : $2” echo “Quoted Values: $@” echo “Quoted Values: $*” echo “Total Number of Parameters : $#” Here is a sample run for the above script − $./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2 Special Parameters $* and $@ There are special parameters that allow accessing all the command-line arguments at once. $* and $@ both will act the same unless they are enclosed in double quotes, “”. Both the parameters specify the command-line arguments. However, the “$*” special parameter takes the entire list as one argument with spaces between and the “$@” special parameter takes the entire list and separates it into separate arguments. We can write the shell script as shown below to process an unknown number of commandline arguments with either the $* or $@ special parameters − #!/bin/sh for TOKEN in $* do echo $TOKEN done Here is a sample run for the above script − $./test.sh Zara Ali 10 Years Old Zara Ali 10 Years Old Note − Here do…done is a kind of loop that will be covered in a subsequent tutorial. Exit Status The $? variable represents the exit status of the previous command. Exit status is a numerical value returned by every command upon its completion. As a rule, most commands return an exit status of 0 if they were successful, and 1 if they were unsuccessful. Some commands return additional exit statuses for particular reasons. For example, some commands differentiate between kinds of errors and will return various exit values depending on the specific type of failure. Following is the example of successful command − $./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2 $echo $? 0 $ Print Page Previous Next Advertisements ”;

Unix / Linux – The vi Editor

Unix/Linux – The vi Editor Tutorial ”; Previous Next In this chapter, we will understand how the vi Editor works in Unix. There are many ways to edit files in Unix. Editing files using the screen-oriented text editor vi is one of the best ways. This editor enables you to edit lines in context with other lines in the file. An improved version of the vi editor which is called the VIM has also been made available now. Here, VIM stands for Vi IMproved. vi is generally considered the de facto standard in Unix editors because − It”s usually available on all the flavors of Unix system. Its implementations are very similar across the board. It requires very few resources. It is more user-friendly than other editors such as the ed or the ex. You can use the vi editor to edit an existing file or to create a new file from scratch. You can also use this editor to just read a text file. Starting the vi Editor The following table lists out the basic commands to use the vi editor − Sr.No. Command & Description 1 vi filename Creates a new file if it already does not exist, otherwise opens an existing file. 2 vi -R filename Opens an existing file in the read-only mode. 3 view filename Opens an existing file in the read-only mode. Following is an example to create a new file testfile if it already does not exist in the current working directory − $vi testfile The above command will generate the following output − | ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ “testfile” [New File] You will notice a tilde (~) on each line following the cursor. A tilde represents an unused line. If a line does not begin with a tilde and appears to be blank, there is a space, tab, newline, or some other non-viewable character present. You now have one open file to start working on. Before proceeding further, let us understand a few important concepts. Operation Modes While working with the vi editor, we usually come across the following two modes − Command mode − This mode enables you to perform administrative tasks such as saving the files, executing the commands, moving the cursor, cutting (yanking) and pasting the lines or words, as well as finding and replacing. In this mode, whatever you type is interpreted as a command. Insert mode − This mode enables you to insert text into the file. Everything that”s typed in this mode is interpreted as input and placed in the file. vi always starts in the command mode. To enter text, you must be in the insert mode for which simply type i. To come out of the insert mode, press the Esc key, which will take you back to the command mode. Hint − If you are not sure which mode you are in, press the Esc key twice; this will take you to the command mode. You open a file using the vi editor. Start by typing some characters and then come to the command mode to understand the difference. Getting Out of vi The command to quit out of vi is :q. Once in the command mode, type colon, and ”q”, followed by return. If your file has been modified in any way, the editor will warn you of this, and not let you quit. To ignore this message, the command to quit out of vi without saving is :q!. This lets you exit vi without saving any of the changes. The command to save the contents of the editor is :w. You can combine the above command with the quit command, or use :wq and return. The easiest way to save your changes and exit vi is with the ZZ command. When you are in the command mode, type ZZ. The ZZ command works the same way as the :wq command. If you want to specify/state any particular name for the file, you can do so by specifying it after the :w. For example, if you wanted to save the file you were working on as another filename called filename2, you would type :w filename2 and return. Moving within a File To move around within a file without affecting your text, you must be in the command mode (press Esc twice). The following table lists out a few commands you can use to move around one character at a time − Sr.No. Command & Description 1 k Moves the cursor up one line 2 j Moves the cursor down one line 3 h Moves the cursor to the left one character position 4 l Moves the cursor to the right one character position The following points need to be considered to move within a file − vi is case-sensitive. You need to pay attention to capitalization when using the commands. Most commands in vi can be prefaced by the number of times you want the action to occur. For example, 2j moves the cursor two lines down the cursor location. There are many other ways to move within a file in vi. Remember that you must be in the command mode (press Esc twice). The following table lists out a few commands to move around the file − Given below is the list of commands to move around the file. Sr.No. Command & Description 1 0 or | Positions the cursor at the beginning of a line 2 $ Positions the cursor at the end of a line 3 w Positions the cursor to the next word 4 b Positions the cursor to the previous word 5 ( Positions the cursor to the beginning of the current sentence 6 ) Positions the cursor to the beginning of the next sentence 7 E Moves to the end of the blank delimited word 8 { Moves a paragraph back 9 } Moves a paragraph forward 10 [[ Moves a section back 11

Unix / Linux – File Permission

Unix / Linux – File Permission / Access Modes ”; Previous Next In this chapter, we will discuss in detail about file permission and access modes in Unix. File ownership is an important component of Unix that provides a secure method for storing files. Every file in Unix has the following attributes − Owner permissions − The owner”s permissions determine what actions the owner of the file can perform on the file. Group permissions − The group”s permissions determine what actions a user, who is a member of the group that a file belongs to, can perform on the file. Other (world) permissions − The permissions for others indicate what action all other users can perform on the file. The Permission Indicators While using ls -l command, it displays various information related to file permission as follows − $ls -l /home/amrood -rwxr-xr– 1 amrood users 1024 Nov 2 00:10 myfile drwxr-xr— 1 amrood users 1024 Nov 2 00:10 mydir Here, the first column represents different access modes, i.e., the permission associated with a file or a directory. The permissions are broken into groups of threes, and each position in the group denotes a specific permission, in this order: read (r), write (w), execute (x) − The first three characters (2-4) represent the permissions for the file”s owner. For example, -rwxr-xr– represents that the owner has read (r), write (w) and execute (x) permission. The second group of three characters (5-7) consists of the permissions for the group to which the file belongs. For example, -rwxr-xr– represents that the group has read (r) and execute (x) permission, but no write permission. The last group of three characters (8-10) represents the permissions for everyone else. For example, -rwxr-xr– represents that there is read (r) only permission. File Access Modes The permissions of a file are the first line of defense in the security of a Unix system. The basic building blocks of Unix permissions are the read, write, and execute permissions, which have been described below − Read Grants the capability to read, i.e., view the contents of the file. Write Grants the capability to modify, or remove the content of the file. Execute User with execute permissions can run a file as a program. Directory Access Modes Directory access modes are listed and organized in the same manner as any other file. There are a few differences that need to be mentioned − Read Access to a directory means that the user can read the contents. The user can look at the filenames inside the directory. Write Access means that the user can add or delete files from the directory. Execute Executing a directory doesn”t really make sense, so think of this as a traverse permission. A user must have execute access to the bin directory in order to execute the ls or the cd command. Changing Permissions To change the file or the directory permissions, you use the chmod (change mode) command. There are two ways to use chmod — the symbolic mode and the absolute mode. Using chmod in Symbolic Mode The easiest way for a beginner to modify file or directory permissions is to use the symbolic mode. With symbolic permissions you can add, delete, or specify the permission set you want by using the operators in the following table. Sr.No. Chmod operator & Description 1 + Adds the designated permission(s) to a file or directory. 2 – Removes the designated permission(s) from a file or directory. 3 = Sets the designated permission(s). Here”s an example using testfile. Running ls -1 on the testfile shows that the file”s permissions are as follows − $ls -l testfile -rwxrwxr– 1 amrood users 1024 Nov 2 00:10 testfile Then each example chmod command from the preceding table is run on the testfile, followed by ls –l, so you can see the permission changes − $chmod o+wx testfile $ls -l testfile -rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile $chmod u-x testfile $ls -l testfile -rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile $chmod g = rx testfile $ls -l testfile -rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile Here”s how you can combine these commands on a single line − $chmod o+wx,u-x,g = rx testfile $ls -l testfile -rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile Using chmod with Absolute Permissions The second way to modify permissions with the chmod command is to use a number to specify each set of permissions for the file. Each permission is assigned a value, as the following table shows, and the total of each set of permissions provides a number for that set. Number Octal Permission Representation Ref 0 No permission — 1 Execute permission –x 2 Write permission -w- 3 Execute and write permission: 1 (execute) + 2 (write) = 3 -wx 4 Read permission r– 5 Read and execute permission: 4 (read) + 1 (execute) = 5 r-x 6 Read and write permission: 4 (read) + 2 (write) = 6 rw- 7 All permissions: 4 (read) + 2 (write) + 1 (execute) = 7 rwx Here”s an example using the testfile. Running ls -1 on the testfile shows that the file”s permissions are as follows − $ls -l testfile -rwxrwxr– 1 amrood users 1024 Nov 2 00:10 testfile Then each example chmod command from the preceding table is run on the testfile, followed by ls –l, so you can see the permission changes − $ chmod 755 testfile $ls -l testfile -rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile $chmod 743 testfile $ls -l testfile -rwxr—wx 1 amrood users 1024 Nov 2 00:10 testfile $chmod 043 testfile $ls -l testfile —-r—wx 1 amrood users 1024 Nov 2 00:10 testfile Changing Owners and Groups While creating an account on Unix, it assigns a owner ID and a group ID to each user. All the permissions mentioned above are also assigned based on the Owner and the Groups. Two commands are available to change the

Unix / Linux – Basic Utilities

Unix / Linux Basic Utilities – Printing, Email ”; Previous Next In this chapter, we will discuss in detail about Printing and Email as the basic utilities of Unix. So far, we have tried to understand the Unix OS and the nature of its basic commands. In this chapter, we will learn some important Unix utilities that can be used in our day-to-day life. Printing Files Before you print a file on a Unix system, you may want to reformat it to adjust the margins, highlight some words, and so on. Most files can also be printed without reformatting, but the raw printout may not be that appealing. Many versions of Unix include two powerful text formatters, nroff and troff. The pr Command The pr command does minor formatting of files on the terminal screen or for a printer. For example, if you have a long list of names in a file, you can format it onscreen into two or more columns. Following is the syntax for the pr command − pr option(s) filename(s) The pr changes the format of the file only on the screen or on the printed copy; it doesn”t modify the original file. Following table lists some pr options − Sr.No. Option & Description 1 -k Produces k columns of output 2 -d Double-spaces the output (not on all pr versions) 3 -h “header” Takes the next item as a report header 4 -t Eliminates the printing of header and the top/bottom margins 5 -l PAGE_LENGTH Sets the page length to PAGE_LENGTH (66) lines. The default number of lines of text is 56 6 -o MARGIN Offsets each line with MARGIN (zero) spaces 7 -w PAGE_WIDTH Sets the page width to PAGE_WIDTH (72) characters for multiple text-column output only Before using pr, here are the contents of a sample file named food. $cat food Sweet Tooth Bangkok Wok Mandalay Afghani Cuisine Isle of Java Big Apple Deli Sushi and Sashimi Tio Pepe”s Peppers …….. $ Let”s use the pr command to make a two-column report with the header Restaurants − $pr -2 -h “Restaurants” food Nov 7 9:58 1997 Restaurants Page 1 Sweet Tooth Isle of Java Bangkok Wok Big Apple Deli Mandalay Sushi and Sashimi Afghani Cuisine Tio Pepe”s Peppers …….. $ The lp and lpr Commands The command lp or lpr prints a file onto paper as opposed to the screen display. Once you are ready with formatting using the pr command, you can use any of these commands to print your file on the printer connected to your computer. Your system administrator has probably set up a default printer at your site. To print a file named food on the default printer, use the lp or lpr command, as in the following example − $lp food request id is laserp-525 (1 file) $ The lp command shows an ID that you can use to cancel the print job or check its status. If you are using the lp command, you can use the -nNum option to print Num number of copies. Along with the command lpr, you can use –Num for the same. If there are multiple printers connected with the shared network, then you can choose a printer using -dprinter option along with lp command and for the same purpose you can use -Pprinter option along with lpr command. Here printer is the printer name. The lpstat and lpq Commands The lpstat command shows what”s in the printer queue: request IDs, owners, file sizes, when the jobs were sent for printing, and the status of the requests. Use lpstat -o if you want to see all output requests other than just your own. Requests are shown in the order they”ll be printed − $lpstat -o laserp-573 john 128865 Nov 7 11:27 on laserp laserp-574 grace 82744 Nov 7 11:28 laserp-575 john 23347 Nov 7 11:35 $ The lpq gives slightly different information than lpstat -o − $lpq laserp is ready and printing Rank Owner Job Files Total Size active john 573 report.ps 128865 bytes 1st grace 574 ch03.ps ch04.ps 82744 bytes 2nd john 575 standard input 23347 bytes $ Here the first line displays the printer status. If the printer is disabled or running out of paper, you may see different messages on this first line. The cancel and lprm Commands The cancel command terminates a printing request from the lp command. The lprm command terminates all lpr requests. You can specify either the ID of the request (displayed by lp or lpq) or the name of the printer. $cancel laserp-575 request “laserp-575” cancelled $ To cancel whatever request is currently printing, regardless of its ID, simply enter cancel and the printer name − $cancel laserp request “laserp-573” cancelled $ The lprm command will cancel the active job if it belongs to you. Otherwise, you can give job numbers as arguments, or use a dash (-) to remove all of your jobs − $lprm 575 dfA575diamond dequeued cfA575diamond dequeued $ The lprm command tells you the actual filenames removed from the printer queue. Sending Email You use the Unix mail command to send and receive mail. Here is the syntax to send an email − $mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr Here are important options related to mail command −s Sr.No. Option & Description 1 -s Specifies subject on the command line. 2 -c Sends carbon copies to the list of users. List should be a commaseparated list of names. 3 -b Sends blind carbon copies to list. List should be a commaseparated list of names. Following is an example to send a test message to [email protected]. $mail -s “Test Message” [email protected] You are then expected to type in your message, followed by “control-D” at the beginning of a line. To stop, simply type dot (.) as follows − Hi, This is a test . Cc: You can send a complete file using a redirect < operator as follows − $mail -s “Report 05/06/07” [email protected] <

Unix / Linux – File Management

Linux – File Management ”; Previous Next What is File Management in Linux? When we work with Linux, we need many text and binary files, for example all the Linux programs come in binary files where as their source code come in text files. As a user of the Operating System, we also create many files to manage our day to day activities. User generated files include words files, excel files, power point presentations and many other text files. In this chapter, we will discuss in detail about file management in Linux/Unix. All the data in Linux is organized into files and all these files are organized into different directories. These directories are organized into a tree-like structure called the filesystem. File System is responsible for storing information on the hard drives and later retrieving & updating it. Examples of Linux File Systems are FAT16, FAT32, NTFS, Ext2, Ext3, Ext4 etc. Types of Files in Linux As such everything in Linux is a file. So when you work with Linux, one way or another, you spend most of your time working with files. This tutorial will help you understand how to create and remove files, copy and rename them, create links to them, etc. In Linux, there are three basic types of files − Ordinary Files − An ordinary file is a file on the system that contains data, text, or program instructions. In this tutorial, you look at working with ordinary files. Directories − Directories store both special and ordinary files. For users familiar with Windows or Mac OS, Unix directories are equivalent to folders. Special Files − Some special files provide access to hardware such as hard drives, CD-ROM drives, modems, and Ethernet adapters. Other special files are similar to aliases or shortcuts and enable you to access a single file using different names. File Management Commands in Linux Let”s study the most important Linux commands to list available files, create and remove files, copy and rename files, create links to files, etc. Listing Files To list all the files and directories stored in the current directory on a Linux system, use the following command − $ ls Here is the sample output of the above command − $ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.02 work The command ls supports the -l option which would help you to get more information about the listed files − $ls -l total 1962188 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r– 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r–r– 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r– 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r– 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r– 1 amrood amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3 $ Here is the information about all the listed columns − First Column − Represents the file type and the permission given on the file. Below is the description of all type of files. Second Column − Represents the number of memory blocks taken by the file or directory. Third Column − Represents the owner of the file. This is the Linux user who created this file. Fourth Column − Represents the group of the owner. Every Linux user will have an associated group. Fifth Column − Represents the file size in bytes. Sixth Column − Represents the date and the time when this file was created or modified for the last time. Seventh Column − Represents the file or the directory name. In the ls -l listing example, every file line begins with a d, –, or l. These characters indicate the type of the file that”s listed. Prefix Description – Regular file, such as an ASCII text file, binary executable, or hard link. b Block special file. Block input/output device file such as a physical hard drive. c Character special file. Raw input/output device file such as a physical hard drive. d Directory which contains a listing of other files and directories. l Symbolic link file. Links on any regular file. p Named pipe. A mechanism for interprocess communications. s Socket which is used for interprocess communication. Metacharacters in Linux Linux Metacharacters have a special meaning in Unix. For example, * and ? are metacharacters. We use * to match 0 or more characters, a question mark (?) matches with a single character. For Example − $ls ch*.doc Displays all the files, the names of which start with ch and end with .doc − ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc c Here, * works as meta character which matches with any character. If you want to display all the files ending with just .doc, then you can use the following command − $ls *.doc Hidden Files in Linux Linux and Unix have some hidden files which are invisible from the users. These files name starts with a dot or the period character (.). Linux programs (including the shell) use most of these files to store system configuration information. Some common examples of the hidden files include the files − File Description .profile The Bourne shell ( sh) initialization script .kshrc The Korn shell ( ksh) initialization script .cshrc The C shell ( csh) initialization script .rhosts The remote shell configuration file To list these hidden (or invisible files), we must specify the -a option with ls command − $ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03 $ Single dot (.) − This represents the current directory. Double dot (..) − This represents the

Unix / Linux – Directories

Linux – Directories ”; Previous Next A Linux Directory is a file the solo job of which is to store the file names and the related information. All the files, whether ordinary, special, or directory, are contained in directories. This tutorial will discuss in detail about directories management in Linux/Unix. Linux uses a hierarchical structure for organizing files and directories. This structure is often referred to as a directory tree. The tree has a single root node, the slash character (/), and all other directories are contained below it. Linux Directory Structure The highest level of the file system is the / or root directory. All other files and directories exist under the root directory. The following is a listing of common directories that are directly under the root (/) directory: Directory Description /bin important binary applications /boot boot configuration files, kernels, and other files needed at boot time. /dev System device files. /etc configuration files, startup scripts, etc. /home List of home directories for different users /lib system libraries, shared libraries /lost+found a lost+found system for files that exist under the root (/) directory /media automatically mounted (loaded) partitions on your hard drive and removable media such as CDs, digital cameras, etc. /mnt manually mounted filesystems on your hard drive /opt 3rd part applications to be installed /proc Maintains information about the state of the system, including currently running processes. /root root user”s home directory. /sbin important system binaries /srv contain files that are served to other systems /sys system files /tmp temporary files /usr applications and files that are mostly available for all users to access /var variable files such as logs and databases Home Directory The directory in which you find yourself when you first login is called your home directory. You will be doing much of your work in your home directory and subdirectories that you”ll be creating to organize your files. You can go in your home directory anytime using the following command − $cd ~ $ Here ~ indicates the home directory. Suppose you have to go in any other user”s home directory, use the following command − $cd ~username $ To go in your last directory, you can use the following command − $cd – $ Absolute/Relative Pathnames Directories are arranged in a hierarchy with root (/) at the top. The position of any file within the hierarchy is described by its pathname. Elements of a pathname are separated by a /. A pathname is absolute, if it is described in relation to root, thus absolute pathnames always begin with a /. Following are some examples of absolute filenames. /etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3 A pathname can also be relative to your current working directory. Relative pathnames never begin with /. Relative to user amrood”s home directory, some pathnames might look like this − ../chem/notes personal/res Here ../ means go back one level from the current working directory and then you will find chem/notes. To determine where you are within the filesystem hierarchy at any time, enter the command pwd to print the current working directory − $pwd /user0/home/amrood $ Listing Directories To list the files in a directory, you can use the following syntax − $ls dirname Following is the example to list all the files contained in /usr/local directory − $ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami Creating Directories We will now understand how to create directories. Directories are created by the following command − $mkdir dirname Here, directory is the absolute or relative pathname of the directory you want to create. For example, the command − $mkdir mydir $ Creates the directory mydir in the current directory. Here is another example − $mkdir /tmp/test-dir $ This command creates the directory test-dir in the /tmp directory. The mkdir command produces no output if it successfully creates the requested directory. If you give more than one directory on the command line, mkdir creates each of the directories. For example, − $mkdir docs pub $ Creates the directories docs and pub under the current directory. Creating Parent Directories We will now understand how to create parent directories. Sometimes when you want to create a directory, its parent directory or directories might not exist. In this case, mkdir issues an error message as follows − $mkdir /tmp/amrood/test mkdir: Failed to make directory “/tmp/amrood/test”; No such file or directory $ In such cases, you can specify the -p option to the mkdir command. It creates all the necessary directories for you. For example − $mkdir -p /tmp/amrood/test $ The above command creates all the required parent directories. Removing Directories Directories can be deleted using the rmdir command as follows − $rmdir dirname $ Note − To remove a directory, make sure it is empty which means there should not be any file or sub-directory inside this directory. You can remove multiple directories at a time as follows − $rmdir dirname1 dirname2 dirname3 $ The above command removes the directories dirname1, dirname2, and dirname3, if they are empty. The rmdir command produces no output if it is successful. Changing Directories You can use the cd command to do more than just change to a home directory. You can use it to change to any directory by specifying a valid absolute or relative path. The syntax is as given below − $cd dirname $ Here, dirname is the name of the directory that you want to change to. For example, the command − $cd /usr/local/bin $ Changes to the directory /usr/local/bin. From this directory, you can cd to the directory /usr/home/amrood using the following relative path − $cd ../../home/amrood $ Renaming Directories The mv (move) command can also be used to rename a directory. The syntax is as follows − $mv olddir newdir $ You can rename a directory mydir to yourdir as follows − $mv mydir yourdir $ The directories . (dot) and .. (dot dot) The filename . (dot) represents the current working

Unix / Linux – Pipes & Filters

Unix / Linux – Pipes and Filters ”; Previous Next In this chapter, we will discuss in detail about pipes and filters in Unix. You can connect two commands together so that the output from one program becomes the input of the next program. Two or more commands connected in this way form a pipe. To make a pipe, put a vertical bar (&verbar;) on the command line between two commands. When a program takes its input from another program, it performs some operation on that input, and writes the result to the standard output. It is referred to as a filter. The grep Command The grep command searches a file or files for lines that have a certain pattern. The syntax is − $grep pattern file(s) The name “grep” comes from the ed (a Unix line editor) command g/re/p which means “globally search for a regular expression and print all lines containing it”. A regular expression is either some plain text (a word, for example) and/or special characters used for pattern matching. The simplest use of grep is to look for a pattern consisting of a single word. It can be used in a pipe so that only those lines of the input files containing a given string are sent to the standard output. If you don”t give grep a filename to read, it reads its standard input; that”s the way all filter programs work − $ls -l | grep “Aug” -rw-rw-rw- 1 john doc 11008 Aug 6 14:10 ch02 -rw-rw-rw- 1 john doc 8515 Aug 6 15:30 ch07 -rw-rw-r– 1 john doc 2488 Aug 15 10:51 intro -rw-rw-r– 1 carol doc 1605 Aug 23 07:35 macros $ There are various options which you can use along with the grep command − Sr.No. Option & Description 1 -v Prints all lines that do not match pattern. 2 -n Prints the matched line and its line number. 3 -l Prints only the names of files with matching lines (letter “l”) 4 -c Prints only the count of matching lines. 5 -i Matches either upper or lowercase. Let us now use a regular expression that tells grep to find lines with “carol”, followed by zero or other characters abbreviated in a regular expression as “.*”), then followed by “Aug”.− Here, we are using the -i option to have case insensitive search − $ls -l | grep -i “carol.*aug” -rw-rw-r– 1 carol doc 1605 Aug 23 07:35 macros $ The sort Command The sort command arranges lines of text alphabetically or numerically. The following example sorts the lines in the food file − $sort food Afghani Cuisine Bangkok Wok Big Apple Deli Isle of Java Mandalay Sushi and Sashimi Sweet Tooth Tio Pepe”s Peppers $ The sort command arranges lines of text alphabetically by default. There are many options that control the sorting − Sr.No. Description 1 -n Sorts numerically (example: 10 will sort after 2), ignores blanks and tabs. 2 -r Reverses the order of sort. 3 -f Sorts upper and lowercase together. 4 &plus;x Ignores first x fields when sorting. More than two commands may be linked up into a pipe. Taking a previous pipe example using grep, we can further sort the files modified in August by the order of size. The following pipe consists of the commands ls, grep, and sort − $ls -l | grep “Aug” | sort +4n -rw-rw-r– 1 carol doc 1605 Aug 23 07:35 macros -rw-rw-r– 1 john doc 2488 Aug 15 10:51 intro -rw-rw-rw- 1 john doc 8515 Aug 6 15:30 ch07 -rw-rw-rw- 1 john doc 11008 Aug 6 14:10 ch02 $ This pipe sorts all files in your directory modified in August by the order of size, and prints them on the terminal screen. The sort option &plus;4n skips four fields (fields are separated by blanks) then sorts the lines in numeric order. The pg and more Commands A long output can normally be zipped by you on the screen, but if you run text through more or use the pg command as a filter; the display stops once the screen is full of text. Let”s assume that you have a long directory listing. To make it easier to read the sorted listing, pipe the output through more as follows − $ls -l | grep “Aug” | sort +4n | more -rw-rw-r– 1 carol doc 1605 Aug 23 07:35 macros -rw-rw-r– 1 john doc 2488 Aug 15 10:51 intro -rw-rw-rw- 1 john doc 8515 Aug 6 15:30 ch07 -rw-rw-r– 1 john doc 14827 Aug 9 12:40 ch03 . . . -rw-rw-rw- 1 john doc 16867 Aug 6 15:56 ch05 –More–(74%) The screen will fill up once the screen is full of text consisting of lines sorted by the order of the file size. At the bottom of the screen is the more prompt, where you can type a command to move through the sorted text. Once you”re done with this screen, you can use any of the commands listed in the discussion of the more program. Print Page Previous Next Advertisements ”;

Unix / Linux – Getting Started

Getting Started with Linux ”; Previous Next Let”s start from very begining and the first step of Linux is to boot the system to make it live which allows users to interact with it. So let”s start with System Bootup. System Bootup If you have a computer which has the Linux operating system installed in it, then you simply need to turn on the power of the system to make it live. As soon as you turn on the Linux system (You can say also Linux Machine), it starts booting up and finally it prompts you to log into the system, which is an activity to log into the system and use it for your day-to-day activities. A typical login screen for Ubuntu Linux System looks like as follows: Login Linux When you first connect to a Linux/Unix system, you usually see a Login prompt such as the following − login: To log in Have your userid (user identification) and password ready. Contact your system administrator if you don”t have these yet. Type your userid at the login prompt, then press ENTER. Your userid is case-sensitive, so be sure you type it exactly as your system administrator has instructed. Type your password at the password prompt, then press ENTER. Your password is also case-sensitive. If you provide the correct userid and password, then you will be allowed to enter into the system. Read the information and messages that comes up on the screen, which is as follows. login : amrood amrood”s password: Last login: Sun Jun 14 09:32:32 2009 from 62.61.164.73 $ Once you are successfully logged into the Linux system, you will be provided with a command prompt (sometime called the $ prompt ) where you type all Linux commands. For example, to check calendar, you need to type the cal command as follows − $ cal June 2009 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ Following section will discuss few important Linux functions alongwith associated commands. Change Password All Linux systems require passwords to help ensure that your files and data remain your own and that the system itself is secure from hackers and crackers. It is advised to change your password frequently to save it from hackers or any other misuse. Following are the steps to change your password − Step 1 − To start, type passwd command at the command prompt as shown below. Step 2 − Enter your old password, the one you”re currently using. Step 3 − Type in your new password. Always keep your password complex enough so that nobody can guess it. But make sure, you remember it. Step 4 − You must verify the password by typing it again. $ passwd Changing password for amrood (current) Linux password:****** New Linux password:******* Retype new Linux password:******* passwd: all authentication tokens updated successfully $ We have added asterisk (*) here just to show the location where you need to enter the current and new passwords otherwise at your system. It does not show you any character when you type. Most of the Linux variants will show the steps sequence more or less same, but given instructions should be good enough for you to change your password. Listing Directories and Files All the data in Liux is organized into files and all the files are organized into different directories. These directories are organized into a tree-like structure called the filesystem. You can use the Linux ls command to list out all the files or directories available in a directory. Following is the example of using ls command with -l option. $ ls -l total 19621 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r– 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r–r– 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r– 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r– 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r– 1 amrood amrood 166255 Aug 9 2007 yourfile.swf $ Here entries starting with d….. represent directories. For example, uml, univ and urlspedia are directories and rest of the entries are files. Changing Directories While working with different files and directories you will need to go in different directories. You can go inside a directory using the cd command as follows: $ cd uml $ Above command will take you inside uml directory, where you can list available directories and files. Once you are done with your work in a directory, you can go back to parent directory using cd .. as follows: $ cd .. $ Linux uses a single dot . to represent current directory and double dots .. to represent a parent directory. Who Are You? While you”re logged into the system, you might be willing to know : Who am I? or you would like to know whose login you are using at present? The easiest way to find out “who you are” is to enter the whoami command as follows − $ whoami amrood $ Try it on your system. This command lists the account name associated with the current login. You can try who am i command as well to get information about yourself. $ who am i root pts/2 2024-04-24 19:22 (49.205.240.120) $ Who is Logged in? Sometime you might be interested to know who is logged in to the computer at the same time. There are three commands available to get you this information, based on how much you wish to know about the other users: users, who, and w. $ users amrood bablu qadir $ who amrood pts1 Oct 8 14:10 (limbo) bablu pts2

Unix / Linux – What is Linux?

What is Linux? ”; Previous Next What is Linux Operating System? The Linux operating system is a set of programs which acts as a link between the computer and the end user. The computer programs that allocate the system resources and coordinate all the details of the computer”s internals is called the Operating System or the Kernel. Why Linux Operating System? Linux was developed to be used as an alternative to other existing but expansive operating systems specially Unix, Windows, Mac OS, MS-DOS, Solaris and others. When Linus Torvalds was studying at the University of Helsinki, he decided to create his own operating system and keep it as Open Sources so that users from around the world can contribute their suggestions for improvements of the system. Linus Torvalds developed his own kernel and a few programs around it in 1991 which later became a full flagged Operating System and soon it was accepted widely by the Computer Engineers in Corporates, Universities and other Institutes. Today Linux is one of the most widely used Operating Systems and it come in various variants like Ubuntu, CentOS, Fedora, Debian, openSUSE, RedHat, MX Linux, Arch Linux, Gentoo etc. Several people can use a Unix computer at the same time; hence Unix is called a multiuser system. A user can also run multiple programs at the same time; hence Unix is a multitasking environment. What is Linux Shell? Users communicate with the Kernel through a program known as the shell. The shell is a command line interpreter; it translates commands entered by the user and converts them into a language that is understood by the kernel. Linux Architecture Here is a basic block diagram of a Linux system − The main concept that unites all the versions of Linux is the following four basics − Kernel − The kernel is the heart of the Linux operating system. It interacts with the hardware and most of the tasks like memory management, task scheduling and file management. Shell − The shell is the utility that processes your requests. When you type in a command at your terminal, the shell interprets the command and calls the program that you want. The shell uses standard syntax for all commands. C Shell, Bourne Shell and Korn Shell are the most famous shells which are available with most of the Unix variants. Commands and Utilities − There are various commands and utilities which you can make use of in your day to day activities. ftp, ssh, cp, mv, cat and grep, etc. are few examples of commands and utilities. There are over 250 standard commands plus numerous others provided through 3rd party software. All the commands come along with various options. Files and Directories − All the data of Unix is organized into files. All files are then organized into directories. These directories are further organized into a tree-like structure called the filesystem. Linux Applications Linux is an open-source operating system widely used in servers, web servers, supercomputers, and embedded systems etc. The best part of the Linux system is that you will find a vast range of free and open-source software applications. This section lists a few important software applications freely available on Linux Operating System: VLC Media Player – VLC Media Player is a free and open-source media player software that can play almost all types of media files, including audio and video. VLC media player is widely regarded as one of the best media players in the market. GNU Image Manipulation Program – GIMP is a free and open-source image editing program that can be used for tasks ranging from image retouching to graphic design. GIMP provides great functionality for image manipulation, color correction, cloning, and selection. It also supports layers, masks, and channels, allowing for more advanced editing techniques. FileZilla – FileZilla is a free and open-source FTP client that transfers files between a local computer and a remote server. It is known for its easy and user-friendly interface and ease of use to transfer files between two computers. Web Servers – The most frequent application of Linux is to use it like a Web Server. There are several web server softwares (Apache, NGinx etc) available which can be installed and use on Linux. Web Browsers – Linux provides an easy way to browse the Internet with the help of various Web Browsers. Firefox is the default browser for various Linux distributions such as Linux Mint and Ubuntu. LibreOffice – LibreOffice is free and an open source software which provides a great alternative for office suites. LibreOffice supports various file formats such as DOC, DOCX, PPT, PPTX, XLSX, etc. Vim – This is one of the best text Editor available on Linux. This is loved by millions of software developers around the world. Linux Licensing Linux is one of the most suitable examples of free and open-source software applciation. Linux source code may be used, modified, and distributed commercially or non-commercially by anyone under the terms of its respective licenses, such as the GNU General Public License (GPL). The Linux kernel is licensed under the GPLv2, with an exception for system calls that allows code that calls the kernel via system calls not to be licensed under the GPL The GPL terms allows anybody to redistribute, and sell a software product covered by the GPL, as long as the recipient is allowed to rebuild an exact copy of the binary files from source. The GNU General Public License is intended to guarantee your freedom to share and change free software to make sure the software is free for all its users. Linux is licensed under the GNU General Public License (GPL), which is a free software license that grants users the freedom to run, study, share, and modify the software. Print Page Previous Next Advertisements ”;