Introduction to the Linux Environment. Brian E. Brzezicki. First things first. Log in to your linux machine using Username: student Password: student01. Terminal!. Next Linux is VERY text based environment, so let’s get used to the Terminal!
Brian E. Brzezicki
Next Linux is VERY text based environment, so let’s get used to the Terminal!
Click on Applications->Accessories->Terminal until you get this! (next slide)
Linux is layed out in a heirarchical manner starting from the “root” ( / ) directory. This is similar to MS Windows except that
When Entering commands in Linux, most commands take a filename as an option. You can specify a filename as a
. = “this directory”
.. = “back one directory”
If I was in the directory /etc/sysconfig, I could read the file /etc/passwd with the following command
Open up your terminal windows now and let’s look at some programs used to navigate the filesystem in unix
cd – change directory
pwd – print working directory
In your terminal type
What is the response?
cd . .
Now what is the response?
.. is a useful argument to “cd” that moves you back 1 directory level.
You can add multiple “..” together
For example. Let’s get back to /usr/local
Use the command
To verify your in “/usr/local”
What do you think will happen if I type
And type pwd?
Right I’ll be back at the “root” directory! (/)
Now before we used to get to /usr/local by directly typing the whole path. This is called an absolute path. Because we specified the exact location that we want to go on the system.
But we can also move around using relative paths.
For example, let’s move back to the root directory (/)
And verify with
So now that we are at / let’s use “relative” addressing to get to /usr/local
We are going to specific paths relative to where we are
Where are we now?
Now let’s move into local
Where are we now?
Let’s start again and do it in only one step
We are back at root (/)
We are back at /usr/local
OK now that we can move around let’s learn another important linux command
ls list directory contents
What is the response?
(next page for results… explain the entries)
drwxr-xr-x 2 root root 4096 Mar 9 2009 bin
drwxr-xr-x 2 root root 4096 Mar 9 2009 etc
drwxr-xr-x 2 root root 4096 Mar 9 2009 games
drwxr-xr-x 2 root root 4096 Mar 9 2009 include
drwxr-xr-x 2 root root 4096 Mar 9 2009 lib
drwxr-xr-x 2 root root 4096 Mar 9 2009 libexec
drwxr-xr-x 2 root root 4096 Mar 9 2009 sbin
drwxr-xr-x 4 root root 4096 Apr 18 14:03 share
drwxr-xr-x 2 root root 4096 Mar 9 2009 src
Do a quick exercise
To effectively run Linux you have to have a solid grasp on the filesystem structure and the commands to move around.
Get used to CD, PWD and LS
rm remove file
rm –rf remove directory and everything in that directory recursively
rmdir remove empty directory
mkdir make directory
cp copy a file
mv move a file
cat show the contents of a file
more show the contents of a file
tail show the last lines of a file
tail -10 shows the last 10 lines of a file
tail -f shows as lines are added to a file
echo displays whatever you type
chmod – change file permissions
chmod username filename
chmod student /tmp/file
chown – change file owner
chown u+rwx,g+rwx,o+rwx filename
ls –l file
-rw-r--r-- 1 root root 0 Apr 21 15:41 file
chmod u+x,g+x,o-r file
ls –l file
-rwxr-x--- 1 root root 0 Apr 21 15:41 file
chmod u+rwx,g+rwx,o+rwx file
ls –l file
-rwxrwxrwx 1 root root 0 Apr 21 15:41 file
grep search a file for a specific line of text
grep root /etc/passwd
[[email protected] ~]# grep root /etc/passwd
locate search the system for a specific filename
[[email protected] ~]# locate ssh_config
When working with unix, you notice one command usually gives you output.
With linux you can “tie” the output of one program into the “input” of another program with the pipe operator. This is incredibly handy and will be used a lot in your linux administration tasks.
cat /etc/passwd | grep root
[[email protected] ~]# cat /etc/passwd |grep root
Like with PIPE in Linux you can redirect the output of one command to a file (>), or redirect the contents of a file to be the input of a program (<)
grep root /etc/passwd > /tmp/grep_results.txt
grep root < /etc/passwd
Often in Linux you will want to see what processes are running and possibly manipulate them you do this will the commands
kill -9 pid
kill –TERM pid
In unix you generally log in as a “user” account rather than the superuser account
su is a command that lets you switch to a different user and run commands as them
su – root
su - student
Linux adminstration is very much about text configuration files. When you have a GUI you can edit these files with a normal editor… however if you want to run Linux you better get used to a text editor. I’d suggest vi
So let’s look at vi in the next couple slides
First let’s copy a file that we can edit
cp /usr/share/dict/words /tmp/words.txt
Now let’s open this with vi
Now that we are in vi you should understand vi has 2 modes.
When you start you are put into movement mode, an you can move the cursor around using the commands (next page)
j up a line
k down a line
h left 1 character
l right one character
Use these characters to move around!
Note you can specify a number before the command for example
5j would move you down 5 lines
You also can go to a certain line number with the command
Where XX is a line number
:50 would take me to line 50
Once we are were we want to type or delete in the file we can use “edit mode” commands.
Some edit mode commands
x delete the current characterk
dd delete the entire current line
You can add a number before either of these commands to do that command multiple times
So now that we know the basics of deleting characters… how about adding characters?
To do so, we enter insert mode by typing
i enter insert mode
Typing I will let you start entering characters that will go to the left of the current character.
Once in insert mode… type away when your done hit the “Esc” button
When you want to save the file make sure your in normal mode (usually hit esc) then hit
:w save the file but remain open for editing
:wq save the file and quit
There are tons more vi commands, but these are the basics and should provide you with all that you need to do your work. I myself only know a few more than this as these commands make up 95% of anything you’ll want to do.
Linux is much different than windows is that the documentation (useful documentation) for each command is stored on the system and available with man pages.
To view the documentation for a command type
You can even do a man on the man pages
You will learn to love the man pages!