<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3352892106661147466</id><updated>2011-11-27T16:45:09.931-08:00</updated><category term='Unix Shell Scripts'/><category term='Kernel module programming'/><category term='Shell Programming'/><category term='Shell Scripting'/><category term='System Calls and Subroutine'/><category term='Korn Shell'/><category term='shell'/><category term='Shell Command Language'/><category term='Z Shell'/><category term='Bash Scripting'/><category term='Bourne Shell'/><title type='text'>Free Shell Programming Ebooks &amp; Reviews</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://more-shell.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-9049294122355262123</id><published>2009-11-26T11:39:00.000-08:00</published><updated>2009-11-26T11:44:13.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bash Scripting'/><title type='text'>BASH Programming − Introduction HOW−TO</title><content type='html'>&lt;div style="text-align: justify;"&gt;BASH Programming − Introduction HOW−TO is written by Mike G mikkey. This article intends to help you to start programming basic−intermediate shell scripts. This bash shell programing document explains you simple scripts, all about redirection, pipes, bash shell scripting variables, conditionals, loops for, while and until, functions, user interfaces, tables, more advance scripts, debugging, and more.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This document tries to be useful in the following situations&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;You have an idea about programming and you want to start coding some shell scripts.&lt;/li&gt;&lt;li&gt;You have a vague idea about shell programming and want some sort of reference.&lt;/li&gt;&lt;li&gt;You want to see some shell scripts and some comments to start writing your own&lt;/li&gt;&lt;li&gt;You are migrating from DOS/Windows (or already did) and want to make "batch" processes.&lt;/li&gt;&lt;li&gt;You are a complete nerd and read every how−to available&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://tldp.org/HOWTO/pdf/Bash-Prog-Intro-HOWTO.pdf" target="_blank"&gt;Read More/Try it&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-9049294122355262123?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/9049294122355262123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/9049294122355262123'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2009/11/bash-programming-introduction-howto.html' title='BASH Programming − Introduction HOW−TO'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-6578396154573074659</id><published>2009-11-26T11:32:00.000-08:00</published><updated>2009-11-26T11:37:51.916-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix Shell Scripts'/><title type='text'>Unix Shell Scripts</title><content type='html'>&lt;div style="text-align: justify;"&gt;Unix shell scripts is written by Norman Matloff. This Unix shell scripting document explains you how to invoke shell scripts, shell variables, shell command arguments, language constructs, escape characters and also there is an example which shows shell script for deleting files.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;Any collection of csh commands may be stored in a file, and csh can be invoked to execute the commands in that file. Such a file is known as a shell script file. The language used in that file is called shell script language. Like other programming languages it has variables and flow control statements (e.g. if-then-else, while, for, goto).&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;In Unix there are several shells that can be used, the C shell (csh and its extension, the T C shell tcsh), the Bourne Shell (sh and its extensions the Bourne Again Shell bash and the highly programmable Korn shell ksh ) being the more commonly used.  Note that you can run any shell simply by typing its name. For example, if I am now running csh and wish to switch to ksh, I simply type ksh, and a Korn shell will start up for me. All my commands from that point on will be read and processed by the Korn shell (though when I eventually want to log off, exiting the Korn shell will still leave me in the C shell, so I will have to exit from it too).&lt;br /&gt;&lt;a href="http://heather.cs.ucdavis.edu/%7Ematloff/UnixAndC/Unix/CShellII.pdf" target="_blank"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Read More/Try It&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-6578396154573074659?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/6578396154573074659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/6578396154573074659'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2009/11/unix-shell-scripts.html' title='Unix Shell Scripts'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-2276446563101839619</id><published>2009-11-26T11:23:00.000-08:00</published><updated>2009-11-26T11:29:22.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bourne Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Bourne Shell Programming in One Hour</title><content type='html'>&lt;div style="text-align: justify;"&gt;Bourne Shell Programming in One Hour is written by  Ben Pfaff.  This shell programming guide explains you shell command basics, intermediate shell programming, built in shell commands, useful external shell commands and more.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Introduction:&lt;/span&gt;&lt;br /&gt;Programming with the Bourne shell is similar to programming in a conventional language. If you've ever written code in C or Pascal, or even BASIC or FORTRAN, you'll recognize many common features. For instance, the shell has variables, conditional and looping constructs, functions, and more.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Shell programming is also dierent from conventional programming languages. For example, the shell itself doesn't provide much useful functionality; instead, most work must be done by invoking external programs. As a result, the shell has powerful features for using programs together in sequence to get work done.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This article examines the features of the POSIX shell, more commonly known as the Bourne shell. The most common Bourne shell implementation on GNU/Linux systems is bash, the Bourne again  shell." bash incorporates several extensions to the standard Bourne functionality; none of these will be explored by this article.  This article is by no means comprehensive. It just skims the surface of many shell features.&lt;br /&gt;&lt;a href="http://www.stanford.edu/%7Eblp/writings/shell/shell.pdf" target="_blank"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Read More/Try It&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-2276446563101839619?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2276446563101839619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2276446563101839619'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2009/11/bourne-shell-programming-in-one-hour.html' title='Bourne Shell Programming in One Hour'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-518736073684206844</id><published>2008-12-27T06:18:00.000-08:00</published><updated>2008-12-27T06:39:08.464-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bourne Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash Scripting'/><title type='text'>Steve's Bourne / Bash shell scripting tutorial</title><content type='html'>&lt;div style="text-align: justify;"&gt;This page introduces you a Bourne Shell Programming/Scripting Tutorial for learning about using the Unix shell.  You can master Unix shell scripting in no time. This shell scripting tutorial helps you to understand basics of Bourne/Bash shell and powerful programming techniques. This Shell programming tutorial is intended to programmers having minimum knowledge in interactive unix shell and programming in C language or pascal. This tutorials explains shell scripting techniques along with exercises for better understanding.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Following are the shell scripting topics covered in this tutorial.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Introduction- Shell programming/Scripting&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PHILOSOPHY&lt;/li&gt;&lt;li&gt;A FIRST SCRIPT&lt;/li&gt;&lt;li&gt;VARIABLES - Part I - Scope of Variables&lt;/li&gt;&lt;li&gt;WILDCARDS&lt;/li&gt;&lt;li&gt;ESCAPE CHARACTERS&lt;/li&gt;&lt;li&gt;LOOPS -For Loops, While Loops&lt;/li&gt;&lt;li&gt;TEST&lt;/li&gt;&lt;li&gt;CASE&lt;/li&gt;&lt;li&gt;VARIABLES - Part II - Pre-set Variables&lt;/li&gt;&lt;li&gt;VARIABLES - Part III - Default Values&lt;/li&gt;&lt;li&gt;EXTERNAL PROGRAMS&lt;/li&gt;&lt;li&gt;FUNCTIONS - Scope of Variables, Recursion, Exit Codes&lt;/li&gt;&lt;li&gt;HINTS AND TIPS - Cheating with awk, Cheating with sed, Telnet Hint&lt;/li&gt;&lt;li&gt;QUICK REFERENCE&lt;/li&gt;&lt;li&gt;INTERACTIVE SHELL&lt;/li&gt;&lt;li&gt;EXERCISES - Addressbook, Directory Traversal&lt;/li&gt;&lt;/ol&gt;You can read or download this shell scripting ebook or tutorial from the following link.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://steve-parker.org/sh/sh.shtml" target="_blank"&gt;Read More/Download&lt;/a&gt;&lt;br /&gt;&lt;blockquote style="font-weight: bold;"&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;Related Bash Scripting, Bourne Shell, Kernel module programming, Korn Shell , System Calls and Subroutine , Korn shell, Shell Programming, Shell Scripting free Ebooks, Articles and Tutorials&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2008/01/download-free-shell-programming-ebooks.html"&gt;Read More/Download&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Buy Shell Scripting/Programming Books&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596005954?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596005954" target="_blank"&gt;Classic Shell Scripting&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596009658?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596009658" target="_blank"&gt;Learning the bash Shell: Unix Shell Programming (In a Nutshell (O'Reilly))&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0131478230?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0131478230" target="_blank"&gt;A Practical Guide to Linux(R) Commands, Editors, and Shell Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0470183012?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0470183012" target="_blank"&gt;Mastering Unix Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-518736073684206844?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/518736073684206844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/518736073684206844'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2008/12/steves-bourne-bash-shell-scripting.html' title='Steve&apos;s Bourne / Bash shell scripting tutorial'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-1190073592842729722</id><published>2008-01-31T11:53:00.000-08:00</published><updated>2008-12-19T03:27:53.461-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Bourne Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Korn Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='Z Shell'/><title type='text'>Download free Shell programming ebooks</title><content type='html'>&lt;div style="text-align: justify;"&gt;This posting provides you free ebooks on shell programming, shell scripts, bash shell, korn shell, shell commands, linux shell, awk shell, unix commands, ftp shell, advanced bash scripting, z shell, shell scripting basics, korn shell programming, bourne shell programming, C shell, z shell, etc. These shell programming free ebooks downloads can master you in the mentioned subjects.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;You can get free shell programming ebooks from the following links. Download and master in shell scripting and programming in unix and linux.&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/users-guide-to-z-shell-by-peter.html"&gt;A User's Guide to the Z-Shell By Peter Stephenson&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/advanced-bash-scripting-guide.html"&gt;Advanced Bash-Scripting Guide By Mendel Cooper&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/introduction-to-unix-shell-created-by.html"&gt;An Introduction to the Unix Shell - Mirrored by Steve Parker&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/introduction-to-z-shell-by-paul-falstad.html"&gt;An Introduction to the Z Shell By Paul Falstad&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/03/easy-shell-scripting.html"&gt;Easy Shell Scripting By Blessen Cherian&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/03/example-shell-scripts.html"&gt;Example Shell Scripts - Context-Switch.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/getting-most-from-your-shell-by-paul.html"&gt;Getting the Most From Your Shell By Paul Dunne&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/ksh-public-domain-korn-shell-by-eric.html"&gt;ksh - Public domain Korn shell by Eric Gisin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/ksh1-kornshell-standardrestricted.html"&gt;ksh(1) - KornShell, a standard/restricted command and programming language&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/03/learning-shell.html"&gt;Learning the Shell By William Shotts, Jr.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/linux-kernel-development-second-edition.html"&gt;Linux Kernel Development Second Edition By Robert Love&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/linux-programming.html"&gt;Linux Programming By Kurt Wall, Mark Watson, and Mark Whitis&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/linux-shell-scripting-tutorial.html"&gt;Linux Shell Scripting Tutorial by Vivek G Gite&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/03/oreilly-learning-korn-shell.html"&gt;O'reilly Learning the Korn Shell By Bill Rosenblatt&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/programming-unixlinux-shell-claude.html"&gt;Programming the UNIX/linux Shell by Claude Cantin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/03/sams-teach-yourself-shell-programming.html"&gt;Sams Teach Yourself Shell Programming in 24 Hours&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/shell-command-language-single-unix.html"&gt;Shell Command Language by The Open Group&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/shell-programming-assignment-3.html"&gt;Shell Programming Part-1 by B. Brown&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/shell-programming-assignment-3-part-2.html"&gt;Shell Programming Part-2 by B. Brown&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/shell-script-programming-by-matz.html"&gt;Shell Script Programming by Matz Kindahl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/shell-scripts-and-awk-by-tim-love.html"&gt;Shell Scripts and Awk By Tim Love&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/c-shell-tutorial-university-of-hawaii.html"&gt;The C Shell tutorial from University of Hawaii at Manoa&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/linux-kernel-module-programming-guide.html"&gt;The Linux Kernel Module Programming Guide By Peter Jay Salzman and Ori Pomerantz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/03/unix-shell-guide.html"&gt;THE Unix SHELL GUIDE By Norman J. Buchanan and Douglas M. Gingrich&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/unix-bourne-shell-programming.html"&gt;UNIX Bourne Shell Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/unix-programming-tools.html"&gt;Unix Programming Tools By Parlante, Zelenski, and many others&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/unix-shell-differences-and-how-to.html"&gt;UNIX shell differences and how to change your shell from faqs.org&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/unix-shell-scripting-with-shksh.html"&gt;UNIX shell scripting with sh/ksh&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2007/02/unix-system-calls-and-subroutines-using.html"&gt;UNIX System Calls and Subroutines using C By A. D. Marshall&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/writing-shell-scripts-by-william-shotts.html"&gt;Writing Shell Scripts by William Shotts, Jr.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://more-shell.blogspot.com/2006/12/zsh-documentation-written-by-paul.html"&gt;ZSH Documentation by Paul Falstad&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-1190073592842729722?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1190073592842729722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1190073592842729722'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2008/01/download-free-shell-programming-ebooks.html' title='Download free Shell programming ebooks'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-8946208326610931410</id><published>2007-03-23T05:58:00.000-07:00</published><updated>2007-07-01T12:12:42.738-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Korn Shell'/><title type='text'>O'reilly Learning the Korn Shell</title><content type='html'>&lt;div align="center"&gt;By Bill Rosenblatt&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The long, tortuous history of the UNIX operating system has resulted in systems with all kinds of permutations and combinations of features. This means that whenever you walk up to an unfamiliar UNIX system, you need to find out certain things about it in order to use it properly. And even on a given system, you may have a number of choices you can make about what features you want to use.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The most important such decision - if you get to make it - is what shell to use. "Shell" is UNIX jargon for the program that allows you to communicate with the computer by entering commands and getting responses. The shell is completely separate from the UNIX operating system per se; it's just a program that runs on UNIX. With other systems such as MS-DOS, the Macintosh, and VM/CMS, the command interpreter or user interface is an integral part of the operating system.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Nowadays there are dozens of different shells floating around, ranging from the original standard, the Bourne shell, to menu-based and graphical interfaces. The most important shells have been the Bourne shell, the C shell, and now the Korn shell - the subject of this book.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://rottenlogic.com/books/KornShell.pdf" target="_blank"&gt;Click to Download&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-8946208326610931410?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8946208326610931410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8946208326610931410'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/03/oreilly-learning-korn-shell.html' title='O&apos;reilly Learning the Korn Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5977592280733678518</id><published>2007-03-23T05:45:00.000-07:00</published><updated>2007-07-01T12:12:58.421-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>Easy Shell Scripting</title><content type='html'>&lt;div align="center"&gt;By Blessen Cherian&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Shell scripting can be defined as a group of commands executed in sequence. Let's start by describing the steps needed to write and execute a shell script: &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Step 1: Open the file using an editor (e.g., "vi" or "pico".) vi Firstshellscript.sh&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Step 2: All shell scripts should begin with "#!/bin/bash" or whatever other shell you prefer. This line is called the shebang, and although it looks like a comment, it's not: it notifies the shell of the interpreter to be used for the script. The provided path must be an absolute one (you can't just use "bash", for example), and the shebang must be located on the first line of the script without any preceding space. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Step 3: Write the code that you want to develop. Our first shell script will be the usual "Hello World" routine, which we'll place in a file called 'Firstshellscript.sh'.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;#!/bin/sh&lt;br /&gt;echo "Hello World"&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Step 4:The next step is to make the script executable by using the "chmod" command.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;chmod 744 Firstshellscript.sh&lt;br /&gt;or chmod +x Firstshellscript.sh&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Step 5: Execute the script. This can be done by entering the name of the script on the command line, preceded by its path. If it's in the current directory, this is very simple: &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;bash$ ./Firstshellscript.sh&lt;br /&gt;Hello World&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;If you want to see the execution step-by-step - which is very useful for troubleshooting - then execute it with the '-x' ('expand arguments') option:&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;sh -x Firstshellscript.sh&lt;br /&gt;+ echo 'Hello World'&lt;br /&gt;Hello World&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;em&gt;Shell scripting can be defined as a group of commands executed in sequence. &lt;/em&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;To see the contents of a script, you can use the 'cat' command or simply open the script in any text editor:&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;bash$ cat Firstshellscript.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;echo Hello World&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://linuxgazette.net/133/cherian.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5977592280733678518?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5977592280733678518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5977592280733678518'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/03/easy-shell-scripting.html' title='Easy Shell Scripting'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-1640661616494289775</id><published>2007-03-23T05:36:00.000-07:00</published><updated>2008-12-19T03:35:42.014-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>Example Shell Scripts</title><content type='html'>&lt;div align="center"&gt;Context-Switch&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;Solaris 10 Scripts&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;nfsclients&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;A shell script that will display whether or not a Solaris 10 NFS server has any active client NFS mounts. An active mount is assessed as being either mounted within the last 5 minutes or actively being used within the last 5 minutes. Whilst clients may have NFS mounts in place, if they have been inactive for a period of 5 minutes or more, the server drops the reference to that mount. This script should show the IP address and hostname of the client, if the client details are to be found in the server's host database files. The script does not try to resolve hostnames that are stored in a NIS or LDAP naming service database.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Solaris performance&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;diskstat&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;A shell script that uses the kstat utility to determine disk I/O for all disk partitions on a system. The script is intended to determine whether system-connected disks are mainly read or write intensive.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;em&gt;netbytes&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;A shell script that also uses the kstat utility, but this time to determine network throughput (in bytes) for each network port of the system. The script is intended to show whether the network ports are busy in addition to showing the throughput (input and output) in bytes rather than packets.&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;&lt;em&gt;&lt;/em&gt;&lt;/blockquote&gt;map_procs&lt;/em&gt; &lt;/div&gt;&lt;div align="justify"&gt;This script uses the mdb utility to determine the address space mapping for all running processes that were captured in a crash dump. The script also tests for memory leaks and displays kernel memory cache statistics.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.bookmarksync.com/details/181a1d1e191f19" target="_blank"&gt;Popularity Reference&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-1640661616494289775?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1640661616494289775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1640661616494289775'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/03/example-shell-scripts.html' title='Example Shell Scripts'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5294882488561608638</id><published>2007-03-23T05:31:00.000-07:00</published><updated>2007-07-01T12:13:22.788-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>Sams Teach Yourself Shell Programming in 24 Hours</title><content type='html'>&lt;div align="justify"&gt;In recent years, the UNIX operating system has seen a huge boost in its popularity, especially with the emergence of Linux. For programmers and users of UNIX, this comes as no surprise: UNIX was designed to provide an environment that's powerful yet easy to use.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;One of the main strengths of UNIX is that it comes with a large collection of standard programs. These programs perform a wide variety of tasks from listing your files to reading email. Unlike other operating systems, one of the key features of UNIX is that these programs can be combined to perform complicated tasks and solve your problems.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;One of the most powerful standard programs available in UNIX is the shell. The shell is a program that provides you with a consistent and easy-to-use environment for executing programs in UNIX. If you have ever used a UNIX system, you have interacted with the shell.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The main responsibility of the shell is to read the commands you type and then ask the UNIX kernel to perform these commands. In addition to this, the shell provides sophisticated programming constructs that enable you to make decisions, repeatedly execute commands, create functions, and store values in variables.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This book concentrates on the standard UNIX shell called the Bourne shell. When Dennis Ritche and Ken Thompson were developing much of UNIX in the early 1970s, they used a very simple shell. The first real shell, written by Stephen Bourne, appeared in the mid 1970s. The original Bourne shell has changed slightly over the years; some features were added and others were removed, but its syntax and its resulting power have remained the same.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The most attractive feature of the shell is that it enables you to create scripts. Scripts are files that contain a list of commands you want to run. Because every script is contained in a file and every file has a name, scripts enable you to combine existing programs to create completely new programs that solve your problems. This book teaches you how to create, execute, modify, and debug shell scripts quickly and easily. After you get used to writing scripts, you will find yourself solving more and more problems with them.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://freebooks.by.ru/view/ShellProgIn24h/index.htm" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5294882488561608638?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5294882488561608638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5294882488561608638'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/03/sams-teach-yourself-shell-programming.html' title='Sams Teach Yourself Shell Programming in 24 Hours'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-4096232613076866162</id><published>2007-03-23T05:23:00.000-07:00</published><updated>2007-03-23T05:26:35.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Learning the Shell</title><content type='html'>&lt;div align="center"&gt;By William Shotts, Jr. &lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;What is "the shell"?&lt;br /&gt;&lt;/strong&gt;Simply put, the shell is a program that takes your commands from the keyboard and gives them to the operating system to perform. In the old days, it was the only user interface available on a Unix computer. Nowadays, we have graphical user interfaces (GUIs) in addition to command line interfaces (CLIs) such as the shell.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;On most Linux systems a program called bash (which stands for Bourne Again SHell, an enhanced version of the original Bourne shell program, sh, written by Steve Bourne) acts as the shell program. There are several additional shell programs available on a typical Linux system. These include: ksh, tcsh and zsh.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;What's an xterm, gnome-terminal, konsole, etc.?&lt;/strong&gt;&lt;br /&gt;These are called "terminal emulators." They are programs that put a window up and let you interact with the shell. There are a bunch of different terminal emulators you can use. Most Linux distributions supply several, such as: xterm, rxvt, konsole, kvt, gnome-terminal, nxterm, and eterm.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://linuxcommand.org/learning_the_shell.php" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-4096232613076866162?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4096232613076866162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4096232613076866162'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/03/learning-shell.html' title='Learning the Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-7497326316750004690</id><published>2007-03-23T05:18:00.000-07:00</published><updated>2008-12-19T03:37:41.794-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>THE Unix SHELL GUIDE</title><content type='html'>&lt;div align="center"&gt;By Norman J. Buchanan and Douglas M. Gingrich&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;What is a shell?&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;A shell is a command interpreter. While this is certainly true it likely doesn't enlighten the reader any further. A shell is an entity that takes input from the user and deals with the computer rather than have the user deal directly with the computer. If the user had to deal directly with the computer he would not get much done as the computer only understands strings of 1's and 0's. While this is a bit of a misrepresentation of what the shell actually does (the idea of an operating system is neglected) it provides a rough idea that should cause the reader to be grateful that there is such a thing as a shell. A good way to view a shell is as follows. When a person drives a car, that person doesn't have to actually adjust every detail that goes along with making the engine run, or the electronic system controlling all of the engine timing and so on. All the user (or driver in this example) needs to know is that D means drive and that pressing accelerator pedal will make the car go faster or slower. The dashboard would also be considered part of the the shell since pertinent information relating to the user's involvement in operating the car is displayed there. In fact any part of the car that the user has control of during operation of the car would be considered part of the shell. I think the idea of what a shell is coming clear now. It is a program that allows the user to use the computer without him having to deal directly with it. It is in a sense a protective shell that prevents the user and computer from coming into contact with one another.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Basic Unix primer&lt;/strong&gt;&lt;br /&gt;While it assumed that the reader has a familiarity of Unix, a brief overview can only enhance previous knowledge. Unix comes in a variety of constantly changing flavors (SUNOS, HPUX, BSD and Solaris, just to name a few). Each of these Unix types will have small variations from all of the others. This may seem a bit discouraging at first, but in reality each version of Unix has more in common with all of the others than differences. The ls, for example, will give a listing of the current directory in any Unix environment. The changes or semantics local to any particular brand of Unix should be explained in the man pages that come with that particular system. The purpose of this book is not to explore the differences between differnt Unix flavors but rather to assume that they are all equivalent and look at how the different shells behave. Hence, the rest of the book assumes a kind of generic Unix operating system (except where explicitly stated otherwise). &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://snap.nlc.dcccd.edu/reference/shellguide/shells.html" target="_blank"&gt;Click to to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-7497326316750004690?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/7497326316750004690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/7497326316750004690'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/03/unix-shell-guide.html' title='THE Unix SHELL GUIDE'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-3661342555499057234</id><published>2007-02-15T13:09:00.000-08:00</published><updated>2008-12-19T03:42:44.077-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kernel module programming'/><title type='text'>Linux Kernel Development Second Edition</title><content type='html'>&lt;div align="center"&gt;By &lt;a class="v1" target="_new"&gt;Robert Love&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The Linux kernel is one of the most interesting yet least understood open-source projects. It is also a basis for developing new kernel code. That is why Sams is excited to bring you the latest Linux kernel development information from a Novell insider in the second edition of Linux Kernel Development. This authoritative, practical guide will help you better understand the Linux kernel through updated coverage of all the major subsystems, new features associated with Linux 2.6 kernel and insider information on not-yet-released developments. You'll be able to take an in-depth look at Linux kernel from both a theoretical and an applied perspective as you cover a wide range of topics, including algorithms, system call interface, paging strategies and kernel synchronization. Get the top information right from the source in Linux Kernel Development.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;Developing code in the kernel does not require genius, magic, or a bushy Unix-hacker beard. The kernel, although having some interesting rules of its own, is not much different from any other large software endeavor. There is much to learnas with any big projectbut there is not too much about the kernel that is more sacred or confusing than anything else.&lt;/p&gt;&lt;p align="justify"&gt;It is imperative that you utilize the source. The open availability of the source code for the Linux system is a rarity that we must not take for granted. It is not sufficient only to read the source, however. You need to dig in and change some code. Find a bug and fix it. Improve the drivers for your hardware. Find an itch and scratch it! Only when you write code will it all come together.&lt;/p&gt;&lt;p align="justify"&gt;This book is based on the 2.6 Linux kernel series. Specifically, it is up to date as of Linux kernel version 2.6.10. The kernel is a moving target and no book can hope to capture a dynamic beast in a timeless manner. Nonetheless, the basics and core internals of the kernel are mature and I work hard to present the material with an eye to the future and with as wide applicability as possible.&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.amazon.com/gp/product/0672327201?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0672327201" target="_blank"&gt;Linux Kernel Development (2nd Edition) (Novell Press)&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;a href="http://www.ebookee.com.cn/Linux-Kernel-Development-2nd-Edition_30026.html" target="_blank"&gt;Click to Download&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-3661342555499057234?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3661342555499057234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3661342555499057234'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/linux-kernel-development-second-edition.html' title='Linux Kernel Development Second Edition'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-4278413900116789496</id><published>2007-02-15T13:01:00.000-08:00</published><updated>2007-07-01T12:13:59.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>Linux Shell Scripting Tutorial</title><content type='html'>&lt;div align="center"&gt;by Vivek G Gite&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;This tutorial is designed for beginners only and This tutorial explains the basics of shell programming by showing some examples of shell programs. Its not help or manual for the shell. While reading this tutorial you can find manual quite useful ( type man bash at $ prompt to see manual pages). Manual contains all necessary information you need, but it won't have that much examples, which makes idea more clear. For that reason, this tutorial contains examples rather than all the features of shell. I assumes you have at least working knowledge of Linux i.e. basic commands like how to create, copy, remove files/directories etc or how to use editor like vi or mcedit and login to your system. Before Starting Linux Shell Script Programming you must know&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Kernel&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Shell&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Process&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Redirectors, Pipes, Filters etc.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;What's Kernel&lt;/strong&gt;&lt;br /&gt;Kernel is hart of Linux O/S. It manages resource of Linux O/S. Resources means facilities available in Linux. For eg. Facility to store data, print data on printer, memory, file management etc . Kernel decides who will use this resource, for how long and when. It runs your programs (or set up to execute binary files) It's Memory resident portion of Linux. It performance following task :-&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;I/O management&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Process management&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Device management&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;File management&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Memory management&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;What's Linux Shell&lt;br /&gt;&lt;/strong&gt;Computer understand the language of 0's and 1's called binary language, In early days of computing, instruction are provided using binary language, which is difficult for all of us, to read and write. So in O/s there is special program called Shell. Shell accepts your instruction or commands in English and translate it into computers native binary language.&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://mleahu.web.cern.ch/mleahu/doc/unix/shell/%28ebook%29%20Linux%20Shell%20Scripting%20Tutorial.pdf" target="_blank"&gt;Click to Download&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-4278413900116789496?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4278413900116789496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4278413900116789496'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/linux-shell-scripting-tutorial.html' title='Linux Shell Scripting Tutorial'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-3775218985990967008</id><published>2007-02-15T12:56:00.000-08:00</published><updated>2007-07-01T12:14:17.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bash Scripting'/><title type='text'>Advanced Bash-Scripting Guide</title><content type='html'>&lt;div align="center"&gt;By Mendel Cooper&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The shell is a command interpreter. More than just the insulating layer between the operating system kernel and the user, it's also a fairly powerful programming language. A shell program, called a script, is an easy-to-use tool for building applications by "gluing" together system calls, tools, utilities, and compiled binaries. Virtually the entire repertoire of UNIX commands, utilities, and tools is available for invocation by a shell script. If that were not enough, internal shell commands, such as testing and loop constructs, give additional power and flexibility to scripts. Shell scripts lend themselves exceptionally well to administrative system tasks and other routine repetitive jobs not requiring the bells and whistles of a full-blown tightly structured programming language.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A working knowledge of shell scripting is essential to anyone wishing to become reasonably proficient at system administration, even if they do not anticipate ever having to actually write a script. Consider that as a Linux machine boots up, it executes the shell scripts in /etc/rc.d to restore the system configuration and set up services. A detailed understanding of these startup scripts is important for analyzing the behavior of a system, and possibly modifying it.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Writing shell scripts is not hard to learn, since the scripts can be built in bite-sized sections and there is only a fairly small set of shell-specific operators and options to learn. The syntax is simple and straightforward, similar to that of invoking and chaining together utilities at the command line, and there are only a few "rules" to learn. Most short scripts work right the first time, and debugging even the longer ones is straightforward.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A shell script is a "quick and dirty" method of prototyping a complex application. Getting even a limited subset of the functionality to work in a shell script is often a useful first stage in project development. This way, the structure of the application can be tested and played with, and the major pitfalls found before proceeding to the final coding in C, C++, Java, or Perl.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Shell scripting hearkens back to the classic UNIX philosophy of breaking complex projects into simpler subtasks, of chaining together components and utilities. Many consider this a better, or at least more esthetically pleasing approach to problem solving than using one of the new generation of high powered all-in-one languages, such as Perl, which attempt to be all things to all people, but at the cost of forcing you to alter your thinking processes to fit the tool.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://tldp.org/LDP/abs/html/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-3775218985990967008?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3775218985990967008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3775218985990967008'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/advanced-bash-scripting-guide.html' title='Advanced Bash-Scripting Guide'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-2075162465036848689</id><published>2007-02-15T12:51:00.000-08:00</published><updated>2008-12-19T03:49:37.592-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Linux Programming</title><content type='html'>&lt;div align="center"&gt;By Kurt Wall, Mark Watson, and Mark Whitis&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Linux has always provided a rich programming environment, and it has only grown richer. Two new compilers, egcs and pgcs, joined the GNU project’s gcc, the original Linux compiler. In fact, as this book went to press, the Free Software Foundation, custodians of the GNU project, announced that gcc would be maintained by the creators and maintainers of egcs. A huge variety of editors stand alongside the spartan and much-maligned vi and emacs’ marvelous complexity. Driven largely by the Linux kernel, GNU’s C library has evolved so dramatically that a new version, glibc (also known as libc6) has emerged as the standard C library. Linux hackers have honed the GNU project’s always serviceable development suite into powerful tools. New widget sets have taken their place beside the old UNIX standbys. Lesstif is a free, source-compatible implementation of Motif 1.2; KDE, the K Desktop Environment based on the Qt class libraries from TrollTech, answers the desktop challenge posed by the X Consortium’s CDE (Common Desktop Environment).&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;What This Book Will Do for You&lt;/strong&gt;&lt;br /&gt;In this book, we propose to show you how to program in, on, and for Linux. We’ll focus almost exclusively on the C language because C is still Linux’s lingua franca. After introducing you to some essential development tools, we dive right in to system programming, followed by a section on interprocess communication and network programming.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;After a section devoted to programming Linux’s user interface with both text-based and graphical tools (the X Window system), a section on specialized topics, including shell programming, security considerations, and using the GNU project’s gdb debugger, rounds out the technical discussion. We close the book with three chapters on a topic normally disregarded in programming books: delivering your application to users. These final chapters show you how to use package management tools such as RPM, how to create useful documentation, and discuss licensing issues and options. If we’ve done our job correctly, you should be well prepared to participate in the great sociological and technological phenomenon called “Linux.”&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/0672320215?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0672320215" target="_blank"&gt;Linux Programming Unleashed (2nd Edition)&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://loveebook.net/computer-it/linux/linux-programming-unleashed/" target="_blank"&gt;Read More/Download&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-2075162465036848689?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2075162465036848689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2075162465036848689'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/linux-programming.html' title='Linux Programming'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5823798001211933292</id><published>2007-02-15T12:46:00.000-08:00</published><updated>2008-12-19T03:51:49.633-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bourne Shell'/><title type='text'>UNIX Bourne Shell Programming</title><content type='html'>&lt;div align="justify"&gt;This course is for individuals who have completed "UNIX forBeginning Users" (or equivalent experience) and want to write UNIX BourneShell script files.  A script file contains a sequence of UNIX commands which can be executed by entering one command.  Itis assumed that the student already has a good understanding of the UNIX operating system, be able to use a UNIX editor, and be familiar with a computer terminal or typewriter keyboard.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Upon successful completion of this course the student will be able to:     &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Write moderately complex BourneShell scripts.     &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt; Make a BourneShell script executable.     &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt; Demonstrate how to use the following BourneShell commands: shift, exit, expr, test, if then, if then else, if then elif, for, while, until, and case.     &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Use the following BourneShell constructs: tracing mechanisms (for debugging), user variables, BourneShell variables, read-only variables, positional parameters,  reading input to a BourneShell script, command substitution, comments, and exporting variables.  In  addition, test on numeric values, test on file type, and test on character strings are covered.    &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Create a ".profile" script to customize the user environment. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Use advanced features of File Transfer Protocol (FTP)    &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Compile source code into object and executable modules. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Optional: KornShell programming.  This is of primary  interest to programmers.    &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Convert VMS DCL command files to UNIX Shell.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;a href="http://www.governmentsecurity.org/articles/UNIXBourneShellProgramming.php" target="_blank"&gt;Click to Read More/Download&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5823798001211933292?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5823798001211933292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5823798001211933292'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/unix-bourne-shell-programming.html' title='UNIX Bourne Shell Programming'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5489969806270343051</id><published>2007-02-15T12:29:00.000-08:00</published><updated>2007-07-01T12:15:22.770-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Calls and Subroutine'/><title type='text'>UNIX System Calls and Subroutines using C</title><content type='html'>&lt;div align="center"&gt;By A. D. Marshall &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;In order to use Solaris and most other Unix Systems you will need to be familiar with the Common Desktop Environment (CDE). Before embarking on learning C with briefly introduce the main features of the CDE. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Most major Unix vendors now provide the CDE as standard. Consequently, most users of the X Window system will now be exposed to the CDE. Indeed, continuing trends in the development of Motif and CDE will probably lead to a convergence of these technologies in the near future. This section highlights the key features of the CDE from a Users perspective. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Upon login, the user is presented with the CDE Desktop. The desktop includes a front panel, multiple virtual workspaces, and window management. CDE supports the running of applications from a file manager, from an application manager and from the front panel. Each of the subcomponents of the desktop are described below. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cs.cf.ac.uk/Dave/C/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5489969806270343051?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5489969806270343051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5489969806270343051'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/unix-system-calls-and-subroutines-using.html' title='UNIX System Calls and Subroutines using C'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-8884187987852775044</id><published>2007-02-15T12:19:00.000-08:00</published><updated>2007-07-01T12:15:37.956-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Unix Programming Tools</title><content type='html'>&lt;div align="center"&gt;By Parlante, Zelenski, and many others&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This document explains the overall edit-compile-link-debug programming cycle and introduces several common Unix programming tools— gcc, make, gdb, emacs, and the Unix shell. The goal is to describe the major features and typcial uses of the tools and show how they fit together with enough detail for simple projects.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This is document #107, Unix Programming Tools, in the CS Education Library at Stanford. This and other free educational materials are available at http://cslibrary.stanford.edu/. This document is free to be used, reproduced, or redistributed so long as this notice is clearly reproduced at its beginning.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;strong&gt;Contents&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Introduction — the compile-link process &lt;/li&gt;&lt;li&gt;The gcc compiler/linker &lt;/li&gt;&lt;li&gt;The make project utility &lt;/li&gt;&lt;li&gt;The gdb debugger &lt;/li&gt;&lt;li&gt;The emacs editor &lt;/li&gt;&lt;li&gt;Summary of Unix shell commands&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.comms.scitech.susx.ac.uk/fft/programming/unix-programming-tools.pdf" target="_blank"&gt;Click to Download&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-8884187987852775044?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8884187987852775044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8884187987852775044'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/unix-programming-tools.html' title='Unix Programming Tools'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-3481721021974770481</id><published>2007-02-15T12:12:00.000-08:00</published><updated>2007-02-15T12:15:45.306-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kernel module programming'/><title type='text'>The Linux Kernel Module Programming Guide</title><content type='html'>&lt;div align="center"&gt;By Peter Jay Salzman and Ori Pomerantz&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Ori's original document was good about supporting earlier versions of Linux, going all the way back to the 2.0 days. I had originally intended to keep with the program, but after thinking about it, opted out. My main reason to keep with the compatibility was for Linux distributions like LEAF, which tended to use older kernels. However, even LEAF uses 2.2 and 2.4 kernels these days.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Both Ori and I use the x86 platform. For the most part, the source code and discussions should apply to other architectures, but I can't promise anything. One exception is Chapter 12, Interrupt Handlers, which should not work on any architecture except for x86.&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;What Is A Kernel Module?&lt;br /&gt;&lt;/strong&gt;So, you want to write a kernel module. You know C, you've written a few normal programs to run as processes, and now you want to get to where the real action is, to where a single wild pointer can wipe out your file system and a core dump means a reboot.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;What exactly is a kernel module? Modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. For example, one type of module is the device driver, which allows the kernel to access hardware connected to the system. Without modules, we would have to build monolithic kernels and add new functionality directly into the kernel image. Besides having larger kernels, this has the disadvantage of requiring us to rebuild and reboot the kernel every time we want new functionality.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://jamesthornton.com/linux/lkmpg/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-3481721021974770481?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3481721021974770481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3481721021974770481'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2007/02/linux-kernel-module-programming-guide.html' title='The Linux Kernel Module Programming Guide'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-8730237893196334846</id><published>2006-12-13T07:39:00.000-08:00</published><updated>2008-12-19T03:54:13.706-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Programming the UNIX/linux Shell</title><content type='html'>&lt;div align="center"&gt;Claude Cantin (claude.cantin@nrc.ca)&lt;br /&gt;http://www.nrc.ca/imsb/rcsg&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This document was produced by Claude Cantin of the National Research Council of Canada. Reproductions are permitted for non-profit purposes provided the origin of the document is acknowledged.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;strong&gt;Programming the Shell &lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;This chapter will concentrate on programming the shells. All examples shown will use the Bourne shell. Most shell scripts are written in the Bourne shell because it is the only shell found on *ALL* UNIX systems. Scripts written in the Korn shell are gaining popularity. &lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;C shell scripts are possible, but not recommended. Although the C shell is great for interactive work, it has many drawbacks in script programming. &lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bourne - C shell comparisons&lt;/span&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A Bourne Shell Script is a file containing a series of Bourne Shell commands, as well as control structures such as if statements, while loops, etc. Parameters can be passed to the script and data can be read from the keyboard. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Bourne shell scripts are usually Algol-66 look-alikes, whereas C shell scripts look more like C program constructs. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The C shell is slower to start execution (as it looks in the .cshrc file EVERY TIME it is called) and produces a hash table of all paths for faster execution. The Bourne shell is slower, but starts executing immediately. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;For that reason, short scripts are executed much faster in the Bourne Shell than the C shell (this is noticeable for small SLOW machines; with systems running at 30 to 130 MIPS/CPU, the difference in speed is almost insignificant). Large scripts should most likely be written in a compiled language--preferably C--because compiled code executes much faster than interpreted code. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Many features of the Bourne shell are also found in the C shell. Parameters are interpreted in the same way. Variable assignments are very similar. UNIX commands are exactly the same. Control structures and comparisons differ the most. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/bourne/bourne.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-8730237893196334846?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8730237893196334846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8730237893196334846'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/programming-unixlinux-shell-claude.html' title='Programming the UNIX/linux Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-3332138526700859301</id><published>2006-12-13T07:24:00.000-08:00</published><updated>2008-12-19T03:54:49.225-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>Writing Shell Scripts</title><content type='html'>&lt;div align="center"&gt;by William Shotts, Jr. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Here is where the fun begins&lt;/strong&gt;&lt;br /&gt;With the thousands of commands available for the command line user, how can you remember them all? The answer is, you don't. The real power of the computer is its ability to do the work for you. To get it to do that, we use the power of the shell to automate things. We write scripts.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Scripts are collections of commands that are stored in a file. The shell can read this file and act on the commands as if they were typed at the keyboard. In addition to the things you have learned so far, the shell also provides a variety of useful programming features to make your scripts truly powerful.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;What are scripts good for? A wide range of tasks can be automated. Here are some of the things I automate with scripts:&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;A script gathers up all the files (over 2200) in this site on my computer and transmits them to my web server.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The SuperMan pages are built entirely by a script.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Every Friday night, all my computers copy their files to a "backup server" on my network. This is performed by a script.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;A script automatically gets the current updates from my Linux vendor and maintains a repository of vital updates. It sends me an email message with a report of tasks that need to be done. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;As you can see, scripts unlock the power of your Linux machine. So let's have some fun!&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.linuxcommand.org/writing_shell_scripts.php" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-3332138526700859301?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3332138526700859301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3332138526700859301'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/writing-shell-scripts-by-william-shotts.html' title='Writing Shell Scripts'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-1160183981243872190</id><published>2006-12-13T07:20:00.000-08:00</published><updated>2008-12-19T03:55:29.107-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>Shell Scripts and Awk</title><content type='html'>&lt;div align="center"&gt;By Tim Love&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Shell Programming&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;div align="justify"&gt;The `shell' is a process that lets you edit your command line input then runs the command. The shell isn't only a command line interpreter and line editor though, it's also a language with variables, arrays, functions and control structures. Command lines can be put into a file and executed. These so-called shell scripts can quickly be written and tested and should be tried in association with other standard unix utilities before embarking on a higher level language, at least for prototyping purposes. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Various shells are in use. sh, the Bourne Shell, is the oldest. The C-shell (csh) has many useful features lacking from sh but isn't that good for programming in. The Korn Shell (ksh) and the (very similar) POSIX shell are developments of sh that incorporates many csh features. bash is similar and is freely available (it's the default on linux and MacOS 10.3). This document is aimed at Korn Shell and POSIX shell users on CUED's Teaching System, though non-csh users elsewhere shouldn't have any problems. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Writing a shell script is easy - start up your editor with a file called try then type a few harmless commands into this file, one per line. For example&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;hostname&lt;br /&gt;date&lt;br /&gt;ls&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;then save it as text. You want to make this file executable, so in the terminal window type `chmod u+x try', adding eXecute permission for the Xser. Run this script by typing its name. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Even scripts as simple as this can save on repetitive typing, but much more can be easily achieved. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www-h.eng.cam.ac.uk/help/tpl/unix/scripts/scripts.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-1160183981243872190?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1160183981243872190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1160183981243872190'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/shell-scripts-and-awk-by-tim-love.html' title='Shell Scripts and Awk'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-8146838494510539074</id><published>2006-12-13T07:15:00.000-08:00</published><updated>2008-12-19T03:56:29.033-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Shell Script Programming</title><content type='html'>&lt;div align="center"&gt;by Matz Kindahl &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;div align="justify"&gt;In the early days computers where used to run programs, and nothing more. You punched your program on cards, delivered the pack to the computer department. The staff there loaded the program into the computer, executed it and retrieved the result on paper. This was in turn returned to you and you had to sit down and figure out why you got the result you got. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Modern computers are a little more complex than that. You there have a complete environment where you can execute your programs and even have such astonishing things as interactive programs (hear-hear). It is no longer enough to be able to load your program and just print the result. You also need support to reformat the results, process them in other manners (maybe printing a nice diagram) and store them in a database. It would of course be possible to write specially designed programs that formatted the output of your programs according to your wishes, but the number of specialized programs would quickly increase, leaving your computer loaded with "might come in handy" programs. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;A better approach would be to have a small set of processing programs together with a program made to "glue the parts together." On a UNIX system such a program is called the shell (in contrast with the core that contains time-sharing code, file access code and other system oriented code). The shell is used to issue commands, start processes, control jobs, redirect input and output, and other mundane things that you do on a modern computer. Not only that, the shell is a pretty complete programming language. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;In this paper we will introduce concepts and methods that a good shell-programmer can use to get the most out of his/her UNIX system. We will start from the beginning, but a basic familiarity with programming and/or the basic principles of computers will be assumed. This is not an paper for the complete novice, although you are welcome to read the paper. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://user.it.uu.se/%7Ematkin/documents/shell/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-8146838494510539074?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8146838494510539074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8146838494510539074'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/shell-script-programming-by-matz.html' title='Shell Script Programming'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-8789015830030574157</id><published>2006-12-13T07:10:00.000-08:00</published><updated>2008-12-19T04:02:33.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Shell Programming Part 2</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Invoking The Shell The shell is a command and can be invoked just like a command (Don’t type the following command, it's only an example!).&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;sh proc [arg . . .] a shell is created to process proc&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;sh -v proc [arg . . .] same as previous but input lines are printed&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;proc [arg . . .] if proc is an executable script file, it is the same as typing sh proc [arg . . .]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.credochs.org/courses/IT/unix/unix14.htm#start"&gt;&lt;/a&gt;&lt;strong&gt;Shell Script Files&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;These are text files that contain shell commands. The file must be flagged as executable using the chmod utility.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Type the following command&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;$ cat - &gt; script&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Enter the following lines as they appear below, finishing with the ctrl-d (that is the control key and the d key pressed at the same time) which will bring the shell prompt back.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;echo The date is&lt;/div&gt;&lt;div align="justify"&gt;date&lt;/div&gt;&lt;div align="justify"&gt;ctrl-d&lt;/div&gt;&lt;div align="justify"&gt;$&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Flag the file as executable.&lt;br /&gt;$ chmod +x script&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Execute the file by typing&lt;br /&gt;$ sh script&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="text-decoration: underline;"&gt;Introduction to Shell Scripting - Part 2 By Ben Okopnik&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://tldp.org/LDP/LGNET/112/okopnik.html" target="_blank"&gt;Read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-8789015830030574157?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8789015830030574157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/8789015830030574157'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/shell-programming-assignment-3-part-2.html' title='Shell Programming Part 2'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-2649912676770879007</id><published>2006-12-13T06:45:00.000-08:00</published><updated>2008-12-19T04:07:07.831-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Programming'/><title type='text'>Shell Programming</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div style="text-align: center;"&gt;by Katja and Guido Socher&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;In this article we explain how to write little shell scripts and     give many examples.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Why shell programming?&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Even though there are various graphical interfaces available for Linux the shell still is a very neat tool. The shell is not just a collection of commands but a really good programming language.You can automate a lot of tasks with it, the shell is very good for system administration tasks, you can very quickly try out if your ideas work which makes it very useful for simple prototyping and it is very useful for small utilities that perform some relatively simple tasks where efficiency is less important than ease of configuration, maintenance and portability.&lt;br /&gt;&lt;/div&gt;So let's see now how it works:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Creating a script&lt;/span&gt;&lt;br /&gt;There are a lot of different shells available for Linux but usually the bash (bourne again shell) is used for shell programming as it is available for free and is easy to use. So all the scripts we will write in this article use the bash (but will most of the time also run with its older sister, the bourne shell).&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;For writing our shell programs we use any kind of text editor, e.g. nedit, kedit, emacs, vi...as with other programming languages...&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;a href="http://www.linuxfocus.org/English/September2001/article216.shtml" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-2649912676770879007?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2649912676770879007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2649912676770879007'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/shell-programming-assignment-3.html' title='Shell Programming'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5037360378429875463</id><published>2006-12-13T06:38:00.000-08:00</published><updated>2007-07-01T12:17:42.332-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Command Language'/><title type='text'>Shell Command Language</title><content type='html'>&lt;div align="center"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The Single UNIX ® Specification, Version 2&lt;/div&gt;&lt;div align="center"&gt;Copyright © 1997 The Open Group &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell is a command language interpreter. This chapter describes the syntax of that command language as it is used by the sh utility and the system() and popen() functions in the XSH specification. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell operates according to the following general overview of operations. The specific details are included in the cited sections of this chapter. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell reads its input from a file (see sh), from the -c option or from the system() and popen() functions in the XSH specification. If the first line of a file of shell commands starts with the characters #!, the results are unspecified. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The construct #! is reserved for implementations wishing to provide that extension. A portable application cannot use #! as the first line of a shell script; it might not be interpreted as a comment. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell breaks the input into tokens: words and operators. (See Token Recognition .) &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell parses the input into simple commands (see Simple Commands ) and compound commands (see Compound Commands ). &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell performs various expansions (separately) on different parts of each command, resulting in a list of pathnames and fields to be treated as a command and arguments (see Word Expansions ). &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell performs redirection (see Redirection ) and removes redirection operators and their operands from the parameter list. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell executes a function (see Function Definition Command ), built-in (see Special Built-in Utilities ), executable file or script, giving the names of the arguments as positional parameters numbered 1 to n, and the name of the command (or in the case of a function within a script, the name of the script) as the positional parameter numbered 0 (see Command Search and Execution ). &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The shell optionally waits for the command to complete and collects the exit status (see Exit Status for Commands ). &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.opengroup.org/onlinepubs/007908799/xcu/shellix.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5037360378429875463?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5037360378429875463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5037360378429875463'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/shell-command-language-single-unix.html' title='Shell Command Language'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5822590264750882993</id><published>2006-12-13T06:33:00.000-08:00</published><updated>2006-12-30T07:48:17.004-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Getting the Most From Your Shell</title><content type='html'>&lt;div align="center"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;By Paul Dunne&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Everyone uses it, but do they know how to use it to best advantage? I'm talking about the Unix shell. No matter whether you log in to a super-duper latest-thing X desktop or with a Wyse 30 over a slow modem connection, you will most likely at some point be using the shell. This article looks at how you can get the most from it. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Introduction &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;All Those Dot Files &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Environment Variables &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Aliases &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Functions &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Options &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Start-up Commands &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The Command Lne &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Resources &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Conclusion&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Questions regarding this article should be directed to the author at &lt;a href="mailto:paul.dunne@mailroom.com"&gt;paul.dunne@mailroom.com&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;While the rest of the world points and clicks in a scary little world of icons, all alike, we in the world of Unix get to use our good old CLI, or command line interface. One big reason why the CLI has remained so prevaisive in Unix environments is that it is actually damn good. Modern Unix shells are stable and powerful. This article looks at some methods to increase the power and usableness of your shell. &lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;So, I will be looking at how to get more out of your shell. I personally use a version of the Korn shell, pdksh, but most of what I say will be applicable to bash; where it isn't, I'll tell you so. As Zsh is mostly compatible with ksh, most of the article is useful for that as well. I will not bother with the C shell, on the grounds that I neither use it nor like it, and that it is so different as to be really the subjet of a seperate article. This article is not a shell tutorial for novices; it will presume that you know how to run commands, what wildcards are, and such stuff. What I will be doing is taking a look at some things that a lot of regular shell users don't realise can be done. &lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.networkcomputing.com/unixworld/tutorial/018/018shell.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5822590264750882993?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5822590264750882993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5822590264750882993'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/getting-most-from-your-shell-by-paul.html' title='Getting the Most From Your Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-4796882077541866733</id><published>2006-12-13T06:28:00.000-08:00</published><updated>2006-12-30T07:48:32.866-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>An Introduction to the Unix Shell</title><content type='html'>&lt;div align="center"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Created by 'era' at iki.fi. &lt;/div&gt;&lt;div align="center"&gt;Mirrored by Steve Parker&lt;/div&gt;&lt;div align="center"&gt;steve-parker.org&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The shell is a command programming language that provides an interface to the UNIX operating system. Its features include control-flow primitives, parameter passing, variables and string substitution. Constructs such as while, if then else, case and for are available. Two-way communication is possible between the shell and commands. String-valued parameters, typically file names or flags, may be passed to a command. A return code is set by commands that may be used to determine control-flow, and the standard output from a command may be used as shell input. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The shell can modify the environment in which commands run. Input and output can be redirected to files, and processes that communicate through `pipes' can be invoked. Commands are found by searching directories in the file system in a sequence that can be defined by the user. Commands can be read either from the terminal or from a file, which allows command procedures to be stored for later use. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://steve-parker.org/sh/bourne.shtml" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-4796882077541866733?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4796882077541866733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4796882077541866733'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/introduction-to-unix-shell-created-by.html' title='An Introduction to the Unix Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-7580256276265162784</id><published>2006-12-13T06:20:00.000-08:00</published><updated>2006-12-30T07:48:50.175-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>UNIX shell differences and how to change your shell</title><content type='html'>&lt;div align="center"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;FAQ&lt;/div&gt;&lt;div align="center"&gt;faqs.org&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;Why change your shell&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;The UNIX shell is most people's main access to the UNIX operating system and as such any improvement to it can result in considerably more effective use of the system, and may even allow you to do things you couldn't do before. The primary improvement most of the new generation shells give you is increased speed. They require fewer key strokes to get the same results due to their completion features, they give you more information (e.g. showing your directory in your prompt, showing which files it would complete) and they cover some of the more annoying features of UNIX, such as not going back up symbolic links to directories.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;A brief history of UNIX shells&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;Note, this history is just known to be slightly out of historical order, it is in the process of being corrected, but for the moment should be taken with a pinch of salt In the near beginning there was the Bourne shell /bin/sh (written by S. R. Bourne). It had (and still does) a very strong powerful syntactical language built into it, with all the features that are commonly considered to produce structured programs; it has particularly strong provisions for controlling input and output and in its expression matching facilities. But no matter how strong its input language is, it had one major drawback; it made nearly no concessions to the interactive user (the only real concession being the use of shell functions and these were only added later) and so there was a gap for something better.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.faqs.org/faqs/unix-faq/shell/shell-differences/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-7580256276265162784?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/7580256276265162784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/7580256276265162784'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/unix-shell-differences-and-how-to.html' title='UNIX shell differences and how to change your shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-3574272912589296118</id><published>2006-12-13T06:15:00.000-08:00</published><updated>2007-07-01T12:18:01.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Korn Shell'/><title type='text'>ksh - Public domain Korn shell</title><content type='html'>&lt;div align="center"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;by Eric Gisin&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;ksh is a command interpreter that is intended for both interactive and shell script use. Its command language is a superset of the sh(1) shell language. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Shell Startup&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;The following options can be specified only on the command line:&lt;br /&gt;-c command-string&lt;br /&gt;the shell executes the command(s) contained in command-string&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;-i&lt;br /&gt;interactive mode - see below&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;-l&lt;br /&gt;login shell - see below interactive mode - see below&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;-s&lt;br /&gt;the shell reads commands from standard input; all non-option arguments are positional parameters&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;-r&lt;br /&gt;restricted mode - see below&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;In addition to the above, the options described in the set built-in command can also be used on the command line. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;If neither the -c nor the -s options are specified, the first non-option argument specifies the name of a file the shell reads commands from; if there are no non-option arguments, the shell reads commands from standard input. The name of the shell (i.e., the contents of the $0) parameter is determined as follows: if the -c option is used and there is a non-option argument, it is used as the name; if commands are being read from a file, the file is used as the name; otherwise the name the shell was called with (i.e., argv[0]) is used. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A shell is interactive if the -i option is used or if both standard input and standard error are attached to a tty. An interactive shell has job control enabled (if available), ignores the INT, QUIT and TERM signals, and prints prompts before reading input (see PS1 and PS2 parameters). For non-interactive shells, the trackall option is on by default (see set command below). &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cs.mun.ca/%7Emichael/pdksh/pdksh-man.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-3574272912589296118?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3574272912589296118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/3574272912589296118'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/ksh-public-domain-korn-shell-by-eric.html' title='ksh - Public domain Korn shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-6134233650457390959</id><published>2006-12-13T06:04:00.000-08:00</published><updated>2006-12-30T07:49:26.656-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>ZSH Documentation</title><content type='html'>&lt;div align="center"&gt;Written by Paul Falstad &lt;/div&gt;&lt;div align="center"&gt;Co-ordinating by Peter Stephenson&lt;/div&gt;&lt;div align="center"&gt;zsh.sunsite.dk&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements. Zsh has command line editing, builtin spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Invocation Options &lt;a name="IDX9"&gt;&lt;/a&gt;&lt;a name="IDX10"&gt;&lt;/a&gt;&lt;a name="IDX11"&gt;&lt;/a&gt;&lt;a name="IDX12"&gt;&lt;/a&gt;The following flags are interpreted by the shell when invoked to determine where the shell will read commands from:&lt;br /&gt;-c&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Take the first argument as a command to execute, rather than reading commands from a script or standard input. If any further arguments are given, the first one is assigned to $0, rather than being used as a positional parameter.&lt;br /&gt;-i&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Force shell to be interactive.&lt;br /&gt;-s&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Force shell to read commands from the standard input. If the -s flag is not present and an argument is given, the first argument is taken to be the pathname of a script to execute. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;After the first one or two arguments have been appropriated as described above, the remaining arguments are assigned to the positional parameters. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;For further options, which are common to invocation and the set builtin.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Options may be specified by name using the -o option. -o acts like a single-letter option, but takes a following string as the option name. For example,&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;zsh -x -o shwordsplit scr&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;runs the script scr, setting the XTRACE option by the corresponding letter `-x' and the SH_WORD_SPLIT option by name. Options may be turned off by name by using +o instead of -o. -o can be stacked up with preceding single-letter options, so for example `-xo shwordsplit' or `-xoshwordsplit' is equivalent to `-x -o shwordsplit'. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://zsh.sunsite.dk/Doc/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-6134233650457390959?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/6134233650457390959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/6134233650457390959'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/zsh-documentation-written-by-paul.html' title='ZSH Documentation'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5159054547310404258</id><published>2006-12-13T06:01:00.000-08:00</published><updated>2007-07-01T12:18:18.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Z Shell'/><title type='text'>An Introduction to the Z Shell</title><content type='html'>&lt;div align="center"&gt;By Paul Falstad &lt;/div&gt;&lt;div align="center"&gt;pfalstad@phoenix.princeton.edu&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;Department of Computer Science &lt;/div&gt;&lt;div align="center"&gt;Princeton University Princeton, NJ 08544 &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;zsh is a shell designed for interactive use, although it is also a powerful scripting language. Many of the useful features of bash, ksh, and tcsh were incorporated into zsh; many original features were added. This document details some of the unique features of zsh. It assumes basic knowledge of the standard UNIX shells; the intent is to show a reader already familiar with one of the other major shells what makes zsh more useful or more powerful. This document is not at all comprehensive; read the manual entry for a description of the shell that is complete and concise, although somewhat overwhelming and devoid of examples. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://zsh.sunsite.dk/Intro/intro_toc.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5159054547310404258?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5159054547310404258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5159054547310404258'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/introduction-to-z-shell-by-paul-falstad.html' title='An Introduction to the Z Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-1416184022282698454</id><published>2006-12-13T05:57:00.000-08:00</published><updated>2007-07-01T12:18:31.648-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Z Shell'/><title type='text'>A User's Guide to the Z-Shell</title><content type='html'>&lt;div align="center"&gt;By Peter Stephenson&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The Z-Shell, `zsh' for short, is a command interpreter for UNIX systems, or in UNIX jargon, a `shell', because it wraps around the commands you use. More than that, however, zsh is a particularly powerful shell --- and it's free, and under regular maintenance --- with lots of interactive features allowing you to do the maximum work with the minimum fuss. Of course, for that you need to know what the shell can do and how, and that's what this guide is for. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The most basic basics: I shall assume you have access to a UNIX system, otherwise the rest of this is not going to be much use. You can also use zsh under Windows by installing Cygwin, which provides a UNIX-like environment for programmes --- given the weakness of the standard Windows command interpreter, this is a good thing to do. There are ports of older versions of zsh to Windows which run natively, i.e. without a UNIX environment, although these have a slightly different behaviour in some respects and I won't talk about them further. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;I'll also assume some basic knowledge of UNIX; you should know how the filesystem works, i.e. what /home/users/pws/.zshrc and ../file mean, and some basic commands, for example ls, and you should have experience with using rm to delete completely the wrong file by accident, and that sort of thing. In something like `rm file', I will often refer to the `command' (rm, of course) and the `argument(s)' (anything else coming after the command which is used by it), and to the complete thing you typed in one go as the `command line'. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;You're also going to need zsh itself; if you're reading this, you may well already have it, but if you don't, you or your system administrator should read Appendix A. For now, we'll suppose you're sitting in front of a terminal with zsh already running. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Now to the shell. After you log in, you probably see some prompt (a series of symbols on the screen indicating that you can input a command), such as `$' or `%', possibly with some other text in front --- later, we'll see how you can change that text in interesting ways. That prompt comes from the shell. Type `print hello', then backspace over `hello' and type `goodbye'. Now hit the `Return' key (or `Enter' key, I'll just say &lt;ret&gt;from now on, likewise &lt;tab&gt;for the tab key, &lt;spc&gt;for the space key); unless you have a serious practical-joker problem on your system, you will see `goodbye', and the shell will come back with another prompt. All of the time up to when you hit &lt;ret&gt;, you were interacting with the shell and its editor, called `Z-Shell Line Editor' or `zle' for short; only then did the shell go away and tell the print command to print out a message. So you can see that the shell is important. &lt;/ret&gt;&lt;/spc&gt;&lt;/tab&gt;&lt;/ret&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://zsh.sunsite.dk/Guide/zshguide.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-1416184022282698454?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1416184022282698454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/1416184022282698454'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/users-guide-to-z-shell-by-peter.html' title='A User&apos;s Guide to the Z-Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-2207725556794156210</id><published>2006-12-13T05:42:00.000-08:00</published><updated>2008-12-19T04:10:20.187-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><title type='text'>UNIX shell scripting with sh/ksh</title><content type='html'>&lt;div align="center"&gt;© Dartmouth College&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;a name="L3-The goals of this class are to enable you to:"&gt;&lt;/a&gt;&lt;a name="L3-The goals of this class are to enable you to:"&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;a name="L3-The goals of this class are to enable you to:"&gt;The goals of this class are to enable you to:&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Learn what kinds of problems are suited to shell scripts &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Review the most commonly used Unix commands that are useful in shell scripts. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Write simple shell scripts using the Bourne, Korn or Bash shells These notes are intended for use in a 2-part class, total duration 3 hours. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;What is a Shell Script&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;A text file containing commands which could have been typed directly into the shell. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The shell itself has limited capabilities -- the power comes from using it as a "glue" language to combine the standard Unix utilities, and custom software, to produce a tool more useful than the component parts alone. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Any shell can be used for writing a shell script. To allow for this, the first line of every script is:#!/path/to/shell (e.g. #!/bin/ksh). &lt;a name="2"&gt;&lt;/a&gt;&lt;a href="http://www.dartmouth.edu/%7Erc/classes/ksh/what.detail.html#2"&gt;&lt;/a&gt;#! The #! characters tell the system to locate the following pathname, start it up and feed it the rest of the file as input. Any program which can read commands from a file can be started up this way, as long as it recognizes the # comment convention. The program is started, and then the script file is given to it as an argument. Because of this, the script must be readable as well as executable. Examples are perl, awk, tcl and python. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Any file can be used as input to a shell by using the syntax:ksh myscript &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;If the file is made executable using &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=chmod&amp;amp;apropos=0&amp;amp;sektion=1&amp;amp;manpath=Red+Hat+Linux%2Fi386+9&amp;amp;format=html" target="manpage"&gt;chmod&lt;/a&gt;, it becomes a new command and available for use (subject to the usual $PATH search).chmod +x myscript A shell script can be as simple as a sequence of commands that you type regularly. By putting them into a script, you reduce them to a single command. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;a href="http://www.dartmouth.edu/%7Erc/classes/ksh/" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-2207725556794156210?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2207725556794156210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/2207725556794156210'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/unix-shell-scripting-with-shksh.html' title='UNIX shell scripting with sh/ksh'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-4443217284023710999</id><published>2006-12-13T05:35:00.000-08:00</published><updated>2007-07-01T12:18:57.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Korn Shell'/><title type='text'>ksh(1) - KornShell, a standard/restricted command and programming language</title><content type='html'>&lt;div align="center"&gt;docs.sun.com&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The /usr/xpg4/bin/sh utility is a standards compliant shell. This utility provides all the functionality of /usr/bin/ksh, except in cases discussed below where differences in behavior exist. See Arithmetic Expansions section for details.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;/usr/bin/ksh is a command and programming language that executes commands read from a terminal or a file. rksh is a restricted version of the command interpreter ksh; it is used to set up login names and execution environments whose capabilities are more controlled than those of the standard shell. See Invocation below for the meaning of arguments to the shell.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Definitions&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;A metacharacter is one of the following characters:&lt;a name=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;; &amp;amp; ( ) &lt; &gt; NEWLINE SPACE TAB &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A blank is a TAB or a SPACE. An identifier is a sequence of letters, digits, or underscores starting with a letter or underscore. Identifiers are used as names for functions and variables. A word is a sequence of characters separated by one or more non-quoted metacharacters.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A command is a sequence of characters in the syntax of the shell language. The shell reads each command and carries out the desired action either directly or by invoking separate utilities. A special-command is a command that is carried out by the shell without creating a separate process. Except for documented side effects, most special commands can be implemented as separate utilities.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://docs.sun.com/app/docs/doc/816-5211/6mbcci3en?a=view" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-4443217284023710999?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4443217284023710999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/4443217284023710999'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/ksh1-kornshell-standardrestricted.html' title='ksh(1) - KornShell, a standard/restricted command and programming language'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3352892106661147466.post-5090189630931360935</id><published>2006-12-13T05:17:00.000-08:00</published><updated>2008-12-19T04:11:11.880-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>The C Shell tutorial</title><content type='html'>&lt;div align="center"&gt;University of Hawaii at Manoa&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;What is a shell?&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;A shell is a program which provides a user interface. With a shell, users can type in commands and run programs on a Unix system. Basically, the main function a shell performs is to read in from the terminal what one types, run the commands, and show the output of the commands. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;What's so good about C Shell?&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;The C shell was written by Bill Joy at the University of California at Berkeley. His main intent for writing the C shell was to create a shell with C language-like syntax. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;What can one do with C Shell?&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;The main use of the C shell is as an interactive shell, but one can write programs using the C shell. These programs are called shell scripts.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;a href="http://www.eng.hawaii.edu/Tutor/csh.html" target="_blank"&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;a href="http://www.eng.hawaii.edu/Tutor/csh.html" target="_blank"&gt;Click to Read More&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3352892106661147466-5090189630931360935?l=more-shell.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5090189630931360935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3352892106661147466/posts/default/5090189630931360935'/><link rel='alternate' type='text/html' href='http://more-shell.blogspot.com/2006/12/c-shell-tutorial-university-of-hawaii.html' title='The C Shell tutorial'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
