Exercise 1: The Setup
In this appendix you will be instructed to do three things:
- Do some things in your shell (command line, Terminal, PowerShell).
- Learn about what you just did.
- Do more on your own.
For this first exercise you'll be expected to get your terminal open and working so that you can do the rest of the appendix.
Do This
Get your Terminal, shell, or PowerShell working so you can access it quickly and know that it works.
macOS
For macOS you'll need to do this:
- Hold down the command key and hit the spacebar.
- A "search bar" will pop up.
- Type: terminal
- Click on the Terminal application that looks kind of like a black box.
- This will open Terminal.
- You can now go to your dock and CTRL-click to pull up the menu, then select Options->Keep In dock.
Now you have your Terminal open, and it's in your dock so you can get to it.
Linux
I'm assuming that if you have Linux then you already know how to get at your terminal. Look through the menu for your window manager for anything named "Shell" or "Terminal."
Windows
On Windows we're going to use PowerShell. People used to work with a program called cmd.exe, but it's not nearly as usable as PowerShell. If you have Windows 7 or later, do this:
- Click Start.
- In "Search programs and files" type: powershell
- Hit Enter.
If you don't have Windows 7, you should seriously consider upgrading. If you still insist on not upgrading, then you can try installing Powershell from Microsoft's download center. Search online to find "powershell downloads" for your version of Windows. You are on your own, though, since I don't have Windows XP, but hopefully the PowerShell experience is the same.
You Learned This
You learned how to get your terminal open so you can do the rest of this appendix.
Note
If you have that really smart friend who already knows Linux, ignore him when he tells you to use something other than Bash. I'm teaching you Bash. That's it. He will claim that zsh will give you 30 more IQ points and win you millions in the stock market. Ignore him. Your goal is to get capable enough, and at this level it doesn't matter which shell you use. The next warning is stay off IRC or other places where "hackers" hang out. They think it's funny to hand you commands that can destroy your computer. The command rm -rf / is a classic that you must never type. Just avoid them. If you need help, make sure you get it from someone you trust and not from random idiots on the internet.
Do More
This exercise has a large "do more" part. The other exercises are not as involved as this one, but I'm having you prime your brain for the rest of the appendix by doing some memorization. Just trust me: this will make things silky smooth later on.
Linux/macOS
Take this list of commands and create index cards with the names on the left on one side, and the definitions on the other side. Drill them every day while continuing with the lessons in this appendix.
- pwd
- print working directory
- hostname
- my computer's network name
- mkdir
- make directory
- cd
- change directory
- ls
- list directory
- rmdir
- remove directory
- pushd
- push directory
- popd
- pop directory
- cp
- copy a file or directory
- mv
- move a file or directory
- less
- page through a file
- cat
- print the whole file
- xargs
- execute arguments
- find
- find files
- grep
- find things inside files
- man
- read a manual page
- apropos
- find which man page is appropriate
- env
- look at your environment
- echo
- print some arguments
- export
- export/set a new environment variable
- exit
- exit the shell
- sudo
- DANGER! become super user root DANGER!
Windows
If you're using Windows then here's your list of commands:
- pwd
- print working directory
- hostname
- my computer's network name
- mkdir
- make directory
- cd
- change directory
- ls
- list directory
- rmdir
- remove directory
- pushd
- push directory
- popd
- pop directory
- cp
- copy a file or directory
- robocopy
- robust copy
- mv
- move a file or directory
- more
- page through a file
- type
- print the whole file
- forfiles
- run a command on lots of files
- dir -r
- find files
- select-string
- find things inside files
- help
- read a manual page
- helpctr
- find what man page is appropriate
- echo
- print some arguments
- set
- export/set a new environment variable
- exit
- exit the shell
- runas
- DANGER! become super user root DANGER!
Drill, drill, drill! Drill until you can say these phrases right away when you see that word. Then drill the inverse, so that you read the phrase and know what command will do that. You're building your vocabulary by doing this, but don't spend so much time you go nuts and get bored.