introduction to unix
TRANSCRIPT
UNIX OS Lecture I
Simonas Kareiva
Vilnius University
Faculty of Mathematics and Informatics
Preparation of the material was supported by the project „Increasing Internationality in Study Programs of the Department of Computer Science II“, project number VP1–2.2–ŠMM-07-K-02-070, funded by The European Social Fund Agency and the Government of Lithuania.
2
3
4
5
6
7
8
9
10
11
12
Sponsors
14
Part 2History
:)
16
17
Part 3Differences
Differences
AIX FreeBSD HP-UX Linux Solaris Tru64
Hard Disk Device
/dev/hd4 /dev/ad0s1a /dev/vg00/lvol1 /dev/sda1 /dev/vx/dsk/rootvol /dev/rz0a
Home folder
/home /usr/home /home /home /export/home/dev/vx/dsk/home
?
Password files
/etc/passwd/etc/security/passwd
/etc/passwd/etc/master.passwd
/etc/passwd /tcb/files/auth/r/root
/etc/passwd /etc/shadow
/etc/passwd /etc/shadow
/etc/passwd
Maximum user ID
4294967295 65535 2147483647 65535 2147483647 65535
User creation
mkuser adduser Useradd useradd useradd useradd
Process supervision
monitor top glance top prstat top
Printing lines
/etc/qconfig /var/spool/print /etc/lp/interface/
/var/spool/lpd/lp/
/etc/lp/interfaces/ /usr/spool/lpd
Network configuration
lsattr -E -l inet0
/etc/rc.conf /etc/rc.config.d/netconf
/etc/sysconfig/network/
/etc/hostname.* /etc/inet/* /etc/defaultrouter
/etc/rc.config
Type of file system
jfs ufs vxfs ext2 vxfs advfs
Kernel /usr/lib/boot/unix_up
/boot/kernel/kernel
/stand/vmunix /boot/vmlinuz
/kernel/genunix /vmunix
Program installation
installp –a pkg_add swinstall rpm –I package
pkgadd setld -i
Printing file list
ls ls ls ls ls ls
19
Directory layout - Windows
C:\C:\Users
C:\Users\Simonas C:\Users\Derpina
C:\Windows C:\Windows\System32
C:\Temp
D:\D:\MusicD:\Movies
20
Directory structure - UNIX /
/bin/ /boot/ /dev/ /etc/ /home/ /lib/ /media/ /mnt/ /opt/ /proc/ /root/ /sbin/ /srv/ /tmp/ /usr/ /var/
21
Directory structure - UNIX
/ /bin/ /boot/ /dev/ /etc/ /home/
/home/simonas/ /home/derpina/
/lib/ /media/ /mnt/ /opt/ /proc/ /root/ /sbin/ /srv/ …
22
Directory structure - UNIX /
/bin/ /boot/ /dev/ /etc/ /home/ /lib/ /media/ /mnt/ /opt/ /proc/ /root/ /sbin/ /srv/ /tmp/ /usr/ /var/
23
Directory structure - UNIX
/ … /mnt/ /opt/ /proc/ /root/ /sbin/ /srv/ /tmp/ /usr/
/usr/bin/ /usr/include/ /usr/lib/ /usr/sbin/ /usr/share/ /usr/src/
/var/
24
Directory structure - UNIX /
/bin/ /boot/ /dev/ /etc/ /home/ /lib/ /media/ /mnt/ /opt/ /proc/ /root/ /sbin/ /srv/ /tmp/ /usr/ /var/
25
Directory structure - UNIX
/ /bin/ /boot/ /dev/ /etc/ /home/ /lib/ /media/ /mnt/
/mnt/usb/ /mnt/win/
/mnt/win/Windows/ /opt/ /proc/ /root/ /sbin/ …
26
Directory structure - UNIX
File Hierarchy Standard – FHS –describes the usual Linux and BSD OS directory layout
Not every UNIX OS follows this standard (for example, OS X has /Users, /Library, etc.)
On the other hand, different OS wouldn’t be different if they had the same hierarchy
For a moment, think of the software developers...
27
Directory structure – live example #1# ls -l
total 22480
drwx------ 2 root root 512 May 3 2008 Mail
lrwxrwxrwx 1 root root 9 Feb 2 2008 bin -> ./usr/bin
-rw-r--r-- 1 root root 356221 Sep 28 2010 catalog
drwxr-xr-x 3 root root 512 May 23 2008 cdrom
drwxr-xr-x 2 root root 512 Nov 24 2010 cert
-rw------- 1 root root 10667463 Apr 4 12:15 core
drwxr-xr-x 16 root sys 4096 Sep 9 14:08 dev
drwxr-xr-x 2 root sys 512 Sep 9 14:05 devices
drwxr-xr-x 80 root sys 5120 Sep 10 20:23 etc
drwxr-xr-x 3 root sys 512 Feb 3 2011 export
dr-xr-xr-x 1 root root 1 Sep 9 14:07 home
drwxr-xr-x 14 root sys 512 Feb 2 2009 kernel
-rw------- 1 root root 636 Mar 22 2011 key
drwxr-xr-x 7 root bin 5120 Jul 24 18:07 lib
drwx------ 2 root root 8192 Feb 2 2009 lost+found
drwxr-xr-x 2 root sys 512 Feb 2 2009 mnt
dr-xr-xr-x 1 root root 1 Sep 9 14:07 net
drwxr-xr-x 13 root sys 512 Apr 20 2010 opt
-rw-r--r-- 1 root root 779 Aug 12 2007 partition.old
-rw-r--r-- 1 root root 66560 Aug 5 2011 pkg_get.pkg
drwxr-xr-x 39 root sys 1536 Mar 31 2011 platform
dr-xr-xr-x 100 root root 258752 Sep 10 20:45 proc
drwxr-xr-x 2 root sys 1024 Jul 24 15:21 sbin
-rw-r--r-- 1 root root 1325 Mar 31 2011 siginfo.h
drwxr-xr-x 4 root root 512 Feb 2 2006 system
-rw-r--r-- 1 root root 570 Mar 30 2006 test.c
drwxrwxrwx 6 root root 2048 May 20 16:05 tftpboot
drwxrwxrwt 6 root sys 733 Sep 10 20:45 tmp
drwxr-xr-x 41 root sys 1024 Jul 27 23:43 usr
drwxr-xr-x 47 root sys 1024 Jul 27 08:45 var
dr-xr-xr-x 6 root root 512 Sep 9 14:08 vol
28
# ls -l
total 944
-rw-r--r-- 2 root wheel 786 Vas 24 2012 .cshrc
-rw-r--r-- 2 root wheel 253 Vas 24 2012 .profile
drwxrwxr-x 2 root operator 512 Kov 19 2012 .snap
-rw------- 1 root wheel 872448 Rgs 10 18:27 3dm2.core
-r--r--r-- 1 root wheel 6188 Vas 24 2012 COPYRIGHT
-rw-r--r-- 1 root wheel 78 Lap 6 2012 O
drwxr-xr-x 2 root wheel 1024 Kov 19 2012 bin
drwxr-xr-x 9 root wheel 512 Kov 26 2012 boot
drwxr-xr-x 2 root wheel 512 Kov 19 2012 cdrom
lrwxr-xr-x 1 root wheel 10 Kov 19 2012 compat -> usr/compat
dr-xr-xr-x 5 root wheel 512 Rgs 9 13:46 dev
drwxr-xr-x 2 root wheel 512 Kov 19 2012 dist
-rw------- 1 root wheel 4096 Bir 26 15:46 entropy
drwxr-xr-x 21 root wheel 2560 Rgs 9 10:46 etc
lrwxr-xr-x 1 root wheel 8 Kov 19 2012 home -> usr/home
drwxr-xr-x 3 root wheel 1536 Vas 24 2012 lib
drwxr-xr-x 2 root wheel 512 Kov 19 2012 libexec
drwxr-xr-x 2 root wheel 512 Vas 24 2012 media
drwxr-xr-x 4 root wheel 512 Rgs 9 11:19 mnt
dr-xr-xr-x 2 root wheel 512 Vas 24 2012 proc
drwxrwxrwx 15 root wheel 512 Lie 24 17:32 raid
drwxr-xr-x 2 root wheel 512 Bir 22 18:18 raid2
drwxr-xr-x 2 root wheel 2560 Kov 19 2012 rescue
drwxr-xr-x 8 root wheel 512 Rgp 4 16:55 root
drwxr-xr-x 2 root wheel 2560 Kov 19 2012 sbin
drwxr-xr-x 3 squid squid 11 Rgs 10 08:33 squid
lrwxrwxrwx 1 root wheel 11 Kov 19 2012 sys -> usr/src/sys
drwxrwxrwt 13 root wheel 1024 Rgs 10 13:18 tmp
drwxr-xr-x 21 root wheel 512 Rgs 10 13:15 usr
drwxr-xr-x 26 root wheel 512 Rgs 9 13:46 var
Directory structure – live example #1
29
Part 4Userland
???
linux login: _
31
???
linux login: simonask_
32
???
linux login: simonaskPassword: _
33
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ _
34
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ ls _
35
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ ls Maildir.tgz ports-supfileMaildir1.tgz public_htmldump.sh stable-supfile$ _
36
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ ls Maildir.tgz ports-supfileMaildir1.tgz public_htmldump.sh stable-supfile$ cd public_html _
37
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ ls Maildir.tgz ports-supfileMaildir1.tgz public_htmldump.sh stable-supfile$ cd public_html$ _
38
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ ls Maildir.tgz ports-supfileMaildir1.tgz public_htmldump.sh stable-supfile$ cd public_html$ ls –l _
39
???
linux login: simonaskPassword: Last login: Thu Sep 10 21:08:34 2012 from p1$ ls Maildir.tgz ports-supfileMaildir1.tgz public_htmldump.sh stable-supfile$ cd public_html$ ls -l-rw-r--r-- 1 simonask adm 40 Lap 17 2006 index.html
$ _
40
Simple example
$ cat > fileonetwo^D$ cat > script#!/bin/shwc –l $1^D$ chmod +x script $ ./script file 2 file$
41
Some commands
ls – list folder contents ls –l – contents printed in wide format ls –a – hidden files/folders also displayed
cd – change directorypwd – print working directorydf –h – disk free space (human readable output)rm a.txt – remove a.txtmv a.txt b.txt – rename or move a.txt to b.txtcat a.txt – concatenate file contents to stdouttail a.txt – output last 10 lines of a.txt to stdouthead a.txt – output first 10 lines of a.txt to stdoutless a.txt – interactive file content viewer
(w/scrolling)vi a.txt – powerful text editor (edit file a.txt)
42
Philosophy for non-philosophers
Small is beautiful.
Make each program do one thing well.
Build a prototype as soon as possible.
Choose portability over efficiency.
Store data in flat text files.
Use software leverage to your advantage.
Use shell scripts to increase leverage and portability.
Avoid captive user interfaces.
Make every program a filter.
43
Some more philosophy
UNIX file system is an universal space
44
Everything is file?
UNIX byte streams (files): Files and documents Folders, links Storage devices (discs, CD-ROMs, …) Interprocess communication (“pipes”,”sockets”,…) Network connections and terminals Other devices (printers, etc.)
You can handle them:Reading (read) Writing (write) Seeking (lseek) Closing (close)
45
Everything is file?
Reading from file
Think, if there’s any difference, when you read a file which is stored in local filesystem…
… or on a network disk
… or streamed from a service through a pipe
… or being written on other user’s terminal
… or created in memory by other program, … ?
It doesn’t matter. You just read the file. Using same syscalls.
46
Universal space
/usr/local/etc/
/home/simonask/unix.pdf
/mnt/cdrom/
/dev/ad0s1a
/tmp/mysql.sock
/dev/cuad0
/dev/ums0
47
Universal space in Windows?
C:\Documents and Settings\Simonas K\
E:\autorun.inf
C:\autoexec.bat
CON ?
NUL
?!
???
:-(
48
Pseudo-file systems
procfs – for process management and review
devfs – special files to access devices, …
tmpfs – temporary file system, SWAP
portalfs – a fs created by BSD, for example /p/tcp/mail.vu.lt/smtp
nullfs – allows to mount subdirectories of current FS in some other directories
sysfs – ???, http://en.wikipedia.org/wiki/Sysfs
49
Competition
Life is hard
Thank you.
50