Class: wdi-cc
Creator: Thom Page
Modified by: Kristyn Bryan and Reuben Ayres
Topics: Getting familiar with the Unix Command Line
A long time ago in a Unix environment far, far away, young Jedi padawans who knew only of desktop software were seduced by the dark side of the Force to enter… The Terminal.
Follow the instructions below using all the console commands introduced in Fundamentals, class, or that you find on your own.
-
Open the Terminal app
-
Make a directory in the folder created by this clone called
galaxy_far_far_away
. -
Create a file called
commands.txt
. -
Paste the answer to each numbered question (i.e. the command(s) that accomplished the task) in
commands.txt
once you get it to work. -
Remember, you can learn about any Unix command by typing
man
and then the command name. E.g.,man ls
. TypeQ
to get out of the Manual page ("man page") viewer.
Complete all work inside the galaxy_far_far_away
folder.
-
Create a directory called
death_star
, and make the following files inside of it:darth_vader.txt
,princess_leia.txt
,storm_trooper.txt
-
In
galaxy_far_far_away
, make a directory namedtatooine
and create the following files in it:luke.txt
,ben_kenobi.txt
. -
Inside of
tatooine
make a directory calledmillenium_falcon
, and in it create:han_solo.txt
,chewbaca.txt
- You can rename a file using the
mv
command.
- Rename
ben_kenobi.txt
toobi_wan.txt
.
- You can copy a file from one location to another using the
cp
command. (man cp
for more info)
- Directories can be sibling (parrell to each other) or can be parents (the folder that contains the folder you are in)
- Copy
storm_trooper.txt
fromdeath_star
totatooine
.
- You can use the
mv
command to move files from one location to another.mv
can be used for renaming, moving, or both. Runman mv
to see the options—remember hit theQ
key to get out of the manual page viewer.
-
Move
luke.txt
andobi_wan.txt
to themillenium_falcon
. -
Move
millenium_falcon
out oftatooine
and intogalaxy_far_far_away
. -
Move
millenium_falcon
intodeath_star
. -
Move
princess_leia.txt
into themillenium_falcon
.
BE CAREFUL WITH rm
!!! THERE IS NO "TRASH" IN THE UNIX CLI. WHEN YOU DELETE SOMETHING IT IS GONE FOREVER!!!
You can use rm
to delete a file.
- Delete
obi_wan.txt
.
-
In
galaxy_far_far_away
, make a directory calledyavin_4
. -
Move the
millenium_falcon
out of thedeath_star
and intoyavin_4
. -
Make a directory in
yavin_4
calledx_wing
. -
Move
princess_leia.txt
toyavin_4
andluke.txt
tox_wing
. -
Move the
millenium_falcon
andx_wing
out ofyavin_4
and intogalaxy_far_far_away
. -
In
death_star
, create directories fortie_fighter_1
,tie_fighter_2
andtie_fighter_3
. -
Move
darth_vader.txt
intotie_fighter_1
. -
Make a copy of
storm_trooper.txt
in bothtie_fighter_2
andtie_fighter_3
. -
Move all of the
tie_fighters
out of thedeath_star
and intogalaxy_far_far_away
.
BE CAREFUL WITH rm
!!! THERE IS NO TRASH CAN IN THE UNIX CLI. WHEN YOU DELETE SOMETHING IT IS GONE FOREVER
Before you hit enter, make sure are deleting the right thing, or you could accidentally delete the contents of your computer (it has happened).
This command will not typically ask you if you "really want to delete." It will just delete.
- Remove
tie_fighter_2
andtie_fighter_3
.
-
Touch a file in
x_wing
calledthe_force.txt
. -
Destroy the
death_star
and anyone inside of it. -
Return
x_wing
and themillenium_falcon
toyavin_4
.
"Add" your changes (prepare them to be "committed"):
$ git add -A
"Commit" your changes—any time you make a commit, you can always restore the files in the repo to that point:
$ git commit -m "Completed homework assignment"
"Push" your commits to github:
$ git push origin master
Good job! You're done!
When you've got your homework all done, just send a Slack message to your instructor. Going forward, we will be submitting homework using a "pull request" process in git. Your instructor will walk you through that submission process first thing in the morning.
Want an extra challenge? In many assignments or labs, you'll find a "Hungry for More" section which is designed for further learning. If they seem too overwhelming you can absolutely skip them. They won't factor into your homework score, and you will be totally fine for class as long as you complete and understand the main assignment up to that point. What they will do is encourage you to go deeper, explore, and push yourself. And that will pay off big time in the long run. Below is the "hungry for more" section for this assignment.
...as long as you don't mess up the homework assignment you just did. They get more difficult/complex as you go (more or less).
-
Create a directory called
test-dir
with a couple files in it. Try to make a copy of that entire directory. (Hint:man cp
for more info.) -
Find and use command line shortcuts.
-
Try applying one command to multiple files at once.
-
Try applying one command to all files in a single directory (where necessery)
-
Try applying one command to all files that match a pattern.
-
Try using a mix of absolute and relative paths.
-
If you're a glutton for punishment, read about the famous text editor "vi" online. It's included with all Unix systems, and although it has a steep learning curve, it is an incredibly powerful text editor. You can run a tutorial program that will teach you some
vi
/vim
commands by typingvimtutor
in your Terminal. See if you can use it to create and edit a small "Hello, World!" JavaScript program!