Trong Linux, các kiểu hệ thống file bao gồm ext2, ext2fs, mà chúng ta có thể sử dụng để lưu trữ tệp tin của Linux ext3 cũng đang dần phổ biến; hệ thống VFAT cho phép truy cập file nằm tạ
Trang 1MỤC LỤC 1
PHẦN I: Giới thiệu về Linux 3
1 Lịch sử ra đời và phát triển của Linux 3
2 Các bản phân phối của Linux 3
PHẦN II: QUẢN LÍ HỆ THỐNG FILE TRÊN LINUX 5
I Cơ bản về file và thư mục 5
1 Khái niệm: 5
2 Tên file trên Linux: 6
II Các kiểu hệ thống file 7
III Gắn kết hệ thống file 10
IV Một số lệnh quản lý 15
1 Tạo thư mục 15
2 Chuyển thư mục 15
3 Copy files 15
4 Move và rename file 16
5 Xóa files và thư mục 16
V Quyền hạn đối với File 16
1 Sơ lược về quyền 16
2. Thay đổi quyền 18
3 Quyền mặc định 19
Trang 2LỜI MỞ ĐẦU
Hệ điều hành là một chương trình quản lý phần cứu máy tính Nó cung cấpnền tảng cho các chương trình ứng dụng và đóng vai trò trung gian giao tiếp giữangười dùng máy tính và phần cứng của máy tính đó Nó giúp máy tính dễ sử dụnghơn, thuận lợi và hiệu quả hơn
Tài nguyên máy tính mà điển hình là hệ cơ sở dữ liệu (Database System) cóảnh hưởng rất nhiều tới tính hiệu quả của việc sử dụng máy tính Mà trong đó hệthống các file là hệ thống chủ yếu Bởi vậy quản lí hệ thống file như thế nào có ảnhhưởng lớn và trực tiếp tới hiệu quả sử dụng máy tính Việc quản lí hệ thống fileđược xây dựng và tổ chức tùy thuộc vào từng hệ điều hành
- Sau đây nhóm chúng em xin được trình bày về vấn đề: Quản lý hệ thống filetrong hệ điều hành Linux
- Các tài liệu tham khảo:
Running Linux của nhà xuất bản O’REILLY.
Giáo trình nguyên lý hệ điều hành của nhà xuất bản Hà Nội.
The Linux Device File – System tác giả Rechard Gooch.
Giáo trình nguyên lý hệ điều hành – Trường Đại học Công Nghiệp Hà Nội,
Khoa Công Nghệ Thông Tin
Và một số trang web trực tiếp khác
Mặc dù rất cố gắng nhưng do hạn chế về thời gian, trình độ, nguồn số liệunên chắc chắn bài viết sẽ không tránh khỏi sai sót khách quan Chúng em mong thầy
và các bạn tận tình chỉ bảo để chúng em rút ra kinh nghiệm
Chúng em xin chân thành cám ơn!
Trang 3PHẦN I: TỔNG QUAN VỀ LINUX
1 Lịch sử ra đời và phát triển của Linux
Hình 1: Chim cánh cụt Tux – Biểu trưng và vật may mắn của Linux.
Linux do Linus Torvalds - một sinh viên tại trường Đại Học ở Helsinki (PhầnLan) phát triển dựa trên hệ điều hành Minix, một hệ điều hành có cấu trúc tương tựUnix với các chức năng tối thiểu được dùng trong dạy học
Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặctính nổi bật so với các hệ thống khác: Chi phí phần cứng thấp, tốc độ cao (so vớiUnix) và khả năng bảo mật tốt, độ tin cậy cao (so sánh với Windows) cũng như làcác đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp Một đặc tínhnổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm mã nguồn
mở hiệu quả Đó là một thách thức đối với sự thống trị của Microsofft Windowstrong một số lĩnh vực
Linux là một hệ điều hành mã nguồn mở (Open Source) và miễn phí dưới bảnquyền của tổ chức GNU (Gnu’s Not Unix) Mặc dù các hệ thống này thường đượcgọi là Linux nhưng tên chính xác cho các hệ thống này là Hệ điều hành GNU/Linux.Khởi đầu, Linux được phát triển cho dòng vi xử lý 386 Intel với khả năng đatác vụ Hiện tại tất cả các phiên bản của Linux đều có chung phần kernel (nhân) và
Trang 4các tính năng đặc trưng cùng với các ứng dụng mang tính chuyên dụng và phổ cậpnhư:
- Open Office: Gồm các công cụ văn phòng cơ bản tương tự như Microsoft
Office nhưng hoàn toàn miễn phí
- Mozilla Firefox: Trình duyệt web tương tự như phiên bản trên windows.
VLC: Công cụ chơi nhạc, video nổi tiếng với rất nhiều người dùng Hệ điềuhành windows
- Pidgin: Trình nhắn tin, chat hỗ trợ nhiều giao thức như Yahoo Messenger,
Google talk, MSN,
- Scim-Unikey: Trình gõ tiếng Việt rất phổ biến trên Ubuntu.
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rấtkhiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windowsnhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được hỗ trợ choLinux sẽ tăng lên
2 Các bản phân phối của Linux
Hiện tại Linux có nhiều bản phân phối khác nhau, một phần bởi vì tính chất
“mã nguồn mở” của Linux
Bảng1: Một số bản Linux phổ biến (Cập nhật tháng 10/2012)
Tên bản phân phối Phiên bản mới nhất Trang web
Trang 5PHẦN II: QUẢN LÍ HỆ THỐNG FILE TRÊN LINUX
1 Khái niệm:
Hệ thống file là một cơ sở dữ liệu các file và thư mục, được đính kèm vào thưmục gốc hoặc một thư mục bất kỳ của một hệ thống file khác đã được đính kèm
trước đó Việc đính kèm một hệ thống file được gọi là mount Mỗi phân vùng là một
hệ thống file Đĩa CD hay USB cũng là một hệ thống file Linux quản lý tất cả cácphân vùng và hệ thống file khác dưới dạng cây thư mục, có gốc là thư mục / Một hệ
thống file mà chưa được mount thì không thể truy cập được các file và thư mục trong đó Không giống như trên Windows, trên Linux không có khái niệm ổ đĩa
logic là C hay D Tất cả điều được "treo" lên một cái cây (đặt sau thư mục gốc), gọi
là "cây thư mục" Mọi thư mục khác điều là con, cháu của gốc (/)
Một số thư mục tiêu biểu như:
- /: Thư mục root, lưu ý phân biệt với thư mục home của user root (/root)!
- /bin, /sbin: Chứa các lệnh hệ thống
- /boot: Chứa kernel cùng các files hổ trợ cho kernel (System.map, initrd, ).
- /dev: Chứa các device files
- /etc: Chức các file thông tin, cấu hình hệ thống
- /home: Thư mục nhà mặc định cho các users
- /mnt hoặc /media: Chứa các mount-point cho những thiết bị removeable
- /lib: Chứa thư viện
- /usr: Tương tự như thư mục Program Files tại Windows.
- /proc: Thư mục ảo, chứa thông tin đang sử dụng của Kernel
- /var: Chứa log files và spool files
Trang 6Với hệ thống Linux, hệ thống file nằm ở các thiết bị như ổ đĩa cứng, ổ đĩa mềm,hay đĩa CD (được định dạng để lưu trữ tệp) Hệ thống file có thể được tìm thấy trên
ổ đĩa cứng, ổ đĩa mềm, đĩa CD và các phương tiện lưu trữ cho phép truy cập ngẫunhiên
Hình 2: Sơ đồ mô tả cây thư mục
2 Tên file trên Linux:
- Tên file trong Linux có thể dài tới 256 ký tự, bao gồm các chữ cái, chữ số, dấugạch nối, gạch chân, dấu chấm Nếu trong tên file có dấu chấm “.” Thì xâu con củatên file từ dấu chấm cuối cùng được gọi là phần mở rộng của tên fie
- Linux chỉ lấy 32 hay 64 ký tự đầu tiên trong tên file (tuỳ theo phiên bản Linux)
vì thế nếu 2 file chỉ khác nhau ở ký tự cuối cùng, thì trong Linux đó là 2 file có thểtrùng tên
/(root)
(root)
date sort cdrom console
dream cuncon
desktop picture bt.doc cun.jpg
Trang 7- Tên files và thư mục có thể chứa khoảng trắng và 1 số ký tự đặc biệt Một điểmcần lưu ý là Linux phân biệt chữ hoa/thường.
Các định dạng chính xác mà các tệp được lưu trữ là không quan trọng, hệthống cung cấp một giao diện chung cho tất cả các kiểu hệ thống file mà nó nhận ra
Trong Linux, các kiểu hệ thống file bao gồm ext2, ext2fs, mà chúng ta có thể sử dụng để lưu trữ tệp tin của Linux (ext3 cũng đang dần phổ biến); hệ thống VFAT
cho phép truy cập file nằm tại phân vùng Windows 95/98/ME và đĩa mềm trên
Linux; và vài kiểu hệ thống file khác, bao gồm các hệ thống file ISO 9660 được sử
dụng cho CD-ROM
Mỗi kiểu hệ thống file có định dạng cơ bản khác nhau cho việc lưu trữ dữ liệu
Tuy nhiên, khi truy cập bất kì hệ thống file trong Linux, hệ thống sẽ hiển thị các dữ
liệu như các tệp được sắp xếp thành một hệ thống các thư mục, cùng với tên người
sở hữu và nhóm nhận dạng (ID), và các đặc tính khác mà chúng ta quen thuộc.Trên thực tế, thông tin về quyền sở hữu files, quyền hạn truy cập, chỉ đượccung cấp bởi các kiểu hệ thống files mà được sử dụng để lưu trữ các tệp tin Linux.Đối với các kiểu hệ thống file không lưu trữ thông tin này, các trình điểu khiển nhânKernel được sử dụng để truy cập các hệ thống tệp tin “làm giả” thông tin
Bảng 2: Liệt kê các kiểu filesystem được hỗ trở bởi nhân Linux phiên bản 2.4.10
Các kiểu hệ thống file của Linux
Second Extended
filesystem ext2 Hệ thống file của Linux phổ biến nhất
Reiser filesystem Reiserfs Một hệ thống file nhật kí cho Linux
Third Extended
filesystem
ext3 Một kiểu hệ thống file ghi chép cho Linux Có
tính tương thích ngược với ext2
Trang 8Minix filesystem Minix Hệ thống file gốc của Minix, ít khi được sử dụngROM filesystem Romfs Một hệ thống file chỉ đọc, chủ yếu sử dụng cho
bộ nhớ RAMCRAM filesystem Cramfs Một hệ thống file nén và chỉ đọc, thường được sử
dụng trên PDANetwork file system NFS Cho phép truy cập tệp từ xa trên mạng
UMSDOS
filesystem Umsdos Cài đặt Linux trên một phân vùng MS-DOSDOS-FAT
filesystem
Msdos Truy cập file của MS-DOS
VFAT filesystem Vfat Truy cập file của Windows 95/98
NT filesystem Ntfs Truy cập file của Windows NT
/proc filesystem Proc Cung cấp thông tin tiến trình cho ps
Device filesystem Devfs Một cách đại diện cho các tệp trong thư mục /devISO 9660 filesystem iso9660 Sử dụng bởi đa số đĩa CD
Joliet filesystem iso9660 Mở rộng của hệ thống file ISO 9660, có thể đọc
tên file UnicodeUDF filesystem Udf Hệ thống file cho CD-ROM mới nhất
System V filesystem Sysv Truy cập file từ những biến thể của System VCoherent filesystem coherent Truy cập file từ Coherent
UFS filesystem Ufs Truy cập tệp từ hệ thống file UFS, như trên
SunOS, BSD hay Tru64 UnixBFS filesystem Bfs Truy cập file trên SCO Unixware
EFS filesystem Efs Truy cập file trên những phiên bản Irix cũ
ADFS filesystem Adfs Truy cập file từ phân vùng Acorn
AFFS filesystem Affs Truy cập file từ phân vùng hệ thống file chuẩn
của hệ điều hành Amiga
filesystem Hfs Truy cập file từ Apple Macintosh
QNX4 filesystem qnx4 Truy cập file từ phân vùng QNX4
JFFS filesystem Jffs Một hệ thống file cho các thiết bị dựa trên Flash
Trang 9Novell filesystem Ncpfs Truy cập file từ một máy chủ Novell qua mạngSMB filesystem Smbfs Truy cập file từ một máy chủ Windows qua
mạngCoda filesystem Coda Một hệ thống file mạng tiên tiến, tương tự NFSRAM filesystem Ramfs Một hệ thống file cho bộ nhớ RAM
Temporary
filesystem
Tmpfs Một kiểu hệ thống file khác được giữ trong RAM
Mỗi loại tệp tin hệ thống có thuộc tính riêng và giới hạn của nó
Hầu hết các công việc với Linux, ta sẽ sử dụng Second Extended (ext2) hỗ trợ
256 ký tự tên tệp tin, kích thước 32 Terabyte cho một file và nhiều điều khác
Hoặc Reiser (reiserfs) hay Third Extended (ext3) Trước đó hệ thống Linux sử dụng Extended và hệ thống tập tin Minix Minix được sử dụng vì Linux ban đầu được biên soạn qua Minix và nó đã được đơn giản để bổ sung trong các hạt nhân ban đầu.
Hệ thống file Xia và Xenix có sẵn trong hạt nhân Linux cũ và không còn được
hỗ trợ Sự khác biệt chính giữa các hệ thống tệp tin Ext2 và Reiser là Reiser đượclưu lại nhật kí dữ liệu Lưu nhật kí dữ liệu là một kỹ thuật tiên tiến theo dõi nhữngthay đổi đối với một hệ thống file, giúp nó dễ dàng hơn và nhanh hơn để khôi phụclại một hệ thống tập tin bị lỗi Một kiểu hệ thống file lưu nhật là Ext3, sự kế thừacủa Ext3 Điều này có lợi thế là tính tương thích ngược với Exxt2
Hệ thống file ROM được sử dụng tại Ramdisks trong việc cấu hình hệ thống, thời gian khởi động, hay thậm chí trong EPROMS Hệ thống tập tin Cram cũng được
sử dụng cho ROMs và có nén nội dung của nó Điều này chủ yếu dành cho các thiết
bị nhúng, nhưng thiết bị mà không gian nhớ được đặt lên hàng đầu
Hệ thống tập tin UMSDOS được sử dụng để cài đặt Linux dưới một thư mục riêng của một phân vùng MS-DOS hiện có mà không cần chia lại phân vùng Hệ thống file DOS-FAT được sử dụng để truy cập MS-DOS các tập tin trực tiếp Tập tin trên phân vùng được tạo ra bởi Windows 95 hoặc 98 có thể được truy cập thông qua
Trang 10VFAT, trong khi hệ thống tập tin NTFS cho phép truy cập hệ thống tập tin Windows
NT HPFS được sử dụng để truy cập vào hệ thống tập tin OS/2.
Với việc mở rộng CVF-FAT cho DOS-FAT, nó có thể truy cập phân vùng đã
được nén với DoubleSpace/DriveSpace từ Microsoft hoặc Stacker từ Stac.
/proc là một hệ thống tập tin ảo, không có không gian đĩa trên thực tế có liên
quan với nó Devfs cũng là một hệ thống tập tin ảo, thay thế cho các thư mục /dev
hiện tại và nó được tạo ra tự động hoặc theo yêu cầu của nhân Linux Kernel
Các hệ thống file ISO 9660 hạn chế chiều dài tên tập tin và thông tin lưu trữ
về mỗi file được sử dụng bởi hầu hết các đĩa CD Tuy nhiên, trong Linux hầu hết các
đĩa CD cung cấp các Rock Ridge Extension tới ISO 9660, cho phép các trình điềukhiển hệ thống file nhân Kernel để ấn định độ dài tệp tin, quyền sở hữu, và quyềnhạn cho mỗi file
Tiếp theo, Linux có sáu loại hệ thống file cho các nền tảng khác: UFS, EFS,
BFS, System V và Coherent hỗ trợ các định dạng được phổ biến trên những nềntảng để cho phép khởi động kép và tương tác khác Nếu có hệ thống tập tin được tạo
ra trong một trong những định dạng theo một hệ điều hành khác, chúng ta sẽ có thể
truy cập các tệp tin đó từ Linux.
Cuối cùng, có một số lượng lớn các kiểu hệ thống file để truy cập dữ liệu trên
những phân vùng, chúng được tạo ra bởi hệ điều hành khác DOS và Unix Những hệ
thống file hỗ trợ hệ thống Acorn Filing Disk (ADFS), các hệ thống file củaAmigaOS (không hỗ trợ đĩa mềm ngoại trừ trên AmigasOS), Apple Mac HFS, và hệthống file QNX4 Hầu hết hệ thống file chuyên dụng chỉ có ích trên những kiến trúcphần cứng nhất định
Gán kết (mount) hệ thống file:
- Mọi hệ thống file trên Linux đều phải mount mới có thể sử dụng được.Mount là thao tác gán kết một hệ thống file vào một thư mục nào đó (mount point)
Trang 11trong cây thư mục gốc / Mọi truy cập đến thư mục mount point được hiểu là truycập vào hệ thống file đã mount.
Trong quá trình boot, lệnh mount sẽ được gọi để gán kết tất cả các hệ thống filechỉ định trong file / etc / fstab Điều này làm cho các tệp tin trên hệ thống file xuấthiện như thể chúng thường trú trong thư mục đó, và cho phép truy cập chúng
Định dạng của lệnh mount như sau:
mount -t type device mount-point
• type là tên loại hệ thống file được liệt kê trong Bảng 1
• device là thiết bị vật lý mà hệ thống file thường trú (tệp tin thiết bị trong /dev)
• mount-point là thư mục mà trên đó để gắn kết các hệ thống file
Chúng ta phải tạo thư mục trước khi tiến hành mount.
Ví dụ, nếu chúng ta có một Second Extended filesystem trên phân vùng /dev/hda2
và muốn gắn kết trên thư mục /mnt, sử dụng câu lệnh:
mount -t ext2 /dev/hda2 /mnt
Mount partition Win 9x :
Mount –t vfat / dev / hda1 / mnt / win
• Giả sử / dev / hda1 là partition cài windows 9x (ổ C)
• Đọc ghi trong thư mục / mnt / win như trên ổ đĩa C : của Windows 9x
Mount ổ đĩa USB :
Mount / dev / sda1 / mnt / usb
• / dev / sda1 là tên thiết bị USB 1 (khe cắm đầu tiên)
• Trường hợp máy đã có / dev / sda là thiết bị SCSI HDD, tên thiết bị USB sẽ
là / dev / sdb
Mount ổ đĩa SCSI vào thư mục / mnt / temp :
Trang 12mount / dev / sda1 / mnt / temp
• / dev / sda1 là partition1 của ổ đĩa SCSI HDD 1
Với lệnh mount, mount point có thể là bất cứ thư mục nào, tuy nhiên thôngthường nên đặt trong / mnt
Để gắn kết các hệ thống file với tùy chọn chỉ đọc Tất cả việc ghi vào hệ thốngfile sẽ gặp lỗi “từ chối do quyền hạn” :
mount: block device /dev/cdrom is write-protected, mounting read-only
Chúng ta nên sử dụng lệnh:
mount -t iso9660 -r /dev/cdrom /mnt
Điều này sẽ là cần thiết nếu chúng ta đang cố gắng gắn kết một đĩa mềm cóbảo vệ chống ghi
Một biến thể hữu ích của việc sử dụng mount là mount -a, trong đó gắn kết tất
cả các hệ thống file được liệt kê trong /etc/fstab trừ những hệ thống file được đánh dấu với các tùy chọn noauto.
Nghịch đảo của việc gắn kết hệ thống file là unmounting (ngắt gắn kết) Ngắtgắn kết hệ thống file có hai tác dụng: đồng bộ bộ đệm của hệ thống với những nộidung thực tại của hệ thống file trên đĩa, và làm cho hệ thống file không còn khảdụng từ điểm gắn kết của nó
Để ngắt gắn kết bất kì hệ thống file nào được gắn trên một thư mục cụ thể, sử
Điều quan trọng cần lưu ý là phương tiện di động, bao gồm đĩa mềm và đĩa
CD, không nên bỏ ra khỏi ổ đĩa hoặc đổi chỗ cho ổ đĩa khác trong khi gắn kết Điềunày làm cho thông tin của hệ thống trên thiết bị không đồng bộ với những gì thực sự
ở đó và có thể dẫn đến những rắc rối Khi muốn chuyển đổi đĩa mềm hoặc đĩa
CD-ROM, ngắt gắn kết nó trước, sử dụng lệnh umount, cho đĩa mới vào, và sau đó gắn