Intro to the Dev Environment
Learning Objectives
Students will be able to:
- Be more productive by using the keyboard vs. the mouse
- Use the Terminal Command Line Interface (CLI) to navigate and manipulate the filesystem
- Use the VS Code text editor to open and edit files
Using the Terminal
Command Line Interface
What is Terminal?
- Terminal is the developers' choice for entering commands and navigating the filesystem
- Terminal is also known as a shell. The default shell in Mac OS X is Bash. You will find the terms terminal and bash often used interchangeably
- Go ahead and open Terminal (remember - use Spotlight!)
Command Line Basics
Here are the basic command tasks we'll try out:
- Change directories (folders)
- List a directory's contents
- Create a directory
- Create a file
- Move files and directories
- Copy files and directories
- Rename files and directories
- Delete files & directories
- Command history & clearing the window
Change Directories
- We use the
cdcommand to change directories -
Let's change to the home directory of the logged in user:
$ cd ~ -
Here are a few common shortcut characters used when navigating the filesystem:
~The logged in user's home directory/The root (top-level) directory on the hard drive.The current directory..The parent directory of the current directory
- The
pwdcommand "prints" the current (working) directory
List a Directory's Contents
- Use the
lscommand to display a concise list lsdoes not display hidden files by default, adding the-aoption will show themtreeis a nice utility for displaying a graphical representation of a directory and its nested directories.
Install it by typingbrew install tree
Create a Directory
- Use the
mkdircommand to create directories -
Let's create a
drawersdirectory inside of the home directory:$ mkdir ~/drawers - Note that you don't have to specify the full path if we are already in the home directory
Using Tab Auto-Completion
- Change to the home directory
- Now let's change to our newly created
drawersdirectory, however, only typecd d,
then presstabwhich will auto-complete directory name(s) - You can cycle between matching directory names by continuing to press
tab
Creating Files
- We use the
touchcommand to create empty files -
Let's move to the
drawersdirectory and create a directory namedsocks. Here is how we can create the directory and change to it using a single command:$ mkdir socks && cd socks -
Now let's create a
dress.socksfile:$ touch dress.socks
Practice Creating Directories and Files
- Create this directory:
~/drawers/pjs - Create two files in the new
pjsfolder namedwarm.pjsandfavorite.socks
Moving Files
- Okay, so we have a messy
drawers/pjs, let's move ourfavorite.socksfile out of thepjsfolder and into thedrawers/socksfolder where it belongs! -
Here's how we can do the move regardless of which directory we're currently in by using absolute paths:
$ mv ~/drawers/pjs/favorite.socks ~/drawers/socks/Be sure to use tab-completion!
Note that you have the option to use absolute and/or relative paths.
Moving Directories
- Moving directories is just as easy using the same
mvcommand -
Try it out:
- Create a
~/shortsdirectory - Move the newly created
shortsdirectory into thedrawersdirectory
- Create a
Renaming Files
- Guess what - there's no dedicated bash command to rename files and directories!
- Don't panic! The
mvcommand is very flexible! -
Here's how we can rename the
warm.pjsfile tosummer.pjsfrom anywhere:$ mv ~/drawers/pjs/warm.pjs ~/drawers/pjs/summer.pjs - Of course, you can actually move and rename simultaneously!
Deleting Files
- We use the
rmcommand to delete both files and directories -
Let's first use it to delete the
dress.socksfile. Here's one way:$ cd ~/drawers/socks && rm dress.socks - Using the
*wildcard character, it's possible to delete and move multiple files. For example, typing*.sockswould match all files with an extension of.socks...
Deleting Directories
- Deleting directories is almost the same as deleting files except you must use the
-roption, which runs thermcommand "recursively" to delete a directory and it's contents. -
To delete the
pjsfolder we could use this command:$ rm -r ~/drawers/pjs
Moving Multiple Files
- To demonstrate moving multiple files, re-create the
dress.socksfile we just deleted from thesocksdirectory -
Now let's move all of the
.socksfiles out of thesocksfolder into our home folder. The following command assumes we're inside thesocksfolder:$ mv *.socks ~ - Now, without changing directories, return the socks files back to where they belong
Copying Files & Directories
- Use the
cpcommand to copy files and directories -
Here's how we can copy all .js files:
$ cp *.js ~/dest-folder -
And entire directories by adding the
-Roption:$ cp -R ./sample-code ~/dest-folder
Command History & Clearing the Window
- Pressing the up and down arrows in Terminal will cycle through previously entered commands. This can be a huge time saver!
- If you'd like to clear the Terminal window, simply press
cmd+k
Using VS Code to Open and Edit Files
What is VS Code?
- VS Code is a popular open-source text-editor maintained by Microsoft
- It's very customizable and capable
- VS Code's functionality can be extended using extensions, however, most useful features are built-in
- To try it out, let's use VS Code to open and edit a file...
Add VS Code to $PATH
- We want to be able to type in
code .in Terminal and have VS Code open the current directory for editing - First, open VS Code's Command Palette by pressing
⇧⌘P - Next, type "shell command" and select the
Shell Command: Install 'code' command in PATHcommand - Restart Terminal for the new $PATH to take effect
For the above to work, VS Code must be installed in the Applications folder
Going Forward
- Today, we have only scratched the surface of tools such as Terminal and VS Code
- Rest assured that throughout your time in SEIR, we will help you to get to know these tools much better!