Great shell programmers have more sex

Dear reader,

Let me tell a short story here.

Some time ago I was working in a mid-size ISP, serving more than five thousands clients. As practically any other IT worked, I like to wake up late. Well, but if you are working somewhere, usually, it's impossible. You should be there, exactly at 9 o'clock, answer calls and make all things work.

But, this wasn't my case. I was getting to work at midday. What was the reason? While I was not communicating to the customers directly I was supporting servers and our billing system. While I was working there we lost no money due the system outage.

It's quite easy – take all your routine tasks, automate them and just sit back, watching your mailbox. It's quite funny – to get from time to time e-mails saying - “Ok, boss, all things are going well. We just

  • cleaned up this and this,

  • backed up our precious database,

  • kicked out 5 clients, who exceeded their limits,

  • firewalled two more dumb clients who flooded whole network with virus traffic,

but really – there is nothing to do, boss”.

 

The main problem of Unix shell programming books

 

There are many books on Unix shell programming and even much more on shell usage, but they all have the same problem -- very steep learning curve.

They are trying to give you as much information as possible  on every chapter and THIS is The Main Problem.

I had a status of 'local unix guru next door' at several companies and I've faced the same problem everywhere.

People just came to me, asked one question, got my answer - how to do exactly that one small thing, which they needed, and then walked away. They were satisfied with answer they got. Usually they did not care about all remaining information - even if it was very useful. I  could stop them from going away only by shouting - "Stop, dumb***, you will kick yourself, if you do such and such thing"!

Something like saying - be very careful , doing "rm -rf /" - you will erase forever all your files.

And I was fased with the same problem again and again. It's like sowing the field with seeds. You first should go out and plough it up, then drill the seeds, then water the fields and so on. And every time you are going over the whole field again and again.

Quite the same thing applies to Unix shell learning. And it's even better - every time you cover more and more commands and usage cases - you learn more.

 

If you are working in IT — you should know, that having some quiet time is practically impossible. Some people will call, ask you to do something for them and etc. This makes our lives very nervous – I would say, that every call cuts another 5 minutes of your life. How we can deal with this? The one answer I've found is just automate as much as possible of our routine work – getting more time for more interesting, creative and challenging tasks. Even more – the process of automating different things may be very interesting and challenging.

So, all we need right now – get our free time back. Yeah, you know what for :)

I also have one friend, who graduated from high school with me. He also learned UNIX – at least enough to do some administration in other ISP – but he still does all tasks by hand.  And when he has to change something on all of his servers – he has to logs in to each server and perform the changes by hand. He practically always stayed late – to perform his main duties.

 

What Made The Difference ?

Have you ever wondered, as I have, what makes this kind of difference in our lives? It isn’t your native intelligence or talent or dedication. It isn’t that I want success and he doesn’t.

The difference lies in what each of us knows and how we make use of that knowledge.

And that is why I am writing to you. For that is the whole purpose of my 'Shell Shore' UNIX training courses: To give you working knowledge – knowledge that you can use in your business and every day work.

 


Replace your dumb assistant with a small script

May be you've seen this T-Shirt? You know, "shell scripts don't need salary". If you have an annoying workmate - have a good chance of replacing him with a small shell script :)

A Course Like No Other

You see, 'Shell Shore's Shell programming Course' is a unique educational course. It’s the one course, which does not hammer you with tons of information, but introduce it gradually. Each day, you get enough portion of information, without overwhelming you with extra unnecessary things.

Each day, 'Shell Shore's Shell programming Course' includes a broad range of information – on shell programming, and on common UNIX commands. Not just lessons and screencasts, but anything and everything in the entire, entangled world of UNIX ... The 'Shell Shore Coures' gives you all the UNIX information you need — when you need it.

Knowledge Is Power

Right now, I am reviewing one of the screencasts from Shell programming course. It combines all the important information about programming issues with in-depth feature description of commands used in that screencast. Every phase of creating robust script is covered, from how to start writing the script to the debug procedure.

And there is plenty of information inside this course filled with fascinating and significant information that’s useful to you.

 

What Is Inside?

