Những người sử dụng không có mã nguồnthường không thể thay đổi được chươngtrình để làm cái họ muốn hay chuyển sangmột loại máy tính khác 11 Phần mềm nguồn mở Ý tưởng cơ bản đằng sau
Trang 1Nội dung chương trình học
Trang 2thì cần phải tuân theo nguyên tắc nào.
Khái niệm về phần mềm
các chương trình bằng việc viết text,
Trang 3 Thay đổi chương trình thông thường yêucầu quyền sở hữu và sự cho phép để thayđổi mã nguồn
Bất kỳ ai màkiểm soátmã nguồn hợp phápthì họ có thể được làm và không làm cái gì
Những người sử dụng không có mã nguồnthường không thể thay đổi được chươngtrình để làm cái họ muốn hay chuyển sangmột loại máy tính khác
11
Phần mềm nguồn mở
Ý tưởng cơ bản đằng sau nguồn mở rất đơn
giản: Các lập trình viên có thể đọc, phân
phối lại, và điều chỉnh mã nguồn một phần
của phần mềm, hay gọi là phần mềm tiến
hóahayphẩn mềm mở
Mọi người cải thiện, điều chỉnh, sửa lỗi nó.
Quá trình tiến hóa nhanhtức là sản xuất ra
phần mềm tốt hơn so với mô hình phần
mềm “đóng” truyền thống, mà chỉ một ít
lập trình viên có thể nhìn thấy mã nguồn,
mọi người khác thì chỉ biết sử dụng
Tổ chức Open Source Initiative sáng lập
nhằm thực hiện mục tiêu trên
12
OSS/FS
theo các điều kiện khác nhau
đầu tiên
Trang 4Khái niệm PMNM
Các chương trình OSS/FS là những chương
trình mà quy trình cấp phép sẽ cho người
dùng quyền tự do chạy chương trình theo bất
kỳ mục đích nào, quyền nghiên cứu và sửa
đổi chương trình, quyền sao chép và tái phát
được phát triển, nhiều người sớm sử dụng các hệ thống này như là các chuyên gia về công nghệ.
Phần mềm miễn phí nhằm mục đích bảo vệ
1 Quyền tự do chạy một chương trình với bất kỳ mục đích nào
2 Quyền tự do nghiên cứu cách thức vận hành của một chương trình và thích ứng nó cho phù hợp với nhu cầu của mình.
3 Quyền tự do phân phát các phiên bản của phần mềm để giúp đỡ những người xung quanh
4 Quyền tự do thêm mới các chức năng cho một chương
Trang 5Học thuyết FSF
sử dụng có tất cả tự do Việc tự do để làm
những thứ có nghĩa là bạn không phải hỏi hay
trả tiền để được cho phép Có tự do để làm
những sự cải tiến và sử dụng riêng tư trong
công việc riêng mình hoặc chơi, thậm chí
xuất bản những cái thay đổi, bạn không cần
phải thông báo bất cứ ai nói riêng, hay trong
bất kỳ trường hợp đặc biệt nào
mại
Một chương trình free phải có sẵn cho sử dụng, triển
khai và phân phối thương mại.
biệt là lợi ích thực tiễn của phương
19
Học thuyết OSI
Open Source không chỉ có nghĩa là truy cập
vào source code
Các điều khoản phân phối phần mềm
nguồn mở phải tuân theo các tiêu trí sau:
20
1 Free Redistribution – Miễn phí phân phối lại
bất kỳ ai từ việc bán hoặc cho theo các cách khác nhau phần mềm
phải có trả tiền hoặc các chi phí khác.
Trang 62 Source code
phải cho phép phân phối source code cũng như
các hình thức biên soạn
Trong trường hợp một số sản phẩm không
được phân phối với mã nguồn, thì phải công bố
trên các phương tiện đại chúng hoặc download
từ Internet mà không có phí
hợp lập trình viên sẽ chỉnh sửa chương trình
tiền sử lý hoặc dịch là không cho phép
22
3 Derived Works – Các sản phẩm dẫn xuất
sung và các sản phẩm dẫn xuất phải cho phép họ được phân phối theo cùng một điều khoản như giấy phép
của phần mềm gốc.
4 Integrity of The Author's Source Code –
Sự toàn vẹn Source code của tác giả
được phân phối dưới hình thức sửa đổi chỉ
khi cấp giấy phép cho phép phân phối "các
miếng vá" với mã nguồn cho mục đích của
việc sửa đổi chương trình tại thời điểm xây
dựng
phần mềm được xây dựng từ sửa đổi mã
nguồn
xuất mang một tên khác hay phiên bản khác từ
5 No Discrimination Against Persons or Groups - Không phân biệt đối xử với cá nhân hoặc nhóm
xử đối với bất kỳ người nào hoặc nhóm người
Trang 76 No Discrimination Against Fields of Endeavor
– Chống lại phân biệt sự cố gắng của các thành
Trong thương mại
Trong nghiên cứu di truyền
mà không cần thực hiện thêm một giấy phép giữa các bên.
27
8 License Must Not Be Specific to a Product
-Giấy phép không được cụ thể cho một sản phẩm
trình không phải phụ thuộc vào một
phần bản phân phối đặc biệt.
Nếu chương trình được trích xuất từ
bản phân phối đó và được sử dụng
hoặc được phân phối trong các điều
khoản của các chương trình cấp phép,
tất cả các bên tham gia vào chương trình
phân phối nên có cùng quyền lợi như
những người được cấp cùng với bản gốc
Ví dụ, giấy phép không được đòi rằng tất
cả các chương trình khác được phân phốitrên cùng môi trường phải là phần mềm
mã nguồn mở
Trang 810 License Must Be Technology-Neutral –
Giấy phép phải trung lập về công nghệ
xác định dựa theo bất kỳ công nghệ
nào hoặc theo kiểu giao diện nào
30
dựng PMNM
1 Giảm sự trùng lặp nguồn lực
2 Tiếp thu kế thừa
3 Quản lý chất lượng tốt hơn
4 Giảm chi phí duy trì
Lịch sử của PMNM
Các cột mốc đáng nhớ
1984: Richard Stallman sáng lập dự án GNU (GNU Not Unix)
1991: Linus Tovards viết thành công lõi Linux
1997: GNU/Linux chiếm 25% thị trường máy chủ
1998: Netscape công bố mã nguồn Navigator
Thuật ngữ “Nguồn mở” ra đời
Thành lập Sáng kiến nguồn mở OSI
5 Giảm phụ thuộc vào nhập khẩu
6 Phát triển năng lực ngành CNPM địa phương
7 Giảm tình trạng vi phạm bản quyền
Trang 91 BIND (máy chủ tên miền DNS)
2 Apache (máy chủ Web)
3 Sendmail (máy chủ thư điện tử)
4 OpenSSH(Công cụ quản trị bảo mật mạng)
5 Open Office (bộ ứng dụng văn phòng)
3 Nguồn mở và miễn phí
4 Phù hợp cho mục đích sử dụng làm máy chủtrong môi trường Internet
Trang 10Các loại giấy phép PMNM
Giấp phép đại chúng GNU (General Public
License)
Người phổ biến một chương trình đã được cấp phép
đại chúng phải đồng thời phổ biến luôn cả mã nguồn
cho người nhận
Nếu người phổ biến chương trình đã thực hiện một
sửa đổi gì đó cho phần mềm thì những sửa đổi đó
cũng phải được cấp phép theo chế độ giấy phép đại
chúng
Người phổ biến chương trình không áp dụng với
người nhận bất cứ hạn chế nào không thuộc phạm vi
giấy phép đại chúng
Người nhận một phần mềm đã cấp phép đại chúng
sẽ được trao y nguyên mọi quyền như người phổ biến
gốc, tức là quyền sao chép, chỉnh sửa và phổ biến
phần mềm
38
Các loại giấy phép PMNM (tt)
Giấp phép BSD (Berkeley System Distribution)
Ghi nhận công lao của tác giả đầu tiên làm
ra phần mềm bằng cách đưa vào file mãnguồn các thông tin bản quyền gốc, và
Người phát hành ban đầu sẽ không chịutrách nhiệm trước pháp luật về bất cứ thiệthại nào phát sinh do sử dụng những phầnmềm nguồn mở đã được chỉnh sửa
Các loại giấy phép PMNM (tt)
Giấp phép đại chúng
Giấp phép BSD
Phải phổ biến mã nguồn người
Mã nguồn tạo mới phải được cấp
Các giấy phép PMNM khác
Academic Free License
Adaptive Public License
Apache Software License
Apache License, 2.0
Apple Public Source License
Artistic license
Attribution Assurance Licenses
New BSD license
Computer Associates Trusted
Open Source License 1.1
Common Development and
Distribution License
Common Public License 1.0
EU DataGrid Software License
Eclipse Public License
Educational Community License
Eiffel Forum License
Eiffel Forum License V2.0
Entessa Public License
Fair License
Frameworx License
GNU General Public License
(GPL)
GNU Library or "Lesser"
General Public License (LGPL)
Trang 11Các giấy phép PMNM khác
IBM Public License
Intel Open Source License
Jabber Open Source License
Lucent Public License
Naumen Public License
Nethack General Public License
Nokia Open Source License
OCLC Research Public License
Qt Public License (QPL)
RealNetworks Public Source
License V1.0
Reciprocal Public License
Ricoh Source Code Public License
Sleepycat License
Sun Industry Standards Source License (SISSL)
Sun Public License
Sybase Open Watcom Public
License 1.0
University of Illinois/NCSA Open Source License
Vovida Software License v
1.0 W3C License
wxWindows Library License
công ở các nuớc tiên tiến nhu Anh,
Đức, Pháp, Hà lan v.v
mềm mã Mở lần thứ IV một lần nữa
khẳng định vai trò quan trọng của Mã
nguồn Mở trong chiến luợc phát triển
CNTT của nuớc ta
Sử dụng các sản phẩm mã Mở trong các
cơ quan nhà nuớc, đưa Mã nguồn Mở vào
trung tâm đào tạo CNTT
44
Mốc son của LTV mã Mở
hàng loạt các bài viết về Mã nguồn
Trang 12Cơ hội và thách thức PMNM
đào tạo bài bản, chuyên nghiệp là rất
Trang 13• Giữa năm 1960, AT&T Bell Laboratories và một số trung tâm
khác Multics (Multiplexed Information and Computing
Service) Không khả thi
• Ken Thompson, Dennis Ritchie … thuộc Bell Labs đã không
bỏ cuộc Thay vì xây dựng một HĐH làm nhiều việc một lúc như
Multics, họ quyết định phát triển một HĐH đơn giản chỉ làm tốt
một việc là chạy chương trình (run program)
• Peter Neumann đặt tên cho HĐH “đơn giản” này là Unix
• Khoảng 1977 bản quyền của UNIX được giải phóng và HDH
UNIX trở thành một thương phẩm.
• Hai dòng UNIX : System V của AT&T , Novell và Berkeley
Software Distribution (BSD) của Đại học Berkeley.
Phần II - Khai thác PMNM 4
Các phiên bản chính UNIX
Trang 14Phần II - Khai thác PMNM 5
Các phiên bản chính UNIX
Hai nhánh chính UNIX: một nhánh từ AT&T và một
nhánh từ AT&T thông qua University of California tại
Berkeley.
Các nhánh chính ngày nay là AIX từ IBM, HP-UX từ HP
và Solaris từ Sun.
Một định nghĩa UNIX: Open Group, nhóm sở hữu
thương hiệu Unix đã định nghĩa Unix là tất cả các hệ
điều hành được cấp chứng chỉ nhờ phù hợp với Single
Unix Specification (SUS)
Một định nghĩa rộng đối với Unix bao gồm cả các hệ
điều hành giống Unix – đôi khi được gọi là Unix "nhái"
hoặc trông giống – mà đã copy các ý tưởng từ Unix
nhưng không trực tiếp cộng tác mã từ Unix Một phân
phối trong đó là Linux.
Phần II - Khai thác PMNM 6
Giới thiệu lịch sử phát triển của Linux
• IEEE đã thiết lập chuẩn "An Industry-Recognized
Operating Systems Interface Standard based on the UNIX Operating System." Kết quả cho ra đời POSIX.1
(cho giao diện C ) và POSIX.2 (cho hệ thống lệnh trên Unix)
• Linux là một HDH dạng UNIX (Unix-like Operating System) chạy trên PC với CPU Intel 80386 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD, Cyrix
Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Sparc Linux thỏa mãn chuẩn POSIX.1
•Năm 1991 Linus Torvaldsbắt đầu xem xét Minix, một
phiên bản của Unixvới mục đích nghiên cứu cách tạo ra
một hệ điều hành Unix chạy trên máy PC với bộ vi xử lý
Intel 80386
•Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo
trên comp.os.minix của Internet về dự định của mình về
Linux
•1/1992, Linus cho ra version 0.12 với shell và C
compiler Linus không cần Minix nữa để recompile HDH
Lịch sử phát triển của Linux Lịch sử phát triển của Linux
Quá trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU (GNU’s Not Unix), đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform.
Đến cuối 2001, phiên bản mới nhất của Linux kernel là 2.4.2-2, có khả năng điều khiển các máy đa bộ vi xử lý và rất nhiều các tính năng khác.
Trang 15Phần II - Khai thác PMNM 9
Vấn đề bản quyền của GNU Project
Các chương trình tuân theo GNU Copyleft or
GPL (General Public License) có bản quyền
như sau :
1 Tác giả vẫn là sở hữu của chương trình
của mình
2 Ai cũng được quyền bán copy của
chương trình với giá bất kỳ mà không phải
trả cho tác giả ban đầu
3 Người sở hữu chương trình tạo điều kiện
cho người khác sao chép chương trình
nguồn để phát triển tiếp chương trình
Phần II - Khai thác PMNM 10
Tại sao lại sử dụng Linux ?
Linux là miễn phí (free).
Linux rất ổn định Trái với suy nghĩ “của rẻ
là của ôi“, Linux từ những phiên bản đầu tiên cách đây 5-6 năm đã rất ổn định Ngay cả server Linux phục vụ những mạng lớn (hàng trăm máy trạm) cũng hoạt động rất ổn định
Linux đầy đủ Tất cả những gì bạn thấy ở IBM, SCO, Sun … đều có ở Linux C compiler, perl interpeter, shell , TCP/IP, proxy, firewall, tài liệu hướng dẫn đều rất đầy đủ và có chất lượng Hệ thống các chương trình tiện ích cũng rất đầy đủ
Phần II - Khai thác PMNM 11
Tại sao lại sử dụng Linux ?
Linux rất mềm dẻo trong cấu hình Linux cho
người sử dụng cấu hình rất linh động, ví dụ như độ
phân dải màn hình Xwindow tùy ý, dễ dàng sửa
đổi ngay cả kernel …Linux chạy trên nhiều máy
khác nhau từ PC 386, 486 tự lắp cho đến SUN
Sparc.
Linux được trợ giúp Tài liệu giới thiệu Linux
ngày càng nhiều, không thua kém bất cứ một HDH
nào khác
Linux là HDH hoàn toàn 32-bit Như các Unix
khác, ngay từ đầu, Linux đã là một HDH 32 bits
Hiện nay đã có những phiên bản Linux 64 bits
chạy trên máy Alpha Digital hay Ultra Sparc.
Phần II - Khai thác PMNM 12
Các phiên bản của Linux.
Các phiên bản của HDH Linux được xác định bởi hệ thống số dạng X.YY.ZZ Nếu YY
là số chẵn => phiên bản ổn định YY là số lẻ =>
phiên bản thử nghiệm
biết là RedHat, Debian, SUSE, Slakware, Caldera …
(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 16Phần II - Khai thác PMNM 13
Linux
Máy chủ web Apache là đóng vai trò quan trọng trong quá trình phát triển WWW mà chúng ta biết ngày nay.
Apache là web server số một từ năm 1996 đến nay, hiện nay chiếm 62.53% tổng thị trường web server, hơn gấp đôi đối thủ cạnh tranh MS IIS Server (27.17%)
Ưu điểm Apache
Phần mềm cơ sở dữ liệu (MySQL)
phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.
Trang 17Phần II - Khai thác PMNM 17
PHP
PHP(Personal Home Page) là một ngôn ngữ
lập trình kịch bản hay một loại mã lệnh chủ
yếu được dùng để phát triển các ứng dụng
viết cho máy chủ, mã nguồn mở
Ưu điểm
Hiệu năng cao
Giao tiếp nhiều CSDL
Có sẵn nhiều thư viện hỗ trợ Web
Cài đặt và cấu hình XAMPP
Địa chỉ Internet như yahoo.com … không
có chức năng gì nếu không có DNS(Domain Name System)
Chúng làm nhiêm vụ chuyển đổi các tên
dễ nhớ thành các địa chỉ số và ngược lại
Berkeley Internet Name Domain (BIND)chiếm 95% của tất cả các DNS Server
BIND là một chương trình FOSS với giấyphép BSD
Trang 18Phần II - Khai thác PMNM 21
(Sendmail)
Internet không thể thiếu email
Chức năng Email Server: phân phát
người email người sử dụng tới các đích
Email Server làm rất nhiều nhiệm vụ
phức tạp hơn bất kỳ hệ thống nào như
forward mail, gửi lại, loại bỏ mail, điều
hướng
Sendmail chiếm 42% thị trường mail
server, MS Exchange 18%, Unix qmail
17%
Phần II - Khai thác PMNM 22
(OpenSSH)
Một người dùng kết nối vào một máy chủ từ
xa, an ninh là một mối quan tâm lớn
Giao thức SSH(Secure Shell) cho phépngười quản trị hệ thống điều khiển server
từ xa, an toàn trong việc chặn và giải mãcác thông tin truyền đi
OpenSSH là một FOSS theo giao thức SSH,chỉ chiếm 5% thị trường năm 2000, nhưngT4, 2002 chiếm 66.8%
phát triển mạnh, thì các ứng dụng cho máytính để bàn tương đối mới Open Office dựatrên source code của Star Office trước đây sởhữu, là một FOSS với các tính năng tươngđương MS Office
Trang 19Email: doanduybinh@gmail.com , ddbinh@dce.udn.vn
Phần III – Cài đặt LINUX 1
http
phải quan tâm đến một số vấn đề:
Loại Linux (type of Linux system) sẽ càiđặt
Cấu hình phần cứng trên máy
Các thông số network
Trang 20 Hầu hết các phiên bản sẽ tự động nhận biết
các thông số hardware hiện có
chỉnh hoặc drivers đối với các thiết bị riêng
chọn cài đặt mới hoặc nâng cấp (upgrade)
Chọn intall hoặc update
Phân hoạch đĩa:
Chúng ta có thể tạo ra các phân vùng (partition) mới
hoặc dùng lại các partition Linux sẵn có
Có ba loại phân vùng: primary, extended vàlogical
Có thể có tối đa 4 primary partitions trênđĩa
Các phân vùng extended được tạo ra đểchứa logical partitions
Phân vùng chứa /boot phải năm trongkhoảng 1024 cylinder đều tiên đối với một
Trang 21Swap Space
Swap space là một partition trên ổ cứng
Linux sử dụng swap space làm bộ nhớ
ảo (tương tự như pagefile trên windows)
Cài đặt Linux không có swap space sẽ
làm giảm rõ rệt hiệu năng của hệ thống
Có thể phân chia nhiều swap space cho
một hệ thống Linux
Thông số được khuyên dùng: swap = 2
* RAM
File system types
Linux hỗ trợ khá nhiều định dạng file
system khác nhau:
trở lên, không support journaling
journaling
lý 64 bit, hỗ trợ file có kích thước 8129
petabytes
Trang 22Qui tắt đặt tên partition
theo thứ tự:
Boot Loader
Boot Loader là công cụ giúp lựa chọnphiên bản hệ điều hành nào được khởiđộng
Linux hỗ trợ khá nhiều boot loader khácnhau:
Trang 23Giới thiệu một số tiện ích
Microsoft Office Với những phiên bản mới nhất, có thể đọc được file của MS Office 2007
Trang 24Presentation Browser _ Instant Messaging
Trang 25Phần IV – LỆNH CỦA LINUX 3
Qui ước đặt tên file
Tối đa 255 kí tự, dùng bất kì ký tự nào, kể cả các ký tự đặc biệt
File/thư mục ẩn được bắt đầu bằng dấu chấm “.”, ví dụ
“.bash_history”
Đường dẫn tuyệt đối: bắt đầu bằng “/”
/ /bin /usr /usr/bin
Đường dẫn tương đối:không bắt đầu bằng “/”
Đường dẫn đặt biệt
- thư mục cha
- thư mục đang làm việc
Ví dụ: Nếu người dùng đang ở thư mục /etc, muốn tham chiếu đến
tập tin /etc/vsftp.conf thì đường dẫn tương đối sẽ là ./vsftp.conf
Phần IV – LỆNH CỦA LINUX 4
Trang 26 Nhiều cờ có thể dùng chung một ký tự “-”, ví dụ: ls –al tương đương ls –a –l
Một số lệnh đặc biệt, không cần ký tự “-” trước các cờ
Muốn xem trợ giúp dùng tham số help hoặc man Ví dụ: ls help hoặc man ls Ghi chú: Có khá nhiều loại shell trên Linux, kiểm tra đang dùng loại shell nào:
echo $SHELL Lưu ý cách sử dụng phím <tab> và <tab><tab>
cd /etc cd ~ ( ~: macro tượng trưng cho
home directory của người dùng)
Trang 27Các cờ của lệnh ls
Phần IV – LỆNH CỦA LINUX 9
Màu sắc của lệnh ls: ls color
Alias: Đặt các tên tắt cho lệnh
Ví dụ: Thêm vào cuối file bashrc
Phần IV – LỆNH CỦA LINUX 10
mkdir,rmdir,touch
$ mkdir –p dir3/dir4
(tham số -p: tạo thư mục cha nếu chưa tồn tại)
$ cp –r dir1 dir2
Phần IV – LỆNH CỦA LINUX 12
Trang 28 mv – di chuyển/ đổi tên
tham số -r: xóa cả thư mục và tập tin con
ln – tạo liên kết (link)
ls –l / > /root/list.txt : liệt kê nội dung thư mục / , kết quả không xuất ra
màn hình mà xuất ra file /root/list.txt Nếu file đã tồn tại sẽ bị ghi đè
ls –l / >> /root/list.txt: tương tự như trên, nhưng thay vì ghe đè (>) sẽ ghi
tiếp vào phần sau của file (>>)
Redirection
stdin 0 stdout 1 stderr 2
Ví dụ: Thực hiện lệnh ls, các thông báo lỗi sẽ xuất
ra file error.txt
ls –R / 2>/root/error.txt
Trang 29 Pipe: Kết quả output của một lệnh trước đó -> dữ
liệu input của lệnh sau, sử dụng ký tự |
Ví dụ: ls –R / | less
Lệnh more cho phép xem nội dung theo từng trang
Duyệt màn hình với less
cat & tac
head & tail
Lệnh cat & tac
cat: Xem nội dung file
Ví dụ: Xem nội dung tập tin /etc/passwd
Lệnh head & tail
Lệnh head: Xem các dòng đầu của dữ liệu.
Ví dụ:
Xem 4 dòng đầu tập tin /etc/passwd
head -4 /etc/passwd HOẶC cat /etc/passwd | head -4
Hoặc xem 4 tập tin / thư mục con đầu tiên trong thư mục /
ls –l / | head -4
Lệnh tail: Xem các dòng cuối của dữ liệu
Ví dụ:
Xem 5 dòng cuối của tập tin /etc/passwd
tail -5 /etc/passwd HOẶC cat /etc/passwd | tail -5
Xem nội dung tập tin /etc/passwd từ dòng thứ 4 đến hết:
tail –lines=+4 /etc/passwd hoặc cat /etc/passwd | tail lines=+4
Chú ý:tail có thêm tham số -f để đọc các file động
Phần IV – LỆNH CỦA LINUX 20
Trang 30join
Syntax join [options] file1 file2tham số: -j1 field1, -j2 field2, -j field
$ join –j 1 file1 file2
$ join –j1 1 file1 file2
$ join –j2 1 file1 file2
Trang 31tr – translate text
Syntax tr [options] [[string1 [string2]]
tham số : –d xóa, -s : thay thế lặp
$ cat file1 | tr a-z A-Z - thường sang hoa
$ cat file1 | tr -s a
-$ tr '[A-B]' '[a-b]'< file.txt – hoa sang thường
$ tr ':' ' ' < /etc/passwd -thay “:” bằng “ “
$ cat file1 | tr -d abc -xóa kí tự abc
[:lower:], [:upper:], [:alnum:]
Chú ý: tr chỉ có 2 đối số
Phần IV – LỆNH CỦA LINUX 25
grep
grep [OPTION] PATTERN [FILE]
-i: Không phân biệt hoa thường-n: Kèm theo số thứ tự dòng khi xuất-r: tìm lặp lại trong thư mục con-v: tìm nghịch đảo
find – tìm kiếm file
find [path] [expression]
trong thư mục /
Phần IV – LỆNH CỦA LINUX 27
Restart và shutdown
init 0 Hoặc shutdown –h now
init 6 Hoặc shutdown –r now
Phần IV – LỆNH CỦA LINUX 28
Trang 32Nội Dung
Giới thiệu về shell
Biến trong shell
Tạo shell script
Shell là một chương trình giao tiếp
giữa người sử dụng và hệ thống Linux
Tham số shell mặc định của một user
thể hiện trong file /etc/passwd
Các file đặc biệt liên quan
user, thực thi đối với login shell (tự động thực
thi khi login vào máy)
user, thực thi đối với login shell
interactive shell không phải là login shell
login shell
Trang 33Khai báo Biến
trường thực thi (environment)
$ foo=”xin chao”
$ echo $foo
nghĩa
trường (có giá trị trong các shell và process
khác)
Phần V – LẬP TRÌNH SHELL 5
Biến môi trường
HOME thư mục homeSHELL chương trình shell hiện tạiPATH đường dẫn để tìm các file thực thiUSER tên user login
TERM kiểu terminal hiện tạiDISPLAY khai báo hiển thị cho X-WindowPS1 dấu nhắc dòng lệnh
LANG ngôn ngữ hiện tại
Phần V – LẬP TRÌNH SHELL 6
Một số biến đặc biệt
$0 tên của shell script / chương trình
$$ PID của shell hiện tại
$? mã trả về (exit code) của lệnh
foreground ngay trước đó
$! mã trả về của lệnh background
ngay trước đó
Phần V – LẬP TRÌNH SHELL 7
Shell script
chứa các lệnh (lệnh shell và chương trình)
Phần V – LẬP TRÌNH SHELL 8
Trang 34 Các biến nội thao tác với tham số vị trí:
$# số tham số được truyền
tại vị trí hiện tại
let “percent = $num / 100”
let “remain = $n % $d”
Trang 35Biểu thức điều kiện
Phần V – LẬP TRÌNH SHELL 13
Phát biểu IF
if [ exp ]; then statements;
elif [ expr ]; then statements;
else statements;
fi
if [ “$1” = “” ]; then echo “Enter value:”
read num else let “num = $1”
echo “Mot”;;
2) echo “Hai”;;
*) echo “So khac”;;
done echo $sum
Phần V – LẬP TRÌNH SHELL 16
Trang 36echo “Usage: `basename $0` source dest”
echo exit 1 fi
func_name param1 param2
if [ $k -eq 0 ];then
return 0;
fi done return 1
# hàm main echo -n “Nhap so n:"
Trang 37declare –a array
${array[@]} hoặc ${array[*]}: lấy tất cả phần tử của mảng
expr length $string
Trang 39 Apache: Một open-source Web server và free hoàn
toàn được hỗ trợ bởi Apache Software Foundation,
MySQL:MySQL là một chương trình dùng để quản
lý hệ thống cơ sở dữ liệu (CSDL)
PHP: Ngôn ngữ lập trình
3 Phần VI - Xây dựng và phát triển PMNM
Cách cài đặt LAMP
4 Phần VI - Xây dựng và phát triển PMNM
Trang 40sudo apt-get install apache2
Terminal sẽ hỏi mật khẩu của bạn, nhập nó vào và
nhấn enter
5 Phần VI - Xây dựng và phát triển PMNM
Cách cài đặt LAMP
Mở trình duyệt và sau đó nhập địa chỉ web sau đây vào ô địa chỉ:
http://localhost/
Xuất hiện màn hình sau:
6 Phần VI - Xây dựng và phát triển PMNM
Cách cài đặt LAMP
Mở lại phần Terminal
Gõ dòng lệnh sau vào Terminal và nhấn enter:
sudo apt-get install php5 libapache2-mod-php5
Hợp lệ để PHP làm việc và tương thích với Apache
và chúng ta phải khởi động lại nó Nhập vào câu
lệnh sau trong Terminal để thực hiện điều này:
sudo /etc/init.d/apache2 restart
Cách cài đặt LAMP
Trong Terminal, gõ dòng lệnh sau rồi nhấn enter:
sudo gedit /var/www/html/testphp.php
Câu lệnh này sẽ mở một file có tên là phptest.php
Gõ dòng lệnh sau vào file phptest:
<?php phpinfo(); ?>
Lưu và đóng file lại
Mở trình duyệt web của bạn và nhập vào địa chỉ