Introduction:

    Linux you say what is Linux? Alright, I know how I will begin. A long time ago in the mid 70's at Bell Laboratories, Murry Hill, New Jersey, a two guys came up with Unix. They were: Denis Ritchie and Ken Thompson. Here is a little film which explains it.

 

This was the eureka moment for computing. At that time the world changed. You see everything up to then was done in what is known a fixed length records. You sat and punched you cards and then took them to the "Computer Room" and gave them your cards. Hopefully you did not have any errors, or you had to fix the problem, and then go back to the "Computer Room".  Unix is device independent. You know in Dos/Windows (1983/5) you used to have to install your printer through your program? And then to print your document you first have to open the program to get to the printer. Well, that's gone!So to print a document/file pick it up and drag it to your local printer icon (should be on your desktop), and it asks how many copies and which printer to print it on. This printer could be in your office out in the hall, or on the other side of the world. The reason is  Unix, programs write, read to Standard I/O. And all files are just that files there are no special files like the directories. There just normal files.

 

unix-operating-system-basics-2-638.jpg


 

    Now you may be asking; what does Unix have to do with Linux? Well, Unix came first. If you wanted it you had to go to Bell Labs and get a license sometimes in source and build it yourself.  Unix was mostly in colleges and university's. Some folks like Sun Microsystems bought the source license and built SunOS (1981)  and then Solaris (1993). Richard Stallman (1981-85) Created GNU.  Berkley University came out with BSD. And a guy named Andrew S. Tanenbaum created MINIX at Vrije Universiteit in Amsterdam to exemplify the principles conveyed in his textbook, Operating Systems: Design and Implementation (1987). This book also contained abut 12k lines of source.

Unix_history-simple.svg.png

Now comes another guy (1991) a Finnish student Linus Torvalds created a new kernel and called it Linux. So in a way you could call Linux, a child and Unix the parent. This makes my head hurt, I'll let you strain you eyes and you head.

In the video, they said two things; small programs (utilities),  do the work and make life easier. Since they read and write to standard input and output. This means that one program's output to another program's input, you can chain as many programs as you like to get the job done. This is called a pipe ( | [symbol]). Unix and Linux are multi-treaded out of the box, the other feature is redirection in windows you might have used dir > filename, but in Unix/Linux we have standard I/O so you could do this: filename > program > filename.

In Windows you have shortcuts..  we have something much better, we have link & ulink lets say I use a directory that is not in my home directory what you can make a "Symbolic Link": ln -s target directory  local-name.  So link is ln and ulink is the unlink command.

One more thing Unix/Link we think of our hard drives (/dev/sda) separately from the data. If you had a second hard drive (/dev/sdb). One more thing a hard drive has partitions they are numbered 1, 2, 3 etc. So your drive would be  defined has /dev/sdb4 (second drive, fourth partition. 

Now to volumes, a volume is just a logical group of files, this can be more than one partition and multiple drives. Food For Thought:


(long version with both -al options)
harrison@Whirlwind
~ $ ls -al /mnt/MyData/user/harrison > /home/harrison/mnt_directory.txt
total 48
drwx------9harrisonharrison4096Jul 25 21:26.
drwxr-xr-x5rootroot4096Jul 25 20:58..
drwx------3harrisonharrison4096Apr  5 16:23export
drwxr-xr-x4harrisonharrison4096Jul 26 11:52home
drwx------2harrisonharrison4096Jul 28 14:12ISO
drwx------2rootroot16384Mar 14 10:00Lost+found
drwx------30harrisonharrison4096Jul 29 08:20public
drwx------4harrisonharrison4096Feb 13  2015SOFTWARE
drwx------7harrisonharrison4096Jun 28  2014Zotero_Data

 

(short version without arguments)
harrison@Whirlwind
~ $ ls

export  home  ISO  lost+found  public  SOFTWARE  Zotero_Data

Now after the first command was issued and you did a ls  here is what you will have:
harrison@Whirlwind
~ $ ls

export  home  ISO  lost+found  public  SOFTWARE  Zotero_Data mnt_directory.txt

The alphabet soup in front of the files are as follows:

  • d is directory if blank or - means it just a file
  • Then in groups of three of three: r  read, w write, execute.
  • The three groups are OWNER, GROUP, WORLD
  • There is one more it's not shown t or sticky bit (if you need it please look it up yourself)
  • number of links
  • OWNER
  • GROUP
  • File Size
  • Time/Date file was last modified.
  • File name or Directory name

 






Now I will take apart the long command piece by piece.

  1. Green  you have the username@machine_name.
  2. Blue you have the user prompt.
  3. The ls command with options (-al) a is all files, and l is long
  4. The commands target /mnt/MyData/user/harrison
  5. Redirect the output and create a new file.

 

OK, just one more thing while we are talking about the ls command. Unix/Linux always knows where the current directory is, so if you issue a ls without any options or target. It would list the current directory. So guess what when you get confused you can alway ask for it. This command is pwd or print working directory.


Stay Tuned More To Come

~~Cris H.


  1. A Dummies Guide to Linux on a Raspberry Pi.
  2. A Dummies Guide to Linux on a Raspberry Pi. - 2.0 Distros
  3. TBA the reviews...