ggle linux
TRANSCRIPT
-
8/2/2019 Ggle Linux
1/15
GoogleCodeUniversity
Overview
Prerequisites
Learning objectives
Conventions
Introduction
The Linux File System
GettingCommandLineAccessThe Command Line
Determining your working directory
What is in a directory?
Making a new directory
Change your working directory
Create a new file
Differences between files and directories
Copy a file into another directory
Removing files and directories
Moving and renaming
FinishingUp
AdditionalExamplesandExercises
This lab is written for people with little to no prior experience using the Linux command line, but who have some familiarity
with Windows.
A user account with a home directory on a Linux machine. Any standard, major Linux distribution (and most minor
ones, too) should be fine.
Either physical or remote access to the Linux machine and the ability to log into the machine. Physical access is
best and easiest, but remote access works great too.
Windowsusers:You must have an SSH-capable terminal program, such as Putty , installed on your machine so you can
log into the Linux machine using SSH.
Upon completion of this lab, you will be able to:
BasicLinuxCommands
TableofContents
Overview
Prerequisites
Learningobjectives
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
2/15
Outline the benefits of using a command line interface
Manipulate files and directories from the command line on a Linux system
You will have practiced:
showing the contents of a directory
making a new directory
changing from one directory to another
copying files and directories
moving and renaming files and directoriesremoving files and directories.
Courier font indicates screen output (command results, messages, and prompts that the system displays)
Courier Bold font indicates commands that you enter
For most personal computer (PC) users, moving a mouse around a graphical user interface (GUI) is intuitive, easy, and
less intimidating than working on a command line interface (CLI). However, operating a machine from a CLI providesquicker access to the real power of the operating system (OS). All of the major PC operating systems (MS Windows
2000/XP/Vista, Mac OS X, Linux, UNIX) provide a CLI. In Linux and many other operating systems, this is called the
"Shell". Because Linux is so adaptable, some advanced users even like to use shells other than the default one! We'll
focus on the shell most Linux distributions use by default, which is called "Bash". (It's an acronym with a long story behind
it.)
For many types of activities, using the CLI can have a number of advantages over using a GUI. Advanced computer users
often work in the CLI to
gain more control the file system and operating system
execute multiple commands more quickly than they could in the GUI
easily script a sequence of commands to perform tasks and execute programs
get started more quickly and use fewer system resources than when working in the GUI
gain remote access to other devices that may not be available from the GUI
work on a machine remotely over the internet or other network connection (A CLI is much faster because it does not
have to transmit graphical information, such as when you use VNC)
This lab will help you learn the basics of using Linux commands by practicing some common tasks: copying, moving,
renaming, and deleting files. Yes, it's true that you can just do this with a GUI, but by getting used to using the terminal,
you will always be able to work on your machine even if you must work remotely. Learning the basics also helps lay the
foundation for learning more advanced tasks in Linux as you continue to learn with later labs and other experiences.
Before we move on, can you think of any other tasks where a CLI would possibly be faster than using a GUI?
The Linux file system has some similarities to Windows and some differences. For example, the path to one of the sample
pictures in a default Windows XP installation is:
C:\Documents and Settings\yourusername\My Documents\My Pictures\SamplePictures\Winter.jpg.
The path to the picture begins with C:, an identifier that represents a device - in this case, a hard drive. A Windows path
may begin with a different drive letter such as A: or E: and each letter represents a specific device, for example, a hard
drive or CD-ROM reader. The backslash ( \ ) following the device identifier, indicates the "root directory file" (top level
directory) of that device. Each device on the computer has its own root to which directories and files are "attached".
Conventions
Introduction
TheLinuxFileSystem
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
3/15
In Linux, paths to everything (not just directories and files) begin at the root directory. Think of the Linux file system as a
tree with a single trunk and many branches. All devices, system files, user-created files, and directories are attached to
the branches of the Linux root directory. In the Linux file system, the root directory (top level) of the file system is
represented as a forward slash ( / ). If you are familiar with Windows, you see a similarity with the "My Computer" folder.
The My Computer folder acts like a starting point from which you can access any storage device.
A path to a similar file on a Linux system might look like this:
/home/yourusername/pictures/winter.jpg
Two things to note about this example:
Linux uses a forward slash ( / ) instead of a backslash ( \ )
The picture file doesn't exist on your Linux machine unless you put it there yourself.
...and now, we can get started!
If you do not have physical access to a Linux system and you are connecting using Putty or a similar program, you will
need to know the hostname of a remote Linux machine you can log into. Perhaps it is a friend's computer, or you might be
paying for a hosted server. Ask the owner of the machine for the details you need in order to log in.
Do one of the following, depending on which type of computer you are using to access your Linux computer.
Linux
In the GUI environment of a Linux machine, open a Terminalfrom your Applications menu. If you are not using the GUI,
then you are probably looking at a terminal with a command line prompt already.
OSX
Use the Terminalapplication to open a shell, and then use the ssh command to connect to a remote Linux machine.
Much of what you learn in this lab can also be applied to the Mac OS X command line, but there are some differences
here and there.
MicrosoftWindows
Run an SSH client program (like Putty) to connect to the remote Linux machine where you have an account.
Once you login, you will see a prompt that looks something like this in your console (terminal window):
computer:~$ _
or this:
user@computer:~$ _
The prompt gives you quite a bit of information:
user This is your login name.
computer This is the name of the machine you are logged into.
:~ This shows the current directory. The tilde by itself indicates that you are in your home directory (which is where
you keep all of your own files).
$ This is the prompt. If you see some other characters such as #, you might be logged in with special privileges.
Log out (by typing "logout"), and then back in, making sure to use your username and not "root".
_ The underscore in our example is either a flashing cursor, an underscore, or a block on your machine. This is
where you type your commands.
GettingCommandLineAccess
TheCommandLine
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
4/15
For this lab, we'll use an example user (ninja) and computer (ultimatepower). You should see your own username
and the name of the machine you logged into in your terminal window (unless, of course, you do actually possess Real
Ultimate Power...)
Commandsyntax
The syntax used for commands in this lab is:
command \[options\] filename
Note:Options are also called "flags".
Pressing the Enter key executes a command.
To find out what directory you are currently working in, use thepwd(Print Working Directory) command.
ninja@ultimatepower:~$ pwd/home/ninja
Thepwdcommand displays the full name of the directory in which you are working. The name of a user's home directory
is his or her username, so yours will be different from the example (ninja is the person's username and the path to herhome directory is /home/ninja.)
Following is a diagram of the directory structure (tree):
home>> ninja
In these diagrams, the directory we are currently working in will be bold.
To find out what's in a directory, you can use the ls command to list its contents. Typing the command by itself lists the
contents of your current working directory, but you also can use the command to list the contents of any directory. For
now, just type ls and press Enter.
For a new user account, you will see something like the following:
ninja@ultimatepower:~$ lsDesktop
The result is a single filename, in this case, a directory named Desktop, and that's it. The diagram for the file location is:
home>> ninja>> >> Desktop
The ls command has shown us all visible files, but to be sureyou are seeing everything contained in this directory, type
the ls command, then add a space and the "all" flag, -a, then press Enter.
ninja@ultimatepower:~$ ls -a. .. .bash_logout .bash_profile .bashrc Desktop
Determiningyourworkingdirectory
Whatisinadirectory?
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
5/15
The result contains an entry for a single dot, a double dot, and three new files in addition to the directory file we saw
before. The new files all have something in common: their names start with a dot. What is all of this?
Singledot-CurrentDirectory
A single dot is an "object" that represents the current directory, your "working directory". If you are working in /usr/lib/
then the single dot represents /usr/lib ; if you are working in your home directory, the dot represents your home
directory. Compare the output from entering the following variations of the ls command while working in the user's home
directory:
ninja@ultimatepower:~$ lsDesktop
ninja@ultimatepower:~$ ls /home/ninja/Desktop
ninja@ultimatepower:~$ ls .Desktop
The diagram for this is:
home
>> ninja>> >> Desktop
Notice that the output of all three commands is the same. (Did you also notice in the second example above, we typed the
full path to the current directory?)
Doubledot-ParentDirectory
the double dot (two dots) is an object that represents the relative parent directory. This represents the directory
immediately "above" (or which contains) the current directory. In the example, "home" is the parent of "ninja" in
/home/ninja/.
Type the ls command, a space, and the two dots, as shown, then press Enter. This will list the contents of the parent
directory for your current working directory.
ninja@ultimatepower:~$ ls ..ninja
The contents of your parent directory (/home) is "ninja". Notice that using the ls command with the name of the parent
directory, in this case /home, achieves the same result.
ninja@ultimatepower:~$ ls /homeninja
Leadingdot-HiddenFile
A leading dot before a file name means that the file is "hidden" and won't be displayed when you use ls without a flag.
Type the ls command, press Enter and view the result.
ninja@ultimatepower:~$ lsDesktop
Now enter ls -a to see all files and directories, including hidden ones (the output below is an example; you may see
different files.)
ninja@ultimatepower:~$ ls -a
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
6/15
. .. .bash_logout .bash_profile .bashrc Desktop
Usingcattoseefilecontents
Linux programs frequently use hidden files to save personalized settings. These "config files" are typically standard text
files. You can use the cat command (short for "concatenate") to display the contents of files, including hidden ones.
Type cat .bash_logout and then press Enter to display the contents of the .bash_logout file. If you do not have that
file, use the cat command to display another file in your directory. Note that the contents of the file you display will likely be
different from the output below.
ninja@ultimatepower:~$ cat .bash_logout# ~/.bash_logout: executed by bash(1) when login shell exits.# when leaving the console clear the screen to increase privacyif [ "$SHLVL" = 1 ]; then[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -qfi
Although the contents of the file may not make sense to you right now, you can see that a hidden file is like any other file,
except that the leading dot in the name prevents it from being displayed when the ls command is used without a flag.
Quickreview
Take a minute to try the commands you just learned to examine the files in your home directory.
Do you remember how to get the path to your home directory? (Hint: re-read Determining Your Working Directory.)
Explore your home directory using ls and ls -a.
What files do you see? If you've been using your system for a while, you might have a large number of files!
If you have files, use the cat command to take a look at some of the files with leading dots.
Explore your directory structure using ls and ls -a:
Type ls .. (ls, space, and two dots) to see what's in the parent directory. What do you find?
What do you see if you add the -a flag to ls?
Use themkdir command to make a new directory using an unique name and then use ls to verify that your new
directory was created.
Before:
ninja@ultimatepower:~$ lsDesktop
Make your new directory:
ninja@ultimatepower:~$ mkdir more_cowbell
After:
ninja@ultimatepower:~$ lsDesktop more_cowbell
If you try to create a new directory and give it a name that is not unique for that working directory, you'll see the following
error:
Makinganewdirectory
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
7/15
ninja@ultimatepower:~$ mkdir Desktopmkdir: cannot create directory `Desktop': File exists
If you successfully created the new directory, your directory structure will now be similar to this:
home>> ninja
>> >> Desktop>> >> more_cowbell
In Linux, you use the cd command to change your working directory. You can specify a directory change in several ways.
Typing the cdcommand and pressing Enter will take you to your home directory from anywhere on the system. For
example:
ninja@ultimatepower:/usr/lib$ cd
ninja@ultimatepower:~$ pwd/home/ninja
Typing cdand the full name of a directory will take you to that directory from anywhere on the system. Full directory
names begin with a leading forward slash. For example:
ninja@ultimatepower:~$ cd /home
ninja@ultimatepower:/home$ pwd/home
Using cd with a partial directory name can take you to that directory, provided the directory is directly below your currentworking directory. Partial directory names do not start with a leading slash.
ninja@ultimatepower:/home$ cd
ninja@ultimatepower:~$ cd more_cowbell
ninja@ultimatepower:~/more_cowbell$ pwd/home/ninja/more_cowbell
A cdfollowed by two dots will take you up one level to the parent directory of your current working directory.
ninja@ultimatepower:~/more_cowbell$ cd ..
ninja@ultimatepower:~$ pwd/home/ninja
To change your working directory to the new directory you created (more_cowbell), type the cd command and specify
either a full directory name or a partial one (if it's below your current working directory). If you get stuck, you can use the
cdcommand to go to your home directory, and then cd more_cowbell again to get to more_cowbell.)
Type the ls command to display the contents of the newly created directory. Note that there are no files displayed.
Changeyourworkingdirectory
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
8/15
ninja@ultimatepower:~/more_cowbell$ ls
Type the ls -a command to display any hidden files (there are none) and to show the current and parent directory
objects ( .and ..).
ninja@ultimatepower:~/more_cowbell$ ls -a. ..
There are many ways to create and edit text files with Linux, most notably the viand Emacstext editors. Both editors
have a bit of a learning curve, so you should use either the Picoor the Nanotext editor (they are very similar) for this
exercise.
To find out if you have Pico, at the command line, enterpico music.txt and then press Enter.
ninja@ultimatepower:~/more_cowbell$ pico music.txt
If you get a "command not found" error, try entering nano music.txt instead.
If you don't have either of these editors, Google for a vi tutorial and use the vi editor.
UsingthePicoeditor
The Pico editor appears in your console (window). You'll see something like this (with a bunch more space between the
top and bottom):
UW PICO(tm) 4.6 File: music.txt
. . .
[ New file ]^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text^T To Spell
At this point, you can enter text. Type in two or three of your favorite bands or musicians. If you have none (or just have a
case of performance anxiety), feel free to use this example.
UW PICO(tm) 4.6 File: music.txt
Polyphonic SpreeThe Go! TeamJanis Joplin
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text^T To Spell
Createanewfile
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
9/15
Look at the menu of Pico commands at the bottom of your screen. Find the one for Exit. The command for Exit is ^X
which is shorthand for "ControlKey(ctrl)plustheletterX".
When you are finished entering band names, hold down the ctrl key and type an x. A t the bottom of your screen you
will see a prompt asking if you want to save your work (the "modified buffer").
Type a y (you do not need to press Enter).
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes^C Cancel N No
The next prompt asks what file name to use. To keep things simple, just press Enter to use the file name you already
created.
File Name to write : music.txt^G Get Help ^T To Files^C Cancel TAB Complete
You are returned back to your command prompt (Home, sweet home!).
Now that you have a file in your new directory, use a ls command to see it.
ninja@ultimatepower:~/more_cowbell$ lsmusic.txt
ninja@ultimatepower:~/more_cowbell$ ls -a. .. music.txt
To see what the contents of the file looks like, type the cat music.txt command and press Enter.
Now that you are a Pico (or nano) veteran, create a file named classical.txt in the more_cowbell directory and add
the following composers (one per line):
Bach
Brahms
Beethoven
Of course, you probably noticed that the list is not in the correct chronological order. See if you can figure out how to cut
"Brahms" and paste it after "Beethoven" using the control commands at the bottom of your screen for help. (Hint: Look for
Cut and Uncut instead of Cut and Paste.)
To learn more about your text editor commands, you can type Control + G to display the online help.
Since the command prompt obviously lacks the pretty, 16,000-color folder icons that a GUI might provide, we need a way
to distinguish which of the items listed in ls are files and which are directories. As with many things in Linux, we have
plenty of options to choose from. You can choose whichever method you like best.
To explore your identification options, create a new directory in more_cowbell.
ninja@ultimatepower:~/more_cowbell$ mkdir songs
ColorSchemes
To see if your console automatically supports color (most do), type a ls command and press Enter
Differencesbetweenfilesanddirectories
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
10/15
ninja@ultimatepower:~/more_cowbell$ lsclassical.txt music.txt songs
If your console supports colors, the output of ls should be color-coded.
If the output is not in color, use ls and add the --color option.
ninja@ultimatepower:~/more_cowbell$ ls --colorclassical.txt music.txt songs
Normal files appear in the normal text color, directories are blue, and executable programs are green (or another color if
your console text is normally green). Be aware that the colors used may vary from one system to the next.
Classifyoption
Adding the -F option to the ls command adds a symbol to the end of some listings, indicating what type of entries they
are. Directories will be listed with a trailing slash (note: be sure to use the uppercase letter F).
ninja@ultimatepower:~/more_cowbell$ ls -Fclassical.txt music.txt songs/
Longlistformat
The -l (lowercase L) option for the ls command displays lots of information about each file. In the example below, a "d"
at the start of a line indicates a directory. You will learn more about this additional information in the upcoming Ownership
and Permissions lab.
ninja@ultimatepower:~/more_cowbell$ ls -ltotal 8-rw-r--r-- 1 ninja ninja 70 Apr 23 17:50 classical.txt-rw-r--r-- 1 ninja ninja 37 Apr 23 17:44 music.txtdrwxr-xr-x 2 ninja ninja 4096 Apr 23 17:58 songs
If you are familiar with other computer systems, you might assume that the listings that have file extensions (such as,music.txt) are regular files, and those without extensions are directories. If so, you may be surprised to learn that a Linux
system treats a dot just like any other character in the filename. The exception to this is when a dot is the first character of
a filename (as you saw earlier, a leading dot in a filename makes the file hidden). A directory can have a dot in its name,
and a regular file need not have any extension. Linux, unlike Windows, does not rely upon extensions to determine how a
file should be treated.
For example, create a new directory with a .txt extension and then use each of the three methods as shown to display the
contents of your working directory:
ninja@ultimatepower:~/more_cowbell$ mkdir songs.txt
ninja@ultimatepower:~/more_cowbell$ ls --colorclassical.txt music.txt songs songs.txt //Note that songs.txt appearsin blue!
ninja@ultimatepower:~/more_cowbell$ ls -Fclassical.txt music.txt songs/ songs.txt/ //Note that songs.txt appears
with a following slash!
ninja@ultimatepower:~/more_cowbell$ ls -lhtotal 12K
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
f 15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
11/15
-rw-r--r-- 1 ninja ninja 70 Apr 23 17:50 classical.txt-rw-r--r-- 1 ninja ninja 37 Apr 23 17:44 music.txtdrwxr-xr-x 2 ninja ninja 4.0K Apr 23 17:58 songsdrwxr-xr-x 2 ninja ninja 4.0K Apr 23 18:13 songs.txt //Note that songs.txtappears with a "d" at the beginning of its listing.
To further confirm that songs.txt is indeed a directory,you can use the cdcommand to go into it and the ls -a command
to view its contents.
ninja@ultimatepower:~/more_cowbell$ cd songs.txt
ninja@ultimatepower:~/more_cowbell/songs.txt$ ls -a. ..
There seem to be about four bajillion (not a real number!) options for the ls command, but how do you find out about
them all? True, Google has a search engine you can use, and yes, Wikipedia does help sometimes. However, the easiest
way to get Linux command information is from the help manual, also known asman for short (and for ease of typing!). To
use the help manual, typeman, a space, and the command you want to know about.
To see the manual for the ls command, typeman ls and press Enter. To explore the man pages for the command, use
the space bar to advance to the next section of the "man page". When you are through reading you can type qto exit.
Self-study
With the man page for ls open, find out how to do the following tasks, and then try them out.
Do a long listing and include the size of each file in human-friendly units like megabytes or kilobytes
Do a long listing and include the author of each file
Sort the directory list by file size
Sort the files in reverse order
List one file per line
Now that you've created some files, you are ready to learn how to copy a file in Linux. First, to make sure you are in thethe "more_cowbell" directory you created earlier, type cd ~/more_cowbell and then press Enter.
ninja@ultimatepower:~$ cd ~/more_cowbellninja@ultimatepower:~/more_cowbell$
You changed your working directory to more_cowbell. Notice that this time you used a typing shortcut - the tilde (~)
character - instead of typing the name of your home directory. There are lots of ways to avoid typing in Linux. ^_-
Verify the existence of the files and directories you created earlier:
ninja@ultimatepower:~/more_cowbell$ ls -F
classical.txt music.txt songs/ songs.txt/
In Linux, the copy command is cp, a shorthand for "copy". Note that typing cp instead of copy saves us two whole letters
of typing! (Seriously, Linux people reallylike to avoid any unnecessary typing. ^_- )
To copy a file with the cp command, you have to specify the file you want to copy (the source file) and the destination
(location and/or filename) to where you want to copy it. The destination can be a filename, a directory, or a directory anda
filename.
Type the cp command and two filenames as shown and then press Enter.
Copyafileintoanotherdirectory
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
f 15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
12/15
ninja@ultimatepower:~/more_cowbell$ cp music.txt copymusic.txt
When you list your files, you can see that you made a new file called copymusic.txt. What you "said" in Linux was "copy
the music.txt file to a new file in this same directory, and name the new file copymusic.txt."
ninja@ultimatepower:~/more_cowbell$ ls -Fclassical.txt copymusic.txt music.txt songs/ songs.txt/
Now type the cp command, one filename, and one directory name as shown, and then press Enter.
ninja@ultimatepower:~/more_cowbell$ cp music.txt songs/
What you "said" in Linux was, "copy the file music.txt into the songs directory, without changing the name of the file".
When you list the contents of the songs directory, you can see that you made a copy of music.txt in that directory.
ninja@ultimatepower:~/more_cowbell$ ls -F songs/music.txt
Now type the cp command, one filename (music.txt), and the full path of a new file as shown, and then press Enter.
ninja@ultimatepower:~/more_cowbell$ cp music.txt /home/ninja/my_music.txt
What you "said" in Linux was, "copy the file music.txt to the /home/ninja/ directory and name the new file my_music.txt".
List the directory contents to see the new file.
ninja@ultimatepower:~/more_cowbell$ ls -F ~Desktop/ more_cowbell/ my_music.txt
Note that when we copied a file into a subdirectory of our working directory (cp music.txt songs/), we added atrailing slash to the directory name. The slash specifies that the destination name is a directory, not a file. Although it is
optional to include the slash, remembering to use the slash can prevent you from accidentally overwriting a file.
Type the cp command, and the two filenames as shown, and then press Enter.
ninja@ultimatepower:~/more_cowbell$ cp music.txt copymusic.txtninja@ultimatepower:~/more_cowbell$
In this example, the original copymusic.txt file got overwritten by the music.txt file. Of course, you don't have to be
concerned about hurting an example file, but what if that had been an important fie of yours? Ouch!
This time, type the cp command, and put a slash after copymusic.txt, and then press Enter.
ninja@ultimatepower:~/more_cowbell$ cp music.txt copymusic.txt/cp: accessing `copymusic.txt/': Not a directoryninja@ultimatepower:~/more_cowbell$
In the second example, you are informed that the destination isn't a directory, and the unwanted copy operation
(accidentally copying the file onto another that exists) does not take place.
Removingfilesanddirectories
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
f 15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
13/15
Now that you have done all of that copying, you have a lot of example files scattered about that you do not really need so
it's time to delete a few of them. Change to the home directory by typing cdand then pressing Enter, then type ls and
press Enter to list the contents of the directory.
ninja@ultimatepower:~/more_cowbell$ cd
ninja@ultimatepower:~$ lsDesktop more_cowbell my_music.txt
Type rm, a space, and the name of the file you want to delete, in this case,my_music.txt, and then press Enter. To
verify that the file was deleted, type ls and press Enter to list the contents of the directory.
ninja@ultimatepower:~$ rm my_music.txt
ninja@ultimatepower:~$ lsDesktop more_cowbell
Caution!The rmcommand is very powerful. Once you remove a file, recovering that file can be very difficult, if not
impossible. The command line does not provide the safety of "are you sure?" questions like the GUI interface does and
there is no "unremove" or "undelete" command.
Next step in your clean up is to remove the songs.txt directory you created. In general, directories cannot be deleted
with the rm command (there is an exception which will be covered in a later section of this course).
The normal command for removing a directory is rmdir, which you can remember as "remove directory". You can only
remove a directory that is empty with rmdir.
Change your working directory to more_cowbell, as shown, then list the files with categories.
ninja@ultimatepower:~$ cd more_cowbell
ninja@ultimatepower:~/more_cowbell$ ls -Fclassical.txt copymusic.txt music.txt songs/ songs.txt/
The ls -F command shows the directories marked with trailing slashes (songs/ and songs.txt/).
Type the command for removing the songs.txt directory, as shown, then list the files with categories.
ninja@ultimatepower:~/more_cowbell$ rmdir songs.txt
ninja@ultimatepower:~/more_cowbell$ ls -Fclassical.txt copymusic.txt music.txt songs/
The songs.txt/ directory has been removed.
Use rmto remove the extra copy of the music.txt file, copymusic.txt, then list the remaining files, as shown.
ninja@ultimatepower:~/more_cowbell$ rm copymusic.txt
ninja@ultimatepower:~/more_cowbell$ lsclassical.txt music.txt songs
Use rmto remove the classical.txt file (it doesn't belong in this directory since those composers usually didn't
include cowbell sections in their orchestras).
ninja@ultimatepower:~/more_cowbell$ rm classical.txt
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
f 15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
14/15
ninja@ultimatepower:~/more_cowbell$ lsmusic.txt songs
Sometimes you may want to rename a file. For example, you might want to rename your list of bands musicians.txt
instead of music.txt. Though the Bash shell does not have a rename command, you can achieve the same effect of a
rename by "moving" a file from one name to another.
The syntax (grammar) of the move command ismv .
Begin by listing the files in the directory using ls.
Type the move command, the name of the original file, and the name you want to change it to (the new filename), as
follows:mv music.txt musicians.txt.
ninja@ultimatepower:~/more_cowbell$ lsmusic.txt songs
ninja@ultimatepower:~/more_cowbell$ mv music.txt musicians.txt
List the files in the directory to make sure you changed the original filename to the one you wanted.
ninja@ultimatepower:~/more_cowbell$ lsmusicians.txt songs
As you might expect, you can use themv command to move a file from one location in the directory tree to another.
Move themusicians.txt file into your home directory by typingmv, a space, the filename you want to move
(musicians.txt), a space, then the full path of the directory you want to move the file to (/home/ninja/).
ninja@ultimatepower:~/more_cowbell$ lsmusicians.txt songs
ninja@ultimatepower:~/more_cowbell$ mv musicians.txt /home/ninja/
Use the ls command to see the results of themv command in themore_cowbell directory; the musicians.txt file is no
longer there.
ninja@ultimatepower:~/more_cowbell$ lssongs
Now use the ls command to see the results of themv command in the /home/ninja/ directory; themusicians.txt
file is now in that directory.
ninja@ultimatepower:~/more_cowbell$ ls /home/ninja/Desktop more_cowbell musicians.txt
To finish the cleanup exercise, you will want to change your working directory to your home directory and wipe out
everything in themore_cowbell directory, and the directory itself, with one command. For this, you will use the rm
command with the -r , or recursive, option. Using rm with the recursive option causes the command to travel down the
directories and remove everything. This is a powerful command that one need be careful with!
Caution!Adding the -r option to the rmcommand makes it even more powerful. Remember that there is no "unremove"
Movingandrenaming
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas
f 15 Monday 23 April 2012 0
-
8/2/2019 Ggle Linux
15/15
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 2.5 License.
Google - Google Developers - Terms of Service - Privacy Policy - Site Directory
Google Code offered in: English - Espaol - - - Portugus - P -() - ()
or "undelete" command so check to make sure that you type the command and directory entry correctly before you press
Enter.
ninja@ultimatepower:~$ ls -FDesktop/ more_cowbell/ musicians.txt
ninja@ultimatepower:~$ rm -r more_cowbell
ninja@ultimatepower:~$ lsDesktop musicians.txt
Remember the manpages you used earlier to look up the options for ls? Use man rmto find what option to use to:
Bring up a prompt before the rmcommand executes so that you get asked "are you sure?" when you use the
command.
Have the system display everything it is doing in great detail when it executes the rmcommand (verbosely, you
might say).
Take a bow, because you have successfully done all of the following using only the command line in Linux:
Listed the contents of, made, and removed directories
Changed from working in one directory to another
Copied, moved, renamed, and removed files
Used the manual (man command) to get help on using commands
You might want to buy yourself a handy stuffed Tux for your desk at this point so that your friends will know you're
learning Linux!
For additional practice, copy themusicians.txt file and use it to create a hierarchy similar to the following. Note that
there is an error in the structure that you will need to correct before this will work.
more_cowbell>> more_more_cowbell>> >> more_musicians.txt>> >> even_more_musicians.txt>> more_more_cowbell>> >> additional_musicians.txt
FinishingUp
AdditionalExamplesandExercises
c Linux Commands - Google Code University - Google Code http://code.google.com/edu/tools101/linux/bas