Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
      You have completed Introduction to the Terminal!
      
    
You have completed Introduction to the Terminal!
Graphical programs like File Explorer or the Finder allow you to create, copy, move, and delete files and folders. But you can also carry out all these operations in the terminal.
- Most operating systems have a concept of "folders", which group a collection of files together.
 - Folders can also contain other folders, and those folders can contain still more folders, nested as deeply as you want.
 - In the shell, folders are usually referred to as "directories". Folders and directories are the same thing, but the term directory dates from before modern operating systems and their "folders" metaphor.
 - The system we're on in this workspace is set up to show us what directory we're in as part of the shell prompt. But if you're on a system that's not set up that way, there's a command you can run to find out what directory you're in. It's called 
pwd, which stands for "print working directory":pwd- When we run it, 
pwdprints out/home/treehouse/workspace. - This doesn't exactly match what's shown in the prompt. The prompt directory includes this little 
~character, which is called a tilde. We'll talk more about what the tilde means later in this stage. - In the output of 
pwd, the tilde is replaced with/home/treehouse. We'll talk about what this means later in the stage too. - Both the prompt and the 
pwdoutput contain slashes. The current directory's name appears after the final slash. 
 - When we run it, 
 - You can change between directories using the 
cdcommand.- Let's list the files and directories in this current directory with the 
lscommand:ls. - It looks like there are 
library,mall, andofficesdirectories here. - Let's change into the 
malldirectory. We run thecdcommand, and give it the name of the directory we want to change into as an argument:cd mall. - Notice that the prompt changes to show that we're now in the 
malldirectory, which is inside theworkspacedirectory. - If we print the working directory with 
pwd, that will also now that we're now in themalldirectory:pwd - Now, if we run the 
lscommand again, we'll see the output has changed:ls - It lists only the files and directories contained in this 
malldirectory. It looks like there's amap.txtfile here, anddullardsandstarbunksdirectories. - If we try to run commands that work on files from other directories, they won't work, because those files aren't in this directory.
 - So for example, if we try to print the contents of 
statue.txtwithcat, it won't work, becausestatue.txtis in another directory:cat statue.txt - But we can now easily run commands on files in this directory: 
cat map.txt 
 - Let's list the files and directories in this current directory with the 
 
treehouse:~/workspace$ pwd
/home/treehouse/workspace
treehouse:~/workspace$ ls
bird.txt  cart.txt  library  mall  offices  statue.txt
treehouse:~/workspace$ cd mall
treehouse:~/workspace/mall$ pwd
/home/treehouse/workspace/mall
treehouse:~/workspace/mall$ ls
dullards  map.txt  starbunks
treehouse:~/workspace/mall$ cat statue.txt
cat: statue.txt: No such file or directory
treehouse:~/workspace/mall$ cat map.txt
Suite 101: Starbunks
Suite 102: Dullards
- Now let's try changing to one of the directories contained within the 
malldirectory:cd starbunks- Again, the prompt updates to show that we're now in the 
starbunksdirectory. - And if we run 
pwd, it will also show the new directory name:pwd - Let's see what this new directory contains: 
ls - Looks like there's just a 
menu.txtfile here. - Let's print out its contents: 
cat menu.txt - Again, changing to the 
starbunksdirectory makes it easy to work with the files contained in that directory. We can't easily operate on files in themalldirectory anymore, because we're no longer in that directory. - For example, we can't easily print the contents of the 
map.txtfile, because that's in themalldirectory:cat map.txt 
 - Again, the prompt updates to show that we're now in the 
 
treehouse:~/workspace/mall$ cd starbunks
treehouse:~/workspace/mall/starbunks$ pwd
/home/treehouse/workspace/mall/starbunks
treehouse:~/workspace/mall/starbunks$ ls
menu.txt
treehouse:~/workspace/mall/starbunks$ cat menu.txt
Venti Iced Mocha Soy Latte (with Whip): $29.99
Grande Hot Americano: $34.99
Tall Hot Chocolate: $24.99
treehouse:~/workspace/mall/starbunks$ cat map.txt
cat: map.txt: No such file or directory
- If we want to easily look at the contents of the 
map.txtfile, we need to get back to themalldirectory.- This 
starbunksdirectory is contained within themalldirectory. - When one directory contains another, it is said to be the parent directory.
 - A directory that's inside another is said to be a child directory or subdirectory.
 - So we're in a 
starbunksdirectory that's inside amalldirectory. - 
mallis the parent directory, andstarbunksis the child directory or subdirectory. - You can see that in the output of 
pwd. It shows/home/treehouse/workspace/mall/starbunks. - See the slash characters? Each slash separates one directory name from another.
 - 
starbunksis the directory we're currently in. - 
mallis the parent of thestarbunksdirectory. - 
workspaceis the parent of that. And so on. - When you see a list of nested directories separated by slashes like this, it's called a file system path, or just "path" for short.
 - Just as you might follow a path through a forest, a path through a file system indicates the route you need to follow through directories to get to a particular directory or file.
 - Unix-like operating systems use forward slashes like you see here.
 - Windows paths use backslashes instead of forward slashes, but they work the same way.
 - We'll look at paths more in an upcoming video.
 
 - This 
 
treehouse:~/workspace/mall/starbunks$ pwd
/home/treehouse/workspace/mall/starbunks
- So we want to get back to the 
malldirectory and print the contents ofmap.txtagain. But how do we do that?- If we type 
cd mall, it won't work. That just tries to change to another directory namedmallinside themalldirectory, which doesn't exist! - We'll see a solution if we run 
ls -a, to list all files. - That listing includes two strange-looking names, 
.and... The names use period characters, but they're read aloud as "dot". - 
.refers to whatever directory we're currently in. So we can typecd ., but that will just change us to the same directory, so it doesn't seem to do anything:cd . - But 
..refers to whatever directory is the parent of the current directory. Socd ..will take us from thestarbunksdirectory, back to its parent, themalldirectory:cd .. - The prompt shows that we're back in the 
malldirectory. - And running 
pwdwill confirm it:pwd - If we run 
ls, we'll see that themap.txtfile is here. - And now we can re-print its contents: 
cat map.txt 
 - If we type 
 
treehouse:~/workspace/mall/starbunks$ ls -a
.  ..  menu.txt
treehouse:~/workspace/mall/starbunks$ cd ..
treehouse:~/workspace/mall$ pwd
/home/treehouse/workspace/mall
treehouse:~/workspace/mall$ ls
dullards  map.txt  starbunks
- If we run 
ls -ain this directory, we'll see.and..again. They have the same meaning:.refers to the current directory, and..refers to the parent.- 
cd .just changes to the same directory, as before:cd . - And 
cd ..changes to the parent directory,workspaces:cd .. 
 - 
 
treehouse:~/workspace/mall$ pwd
/home/treehouse/workspace/mall
treehouse:~/workspace/mall$ ls -a
.  ..  dullards  map.txt  starbunks
treehouse:~/workspace/mall$ cd .
treehouse:~/workspace/mall$ cd ..
treehouse:~/workspace$ pwd
/home/treehouse/workspace
You can use tab completion with directory names, too, and it's very helpful when changing directories. Any time you're referring to a directory, you can put a slash at the end of the directory name, and it means the same thing as if you'd just put the directory name by itself.
treehouse:~/workspace$ cd mall
treehouse:~/workspace/mall$ cd ..
treehouse:~/workspace$ cd mall/
treehouse:~/workspace/mall$
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up