- Thư mục /tmp : Thư mục này được rất nhiều chương trình trong Linux sử dụng như một nơi lưu các tập tin tạm thời.. Có rất nhiều tập tin khác nhau trong Linux, nhưng bao giờ cũng tồn tại
Trang 1Đồ án Hướng dẫn cơ bản Linux
Trang 2
Mục lục
Chương I: Giới thiệu về Linux 4
1.1Sơ lược về Linux 4
1.1.1 Giới thiệu về hệ điều hành Unix. 4
1.1.2 Giới thiệu về hệ điều hành Linux 5
1.2 Tính năng của Linux .7
1.3 Vấn đề bản quyền 8
1.4 So sánh Linux và các hệ điều hành khác 9
1.4.1 So sánh Linux với Windows 95, Windows 98 .9
1.4.2 So sánh Linux với Windows NT .10
1.5 Yêu cầu về phần cứng .11
Chương II : các lệnh Linux cơ bản 14
2.1 Các phương thức hoạt động của dòng lệnh 14
2.2 Trang Man 15
2.3 Các quy ước 16
2.4 Các lệnh cơ bản trong Linux .16
2.4.1 Thư mục và lệnh về thư mục .16
2.4.1.1 Một số thư mục đặc biệt 16
2.4.1.2 Các lệnh chính liên quan đến thư mục .18
2.4.2 Tập tin và các lệnh về tập tin 20
2.4.2.1 Các kiểu tập tin trong Linux 20
2.4.2.2 Các lệnh về tập tin 21
2.4.3 Lệnh về Destop 24
2.4.4 Lệnh về trình báo màn hình .25
2.4.5 Các lệnh liên quan đến tài khoản người dùng .25
2.4.5.1 Các lệnh liên quan đến người dùng 25
2.4.5.2 Thay đổi thuộc tính người dùng .26
2.4.5.3 Xoá bỏ một người dùng 27
2.4.6 Các lệnh liên quan đến nhóm người dùng 27
2.4.7 Các lệnh khác có liên quan đến người dùng .28
2.4.8 Các lệnh liên quan đến quản lý thiết bị 30
2.4.9 Các lệnh về phân quyền 32
2.5 Shell 33
Chương III: samba 37
3.1 Giới thiệu tổng quan 37
3.2 Cài đặt 37
3.3 cấu hình 38
Trang 33.3.2 cấu hình Sharing Setting 42
3.4 Chia sẻ file 43
3.5 Kiểm tra cấu hình vừa thiết lập 44
3.5.1 Kiểm tra bằng công cụ Testparm 44
3.5.2 Kiểm tra bằng công cụ smbstatus 45
3.6 Chạy samba server 46
3.6.1 Sử dụng câu lệnh smbclient 47
3.6.2 Truy cập từ máy Windows 49
Chương IV: Squid proxy server 50
4.1 Tầm quan trọng và phương thức hoạt động của Squid cache 50
4.2 Cài đặt 52
4.3 Tập tin cấu hình /etc/squid/squid.conf 52
4.4 Cấu hình các tùy chọn cơ bản 53
4.5 Access control list 54
4.6 Khởi động squid 56
Chương V: Cấu hình WEB SERVER 58
5.1 Cài đặt apache, php, mysql 58
5.1.1 Download và cài đặt Apache 58
5.1.2 Download và cài đặt php 59
5.1.3 Download và cài đặt Mysql 60
5.2 Cấu hình Apache cơ bản 63
5.3 Cấu hình bảo mật apache 67
5.3.1 Giới hạn địa chỉ ip .67
5.3.2 Giới hạn truy cập theo tài khoản sử dụng 69
Chương VI: Bảo mật với Firewall, ip tables 78
6.1 FireWall 78
6.1.1 Định nghĩa 78
6.1.2 Chức năng 78
6.1.3 Cấu trúc của FireWall 78
6.1.4 Các thành phần của FireWall 79
6.1.4.1 Bộ lọc packet (Packet filtering router) 79
6.1.4.2 Cổng ứng dụng (application-level getway) 80
6.1.4.3 Cổng mạch (circuit-Level Gateway) 81
6.1.5 Những hạn chế của firewall 82
6.2 IpTables 82
6.2.1 Tổng quan về iptables 82
6.2.2 Bảng filter 83
6.2.3 Bảng nat 84
Trang 46.2.5 Cấu hình iptables 87
6.2.5.1 Cú pháp cơ bản của iptables 87
6.2.5.2 Các lệnh của iptables 88
6.2.5.3 Các điều kiện trong luật 90
6.2.5.3.1 Nhóm các điều kiện chung 90
6.2.5.3.2 Nhóm các điều kiện ẩn 92
6.2.5.3.3 Nhóm các điều hiện hiện 93
6.2.5.4 Các hành động trong luật 95
6.2.5.4.1 user-defined-chain 95
6.2.5.4.2 DROP 96
6.2.5.4.3 REJECT 96
6.2.5.4.4 RETURN 96
6.2.5.4.5 SNAT 96
6.2.5.4.6 MASQUERADE 97
6.2.5.4.7 DNAT 98
6.2.5.5 Các ví dụ 99
Tài liệu tham khảo 103
Trang 5Chương I: Giới thiệu về Linux
1.1Sơ lược về Linux
Năm 1964, Bell Labs, MIT & General Electric phát triển một hệ điều hành gọi là MULTICS(Multiplexed Information and Computing System) Sau đó năm
1969, Ken Thompson (một lập trình hệ thống của Bell labs) nghĩ rằng ông ta có thể làm một hệ điều hành tốt hơn Vì vậy, ông ta đã viết một hệ điều hành trên hệ thông máy tính PDP-7, và hệ điều hành này được gọi là Unix Mục tiêu khởi đầu
là cung cấp một môi trường máy tính hoá để mô phỏng trò chơi không gian Nhưng có một vấn đề xảy ra là phiên bản Unix này không thể chạy được trên hệ thống phần cứng khác Do đó đến năm 1973 Ritchie và Thompson đã viết lại hệ
điều hành bằng ngôn ngữ C, khác hẳn với các hệ điều hành truyền thống ghi bằng ngôn ngữ máy, do đó Unix rất dễ cài đặt trên các hệ máy khác Năm 1974
hệ điều hành Unix đã được cài đặt trên các máy DEC PDP-11 ở hơn 100 trường
đại học Mục tiêu chủ yếu là cung cấp môi trường cho các lập trình viên chuyên nghiệp Vì thế, Unix ngày càng thông dụng và ngày càng có thêm nhiều đặc tính mới được bổ xung Sau đó chính phủ và quân đội Mỹ đã sử dụng Unix để nối mạng toàn cầu (Internet)
Đến nay đã có hàng trăm ngàn hệ thống Unix cài đặt trên khắp thế giới Hầu hết các hãng sản xuất máy đều có một phiên bản cho Unix Tuy nhiên hiện nay
để chuẩn hoá hệ điều hành Unix, người ta quy ước các tập lệnh chuẩn và gọi là Unix System V Release 4 Trên máy PC hiện nay phổ biến hai hệ điều hành là SCO Unix và SUN Solaris
• Các đặc điểm cơ bản của hệ điều hành Unix
Trang 6- Đa nhiệm (Multitasking)
- Nhiều người sử dụng (Multiuser)
• Ưu điểm của hệ điều hành Unix:
- Hệ thống được viết trên ngôn ngữ C nên dễ đọc, dễ hiểu, dễ thay
đổi để cài đặt trên loại máy mới
- Có giao diện người dùng đơn giản, cho phép xây dựng các chương trình phức tạp từ các chương trình đơn giản hơn
- Đây là hệ đa người dùng đa tiến trình , mỗi người dùng có thể thực hiện nhiều chương trình mỗi chương trình có thể có nhiều tiến trình
- Che đi cấu trúc máy đối với người dùng, có thể viết chương trình chạy trên các điều kiện phần cứng khác nhau
- Sử dụng hệ thông file có cấu trúc
1.1.2 Giới thiệu về hệ điều hành Linux
Linux là một trong những hệ điều hành phổ thông nhất
bởi sự phân phối và cơ sở hỗ trợ mở rộng của nó Ban đầu,
Linux được phát triển dưới dạng một hệ thống đa nhiệm cho
máy tính mini và máy chủ vào giữa thập niên 70 Kể từ đó đến
nay Linux lớn mạnh và trở thành một trong những hệ điều
hành được sử dụng rộng rãi nhất
Trang 7Linux là phiên bản của Unix được phân phối miễn phí và ban đầu do Linus Torvalds thực hiện và phát triển Ông bắt đầu nghiên cứu Linux vào năm 1991 khi còn là sinh viên trường đại học Helsinki ở Phần Lan Linux được xây dựng và phát triển từ hệ điều hành Minix (một phiên bản của Unix) Lúc đầu, Linus tung
ra phiên bản Linux đầu tiên trên Internet cho mọi người sử dụng miễn phí, điều
đó vô tình dấy lên một hiện tượng phát triển phần mềm lớn Linux được xác lập
và duy trì bởi một nhóm hợp tác gồm vài ngàn nhà phát triển phần mềm tình nguyện cùng làm việc qua Internet Các công ty cung cấp hỗ trợ Linux để phát triển nó thành loại sản phẩm dễ cài đặt với mục đích kinh doanh các trạm làm việc có cài sẵn phần mềm Linux
Vào ngày 5 tháng 10 năm 1991, Linus đã công bố phiên bản Linux chính thức đầu tiên, phiên bản 0.02 Bắt nguồn từ hệ điều hành Minix của Andrew Tanenbaum, Linux ban đầu chỉ là một dự án mà trong đó Linux muốn xây dựng một hệ unix đơn giản có thể chạy trên PC 386 Phiên bản này được xác định như một hệ thống của các hacker Vấn đề chính là phát triển kernel chứ không phải không phải nhằm mục đích hỗ trợ người dùng hay để phân phối Nhưng đến nay
sự hoàn thiện thực sự trong thế giới Linux đã giải quyết được vấn đề môi trường người sử dụng đồ hoạ, gói sản phẩm dễ dàng cài đặt và các ứng dụng cao cấp như: tiện ích đồ hoạ và các bộ phiên bản sản phẩm
Từ khi phiên bản Linux đầu tiên ra đời cho đến nay thì đã có rất nhiều phiên bản Linux mới ra đời cùng với nhiều tính năng mới được thêm vào nhằm phục vụ, hỗ trợ những tiện ích ngày càng cao của người dùng
Vì Linux được phát triển từ hệ điều hành Minix(một phiên bản của Unix) nên Linux cũng có những đặc tính và ưu điểm của hệ điều hành Unix:
- Linux cũng được viết bằng C
Linux cũng là đa người dùng, đa nhiệm, là hệ điều hành mạng
Trang 8- Linux cung cấp môi trường đầy đủ cho lập trình và phát triển
- Linux chạy trên nhiều hệ thống phần cứng khác nhau:
Linux là một hệ điều hành đa nhiệm: Tại một thời điểm một người sử dụng
có thể thực hiện đồng thời nhiều tác vụ Với hệ điều hành đơn chương như DOS một lệnh thực hiện sẽ chiếm toàn bộ thời gian CPU xử lý, bạn chỉ có thể thực hiện lệnh kế tiếp khi lệnh trước đó đã thực hiện xong Còn trong Linux, bạn
MS-có thể thực hiện cùng lúc nhiều lệnh
Linux gần như tương thích với nhiều chuẩn Unix ở cấp nguồn bao gồm tính năng BSD, IEEE POSIX.1 và System V Linux được phát triển và rất chú trọng tới tính khả chuyển nguồn Do đó bạn có thể dùng chung nhưng tính năng trong
hệ Linux qua thi hành Unix
Linux còn hỗ trợ cho bàn phím tùy biến hoặc theo chuẩn quốc gia sử dụng trình điều khiển bàn phím khả tải động Linux còn hỗ trợ các console ảo, cho phép bạn chuyển đổi giữa nhiều phiên bản đăng nhập từ console hệ thống trong chế độ văn bản
Linux có thể tồn tại trên hệ thống có hệ điều hành khác như windows 95,
Trang 9Unix Bộ nạp khởi động Linux cho phép bạn lựa chọn hệ điều hành để bắt đầu vào thời đIểm khởi động và Linux cũng tương thích với các bộ nạp khởi động khác
Linux có thể chạy trên nhiều kiến trúc CPU bao gồm: X86(Celeron/PII/PIII/PIV/Pentium/80386/80486), SPARC, Alpha, PowerPc, MIPS và m68k
Linux hỗ trợ nhiều kiểu file khác nhau để lưu dữ liệu
Hỗ trợ mạng là một trong những sức mạnh lớn nhất của Linux cả về chức năng lẫn tính năng Linux cung cấp cài đặt hoàn hảo về mạng TCP/IP, bao gồm các trình điều khiển thiết bị cho nhiều card Ethernet thông dụng, PPP và SLIP, Parallel Line Internet Protocol (PLIP) và Network Fle System (NFS) Có rất nhiều ứng dụng khách và dịch vụ TCP/IP được hỗ trợ như FTP, Telnet, Simple Mail Transfer Protocol (SMTP) Linux kernel còn hỗ trợ tường lửa mạng hoàn hảo, cho phép bạn cấu hình bất cứ máy Linux nào dưới dạng tường lửa
Mọi tổ chức bán phần mềm miễn phí phải tuân theo những giới hạn nhất định
Trang 10- Thứ nhất, họ không thể hạn chế quyền của người sử dụng tức là người mua phần mềm Nghĩa là khi bạn mua CD_ROM với phần mềm GPL , bạn có thể sao chép và phân phối miễn phí CD_ROM
Linux là một phần mềm thuộc GPL nên nó cũng tuân theo nhưng quy tắc của GPL Vì vậy Linux được coi như là phần mềm có mã nguồn mở (Open source) Nghĩa là mã nguồn của Linux phải là mở với tất cả mọi người muốn sử dụng nó,
và có thể sửa đổi và phát triển một cách tự do Và nếu thực hiện thay đổi tới chương trình thì những thay đổi này cũng phải “mở” đối với mọi người dùng
1.4 So sánh Linux và các hệ điều hành khác
Vấn đề đầu tiên có thể nói là chúng ta có thể chạy Linux với một số hệ điều hành khác như Windows 95, Windows 98, Windows NT, OS/2 mà không gặp trục trặc gì
1.4.1 So sánh Linux với Windows 95, Windows 98
Không có gì lạ khi chạy cả Linux lẫn Windows 95/98 trên cùng một hệ thống Nhiều người sử dụng Linux dùng Windows như một công cụ xử lý từ Nghĩa là người sử dụng sẽ dùng Windows để khai thác các ứng dụng thương mại
có trong Windows như: Microsoft Word, Microsoft Exel mà trong Linux không
có sẵn
Trang 11Windows 95 và Windows 98 không tận dụng hết được chức năng của bộ
xử lý X86 Mặt khác, Linux hoàn toàn chạy trong chế độ bảo vệ của bộ xử lý và khai thác triệt để các tính năng của máy, kể cả đa bộ vi xử lý
Có thể khẳng định rằng Windows và Linux là những thực thể hoàn toàn khác biệt Windows có giá cả hợp lý(so với các hệ điều hành thương mại khác)
và có vị trí vững chắc trong thế giới máy tính PC Không có hệ điều hành nào cho
PC lại đạt được mức độ phổ cập như Windows Tuy nhiên Linux lại là hệ điều hành miễn phí và chính điều đó cũng làm cho nó ngày càng trở nên thông dụng
1.4.2 So sánh Linux với Windows NT
Cũng như Linux, Windows NT(và các phiên bản Windows phát triển từ Windows NT) là hệ điều hành đa nhiệm đầy đủ, hộ trợ máy đa bộ xử lý, kiến trúc CPU, bộ nhớ ảo, nối mạng, bảo mật Tuy nhiên, khác biệt giữa Linux và Windows NT là Linux là phiên bản của Unix Có nhiều cài đặt từ phía công ty cung cấp nhưng có một vấn đề nan giải là việc chuẩn hoá dưới dạng hệ thống mở, nhưng không một công ty nào có thể kiểm soát được thiết kế này Mặt khác, Windows NT là một hệ thống đặc quyền Giao diện và thiết kế là do một công ty kiểm soát, đó là Microsoft và chỉ công ty đó mới cài đặt thiết kế Về một ý nghĩa nào đó thì hình thức tổ chức này là có lợi: nó thiết lập tiêu chuẩn nghiêm ngặt cho việc lập trình và giao diện người sử dụng không giống như trong cộng đồng
hệ thống mở
Windows NT là cả sức mạnh đầy đủ của bộ máy tiếp thị Microsoft, trong khi đó Linux có cộng đồng hàng nghìn nhà lập trình đang góp phần cải tiến hệ thống này qua mẫu Open Source Những điểm quy chuẩn của Linux so với Windows NT đã chứng minh rằng mỗi hệ thống có điểm mạnh và điểm yếu riêng Linux vượt xa Windows NT trong lĩnh vực mạng Linux cũng nhỏ hơn NT
Trang 12đĩa trống, 2MB RAM Một số nhà phát triển còn viết LINUX chạy từ một đĩa mềm duy nhất !
Máy laptop: Linux cũng hoạt động tốt trên nhiều laptop như Apple PowerBooks, IBM ThinkPad, Toshiba Tecras Điều kỳ diệu là LINUX có thể chạy cả trên Intel và Mac, ít nhất là với các phần cứng cơ bản (bo mạch chính, bộ
vi xử lý, bộ nhớ)
Có rất nhiều các loại phần cứng khác nhau, các ký hiệu khác nhau (như SCSI, IDE, BIOS ) Hầu hết, các thông tin về máy tính đều được chứa trong BIOS và bạn có thể thấy được khi khởi động khi ấn các phím đặc biệt (F1, Del, ) Nếu bạn đang dùng Win95 hay WinNT thì các thông tin đó có thể tìm thấy trong mục system properties của Control Panel
Sau đây là danh sách các thiết bị cần tìm hiểu:
•
• CD-ROM: Do Linux hỗ trợ hầu hết các trình điều khiển CD-ROM nên cách đơn giản nhất để cài đặt là nối ổ CD-ROM với card SCSI hay IDE bus Nếu CD-ROM nối với IDE bus thì nó phải là loại tương thích với ATAPI
•
• ổ mềm: Phải là loại 3,5 in 1,44MB
Trang 13• ổ cứng: Giống như CD-ROM, nó có thể được nối với IDE hay SCSI bus Bạn nên ghi lại số cylinders của ổ cứng - được chỉ ra trong BIOS (ý nghĩa của cylinder sẽ được giải thích sau)
• Bus nội bộ: Linux hiện tại không hỗ trợ bus với kiến trúc Micro-Chanel Các bus được hỗ trợ là PCI, ISA, EISA, VL Bus Hầu hết các máy sản xuất sau năm 1995 đều có PCI bus
• Bộ nhớ: Linux cần tối thiểu 8MB RAM để có thể chạy được
•
• Sound card: Không cần thiết cho quá trình cài đặt, song nếu bạn có Creative Labs Sound Blaster hay card sound tương thích, bạn sẽ dễ dàng
có được âm thanh trong quá trình cài đặt
• Video card: Thông tin cần thiết ở đây là loại chip và dung lượng bộ nhớ Nếu là loại card PCI thì thông tin này có thể tự động nhận biết trong quá trình cài đặt (thông tin này chỉ thực sự cần thiết nếu bạn có ý định dùng Xwindow)
Việc tiếp theo là so sánh danh sách phần cứng bạn có với danh sách được Linux hỗ trợ:
Thiết bị Các thiết bị tương thích
CD-Rom Drive IDE ATAPI-compliant, SCSI CD-Rom
Hard Drive Các loại IDE, EIDE, SCSI Một số loại Ultra
DMA không làm việc được vì không tương thích với chuẩn EIDE
SCSI Controller Hầu hết các điều khiển SCSI thông dụng như
BusLogic và Adaptec Video card Các loại card ATI, Cirrus và Matrox, S3
Trang 14Nếu phần cứng của bạn không được hỗ trợ thì chỉ còn cách:
Thay đổi phần cứng sao cho tương thích
Chờ cho đến khi Linux hỗ trợ phần cứng của bạn
Tốt hơn là nên tránh các thiết bị mang nhãn Plug&Play Bởi vì Linux mới chỉ
đang bắt đầu hỗ trợ các thiết bị này, do đó sẽ rất phức tạp khi cài đặt Bạn cũng
nên thận trọng với các phần cứng được liệt vào loại Win-item (như Winmodem
và Winprinter) vì chúng chỉ hoạt động trong môi trường Window
*Các thông tin về mạng
Trong trường hợp máy tính có nối mạng Lan sử dụng giao thức TCP/IP,
bạn có thể phải có những thông tin sau:
Hostname Domain Name
Trang 15Chương II : các lệnh Linux cơ bản
2.1 Các phương thức hoạt động của dòng lệnh
Các lệnh trong Linux được chia làm hai loại là câu lệnh và chương trình
Điểm khác nhau giữa câu lệnh và chương trình là: đối với các câu lệnh Linux đã
có cài sẵn các phản ứng và khi bạn gõ lệnh, Linux sẽ đáp ứng các câu lệnh đó Còn đối với chương trình, nó sẽ tìm chương trình có tên thích hợp rồi thực hiện chương trình đó
Nhiều lệnh trong Linux cho phép đầu ra của một lệnh này là đầu vào của lệnh khác Để làm được điều đó bạn chỉ cần đánh dấu “|” ngăn cách giữa hai lệnh Còn nếu câu lệnh dài quá bạn có thể ngắt xuống dòng bằng cách thêm dấu
“\” tại cuối dòng (dấu “\” phải là kí tự cuối cùng của dòng lệnh) Khi bạn muốn
đánh nhiều lệnh một lúc thì bạn chỉ cần đánh dấu “,” giữa các câu lệnh, từ đó các câu lệnh sẽ được thực hiện một cách tuần tự
Linux còn cung cấp nhiều sự tiện lợi khi sử dụng các lệnh, đặc biệt là khả năng hoàn chỉnh lệnh bằng việc sử dụng phím tab Bạn cũng có thể sử dụng mũi tên lên/xuống trên bàn phím để nhận được các câu lệnh đã sử dụng lúc trước
Một số phím tắt để thực hiện lệnh các thao tác đơn giản khi nhập lệnh
- Nhấn phím ESC +BACKSPACE để xoá một từ bên trái con trỏ
- Nhấn phím ESC +D để xoá một từ bên phải con trỏ
- Nhấn phím ESC +F để di chuyển con trỏ sang phải một từ
- Nhấn phím ESC +B để di chuyển con trỏ sang trái một từ
- Nhấn phím CTRL +A di chuyển con trỏ về đầu dòng lệnh
- Nhấn phím CTRL +E di chuyển con trỏ về cuối dòng lệnh
- Nhấn phím CTRL +U để xoá dòng lệnh hiện tại
Trang 16Bạn có thể nhấn phím ALT thay cho phím ESC
2.2 Trang Man
Linux là một hệ điều hành rất phức tạp với rất nhiều câu lệnh có thể kết hợp với nhau để thực hiện hàng nghìn các thao tác khác nhau Hầu hết các câu lệnh đều có kèm theo một số các tuỳ chọn lệnh hay những thông tin quan trọng Trong Linux có tới hơn 1000 lệnh và chắc chắn rằng chúng ta không thể nhớ hết
được Sử dụng trang Man sẽ giúp chúng ta giải quyết được đIều đó
Trang Man (Manual page), là một tài liệu trực tuyến trong Linux lưu trữ toàn bộ các lệnh có sẵn với các thông tin tham khảo đầy đủ
Để mở trang Man của một lệnh, bạn hãy gõ:
Trang 17- Bất cứ từ nào đứng một mình hay không ở trong các dấu [], {},<> thì phải
gõ y như vậy
- Từ nằm trong dấu ngoặc vuông ( [] ) là tuỳ ý có thể gõ hoặc không
- Từ nào nằm trong dấu <> là bắt buộc phải có và được thay thế bằng từ thích hợp
- Từ nào nằm trong dấu {} là chọn một trong các giá trị trong ngoặc đó
- Dấu thường được dùng với các tham số như tên tập tin
- Khi cần có thể kết hợp các dấu ngoặc với nhau để tạo ra cách sử dụng tham số mới
Ngoài những quy ước trên, có một điều cần lưu ý nữa là trong dòng lệnh Linux có phân biệt chữ hoa và chữ thường
Trong Linux có hai ký tự đại diện phổ biến là “* “ và “?” “*” là ký tự đại diện thông dụng nhất, nó thay cho một hay nhiều kí tự Và “?” là ký tự đại diện cho một ký tự duy nhất
Trang 18- Thư mục /root : Được sử dụng để lưu trữ các tập tin tạm thời, nhân Linux và các hình ảnh khởi động, các tập tin nhị phân quan trọng, các tập tin đăng nhập
- Thư mục /bin : Một chương trình được coi là khả thi nếu nó có thể thực hiện được và khi biên dịch nó có dạng là tâp tin nhị phân Nghĩa là một chương trình ứng dụng trong Linux là một tập tin nhị phân khả thi Và thư mục /bin chính là nơi lưu trữ các tập tin nhị phân khả thi đó Nhưng theo thời gian ngày càng có nhiều tập tin nhị phân khả thi nên có thêm các thư mục như /sbin, /usr/bin được sử dụng để lưu trữ các tập tin đó
- Thư mục /dev : Lưu trữ tất cả các trình điều khiển thiết bị
- Thư mục /etc :Lưu trữ tất cả các thông tin hay tệp tin cấu hình hệ thống
- Thư mục /lib : Lưu trữ các thư viện hàm và thủ tục
- Thư mục /lost+ found : Một tập tin được khôi phục sau khi có bất kỳ một vấn đề hay một trục trặc nào trên hệ thống đều được lưu vào tập tin này
- Thư mục /mnt : Là nơi để kết nối các thiết bị (đĩa cứng, đĩa mềm,…) vào hệ thống tệp tin chính
- Thư mục /tmp : Thư mục này được rất nhiều chương trình trong Linux
sử dụng như một nơi lưu các tập tin tạm thời Ví dụ như bạn soạn thảo một tệp tin, chương trình sẽ tạo ra một tập tin là bản sao của tệp tin đó
và lưu vào trong thư mục /tmp Bạn sẽ soạn thảo trực tiếp trên tập tin tạm thời này và sau khi soạn thảo xong, tập tin sẽ được ghi đè lên tập tin gốc của bạn
Trang 19- Thư mục /usr : Thông thường thư mục này là trung tâm lưu tất cả các câu lệnh hướng đến người dùng Tuy nhiên ngày nay thì hầu hết các tập tin nhị phân của Linux đều được lưu trữ tại thư mục này
- Thư mục /home : Lưu trữ các thư mục cá nhân của người dùng
- Thư mục /var : Được sử dụng để lưu trữ các thông tin luôn luôn thay
đổi
- Thư mục /boot : Là thư mục chứa nhân của hệ thống, system.map (tập tin ánh xạ đến các driver để nạp các hệ thống tập tin khác), Thư mục này cho phép khởi động và nạp lại bất kỳ trình điều khiển nào được yêu cầu để đọc các hệ thống tập tin khác
- Thư mục /proc : Là thư mục dành cho nhân hệ thống (kernel)
- Thư mục /mise và thư mục /opt : Bạn có thể lưu trữ mọi thứ bạn thích vào thư mục này
- Thư mục /sbin : Lưu các tập tin hệ thống thường tự động chạy
Ngoài ra còn hai thư mục đặc biệt tồn tại trong Linux, đó là hai thư mục
được biểu hiện bởi dấu “.” và “ ”
- Dấu “.” biểu hiện cho thư mục hiện hành
- Dấu “ ” biểu hiện cho thư mục cha của thư mục hiện hành
2.4.1.2 Các lệnh chính liên quan đến thư mục
• Xác định thư mục hiện thời với lệnh pwd
Cú pháp lệnh:
pwd Lệnh này cho bạn biết hiện bạn đang ở trong thư mục nào
Mặc định, Linux luôn đặt bạn vào thư mục các nhân của bạn khi đăng nhập
• Xem thông tin về thư mục với lệnh ls
Trang 20mkdir [tuỳ chọn lệnh] <thư mục>
Lệnh này sẽ tạo một thư mục mới nếu nó chưa thực sự tồn tại Nếu thư mục đã tồn tại, hệ thống sẽ thông báo cho bạn biết
• Lệnh loại bỏ thư mục rmdir
Cú pháp lệnh :
rmdir [tuỳ chọn lệnh] <thư mục>
Với lệnh này bạn chỉ xoá được những thư mục rỗng, tức là không tồn tại tập tin hoặc thư mục con nào trong nó Thư mục đã xoá rồi thì không có cách nào khôi phục được, vì vậy bạn nên cân nhắc kĩ trước khi xoá một thư mục nào đó
cp [tuỳ chọn lệnh] <thư mục nguồn> <thư mục đích>
Lệnh này cho phép bạn sao thư mục nguồn đến thư mục đích hoặc sao chép từ nhiều thư mục nguồn vào thư mục đích
Trang 212.4.2 Tập tin và các lệnh về tập tin
2.4.2.1 Các kiểu tập tin trong Linux
Có rất nhiều tập tin khác nhau trong Linux, nhưng bao giờ cũng tồn tại một số kiểu tập tin cần thiết cho hệ đIều hành và người dùng Dưới đây là một số các kiểu tập tin cơ bản
- Tập tin người dùng(user data file): Là các tập tin tạo ra do hoạt động của người dùng khi kích hoạt các chương trình ứng dụng tương ứng Ví dụ như các tập tin thuần văn bản, các tập tin cơ sở dữ liệu hay các tập tin bảng tính
- Tập tin hệ thống(system data file): Là các tập tin lưu trữ thông tin của hệ thống như: cấu hình cho khởi động, tài khoản của người dùng, thông tin thiết bị thường được cất trong các tập dạng văn bản để người dùng có thể can thiệp, sửa đổi theo ý mình
- Tập tin thực hiện(executable file): Là các tập tin chứa mã lệnh hay chỉ thị cho máy tính thực hiện Tập tin thực hiện lưu trữ dưới dạng mã máy Tập tin thực hiên được bắt đầu bởi dấu(*) và thường có màu xanh lục
- Tập tin bao hàm(directory: Là tập tin bao hàm trong nó các tập tin khác Trong mc, tập tin bao hàm thường có màu trắng và bắt đầu bằng dấu ngã (~) hoặc dấu chia (/) Ví dụ: /, /home, /bin, /usr, /usr/man, /dev
- Tập tin thiết bị (device file): Là tập tin mô tả thiết bị dùng như là định danh để chỉ ra thiết bị cần thao tác.Theo quy ước, tập tin thiết bị được lưu trữ trong thư mục /dev Các tập tin thiết bị hay gặp trong mục này là tty(teletype-thiết bị truyền thông), ttyS(teletype serial- thiết bị truyền thông nối tiếp) Trong mc, tập tin thiết bị có màu tím và bắt đầu bằng dấu cộng(+)
Trang 22- Tập tin liên kết (linked file): Là những tập tin chứa tham chiếu đến các tập tin khác trong hệ thống tệp tin của Linux Tham chiếu này cho phép người dùng tìm nhanh tới tập tin thay vì tới vị trí nguyên thuỷ của nó Ta thấy loại tập tin này giống như khái niệm shortcut trong windows
Linux quản lý thời gian của tệp tin qua các thông số thời gian truy nhập (accessed time), thời gian kiến tạo (created time) và thời gian sửa đổi (modified time)
Thực chất lệnh này có tác dụng dùng để cập nhật thời gian truy nhập
và sửa chữa lần cuối của một tập tin Vì lí do này các tập tin được tạo bằng lệnh touch đều được sắp xếp theo thời gian sửa đổi Nếu bạn sử dụng lệnh touch đối với tập tin chưa tồn tại, chương trình sẽ tạo tập tin đó
+Tạo tệp tin bằng cách đổi hướng đầu ra của lệnh
Cách này rất hữu ích nếu bạn muốn lưu kết quả của một lệnh bạn đã thực hiện Để gửi kết quả của một lệnh ls -l /bin vào tập tin /home/thu/lenh bằng cách gõ
#ls -l /bin > /home/thu/lenh Linux tự động tạo nếu tập tin lenh chưa có, trong trường hợp đã có tập tin lenh thì nội dung tập tin cũ sẽ bị thế chỗ bởi kết quả của lệnh :
#ls l /bin > /home/thu/lenh Muốn bổ sung thêm kết quả vào cuối tập tin thay vì thế chỗ nội
Trang 23+ Tạo tập tin bằng lệnh cat
cat > <file>
Mặc định, lệnh này cho phép bạn lấy thông tin đầu vào từ bàn phím rồi xuất ra màn hình Bạn có thể tuỳ ý gõ nội dung của tập tin ngay tại dấu nhắc lệnh và gõ CTRL + d để kết thúc việc soạn thảo
• Sao chép tập tin với lệnh cp
Lệnh này cho phép bạn đổi tên tập từ tin cũ thành tên mới
• Xoá tập tin với lệnh rm
Cú pháp lệnh:
rm[tuỳ chọn lệnh] <tập tin>
Bạn có thể sử dụng lệnh này để xoá bỏ một tập tin hoặc nhiều tập tin
• Đếm từ và dòng trong tập tin với lệnh wc
Cú pháp lệnh:
wc [tùy chon lệnh] [tên tập tin]
Đ−a ra số dòng, số từ, số ký tự có trong mỗi tập tin và một dòng tính tổng Nếu không có tuỳ chọn nào thì mặc định đ−a ra cả số dòng, số từ và số ký
tự Không có tên tập tin thì mặc định sẽ đọc và đếm trên thiết bị vào chuẩn
Trang 24• Sắp xếp nội dung tập tin với lệnh sort
Cú pháp lệnh:
sort [tuỳ chọn lệnh] [tên tập tin]
Hiển thị nội dung sau khi sắp xếp của một hoặc nhiều tập tin ra thiết bị ra chuẩn là tác dụng của lệnh sort Mặc định thứ tự sắp xếp là [0-9, A-Z, a-z]
• Xác định kiểu tập tin với lệnh file
Cú pháp lệnh:
file [tuỳ chọn lệnh] [-f namefile] [-m magicfile] tập tin
Lệnh file cho phép bạn xác định và in ra kiểu thông tin chứa trong tập tin + text: dạng tập tin văn bản thông thường, chỉ chứa các mã ký tự ASCII
+ Executable: dạng tập tin nhị phân khả thi
+ Data: thường là dạng tập tin chứa mã nhị phân và không thể in ra
được
• Xem nội dung tập tin với lệnh cat
Cú pháp lệnh và các tuỳ chọn:
cat [tuỳ chọn lệnh] <tên tập tin>
• Xem nội dung tập tin lớn với lệnh more
Cú pháp lệnh và tuỳ chọn :
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file ]
Lệnh more hiển thị nội dung của tập tin theo từng trang màn hình
• Xem nội dung tập tin với lệnh head
Cú pháp lệnh:
head [tuỳ chọn lệnh] [tên file]
Trang 25Lệnh này sẽ đưa ra màn hình 10 dòng đầu tiên của mỗi tập tin Nếu có nhiều tập tin thì lần lượt tên các tập tin và 10 dòng đầu tiên sẽ được hiển thị Nếu không có tên file, hoặc tên file là dấu “-“ mặc định sẽ đọc từ thiết bị chuẩn
• Xem qua tập tin với lệnh tail
Cú pháp lệnh:
tail [tuỳ chọn lệnh] [tên file]
Lệnh này sẽ đưa ra 10 dòng cuối của nội dung file Nếu có nhiều tập tin thì lần lượt tên các tập tin và 10 dòng cuối sẽ được hiển thị Nếu không có tên file, hoặc tên file là dấu “-“ mặc định sẽ đọc từ thiết bị chuẩn
• Tìm theo nội dung tập tin bằng lệnh grep
Cú pháp lệnh:
grep[tuỳ chọn lệnh] <mẫu lọc> <tên file>
Lệnh grep sẽ hiển thị tất cả các dòng có chứa mẫu lọc trong tập tin được
đưa ra (hoặc từ thiết bị vào chuẩn nếu không có tên tập tin hoặc tên tập tin có dạng là dấu “-")
• Tìm theo các đặc tính của tập tin bằng lệnh find
Cú pháp lệnh:
find [đường dẫn] [biểu thức]
Lệnh find thực hiện việc tìm kiếm tập tin trên cây thư mục theo biểu thức
được đưa ra Mặc định đường dẫn là thư mục hiện thời, biểu thức là - print
Trang 26• Lệnh xem lịch trên hệ thống bằng lệnh cal
Cú pháp lệnh:
cal [-mjy] [month [year]]
Nếu không có tham số, lịch của tháng hiện tại sẽ được hiển thị
• Lệnh xem ngày, giờ
Cú pháp lệnh:
date [tuỳ chọn lệnh] [+ định dạng]
và
date [tuỳ chọn lệnh] [MMDDhhmm] [CC [YY]]
• Lệnh xem tin hệ thống uname
echo [các tuỳ chọn] [xâu ký tự]
2.4.5 Các lệnh liên quan đến tài khoản người dùng
2.4.5.1 Các lệnh liên quan đến người dùng
Khi cài đặt hệ điều hành Linux, đăng nhập chính sẽ được tự động tạo ra
Đăng nhập này gọi là root và được xem là người dùng cấp cao Khi đăng nhập với tư cách là người dùng root thì bạn có thể làm bất cứ điều gì bạn muốn trên hệ thống ( tạo một người dùng mới, thay đổi thuộc tính của một người dùng, xoá bỏ người dùng )
Trang 27Danh sách người dùng cũng như thông tin tương ứng được lưu trữ trong tập tin /etc/passwd Nội dung của tập tin /etc/passwd chứa các thông tin sau:
• Tên người dùng (user name)
• Mật khẩu người dùng (passwd -được mã hoá)
• Chỉ số người dùng (user id)
• Tên đầy đủ hoặc các thông tin khác về tài khoản người dùng (comment)
Nếu không có tuỳ chọn -D lệnh useradd sẽ tạo tài khoản người dùng mới
sử dụng các giá trị được chỉ ra trên dòng lệnh và các giá trị mặc định của hệ thống
2.4.5.2 Thay đổi thuộc tính người dùng
Cú pháp lệnh:
usermod [tuỳ chọn lệnh] <tên đăng nhập>
Lệnh usermod sẽ sửa đổi các tập tin tài khoản hệ thống theo thuộc tính mà bạn xác định trên dòng lệnh
Trang 28Lệnh usermod sẽ không cho phép thay đổi tên người dùng đăng nhập Phải
đảm bảo rằng người dùng đó không thực hiện bất kỳ tiến trình nào trong khi lệnh usermod đang thực hiện thay đổi các thuộc tính của người dùng đó
Lệnh userdel sẽ không cho phép xoá bỏ người dùng khi họ đang đăng nhập vào hệ thống Phải huỷ bỏ mọi tiến trình có liên quan đến người dùng muốn xoá
bỏ
2.4.6 Các lệnh liên quan đến nhóm người dùng
Thông tin về nhóm người dùng được lưu trong tập tin /etc/group, tập tin này có cách bố trí tương tự như tập tin /etc/passwd Nội dung của tập tin có chứa :
• Tên nhóm người dùng(groupname)
• Mật khẩu nhóm người dùng (passwd-được mã hoá), nếu
trường này rỗng tức là nhóm không yêu cầu mật khẩu
• Chỉ số nhóm người dùng (group id)
• Danh sách người dùng thuộc nhóm đó
• Thêm nhóm người dùng
Cú pháp lệnh:
groupadd [tuỳ chọn lệnh] <tên nhóm>
Trang 29• Sửa đổi thuộc tính của một nhóm người dùng
2.4.7 Các lệnh khác có liên quan đến người dùng
• Đăng nhập với tư cách một người dùng khác với lệnh su
su <tên người dùng>
Trang 30Bạn sẽ không bị hỏi về mật khẩu khi thay đổi từ người dùng cấp cao sang người khác Tuy nhiên nếu bạn đăng nhập với tư cách người dùng bình thường và muốn chuyển sang một đăng nhập khác thì bạn phải cung cấp mật mã của người dùng đó
Lệnh who hiển thị ba cột thông tin cho từng người dùng trên hệ thống Cột
đầu là tên của người dùng, cột hai là tên thiết bị đầu cuối mà người dùng đó đang
sử dụng, cột ba hiển thị ngày giờ người dùng đăng nhập
Ngoài lệnh who thì bạn có thể sử dụng lệnh users để xác định người dùng
đang đăng nhập trên hệ thống
#users Khi nào đó bạn quen mình đang đăng nhập với tên người dùng là gì, lúc đó bạn hãy dùng lệnh:
who am i Hoặc
whoami Lệnh who am i sẽ hiện kết quả đầy đủ hơn với tên máy bạn đăng nhập, tên người dùng bạn đang đăng nhập, tên thiết bị và ngày giờ bạn đang đăng nhập + Lệnh id
Cú pháp lệnh:
Trang 31Lệnh này sẽ đưa ra cho bạn thông tin về người dùng được đưa ra trên dòng lệnh hoặc thông tin về người dùng hiện thời
2.4.8 Các lệnh liên quan đến quản lý thiết bị
Linux có cách điều khiển các thiết bị rất khác so với các hệ điều hành khác Sẽ không có các tên thiết bị lưu trữ vật lý như ổ A hay ổ C , mà lúc đó các thiết bị lưu trữ này sẽ trở thành một phần của hệ thống tập tin cục bộ thông qua một số thao tác được gọi là “kết gắn mounting” Khi bạn đang sử dụng thiết bị lưu trữ đó, muốn tháo bỏ bạn phải “tháo bỏ kết gắn umount” thiết bị
• Để sử dụng bất kỳ một thiết bị lưu trữ vật lý nào trên Linux, bạn cần phải sử dụng đến lệnh mount Điểm gắn kết là thư mục /mnt
Cú pháp lệnh:
mount <-t> <type> <device> <dir>
Dòng này sẽ thông báo cho nhân hệ thống để kết gắn hệ thống tập tin có trên device thiết bị này có dạng là type vào thư mục điểm gắn kết dir
Ví dụ: Nếu muốn sử dụng đĩa mềm và đĩa CD Bạn hãy gắn chúng vào hai thư mục /mnt/floppy và mnt/cdrom bằng hai câu lệnh
#mount -t msdos /dev/fd0 mnt/floppy #mount /dev/cdrom /mnt/cdrom
Trang 32• Bạn có thể tháo bỏ kết gắn của một hệ thống tập tin trên hệ thống bằng lệnh umount
Cú pháp lệnh:
umount <device>
Dòng lệnh này sẽ tháo bỏ kết gắn của hệ thống tập tin có trên device ra khỏi hệ thống tập tin chính Lưu ý rằng không thể tháo bỏ kết gắn của một hệ thống tập tin khi có một tiến trình đang hoạt động truy cập đến các tập tin trên hệ thống tập tin đó
Khi một hệ thống tập tin được kết gắn(dùng lệnh mount), những thông tin quan trọng về sơ đồ các tập tin trên hệ thống tập tin đó được lưu trong nhân Nếu loại bỏ các thiết bị vật lý chứa hệ thống tập tin mà không tháo bỏ kết gắn (dùng lệnh umount) có thể dẫn tới thông tin lưu về hệ thống tập tin bị thất lạc Mục đích củâ lệnh umount là xoá bỏ mọi thông tin đó ra khỏi bộ nhớ khi không dùng đến nữa
Ví dụ: Không dùng đến đĩa mềm, bạn có thể dùng câu lệnh:
#umount /dev/fd0
• Xem dung lượng đĩa đJ sử dụng với lệnh du
Cú pháp lệnh:
du [tuỳ chọn lệnh ] [file]
Lệnh du sẽ liệt kê kích thước (tính theo kilobytes) của mỗi tập tin có trong
hệ thống tập tin có chứa file Lưu ý rằng, lệnh du không cho phép có nhiều tuỳ chọn trên cùng một dòng lệnh
• kiểm tra dung lượng đĩa trống với lệnh df
Cú pháp lệnh:
df [tuỳ chọn lệnh] [file]
Trang 33Lệnh này sẽ hiển thị dung lượng mà còn trống trên hệ thống tập tin chứa
đựng tập tin file Nếu không có tên tập tin thì lệnh này sẽ hiển thị dung lượng đĩa còn thống trên tất cả các hệ thống tập tin được kết nối
Lệnh df chỉ cho biết dung lượng đĩa đã sử dụng và dung lượng đĩa còn trống của từng hệ thống tập tin Nếu bạn muốn biết tổng dung lượng đĩa còn trống là bao nhiêu, bạn sẽ phải cộng dồn dung lượng đĩa còn trống của từng hệ thống tập tin
2.4.9 Các lệnh về phân quyền
• Thay đổi quyền sở hữu tập tin với lệnh chown
Cú pháp lệnh:
chown [tuỳ chọn lệnh] <owner> [.[group]] <tập tin >
Lệnh này cho phép người dùng owner sở hữu tập tin Nếu chỉ có tham số owner, thì người dùng owner sẽ sở hữu tập tin và nhóm sở hữu không thay đổi Nếu theo sau tên người dùng là dấu “.” và tên của một nhóm group thì nhóm đó
sẽ sở hữu tập tin Nếu chỉ có dấu “.” và tên nhóm mà không có tên người sở hữu thì chỉ có quyền sở hữu nhóm của tập tin thay đổi
• Thay đổi quyền sở hữu nhóm với lệnh chgrp
Khi đăng nhập, mặc định bạn sẽ là thành viên của một nhóm được thiết lập khi người dùng cao cấp root tạo tài khoản người dùng Bạn có thể thuộc nhiều nhóm khác nhau nhưng mỗi lần đăng nhập bạn chỉ là thành viên của một nhóm
Để thay đổi quyền sở hữu nhóm đối với một hoặc nhiều tập tin, bạn hãy sử dụng lệnh chgrp
Cú pháp lệnh:
chgrp [tuỳ chọn lệnh] <group> <tập tin [, tập tin ]>
Lệnh này cho phép nhóm group sở hữu tập tin tập tin
Trang 34Cú pháp lệnh:
chmod [tuỳ chọn lệnh] <mod [, mod ]> <file [, file ]>
Lệnh này cho phép bạn xác lập quyền truy nhập kiểu mode trên tập tin file
2.5 Shell
Shell là chương trình giao diện giữa người dùng và Linux hay nói chính xác hơn là người dùng và nhân Linux Mỗi lệnh bạn gõ tại dấu nhắc trên màn hình sẽ
được shell diễn dịch rồi chuyển tới nhân Linux
Shell là bộ diễn dịch ngôn ngữ lệnh, nó có cài sẵn bộ lệnh riêng Một số lệnh như pwd cài sẵn trong shell bash còn những lệnh như cp và rm là những chương trình thi hành hiện diện trên thư mục hệ thống tệp tin Với tư cách là người dùng, bạn không biết (hay không bận tâm) lệnh nào cài vào shell hay chương trình Khi bạn nhập một lệnh thì đầu tiên shell sẽ kiểm tra lệnh này có phải là lệnh cài sẵn hay không Nếu không phải là lệnh cài sẵn, shell sẽ kiểm tra xem nó có đúng là chương trình ứng dụng hay không Nếu nhập lệnh chẳng phải là lệnh shell hay cũng chẳng phải tập tin thi hành thì sẽ có một thông báo lỗi hiển thị như sau: $doit
doit: not found
Bước cuối cùng, các lệnh cài sẵn và chương trình ứng dụng được phân thành system call (gọi hệ thống) rồi chuyển tới nhân Linux
Shell khởi động sau khi bạn đăng nhập thành công vào hệ thống, và tiếp tục
là phương pháp tương tác chính giữa người dùng và nhân Linux cho đến khi bạn
đăng xuất Mỗi người dùng trên hệ thống có một shell mặc định và được lưu trong tập tin mật mã hệ thống /etc/passwd Tập tin mật mã hệ thống chứa User ID của mỗi người, mật mã đã mã hoá, và tên chương trình chạy ngay sau khi người dùng đăng nhập vào hệ thống
Trang 35Trên Linux có cài sẵn một số loại shell khác nhau, mỗi shell có những ưu nhược điểm riêng:
• Shell Bourne Again (bash) là shell được sử dụng phổ biến nhất (và mạnh nhất) trong Linux Bash là mở rộng của shell Bourne và nó tương thích hoàn toàn với shell Bourne Bash được tạo ra và được phân phối bởi dự án GNU (tổ chức phần mềm miễn phí ) Đưa ra các soạn thảo dòng lệnh, các lựa chọn thay thế quan trọng
Một số lệnh cài sẵn trong shell bash:
Lệnh Công dụng
alias Lập bí danh (biệt danh lệnh cho người dùng quy định)
Bg Lệnh background (hậu cảnh) Buộc tiến trình bị ngưng tiếp tục thi
hành ở hậu cảnh
cd Chuyển thư mục làm việc Lệnh này sẽ chuyển thư mục làm việc
hiện hành vào thư mục đã định
exit Chấm dứt Shell
export Làm cho giá trị biến sẽ lập khả dụng đối với tất cả tiến trình con
thuộc shell hiện hành
fc Lệnh fix Hiệu chỉnh lệnh trong danh sách history hiện hành
fg Lệnh foreground (tiền cảnh) Buộc tiến trình bị ngưng tiếp tục thi
hành ở tiền cảnh
help Hiển thị thông tin trợ giúp về lệnh cài sẵn trong bash
history Đưa ra danh sách n lệnh vừa nhập tại dấu nhắc lệnh n là biến quy
định số lệnh sẽ ghi nhớ
kill Chấm dứt tiến trình khác
pwd In thư mục hiện người dùng đang làm việc trên đó
Trang 36unalias Xoá các bí danh đã định bằng lệnh alias
Bash còn nhiều lệnh nữa, nhưng đây là những lệnh thông dụng nhất Muốn xem bash giới thiệu thêm lệnh nào và muốn biết rõ hơn về những lệnh nêu trên, bạn hãy tham khảo trang Man (gõ man bash )
• Shell Bourne (sh) do Steven Bourne viết Đó là shell Unix nguyên thuỷ
có mặt trên mọi hệ thống Unix, nó không xử lý tương tác người dùng như một số shell khác cho phép Nó không đưa ra soản thảo dòng lệnh
• Shell C (csh) do Bill Joy viết, shell C đáp ứng tương tác người dùng Nó chấp nhận các đặc tính vốn không có trong shell Bourne, chẳng hạn như hoàn thành dòng lệnh Vì ngôn ngữ lập trình shell C gần giống như ngôn ngữ C, đó là
lí do người ta đặt tên cho nó là shell C
• Shell korn (ksh) do David Korn viết Ông lấy các đặc tính ưu việt của shell C và shell Bourne rồi kết hợp thành một shell tương thích hoàn toàn với shell Bourne và đưa ra soạn thảo dòng lệnh
• Public Domain Korn Shell (pdksh) không chấp nhân các đặc tính trong phiên bản shell Korn Thế nhưng nó chấp nhận hầu hết đặc tính chủ yếu và bổ sung vài đặc tính mới vào
Một số lệnh trong shell pdksh:
+ alias : Lập bí danh , biệt danh lệnh cho người dùng đặt
+ bg : Lệnh background (hậu cảnh) Buộc tiến trình bị ngưng tiếp tục thi hành ở hậu cảnh
+ cd : Chuyển thư mục làm việc Lệnh này sẽ chuyển thư mục làm việc hiện hành vào thư mục đã định
+ exit : Chấm dứt Shell
+ export : Làm cho giá trị biến sẽ lập khả dụng đối với tất cả tiến trình con
Trang 37+ fc : Lệnh fix Hiệu chỉnh lệnh trong danh sách history hiện hành
+ fg : Lệnh foreground (tiền cảnh) Buộc tiến trình bị ngưng tiếp tục thi hành ở tiền cảnh
+ kill : Chấm dứt tiến trình khác
+ pdw : (Print working directory) in thư mục hiện hành lên màn hình
+ unalias : Xoá các bí danh đã định bằng lệnh alias
• tcsh là phiên bản sửa đổi của shell C (csh) Nó tương thích hoàn toàn với csh nhưng lại mang nhiều đặc tính mới giúp tương tác người dùng dễ dàng hơn
Một số lệnh tcsh hữu ích:
+ alias : Lập bí danh , biệt danh lệnh cho người dùng đặt
+ bg : Lệnh background (hậu cảnh) Buộc tiến trình bị ngưng tiếp tục thi hành ở hậu cảnh
+ bindkey : Cho phép người dùng thay đổi các thao tác hiệu chỉnh vốn gắn liền với một tổ hợp phím
+ cd : Chuyển thư mục làm việc Lệnh này sẽ chuyển thư mục làm việc hiện hành vào thư mục đã định
+ fg : Lệnh foreground (tiền cảnh) Buộc tiến trình bị ngưng tiếp tục thi hành ở tiền cảnh
+ history: Cho phép người dùng hiển thị và sửa đổi nội dung danh sách history và tập tin history
+ kill : Chấm dứt tiến trình khác
+ logout : Chấm dứt shell đăng nhập
+ set : Lập giá trị biến tcsh
+ source : Đọc và thi hành nội dung tập tin
+ unalias : Xoá các bí danh đã định bằng lệnh alias
Trang 38Chương III: samba
3.1 Giới thiệu tổng quan
Các tổ chức kinh doanh lớn thường xử lý thông tin trên nhiều loại hệ điều hành khác nhau và có nhu cầu lưu trữ chúng trong một môi trường mạng trong việc chia sẻ các tập tin và máy in Các nhân viên có thể làm việc trên các máy trạm như Linux, Microsoft Windows 95/98/NT, OS/2 hay Novel và vẫn cần phải truy cập máy server trong các công việc thường ngày của họ
Samba là một dịch vụ mạng rất mạnh trong việc chia sẻ tập tin và máy in,
nó làm việc tốt trên các hệ điều hành chủ yếu hiện nay Khi đã được thực hiện tốt bởi người quản trị, nó sẽ nhanh hơn và bảo mật hơn các dịch vụ chia sẻ tập tin tự nhiên đã có sẵn trên các máy Microsoft Windows
Samba là một giao thức có nhiều máy PC kết nối với nhau cùng chia sẻ các tập tin, các máy in, và các thông tin khác, chẳng hạn như liệt kê danh sách các tập tin và máy in Các HĐH mà nó hỗ trợ dịch vụ này một cách tự nhiên gồm có Windows 95/98/NT, OS/2 và Linux
ở đây chúng ta sẽ tìm hiểu Samba với tính năng như một cây cầu nối giữa Linux và Windows, samba cho phép các máy tính chạy Linux có thể hoạt động
và giao tiếp trên cùng một giao thức mạng với máy Windows
3.2 Cài đặt
Có hai cách cài đặt Samba:
• Cách 1: cài đặt từ tập tin samba-2.2.7a-7.9.0.i386.rpm có sẵn trong CD cài đặt Redhat 9.0
• Cách 2: cài đặt từ tập tin samba-2.2.7a-7.9.0.i386.tar.gz
Phần này chỉ tập trung cho việc cài đặt và cấu hình samba từ tập tin
Trang 39samba-Trong Redhat 9.0 trước khi cài đặt, chúng ta kiểm tra xem samba có cài
đặt trên hệ thống của bạn hay chưa với lệnh:
[root@localhost root]#rpm –q samba
Nếu samba chưa được cài đặt trên hệ thống thì chúng ta tiến hành cài đặt theo những lệnh sau:
[root@ localhost root]# mount /mnt/cdrom
[root@ localhost root]#cd /mnt/cdrom/redhat/RPMS
[root@ localhost root]#rpm –ivh samba-2.2.7a-7.9.0.i386.rpm
Lệnh đầu tiên kết gắn ổ CD vào hệ thống, lệnh thứ hai chuyển vào thư mục chứa chương trình nguồn samba-2.2.7a-7.9.0.i386.rpm và lệnh thứ ba sẽ cài đặt package samba-2.2.7a-7.9.0.i386.rpm vào hệ thống của bạn Sau khi cài đặt thành công samba vào hệ thống, tập tin cấu hình smb.conf sẽ nằm trong thư mục
/etc/samba/smb.conf và tất cả những gì chúng ta cấu hình về samba sẽ được thực hiện từ tập tin này
3.3 cấu hình
File cấu hình chính của Samba là smb.conf được cất trong thư mục
/etc/Samba Trong file này có hai kiểu chú thích được xác định bằng dấu (;) và (#) đặt ở đầu các dòng Dấu (#) là dấu chú thích thực và bạn không thể bỏ dấu này đi được nhưng dấu (;) là dấu chú thích xác định thuộc tính ở hàng tương ứng
có được chọn hay không, kiểu chú thích này có thể bỏ đi được
Ví dụ trong file này có đoạn:
;encrypt password =yes Nếu bỏ dấu (;) đi thì Samba sẽ hiểu rằng mật khẩu sẽ được mã hóa
(encrypt), ngược lại mật khẩu khi truyền đi sẽ được để ở dạng không mã hoá (clear text)
Trang 40Để việc thay đổi thông số trong file smb.conf an toàn, chúng ta sao lưu file smb.conf đến một thư mục khác, đồng thời đảm bảo rằng kết nối giữa máy Linux và Windows vẫn ở trạng thái tốt (Kiểm tra bằng lệnh ping 2 máy với nhau)
File smb.conf được chia làm 2 phần: global setting và sharing setting Trong mỗi phần lại có nhiều tham số khác nhau
Để thiết lập cấu hình file smb.conf bạn có thể mở file này bằng một trình soạn thảo có sẵn trên hệ thống như vi, mc, pico:
#vi /etc/Samba/smb.conf
3.3.1 cấu hình global setting:
Phần này sẽ chứa thông số điều khiển Samba server
Giá trị đầu tiên cần thiết lập là giá trị của thẻ workgroup :
Lưu ý: Nên nhập tên workgroup ở dạng chữ in hoa
# server string is the equivalent of the NT Description field server string =Samba Server
Tham số server string là tham số gán mô tả về tên máy Linux trên mạng Mặc định tham số này được gán bằng Samba Server, tuỳ theo chức năng của máy Linux mà bạn có thể đặt các tên khác nhau Việc gán giá trị cho tham số này không gây ảnh hưởng lớn đến việc cấu hình Samba
;hosts allow = 192.168.1 192.168.2