aos linux tutorialmhavas/tutorials/20110915/slides.pdf · 2011-09-14 · aos linux tutorial...
TRANSCRIPT
AOS Linux TutorialIntroduction to Linux
Michael HavasDept. of Atmospheric and Oceanic Sciences
McGill University
September 15, 2011
Outline
1 Introduction to LinuxBenefits of LinuxWhat Exactly is Linux?The Free-Software Philosophy
2 The Graphical User InterfaceCross-Platform ApplicationsWindows Applications and Their Linux Counterparts
3 The Command-LineThe FilesystemFile and Directory ManagementGlobbingFinding FilesOwnership and Permissions
4 Fun Tips
5 Next Time
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
Why Linux?
Free.
Free.
Scientific Software.
Community.
Security.
Stability.
Learn Linux, Learn *nix.
What is Linux?
A Unix-like operating systemcreated by Linus Torvalds in1991.
Uses the GNU set of toolsdeveloped by RichardStallman.
Free and Open source underthe GPL license.
Not just a product but acollection of products.
What is Linux?
A Unix-like operating systemcreated by Linus Torvalds in1991.
Uses the GNU set of toolsdeveloped by RichardStallman.
Free and Open source underthe GPL license.
Not just a product but acollection of products.
What is Linux?
A Unix-like operating systemcreated by Linus Torvalds in1991.
Uses the GNU set of toolsdeveloped by RichardStallman.
Free and Open source underthe GPL license.
Not just a product but acollection of products.
What is Linux?
A Unix-like operating systemcreated by Linus Torvalds in1991.
Uses the GNU set of toolsdeveloped by RichardStallman.
Free and Open source underthe GPL license.
Not just a product but acollection of products.
Why Free Software?
When you use free software, you also get the freedom to study,copy, change and redistribute the source code.If you don’t like something, change it!
Why Free Software?
When you use free software, you also get the freedom to study,copy, change and redistribute the source code.If you don’t like something, change it!
Outline
1 Introduction to LinuxBenefits of LinuxWhat Exactly is Linux?The Free-Software Philosophy
2 The Graphical User InterfaceCross-Platform ApplicationsWindows Applications and Their Linux Counterparts
3 The Command-LineThe FilesystemFile and Directory ManagementGlobbingFinding FilesOwnership and Permissions
4 Fun Tips
5 Next Time
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Cross-Platform Applications
Firefox.
Thunderbird.
VLC.
OpenOffice.
Pidgin.
FileZilla.
Google Earth.
Picasa.
Adobe Reader.
Adobe Flash.
Opera.
Skype.
Google Chrome.
Applications in Windows and Linux
Type Windows LinuxWeb Browser Internet Explorer FirefoxEmail Client Outlook ThunderbirdFile Transfer CuteFTP Filezilla
Instant Messenger MSN Messenger PidginMedia Player Windows Media Player VLCFile Browser Windows Explorer Nautilus
Raster Graphics Editor Photoshop The GIMPVector Graphics Editor Illustrator Inkscape
Office Suite Microsoft Office OpenOfficePDF Viewer Adobe Reader EvinceMusic Player Itunes Rhythmbox
More equivalent applications
http://www.linuxrsp.ru/win-lin-soft/table-eng.html
The Graphical User Interface
Outline
1 Introduction to LinuxBenefits of LinuxWhat Exactly is Linux?The Free-Software Philosophy
2 The Graphical User InterfaceCross-Platform ApplicationsWindows Applications and Their Linux Counterparts
3 The Command-LineThe FilesystemFile and Directory ManagementGlobbingFinding FilesOwnership and Permissions
4 Fun Tips
5 Next Time
Why use the Command-Line?
Fast.
Efficient.
Powerful.
Scripting language.
Remote access.
Almost Anything you can do in the GUI, you can do on thecommand line:
Listen to music.Read email.Browse the web.Watch movies (kinda: towel.blinkenlights.nl).
The FilesystemOne root to rule them all
The FilesystemDifferent devices, same root
Absolute vs Relative Paths
Absolute vs Relative
Absolute Starting from the root (/).
Relative Starting from your working directory.
Special Paths
. The current directory.
.. The parent of the current directory.
On Linux, everything is case sensitive!
Absolute vs Relative PathsAn Example
Getting AroundShortcuts
Shortcuts
${HOME} Your home directory.
∼ Your home directory.
∼mhavas My home directory.
Getting Around
Commands
ls List contents of directory.
cd Change directory.
pwd Print working/current directory.
Tab-completion is your friend
File and Directory Management
Commans
touch file Creates a file called file.
mkdir dir Creates a directory dir.
rm file Remove a file.
rmdir dir Remove an empty directory dir.
cp src dst Copies file from src to dst.
mv src dst Moves file/dir from src to dst.
du file Prints size of file in bytes.
file file Prints what type of file file is.
ln file link Creates a hard or soft link between file and link.
File and Directory ManagementUseful Options
Commands
mkdir -p path Creates all directories if they do not exist in path.
rm -r dir Removes all files and directories in dir including dir
cp -a srcdir dstdir Copies directory and contents from srcdirto dstdir.
ls -l Same as ls but gives more information.
du -hs dir Prints size of directory and all contents inhuman-readable format.
Getting Help
For useful options and detailed help for almost any program, youcan look at the manual for that specific command using:man command.
File and Directory ManagementLinks
Soft Links
Command: ln -s file linkCreates a named link betweenfile and link.
Hard Links
Command: ln file linkCreates a physical link betweenfile and link.
Deletion is handled differently
Globbing
Allows you to select many items at once.
* Match anything at any length.
? Match one character.
[ab] Match characters a or b.
{blah,foo} Match words blah or foo.
ˆglob Match anything but glob.
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
GlobbingExamples
[mhavas@lappy tmp]$ ls
a.1 b.1 c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls t?.sh
t2.sh
[mhavas@lappy tmp]$ ls [ab]*
a.1 b.1
[mhavas@lappy tmp]$ ls [a-c]*
a.1 b.1 c.1
[mhavas@lappy tmp]$ ls [^ab]*
c.1 t2.sh test1.txt
[mhavas@lappy tmp]$ ls {b*,c*,*est*}
b.1 c.1 test1.txt
Finding FilesFinding Files
Find files using locate
locate word Find file or directory that has word in it.
Fast but only search a database. Database is refreshed once a dayusing updatedb
Find files using find
find path -iname “*word*” Finds files and directories recursivelystarting in path path that have word in theirfilename.
Very useful command and has lots and lots of options.
Finding FilesUseful arguments to find
More on the find command
find . -type d Find all directories under the current directory.
find . -type f Find all files under the current directory.
find . -mtime 1 Find that were created in the past 24 hours.
find . -daystart -mtime +0 -mtime -3 Find files created betweenyesterday and the day before.
find . -size -5k Find files less than 5 kilobytes.
Operating on found files
find . -type d -exec chmod 755 {} \; Find all directories under thecurrent directory and execute chmod 755 on them.
find . -type f -exec chmod 644 {} \; Find all files under thecurrent directory and execute chmod 755 on them.
Finding FilesFinding Programs
The path environment variable
path tells the shell where to look for files.
You can execute a program in your path by typing ’program’.
Programs not in your path must include the program’s path.For example, /aos/shared/bin/matlab
You can see your path by issuing env $PATH
Searching through your path
which program Will show the location of the first programnamed program in your path.
which -a program Will show all programs names program inyour path. Note that only the first will run if youtype program.
whereis program Will search for a program’s binary, sourceand help in their standard locations.
Ownership and PermissionsOwner
[mhavas@lappy tmp]$ ls -l
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 a.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 b.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 c.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 t2.sh
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 test1.txt
Ownership and PermissionsGroup
[mhavas@lappy tmp]$ ls -l
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 a.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 b.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 c.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 t2.sh
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 test1.txt
Ownership and PermissionsChanging Ownership
Commands for changing ownership
chown user file Change the ownership of file to user.
chgrp group file Change the group ownership of file togroup.
chown user:group file Change the ownership of file to useruser and group group.
Both commands can take a -R argument to apply the changerecursively.
Ownership and PermissionsPermissions
[mhavas@lappy tmp]$ ls -l
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 a.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 b.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 c.1
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 t2.sh
-rw-rw-r--. 1 mhavas mhavas 0 2009-09-23 15:18 test1.txt
Ownership and PermissionsPermissions
user group other
r w x r w x r w x
File Permissions
r Read file.w Write file.x Execute file.
Group Permissions
r List contents.w Write into.x Enter.
Ownership and PermissionsChanging Permissions
Commands for changing permissions
chmod perms file Changes the permission of file file to perms.
perms? what perms?
user group other
r w x r w x r w x
[mhavas@lappy tmp]$ ls -l a.1
-rw-r--r--. a.1
[mhavas@lappy tmp]$ chmod g+x,o+x a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-r-xr-x. a.1
[mhavas@lappy tmp]$ chmod a+w a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-rwxrwx. a.1
Ownership and PermissionsChanging Permissions
Commands for changing permissions
chmod perms file Changes the permission of file file to perms.
perms? what perms?
user group other
r w x r w x r w x
[mhavas@lappy tmp]$ ls -l a.1
-rw-r--r--. a.1
[mhavas@lappy tmp]$ chmod g+x,o+x a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-r-xr-x. a.1
[mhavas@lappy tmp]$ chmod a+w a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-rwxrwx. a.1
Ownership and PermissionsChanging Permissions
Commands for changing permissions
chmod perms file Changes the permission of file file to perms.
perms? what perms?
user group other
r w x r w x r w x
[mhavas@lappy tmp]$ ls -l a.1
-rw-r--r--. a.1
[mhavas@lappy tmp]$ chmod g+x,o+x a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-r-xr-x. a.1
[mhavas@lappy tmp]$ chmod a+w a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-rwxrwx. a.1
Ownership and PermissionsChanging Permissions
Commands for changing permissions
chmod perms file Changes the permission of file file to perms.
perms? what perms?
user group other
r w x r w x r w x
[mhavas@lappy tmp]$ ls -l a.1
-rw-r--r--. a.1
[mhavas@lappy tmp]$ chmod g+x,o+x a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-r-xr-x. a.1
[mhavas@lappy tmp]$ chmod a+w a.1
[mhavas@lappy tmp]$ ls -l a.1
-rw-rwxrwx. a.1
Outline
1 Introduction to LinuxBenefits of LinuxWhat Exactly is Linux?The Free-Software Philosophy
2 The Graphical User InterfaceCross-Platform ApplicationsWindows Applications and Their Linux Counterparts
3 The Command-LineThe FilesystemFile and Directory ManagementGlobbingFinding FilesOwnership and Permissions
4 Fun Tips
5 Next Time
Fun Tips
cd - Go back to the last directory you visited.
cd Go to your home directory.
mkdir -p dir/{dir1,dir2,dir3} Create multiple nested directories atonce.
Outline
1 Introduction to LinuxBenefits of LinuxWhat Exactly is Linux?The Free-Software Philosophy
2 The Graphical User InterfaceCross-Platform ApplicationsWindows Applications and Their Linux Counterparts
3 The Command-LineThe FilesystemFile and Directory ManagementGlobbingFinding FilesOwnership and Permissions
4 Fun Tips
5 Next Time
Next Time
Next Time
More on the command-line.
Shell scripting in bash.
Gnuplot.
Suggested topics.