- Run
Bash
commands to complete the following tasks:- print the current working directory (
pwd
) - navigate between directories on your computer (
cd
) - create new directories (
mkdir
) - print a list of files and subdirectories within directories (
ls
) - delete files (
rm
) and directories (rm -r
) - copy files (
cp
) and directories (cp -r
) to another directory - easily create new files using a single command (
touch
)
- print the current working directory (
This is hard part. I want a sed command that find the FIRST wHOLE match case of the word workerprocesses, delete line of text where the word is found and and paste workerprocesses 4; there and then save file. This is the most reliable method i though of when editing files (without nay risk of breaking any conf.
How to Run Bash Commands in the Terminal
In the previous section on Terminal Sessions, you learned that the terminal displays a prompt that shows you that Bash
is waiting for input.
Using the Nano editor. Editing files with the Nano text editor is easy. To open a file in Nano, type the following command at the command line: nano filename. Replace filename with the name of the file that you want to edit. The edit command prompt is a colon (:), which you should see after starting the editor. If you are editing an existing file, then you have some lines in edit's buffer (its name for the copy of the file you are editing). When you start editing, edit makes the last line of the file the current line. The editor program called by some programs when you tell them to edit a file. You have to set the environment variable yourself. If you use csh or tcsh, at the shell prompt: setenv EDITOR vim If you use bash or ksh, then enter: EDITOR=vim; export EDITOR (Replace 'vim' with the editor you want to use.).
Recall that depending on your computer's set-up, you may see a different character as a prompt and/or additional information before the prompt, such as your current location within your computer's file structure (i.e. your current working directory).
When typing commands (either from this textbook or from other sources), do not type the dollar sign (or other character prompt). Only type the commands that follow it.
Note: In the examples on this page, the indented lines that follow a prompt and do not start with a dollar sign ($) are the output of the command. The results of the commands below on your computer will be slightly different, depending on your operating system and how you have customized your file system.
Useful Bash Commands to Manage Directories and Files
Print Current Working Directory (pwd
)
Bash Editor
Your current working directory is the directory where your commands are being executed. Female voice emulator. It is typically printed as the full path to the directory (meaning that you can see the parent directory).
To print the name of the current working directory, use the command pwd
.
As this is the first command that you have executed in Bash
in this session, the result of the pwd
is the full path to your home directory. The home directory is the default directory that you will be in each time you start a new Bash
session.
Windows users: note that the Terminal
uses forward slashes (/
) to indicate directories within a path. This differs from the Windows File Explorer which uses backslashes () to indicate directories within a path.
Change Current Working Directory (cd
)
Often, you may want to change the current working directory, so that you can access different subdirectories and files.
To change directories, use the command cd
followed by the name of the directory (e.g. cd downloads
). Then, you can print your current working directory again to check the new path.
For example, you can change the working directory to an existing documents
directory under your home directory, and then check that the current working directory has been updated.
You can go back to the parent directory of any current directory by using the command cd .
, as the full path of the current working directory is understood by Bash
.
You can also go back to your home directory (e.g. /users/jpalomino
) at any time using the command cd ~
(the character known as the tilde).
Create a New Directory (mkdir
)
The first step in creating a new directory is to navigate to the directory that you would like to be the parent directory to this new directory using cd
.
Then, use the command mkdir
followed by the name you would like to give the new directory (e.g. mkdir directory-name
).
For example, you can create a new directory under documents
called assignments
. Then, you can navigate into the new directory called assignments
, and print the current working directory to check the new path.
Notice that mkdir
command has no output. Also, because assignments
is provided to Bash
as a relative path (i.e., doesn't have a leading slash or additional path information), the new directory is created in the current working directory (e.g. documents
) by default.
Data Tip: Directory vs Folder: You can think of a directory as a folder. However, recall that the term directory considers the relationship between that folder and the folders within it and around it.
Data Tip: Notice that you are creating an easy to read directory name. The name has no spaces and uses all lower case to support machine reading down the road.
Print a List of Files and Subdirectories (ls
)
To see a list of all subdirectories and files within your current working directory, use the command ls
.
In the example above, ls
printed the contents of the home directory which contains the subdirectories called documents
and downloads
and the files called addresses.txt
and grades.txt
.
You can continue to change your current working directory to a subdirectory such as documents
and print a new list of all files and subdirectories to see your newly created assignments
directory.
You can also create a new subdirectory under assignments
called homeworks
, and then list the contents of the assignments
directory to see the newly created homeworks
.
Delete a File (rm
)
To delete a specific file, you can use the command rm
followed by the name of the file you want to delete (e.g. rm filename
).
For example, you can delete the addresses.txt
file under the home directory.
Delete a Directory (rm -r
)
To delete (i.e. remove) a directory and all the sub-directories and files that it contains, navigate to its parent directory, and then use the command rm -r
followed by the name of the directory you want to delete (e.g. rm -r directory-name
).
For example, you can delete the assignments
directory under the documents
directory because it does not meet the requirement of a good name for a directory (i.e. not descriptive enough - what kind of assignments?).
The rm
stands for remove, while the -r
is necessary to tell Bash
that it needs to recurse (or repeat) the command through a list of all files and sub-directory within the parent directory.
Thus, the newly created homeworks
directory under assignments
will also be removed, when assignments
is deleted.
Copy a File (cp
)
You can also copy a specific file to a new directory using the command cp
followed by the name of the file you want to copy and the name of the directory to where you want to copy the file (e.g. cp filename directory-name
).
For example, you can copy grades.txt
from the home directory to documents
.
Note that the original copy of the file remains in the original directory, so you would now have two copies of grades.txt
, the original one in the home directory and the copy under documents
.
Copy a Directory and Its Contents (cp -r
)
Similarly, you can copy an entire directory to another directory using cp -r
followed by the directory name that you want to copy and the name of the directory to where you want to copy the directory (e.g. cp -r directory-name-1 directory-name-2
).
Similar to rm -r
, -r
in cp -r
is necessary to tell Bash
that it needs to recurse (or repeat) the command through a list of all files and sub-directory within the parent directory.
Bash Edit File Commands
Once again, the original copy of the directory remains in the original directory.
Bash Edit File Command Line
Create a New File Using a Single Command (touch
)
You can create a new empty file using the single command touch
(e.g. touch file-name.txt
). This command was originally created to manage the timestamps of files. However, if a file does not already exist, then the command will make the file.
This is an incredibly useful way to quickly and programmatically create a new empty file that can be populated at a later time.
Practice Your Bash Skills
Edit File In Linux Command
Project organization is integral to efficient research. In this challenge, you will use Bash
to create an earth-analytics
directory that you will use throughout this textbook.
You will then create a data
directory within the earth-analytics
directory to save all of the data that you will need to complete the homework assignments and follow along with the course.
Create a Directory for earth-analytics
Begin by creating an earth-analytics
directory (or folder) in your home directory. Recall that this is the default directory in which the Terminal opens.
- Create a new directory called
earth-analytics
.
- Next, change your working directory to the
earth-analytics
directory, and create a new directory within it calleddata
.
- Last, go back to the home directory and confirm that you can then access the directories you just made.