Lesson 1 - Introduction (16':03)

Lesson 2 - Shell variables and scripts (23':44)

  • How "#!" magic works
  • How to make shell scripts runnable
  • How to fix strange 'Command not found' error
  • How the shell interpret the commands
  • Debugging and tracing shell scripts
  • Assigning values to variables
  • Using variables in shell
  • Substtuting commands with $VAR, ${VAR} - why should you use first one and second one

Lesson 3 - Quiting - single and double quotes, using backslash (19':31)

  • Using variables without quotes
  • Stripping extra whitespace from variables
  • Use variables with double quotes
  • Use variables with single quotes
  • Stripping 'enter' symbols from variables
  • Expanding shell patterns inside the quotes
  • What's the sequince of variable expansion?

Lesson 4 - Variable substitution, backtricks (13':07)

Sample screenshot: 

Example of comparing dates in shell

  • Using backtricks
  • Assigning sub-command output to variable
  • Doing arithmetic operations
  • Backtricks with double quotes
  • Backtrick with no quotes

Lesson 5 - Stdio, stdout, command error codes(17':52)

  • Using 'read' command
  • Parsing standard input
  • Redirecting standard output of the commands
  • Using empty : command

Lesson 6 - Joining command together, pipes, command list (20':12)

  • Making command lists
  • How to separate commands in command lists
  • Combining commands - passing one command output of one command to the input of another command
  • Using 'cut' command
  • Making complex pipe sequences
  • Creating and debugging pipe sequences interactevly
  • Using 'sort' command
  • Using 'uniq' command

Lesson 7 - Conditional command execution (11':48)

Sample screenshot: 

Example of conditional execution of the script

  • How to conditinally join commands together
  • How to create ACTION1 , then ACTION2, then ACTION 3 and so on (AND operator)
  • How to create ACTION1 , if it fails -  ACTION2, if it fails ACTION 3 and so on (OR operator)
  • Common use cases of joining commands conditionally
  • Replacing if/then operator
  • Testing directory for existence

Lesson 8 - Reditrecting command input and output (36':00)

  • Using file instead of standard input
  • Input redirection
  • How convert input redirection to use pipes
  • How to convert pipes to input redirection
  • Using HERE-DOC redirection
  • Variable expansion in HERE-DOCs
  • Making text templates in shell scripts
  • Output redirection
  • Append to file
  • Redirecting standard error stream
  • Accessing current shell's process ID

Lesson 9 - Using subshell, subshell usage caveats (42':06)

  • Creatin subshell commands
  • Glueing several command output together
  • Writing scripts in subshell
  • Using variables in subshell
  • Communicating to the parent shell
  • Recognizing subshells in 'ps' output
  • Running subshell in background
  • Using subshell as a watchdog - terminating parent shell after timeout

Lesson 10 - Testing the conditions (24':12)

  • Testing command
  • /bin/[ command
  • /bin/test command
  • -eq comparison
  • -ne comparison
  • -lt comparison
  • -le comparison
  • -gt comparison
  • -ge comparison
  • Be careful when comparing strings
  • Comparing empty strings
  • Comparing strings together
  • Checking for file existense
  • Checinf for directory type
  • Checking for readable files
  • Checking for writable files
  • Checing for empty strings
  • Checing for empty files
  • Combining conditions together
  • Using AND and OR operators

Lesson 11 - Internal shell commands (21':22)

  • Making programm run in background
  • Shell jobs management
  • 'read' command
  • Redefining IFS variable
  • Splitting output by arbitrary symbol
  • Input redirect and while loop

Lesson 12 - 'if' operator (14':25)

  • true command
  • false command
  • if/then/fi operator
  • Using external commands with if operator
  • if/then/else operator
  • Writing if on single line
  • Combining if operator with output redirection
  • Negating if condition
  • Redirecting standard input of if operator

Lesson 13 - 'while' operator (15':41)

  • while/do/done operator
  • Running sript N times (using counter in loop)
  • Creating infinite loops in shell
  • Redirecting while operator's input with pipes
  • Redirecting while operator's input with input redirection
  • Redirecting while operator's input with here-doc
  • Iterating over the list of predefined values in while loop
  • Combining here-docs, backtricks and while loop together
  • Using negation symbol in while

Lesson 14 - Understanding shell patterns (8':57)

  • Types of shell patterns
  • Match any symbol
  • Match only one symbol
  • Match some list of symbols
  • Exclude some symbols from matching
  • Examples of shell patterns

Lesson 15 - 'case' operator in shell (9':41)

  • Using the 'case' operator
  • Using shell patterns in comparison
  • Default branch in case operator
  • Emulating grep operator in shell

Lesson 16 - 'for' operator in shell (10':42)

  • for/do/done operator
  • Loop over list of values
  • Caveats of defining loop values
  • Dealing with file with space in their name

 

+ A Lot Of Examples 

You are also getting set of sample files, which are used as excersises in there screencasts.

 

 

Bonuses

 

Hey, you have some interesting bonuses too.

Bonus 1 - Advanced shell programming article - emulating common external commands with shell

Get know, how to emulate cut, grep and other commands using only the shell. You will master the very advanced shell programming tricks to emulate external commands.

 

Bonus 2 - STOP! They are lying to you! 

Emulate arrays and associative arrays in EVERY shell.

You heard, that shells do not have arrays? They are lying to you, really.

With a few workaround tricks you can easily create and use arrays in every unix shell.

Read the article on creating arrays in shell.

 

Bonus 3 - Erase your negative emotional state in 1 minute!!! (audiocast)

  • You are frustated of your work conditions right now?
  • Your boss just shouted on you?
  • You had a conversation with a very annoying client a few minutes ago?

Get into shape very quickly and stop destroying your nervous system.

Listen to very simple, but yet very effective process -- and do it yourself.

It's as simple as 1-2-3 and includes 3 easy steps to perform.

 

 

A $49 price for a $495 value

To create this course, I've put together information from 11 books and many websites with $495 value.   You will save a lot of time and money learning from this course and achieving great results in shell programming.

Simply add product to the shopping cart on left side by clicking 'Add to cart' button and proceed to checkout procedure. It's quite straightforward and uses secure checkout from 2checkout.com – which is secure and robust credit card processing center. By the way – you can use PayPal too – so it's really safe and hassle-less way to do online shopping.

If we don't measure up to your expectations, you may return this product back within 12 months and receive a full and complete refund.

If you feel as we do that this is a fair and reasonable proposition, then you will want to find out without delay if 'Shell Shore's Shell programming Course' can do for you what it is doing for other readers. So please check it out now, and you will get a complete online access to course materials immediately after payment.

 

About me and my classmates, I mention at the beginning of this letter. We graduated from high school together and together got started in the IT world. So what made their lives in IT quite different?

Knowledge. Useful knowledge. And its application.

An Investment In Success

I cannot promise you that success will be instantly yours if you start viewing 'Shell Shore's Shell programming Course'.

But I can guarantee you will find this Course interesting, reliable and useful.

Sincerely Yours,

Samuel Smiles

Shell Shore's Shell programming Course Author

 

 

Order this course

 

>>> Click here to order the course <<<

 

Packaging

After your payment you will receive a direct link to download a complete archive with all the screencasts and examples.  Plus from time to time we will be sending you periodical updates and additions to this course.

 

Your 12 month TRIPLE Risk-Free Guarantee

Of course, you don't have to decide now. Instead, grab my risk-free offer, learn any time in 12 months, and watch firsthand to see if you getting more knowledge and more experience!

  Protection #1: If you're not absolutely thrilled with your purchased version, just call or e-mail me within 12 months of your purchase for a complete 100% refund. No questions. No hassles. No problems. No hard feelings.
  Protection #2: Even if you cancel, your efforts won't be for nothing. You'll get to keep ALL your Super Bonuses as my way of saying "Thanks." That's a guaranteed gain, no matter what you decide!
  Protection #3: You will get +10% of your purcase if you are not satisfied with this product. Look below!


... I literally take ALL of the risk for you because that's how much I believe in that course.

 

I offer 100% refund if you are not satisfied! Return this product back within one year and you will get 110% refund!