Linux – HĐH ổn định và mạnh : Được kiểm tra bởisố lượng lớn người dùng Trang 6 Một vài khuyết điểm Khó tìm driver Hỗ trợ cộng đồng – Không đảm bảo 100% Trang 7 Windows vs Linux1.Wind
Trang 1NHẬP MÔN LINUX
Trang 4OS usage – 07/2013
Trang 5Tại sao sử dụng Unix
1. Linux – HĐH ổn định và mạnh : Được kiểm tra bởi
số lượng lớn người dùng
2. Linux được trang bị một số lượng lớn phần mềm :
không chỉ riêng về phía lập trình viên mà còn dành cho người sử dụng
3. Linux thường xuyên được cập nhật để chống lại lổ
Trang 6Một vài khuyết điểm
Khó tìm driver
Hỗ trợ cộng đồng – Không đảm bảo 100%
Không phải là 1 hệ thống Linux duy nhất
Trang 7Windows vs Linux
1 Windows dễ dàng cài đặt :
2 Windows là miễn phí :
3 Windows thường xuyên nhiễm virus :
4 Windows được dùng tại các công ty, nên chúng ta phải học nó :
5 Linux chỉ dùng để lập trình trên Console :
6 Linux không hỗ trợ các chương trình của Windows :
7 Linux nhanh hơn Windows :
Đúng và Sai Sai
Đúng
Đúng và Sai Đúng và Sai
Đúng và Sai Đúng và Sai
Trang 8Lịch sử phát triển unix
1. 1962 : Time-sharing (CTSS) được phát triển tại MIT
và rất thành công
2. 1965 : MIT + Bell Labs + General Electric :
MULTICS (MULTiplexed Information & Computing Services) mục đích thương mại nhưng không thành công
3. 1969 : Ken Thompson và Dennis Ritchie viết 1 phiên
bản nhân (kernel ) đầu tiên cho 1 HĐH trong phòng thí nghiệm BELL, và đặt tên là UNIX (lấy cảm hứng
từ MULTCICS)
4. Năm 1970 : Dennis Ritchie tạo ra ngôn ngữ C, và đã
viết lại UNIX bằng C
Trang 9Lịch sử phát triển Unix
1. 1974 : xuất bản The Unix Timesharing System,
Comm Ritchie & Thompson nhận giải thưởng ACM Turing Award năm 1984
2. 1980 : BSD – Berkerly Systems Distribution
3. 1987 : Minix – Unix được dùng trong giáo dục
4. 25/08/1991 : Linus Torvalds cho ra đời Linux
version 0.01
5. 01/1992, Linus cho ra version 0.12 với shell
và C compiler
Trang 10Lịch sử phát triển Unix
Trang 11Sở hữu Unix
Các hãng sở hữu UNIX bản quyền Các hãng sở hữu UNIX miễn phí
OPEN GROUP sở hữu :
• Tên gọi UNIX ®
• Chuẩn Single UNIX Specification
Trang 12Đặc điểm chính của HĐH Linux
1. Nhiều tiến trình (process)
2. Truy cập nhiều người dùng
3. Swap bộ nhớ lên đĩa
4. Nạp module thực hiện khi cần
5. Cùng sử dụng chương trình
6. Thư viện chung
Trang 13Đặc điểm chính của HĐH Linux
1. Bộ đệm động của đĩa
2. System VIPC
3. Hỗ trợ các định dạng hệ thống tập tin khác nhau
4. Khả năng hỗ trợ mạng
5. Khả năng chạy chương trình của HĐH khác
6. Làm việc trên các phần cứng khác nhau
Trang 14CÁC PHIÊN BẢN LINUX
Nhiều phiên bản Linux hiện đang tồn tại
Số hiệu phiên bản theo định dạng : X.YY.ZZ
• Nếu YY là số chẵn : phiên bản ổn định
• Nếu YY là số lẻ : phiên bản thử nghiệm
• Chú ý phân biệt số phiên bản của hệ điều hành
(Linux kernel) với phiên bản của các phân phối (ví
dụ RedHat 9.0 với kernel Linux 2.4.5-15)
Trang 15Bản phân phối Linux (LINUX DISTRIBUTION)
Trang 16CÀI ĐẶT LINUX
hoangvinh@free.fr
Trang 17Cài đặt HĐH LINUX - Fedora
Trang 181 Sửa cấu hình máy để boot từ ổ CDROM
2 Đặt đĩa số 1 vào ổ CDROM và khởi động lại máy
3 Lựa chọn một phương pháp cài đặt, ví dụ text
4 Chọn kiểu cài đặt , server hay máy trạm hay custom
5 Chia lại ổ đĩa cứng (Patitions)
6 Lựa chọn các gói sẽ cài đặt (RPM)
7 Linux tự làm việc
8 Cấu hình lại nếu có yêu cầu hiển thị trên màn hình
Tiến trình cài đặt bình thường như cài đặt HĐH Windows
Trang 19Màn hình đăng nhập FEDORA
Trang 20CÀI ĐẶT FEDORA TRÊN MÁY ẢO
Máy chính cài bộ cài đặt VMWare Workstation
Trên HĐH đang sử dụng : XP, 7
Máy ảo : Cài đặt thông qua File DVD Fedora ISO
VMWare Player : Chương trình chạy (Play)máy ảo
Yêu cầu lớp ở lớp thực hành :
Cài đặt Fedora 17 trên máy ảo bằng file ISO
Đặt username theo dạng : tên.”chữ cái đầu họ và chữ
lót”.MSSV
Trang 21CÀI ĐẶT FEDORA TRÊN MÁY ẢO
Ví dụ : Trần Văn An MSSV : 0910203040
Username đặt là : antv0910203040
Lưu cài đặt máy ảo và chép vào USB (khuyến cáo 8GB trở lên)
Trang 22CÀI ĐẶT NHIỀU HỆ ĐIỀU HÀNH CÙNG
LINUX
Mục đích : tận dụng thế mạnh của nhiều HĐH khác nhau để lập trình, giải trí.
Song Song : Linux + Win XP/Win 7
Chú ý : Backup dữ liệu trước khi cài đặt
Trang 23Partition và phân chia partition
23
1. Để dễ quản lý HDD , ta chia nó ra thành nhiều vùng khác nhau Mỗi vùng như thế ta gọi là một partition
2. Số lượng partition được giới hạn trên một ổ cứng
- Có tối đa là 4 primary partition
3. Có duy nhất một active partition Để chia nhiều hơn bốn partition,
ta cần tạo một extended partition (cái này là primary), và trong extended partition này, ta sẽ tạo các partition gọi là
logical partition Số lượng logical partition là không giới
hạn Nhưng bạn nên nhớ rằng logical partition không thể là một active partition được
Trang 25Khái niệm Partition và phân chia Partition
25
Phân chia partition
Dùng “partition magic” để phân chia HDD thành nhiều
partitions khác nhau và theo sơ đồ như sau để cài chung Linux, Windows trên đó:
Partition label , Kiểu Size Status log/pri hda :
hda1 Windows FAT32 > 4GB active primary
hda2 /boot ext3 >= 100MB primary
hda5 / (root) ext3 > 3GB logical
Trang 26PHÂN VÙNG ĐĨA CỨNG
Mỗi HĐH sẽ cài đặt trên 1 (hoặc nhiều) phân vùng riêng biệt
Boot Sector : Mảng dữ liệu chứa thông tin về partition,
thường ở sector đầu tiên của partition
MBR(Master Boot Record) : Khi khởi động từ đĩa cứng
BIOS cũng tìm đến sector đầu tiên của đĩa cứng
26
Trang 27Khái niệm Bootloader
27
1. Với Microsoft Windows 9x trở về trước, khái niệm bootloader
chỉ là đặt 3 tập tin command.com, msdos.sys, io.sys
vào bootsector của ổ C:\ - partition đầu tiên trên HDD, rồikhi boot thì nạp chúng
2. Cải tiến thêm một chút so với Win9x, WinNT, Win2K(XP),
Win7 có trình bootloader riêng Hệ thống này bao gồm 3 files: ntldr , NTDETECT.COM , boot.ini
3. Thông tin về hệ điều hành sẽ đặt trong boot.ini và
bootloader sẽ đọc nội dung file này để detect (dò tìm) hệđiều hành và load chúng.Do đó bạn có thể cài chung
WinNT(XP) và Win9x trên một HDD
Trang 28Khái niệm Bootloader
28
Với Linux thì khác: có 2 bootloader phổ biến là
LILO (Linux Loader) và GRUB (Grand Unified
Bootloader) Cấu hình và chương trình được đặt trong
/boot trên parttion của HDD Ngoài ra còn có một bản link từ /etc/LILO.conf hay
/etc/GRUB.conf lưu thông tin về hệ điều hành trên máy
LILO và GRUB đều có thể load windows OS hay nói
chính xác hơn là chuyển quyền load boot program cho boot sector nằm trên một partition nào đó Vì vậy, với NT bootloader hay LILO hoặc GRUB, ta có thể cài chung Linux và Windows trên cùng một HDD.
Trang 29Đối với Linux, không có khái niệm các ổ đĩa khác nhau Toàn bộcác thư mục và tập tin được “gắn” lên (mount) và tạo thành một hệ
Trang 30Các thư mục chính trong Linux
• / thư mục gốc root
• /bin /usr/bin/usr/local/bin : thư mục chứa chương trình
• /boot : chứa nhân vmlinuz (phiên bản kernel ví dụ :
vmlinuz-2.2.20) và các file khởi động
• /dev : thư mục chứa các file đặc biệt dùng để giao tiếp các thiết bị ( HDD, sound card, VGA…)
• /etc : file cài đặt cấu hình của hệ thống và các script
• /etc/rc.d scripts khởi động hệ thống
• /etc/X11 scripts cài đặt máy chủ X
• /etc/init.d script kiểm tra máy chủ
• /etc/cron.d mô tả các việc theo thời gian thực hiện
• /etc/skel file sao chép trong thư mục cá nhân của user mới
• /home thư mục cá nhân của user
Trang 31Các thư mục chính trong Linux
/lib thư viện và module của nhân Linux
/mnt thư mục mount các thiết (cd, disk, nfs ) (dưới Debian tồn tại thư mục /cdrom et /floppy, dưới thư mục gốc)
/opt thư mục cài đặt các ứng (như starOffice, java )
/root thư mục cá nhân của super-user root
/sbin các file thực thi bởi admin hệ thống
/tmp lưu trữ các file tạm
/usr chứa các chương trình được truy cập bởi tất cá các user
/var biến dữ liệu liên quan đến máy (dữ liệu in ấn, theo dõi truy
Trang 32QUẢN LÝ LINUX
hoangvinh@free.fr
Trang 33 Nhân (kernel) được xem như là trái tim của hệ điều hành Nó được nạp vào RAM lúc khởi động và duy trì hệ thống đến khi tắt máy.
Hầu hết Linux kernel được xây dựng như một tập hợp của các module
Các module cần thiết có thể được biên dịch vào hạt nhân trong lúc xây dựng nó.
Kernel Linux
Trang 34 Linux là hạt nhân động, nó có thể “nạp” hay “giải phóng” các module trong lúc vận hành mà không cần phải khởi động lại hệ thống.
Dựa vào những đặt điểm trên ta có thể nói: Linux có thể vận hành được rất nhiều thiết bị một cách dễ dàng.
VD: Để vận hành được thiết bị mới nhà phát triển
chỉ cần “port” module liên quan đến thiết bị để
kernel nhận dạng thiết bị mới.
Kernel Linux
Trang 35• Phiên bản Linux Kernel đầu tiên là 0.01
• Linux Torvalds công bố lần đầu tiên trên Internet
Trang 36Các thành phần chính của Kernel Linux
36
Linux kernel bao gồm 5 subsytems chính:
Quản lý các tiến trình (The Process Manager)
Quản lý bộ nhớ (The Memory Manager)
Hệ thống tập tin ảo (VFS)
Giao tiếp mạng (Network Interface)
Inter-Process Communication Interface.
Để vận hành được các phần trên , chương trình người dùng cần
phải ra các lời gọi hệ thống “System call”.
Trang 38MỘT SỐ LỆNH CƠ BẢN TERMINAL LINUX
hoangvinh@free.fr
Trang 39Giao diện người dùng
Giao diện người dùng IHM cho phép user giao tiếp với máy
Shell là một phần của HĐH cho phép người dùng giao tiêp với máy
Có 2 loại IHM
GUI ( Graphical user interface)
CLI (Command line interface)
Trang 40Làm quen với Terminal
Từ Systems Chọn Terminal
Trang 41Root và Su
41
• Người dùng cao cấp nhất (root user) ở GNU/Linux là superuser.
Trong quá trình cài đặt Fedore không dùng quyền root mà giao quyền quản trị hệ thống cho người dùng bằng cách dùng lệnh su
•Tài khoản người dùng đầu tiên, trong quá trình cài đặt Ubuntu, sẽ
được gắn quyền su.
•Người cài đặt hệ thống Fedora sẽ có khả năng tạo ra tài khoản
người dùng mới, cũng như giao quyền sudo thông qua ứng dụng
quản lý người dùng và nhóm người dùng Users and Groups
•Khi cần thực hiện một chương trình với quyền root, sudo sẽ hỏi
password và sẽ kiểm tra user được giao quyền chạy chương trình
sudo hay không.
•Đăng nhập vào root : $su login
Trang 42Dùng trình sudo trong terminal :
- $su <câu lệnh định thực hiện>.
Ví dụ : $ su root
- Nhấn phím “Enter”,
- sudo sẽ hỏi password của user
Sudo sẽ nhớ lại password của user trong một thời gian nhất
định Chức năng này cho phép user có quyền sudo đỡ phải nhập
password của mình nhiều lần khi phải thực hiện một loạt câulệnh quản trị hệ thống một cách liên tiếp
Lưu ý : Mỗi lần thực hiện các công việc quản trị hệ thống,
có nguy cơ phá hỏng hệ thống nếu làm sai !
Root và Sudo
Trang 43Một số lệnh cơ bản - Các phím tắt
• CTrL+C Kết thúc chay CT
• CTrL+q
• CTrL+x
• Up/Down Di chuyên về lệnh trước /sau đó
• TAB : gõ tắt tên tập tin, thư mục
Trang 44Các lệnh thao tác trên hệ thống tập tin
Kí tự Chức năng
*?[ ] Kí tự đại diện hay theo mẫu
& Chạy ứng dụng ở chế độ nền (background)
; Dấu phân cách nhiều lệnh trên một dòng lệnh
> Định hướng dữ liệu xuất ra file
< Định hướng dữ liệu nhập từ file
>> Định hướng dữ liệu xuất ra cuối file nếu file đã tồn tại
| Định hướng dữ liệu xuất là dữ liệu nhập cho lệnh tiếp theo
$ Sử dụng biến môi trường
Trang 45Ký tự đại diện : *,? , []
Ký tự * cho phép thay thế một chuỗi bằng *
Trang 46Ký tự đại diện : *,? , []
Ký tự « ?» cho phép thay thế để tìm kiếm
Trang 47Ký tự đại diện : *,? , []
Ký tự « [] » dùng để thay thế tập hợp ký tự riêng lẻ, có thể
sử dụng dấu - để liệt kê một khoảng ký tự liền nhau
Trang 48Một số lệnh cơ bản
Lệnh uname : cho phép xem phiên bản hệ thống
Trang 49 $ ls: Hiển thị tên tập tin và thư mục con trong một thư mục.
Một số Tùy chọn:
-a: hiển thị tất cả kể cả tập tin ẩn
-F: puts a / after directories, an * after executables, and an @ after links
-l: hiển thị thông tin đầy đủ
-R: hiển thị nội dung của thư mục con
-s: hiển thị kích thước tập tin
Một số lệnh cơ bản
Trang 50Một số lệnh cơ bản
Lệnh man : tra cứu ý nghĩa lệnh
Lệnh halt : tắt hệ thống
Lệnh shutdown : tắt HT
Trang 51Một số lệnh cơ bản
Lệnh cal : hiển thị lịch
Lệnh date : hiển thị ngày
Lệnh who : hiển thị danh sách các user
Lệnh echo : hiển thị 1 tin nhắn 1 biến
Trang 52Một số lệnh cơ bản
cp : copy 1 file hay thư mục
mv : move hay rename 1 file
rm : xóa 1 file
unlink: xóa 1 file
mkdir : tạo 1 thư mục
rmdir : xóa 1 thư mục
pwd : hiển thị thư mục đang làm việc của user
top : cho biết thông tin chi tiết chương trình đang chạy
uptime : cho biết thời gian load hệ thống
Trang 53Một số lệnh cơ bản
cd : Thay đổi thư mục làm việc
$cd
$cd
Trang 54Một số lệnh cơ bản – Xem file
1. cat : xem nội dung file.
2. Ví dụ : $cat tailieu1.txt vanban.doc >tonghop.doc
3. more : hiển thị thêm thông tin.
4. less : hiển thị file 1 cách tương tác.
5. ps : Xem tất cả cá tiến trình đang hoạt động
6. kill : hủy bỏ tiến trình với ID tương ứng
7. clear : xóa màn hình
8. passwd : thay đổi password (nhập password cũ và
password mới)
Trang 55Một số lệnh cơ bản
1. du : Dung lượng xấp xỉ thư mục
2. wc : Số dòng, số ký tự của 1 file
3. less foo.txt : hiển thị nội dung file foo.txt ra màn hình Terminal
4. cp foo.txt bar.txt : copy file foo.txt ra bar.txt
5. mv foo.txt hoge.txt : đổi tên file foo.txt thành hoge.txt
6. mv bin sbin : đổi tên folder bin thành sbin
7. rm text.txt : xoá file text.txt
8. rm -r bin : xoá thư mục bin
9. rm -rf * : Xoá tất cả mọi thứ ở thư mục hiện hành mà không cần
xác nhận lại ( Cẩn thận lệnh này)
10. ln -s foo.txt bar.txt : tạo bar.txt links đến text.txt
11. touch : tạo tập tin
Trang 56Một số lệnh cơ bản
Quan sát tiến trình GUI : Main menu|system
tools|system monitor
$ps -ax | more Các process đang thực thi
$pstree process in a tree format
Trang 57Ví dụ : Sao chép tập tin : ~/]$cp <nguồn> <đích>
57
Trang 58Xóa tập tin : /]$rm <tập tin>
Tạo tập tin : /]$touch <“tên tập tin”> 58
Trang 59Xem nội dung tập tin : cat , less
59
Trang 60Lệnh more dùng với “|” để xâu chuỗi
60
Trang 61 Main menu|Home
Một số lưu ý : “/” Root directory
−$pwd Thư mục làm việc
−$locate sapa.sxw Tìm file
Hoặc Main menu | Seach for file
Các options của lệnh ls có thể tham khảo bằng lệnh
$man ls
Sử dụng file system bằng GUI
Trang 63Duyệt tìm tập tin
Sử dụng lệnh locate tìm kiếm đơn giản, thực
thi nhanh Ví dụ tìm các file có tên bắt đầu
bằng chuỗi “test” và kết thúc bởi 1 số từ 0-9
#locate test[0-9]
Trang 64• Sử dụng lệnh locate tìm kiếm đơn giản, thực thi nhanh Ví dụ tìm các
file có tên bắt đầu bằng chuỗi “test” và kết thúc bởi 1 số từ 0-9
64
• Sử dụng lệnh find : #find –name <tên file>
Trang 65Dùng lệnh grep để tìm một chuỗi trong tập tin
$sudo updatedb
$grep –L “string” <tên file>
65
Trang 66 Tìm đường dẫn đến thư mục hiện hành
#echo $path
Lệnh tìm location của chương trình :
#which ifconfig
#locate ipconfig
Trang 67Kích thước tập tin
Xem kích thước tập tin bằng lệnh ls -l
Xem kích thước thư mục bằng lệnh
du -sh
67
Tên tập tin
• Tên tập tin có thể có khoảng trống (space)
• Sử dụng tên tập tin có khoảng trống trong dòng lệnh:
– Đưa tên tập tin vào ngoặc:
$ mkdir “a b c”
– Sử dụng ký tự \:
$ cd a\ b\ c
– Sử dụng phím TAB
Trang 68Xóa thư nục không rỗng (not empty)
68
Trang 69Một số lệnh nén tập tin trong Terminal
1. Nén tập tin chuẩn gzip: #gzip tên_tập_tin
2. Nén 'thư mục' vào 'tên.tar.gz‘: #tar cvfz tên.tar.gz tên_TM
3. Giải nén 'tập_tin.gz‘ : #gunzip tập_tin.gz
4. Nén tập tin 1, 2 vào tên.tar: # tar cvf tên.tar tập_tin_1
tập_tin_2
5. Giải nén các tập tin có trong tập tin 'tên.tar : #tar xvf tên.tar
6. Giải nén các tập tin có trong tập tin 'archive.tar.gz‘ : # tar jxvf
tên.tar.bz2
7. Nén 'tập tin' với chuẩn bzip : #bzip2 tên_tập_tin
8. Giải nén 'tên_tập_tin.bz2‘ : #bunzip2 tên_tập_tin.bz2
69
Trang 70QUẢN LÝ TÀI KHOẢN
NGƯỜI DÙNG VÀ NHÓM
hoangvinh@free.fr
Trang 71Nội dung
Khái niệm quản trị người dùng
Fedora User Manager
Cơ chế lưu trữ thông tin tài khoản người dùng
Các lệnh quản lý người dùng
Một số mô hình phân quyền