Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 FithouTú Cao
Tài liệu hướng dẫn bạn quản trị, tạo user, quản lý group và phân quyền chmod, chown... trên hệ điều hành Ubuntu (linux).
Hy vọng có thể giúp ích cho bạn nào đó khi tìm hiểu và học về Ubuntu (linux), vì là bài tập nên có chỗ nào sai xót mong người đọc thông cảm vì kiến thức nhóm còn hạn chế.
Bùi Trương Đức Công
Hoàng Gia Linh
Nguyễn Cao Tú
10B4 - Viện ĐH Mở Hà Nội 2013.
Đồ án tốt nghiệp đại học về quản lý điểm trường trung học phổ thông.
Để có bản full thì các bạn hãy liên hệ với mình nhé
yahoo: phamtoan1804
facebook: https://www.facebook.com/phamtoan1804
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOSVàng Cao Thanh
Dưới sự phát triển vượt bậc của Công nghệ thông tin, thời đại Internet bùng nổ chiếc điện thoại di động không chỉ đơn giản là phương tiện liên lạc mà nó còn là công cụ hữu ích cho con người. Ngoài các chức năng nghe, gọi, nhắn tin thông thường, ngày nay điện thoại di động còn có rất nhiều ứng dụng khác như : quay phim, chụp ảnh, nghe nhạc, chơi game, gửi mail, tìm kiếm thông tin…
Wikipedia là một bách khoa toàn thư nội dung mở bằng nhiều ngôn ngữ trên Internet.Wikipedia được viết và xây dựng do rất nhiều người dùng cùng cộng tác với nhau.Việc xây dựng ứng dụng truy cập Wikipedia trên iPhone là một ứng dụng rất hữu ích. Cùng với sự phát triển của khoa học công nghệ, chỉ đơn giản với một chiếc điện thoại di động và mạng Internet, người dùng có thể tìm kiếm thông tin mà không cần đến máy tính.
Đề tài "Nghiên cứu xây dựng ứng dụng cho Hệ điều hành iOS" là Luận văn tốt nghiệp được thực hiện bởi Hoàng Kim Ngọc (ĐH Dân Lập Hải Phòng) nhằm mục đích nghiên cứu, tìm hiểu cách xây dựng ứng dụng cho hệ điều hành iOS từ đó xây dựng ứng dụng tìm kiếm Wikipedia trên iPhone.
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 FithouTú Cao
Tài liệu hướng dẫn bạn quản trị, tạo user, quản lý group và phân quyền chmod, chown... trên hệ điều hành Ubuntu (linux).
Hy vọng có thể giúp ích cho bạn nào đó khi tìm hiểu và học về Ubuntu (linux), vì là bài tập nên có chỗ nào sai xót mong người đọc thông cảm vì kiến thức nhóm còn hạn chế.
Bùi Trương Đức Công
Hoàng Gia Linh
Nguyễn Cao Tú
10B4 - Viện ĐH Mở Hà Nội 2013.
Đồ án tốt nghiệp đại học về quản lý điểm trường trung học phổ thông.
Để có bản full thì các bạn hãy liên hệ với mình nhé
yahoo: phamtoan1804
facebook: https://www.facebook.com/phamtoan1804
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOSVàng Cao Thanh
Dưới sự phát triển vượt bậc của Công nghệ thông tin, thời đại Internet bùng nổ chiếc điện thoại di động không chỉ đơn giản là phương tiện liên lạc mà nó còn là công cụ hữu ích cho con người. Ngoài các chức năng nghe, gọi, nhắn tin thông thường, ngày nay điện thoại di động còn có rất nhiều ứng dụng khác như : quay phim, chụp ảnh, nghe nhạc, chơi game, gửi mail, tìm kiếm thông tin…
Wikipedia là một bách khoa toàn thư nội dung mở bằng nhiều ngôn ngữ trên Internet.Wikipedia được viết và xây dựng do rất nhiều người dùng cùng cộng tác với nhau.Việc xây dựng ứng dụng truy cập Wikipedia trên iPhone là một ứng dụng rất hữu ích. Cùng với sự phát triển của khoa học công nghệ, chỉ đơn giản với một chiếc điện thoại di động và mạng Internet, người dùng có thể tìm kiếm thông tin mà không cần đến máy tính.
Đề tài "Nghiên cứu xây dựng ứng dụng cho Hệ điều hành iOS" là Luận văn tốt nghiệp được thực hiện bởi Hoàng Kim Ngọc (ĐH Dân Lập Hải Phòng) nhằm mục đích nghiên cứu, tìm hiểu cách xây dựng ứng dụng cho hệ điều hành iOS từ đó xây dựng ứng dụng tìm kiếm Wikipedia trên iPhone.
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành công nghệ thông tin với đề tài: Xây dựng chương trình quản lý dịch vụ vận chuyển của công ty ASEAX, cho các bạn làm luận văn tham khảo
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Cao
Slide báo cáo đồ án tốt nghiệp, Website cửa hàng điện thoại trực tuyến MSmobile. Nó chỉ mang tính chất tham khảo, hy vọng là các bạn khi xem có thêm gợi ý, nhưng đừng lấy nó ra để nộp.
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành công nghệ thông tin với đề tài: Xây dựng chương trình quản lý dịch vụ vận chuyển của công ty ASEAX, cho các bạn làm luận văn tham khảo
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Cao
Slide báo cáo đồ án tốt nghiệp, Website cửa hàng điện thoại trực tuyến MSmobile. Nó chỉ mang tính chất tham khảo, hy vọng là các bạn khi xem có thêm gợi ý, nhưng đừng lấy nó ra để nộp.
Smartbiz_He thong MES nganh may mac_2024juneSmartBiz
Cách Hệ thống MES giúp tối ưu Quản lý Sản xuất trong ngành May mặc như thế nào?
Ngành may mặc, với đặc thù luôn thay đổi theo xu hướng thị trường và đòi hỏi cao về chất lượng, đang ngày càng cần những giải pháp công nghệ tiên tiến để duy trì sự cạnh tranh. Bạn đã bao giờ tự hỏi làm thế nào mà những thương hiệu hàng đầu có thể sản xuất hàng triệu sản phẩm với độ chính xác gần như tuyệt đối và thời gian giao hàng nhanh chóng? Bí mật nằm ở hệ thống Quản lý Sản xuất (MES - Manufacturing Execution System).
Hãy cùng khám phá cách hệ thống MES đang cách mạng hóa ngành may mặc và mang lại những lợi ích vượt trội như thế nào.
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Bồi Dưỡng HSG Toán Lớp 3
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp 6 trường chuyên. Đăng ký mua tài liệu Toán 5 vui lòng liên hệ: 0948.228.325 (Zalo - Cô Trang Toán IQ).
3. Kernel ?
Kernel là trái tim của HĐH Linux
Đảm nhận các vai trò sau :
Quản lý I/O
Quản lý tiến trình(process)
Quản lý tập tin
Quản lý thiết bị
Quản lý bộ nhớ
5. Các loại Shell trên Linux
5
Bourne shell: còn gọi là sh, do Steve Bourne tạo ra
C-shell: còn gọi là csh, đi kèm với BSD UNIX
Korn shell: còn gọi là ksh, do David Korn tạo ra
Born Again shell: còn gọi là bash, tương tự nhưng
mới hơn Bourne shell. Bash là shell mặc định của
Linux
Người dùng có thể chuyển đổi giữa các shell
Hiển thị Shell : # echo $SHELL
7. Tiến trình (Process)
Tiến trình là một loại chương trình đảm nhiệm bởi
PC.
# ls –lR
Tại sao cần tiến trình ?
# ls / -R | wc –l
# ls / -R | wc -l &
8. Minh họa tiến trình
Xem tất cả các tiến trình
$ps
kill {PID}
$ ps –ag : Lấy thông tin từ các tiến trình đang chạy
$ kill 0 : tắt tất cả process ngoại trừ Shell đang
dùng
9. 9
Các lệnh quản lý tiến trình
Lệnh ps: Xem danh sách các tiến trình
$ps
$ps aux
Lệnh kill: Hủy tiến trình
$kill 1653
$kill -s SIGTERM 1653
Lệnh top: Xem tần suất sử dụng tài nguyên của các tiến trình
$top
10. Chuyển đổi người dùng
10
Lệnh id : Hiển thị định danh người dùng hiện thời
$id
Lệnh su : Chuyển đổi người dùng hiện thời
$su
$su user1
Liệt kê người dùng
Lệnh who: Liệt kê những người dùng đang đăng nhập
$ who
11. 11
Tắt và khởi động lại máy
Lệnh shutdown: Tắt máy
$shutdown -h now
$shutdown -h -t5
Lệnh reboot: Khởi động lại máy
$reboot
$shutdown -r now
Gắn các ổ đĩa
• Lệnh mount: Gắn các ổ đĩa
$mount /dev/cdrom /mnt/cdrom
• Lệnh umount: Gỡ bỏ các ổ đĩa
$umount /mnt/cdrom
12. Phím điều khiển
12
Ctrl-C, Ctrl-: Kết thúc tiến trình hiện thời
Ctrl-Z: Tạm dừng tiến trình hiện thời
Ctrl-D: Kết thúc việc nhập liệu
Ctrl-U: Xóa toàn bộ dòng lệnh bên trái con trỏ
Ctrl-W: Xóa một từ bên trái con trỏ
Ctrl-A: Di chuyển đến đầu dòng lệnh
Ctrl-E: Di chuyển đến cuối dòng lệnh
13. Phím điều khiển
13
Các phím di chuyển
Phím mũi tên lên, xuống: di chuyển trong lịch sử các lệnh đã
được gõ
Phím mũi tên trái, phải: di chuyển trong dòng lệnh
Phím BACKSPACE: xóa ký tự bên trái con trỏ
Phím ENTER: thực thi lệnh
• Lệnh history: Làm việc với lịch sử các lệnh đã được gõ
$history
$!2
!! : thực thi lệnh vừa được gõ
!pw : thực thi lệnh đã được gõ bắt đầu bằng pw
!$ : sử dụng đối số đã được gõ
!* : sử dụng lại tất cả đối số của lệnh vừa được gõ
14. Thao tác phím
14
Khả năng tự hoàn tất
Sử dụng phím TAB để hoàn tất lệnh hay tên tập tin, tên thư mục
Một số ký tự đặc biệt
# đặt ở đầu dòng lệnh, đánh dấu dòng lệnh như là chú thích
; ngăn cách các lệnh, cho phép đánh nhiều lệnh trên một dòng
& đặt ở cuối dòng lệnh, cho phép chạy lệnh ở chế độ nền (dấu nhắc
sẽ lập tức hiện ra)
tiếp tục dòng lệnh ở dòng mới
| chuyển đầu ra của lệnh này thành đầu vào của lệnh kia
(;) Gộp các lệnh trong dấu () các lệnh được phân cách bởi “;”
15. 15
Cú pháp lệnh
Cú pháp chung
Command [Options] [Argument]
Command = Tên lệnh
Options = Các tùy chọn của lệnh
Argument = Các đối số của lệnh
16. Các ký hiệu đại diện nhóm tập tin
16
“*” đại diện cho một chuỗi (có thể rỗng) các ký tự bất kỳ
“?” đại diện cho một ký tự bất kỳ
“[ ]” đại diện cho một ký tự bất kỳ trong ngoặc vuông, có
thể sử dụng dấu - để liệt kê một khoảng ký tự liền nhau
17. Chuyển hướng Input <-> Output
Trong Linux có thể chuyển Output thành input
$ ls> filename
Có 3 loại chuyển hướng : > ; >>; <
> Redirector Symbol
$ ls > myfiles # ghi đè thông tin nếu đã tồn tại file
>> Redirector Symbol
Syntax: Linux-command >> filename
$ date >> myfiles # thêm thông tin vào phần cuối của file
< Redirector Symbol
Linux-command < filename
$ cat < myfiles # Nhận đầu vào lệnh vào tập tin
18. Ống dẫn (pipe)
Ống dẫn là cách để kết nối output của một chương
trình thành input của một chương trình khác mà
không dùng file tạm
Ống dẫn thường dùng đễ thực thi nhiều hơn 1 câu
lệnh trên cùng một dòng.
Cú pháp : command1 | command2
19. Lập trình Shell
Chương trình shell là một loạt các câu lệnh.
Biến trong Shell :
Biến hệ thống (System variables )
Biến do người dùng định nghĩa (User defined variables
UDV)
20. Một vài biến hệ thống
Xem các biến trong hệ thống $set |more
System Variable Meaning
BASH=/bin/bash Our shell name
BASH_VERSION='4.2.24(1)-release' Our shell version name
COLUMNS=65 No. of columns for our screen
HOME=/home/anhpham Our home directory
PATH=/usr/lib/ccache Our path settings
USER=anhpham User name who is currently login to this
PC
21. Ưu và nhược của Shells
Ưu điểm :
Ngôn ngữ diễn dịch : dễ dàng dò tìm và phát hiện lỗi;
thay đổi chỉnh sửa script không cần phải biên dịch lại
từ đầu.
Ngôn ngữ phù hợp với ứng dụng : ống nối, thay thế
lệnh và các biến trong môi trường Unix
Cho phép kết nối các thành phần với các ngôn ngữ
khác :
Input-Output dẫn xuất : các biến, lỗi, kết quả…
22. Ưu và nhược của Shells
Nhược điểm :
Bắt nguồn từ Unix, ngôn ngữ lập trình dùng để lập trình, cú
pháp của shell không dễ tiếp cận cho người mới bắt đầu.
Thêm hoặc bớt khoảng trắng trong câu lệnh sẽ gây lỗi cú
pháp
bash sở hữu nhiều cú pháp để thao tác cùng một chức năng
=> đôi khi gây ra sự không tương thích với các phiên bản
shell
Các ký tự đặc biệt dùng trong câu lệnh sẽ có ý nghĩa khác
nhau trong từng hoàn cảnh khác nhau, gây khó khăn khi sử
dụng
23. Định nghĩa biến người dùng
Cú pháp : variablename = value
Ví dụ :
$ a=90 # this is ok
$ 90=a # Error, NOT Ok, giá trị phải ở bên phải
Định nghĩa biến ‘xe' có giá trị Bus
$ xe=Bus
Định nghĩa biến n có giá trị 10
$ n=10
24. Quy tắc đặt tên biến ( UDV và System Variable)
Tên biến phải bắt đầu bằng 1 ký tự chữ cái hoặc (_), được tiếp bởi
1 ký tự chữ cái.
Biến hợp lệ :
HOME
SYSTEM_VERSION
no
Không dùng khoảng trắng trước và sau dấu “=”
$ no =10 #không hợp lệ
$ no= 10 #không hợp lệ
$ no = 10 #không hợp lệ
$ no=10 # OK
Biến phân biệt chữ hoa và chữ thường
$ No=11
$ NO=20
$ nO=2
25. Quy tắc đặt tên biến ( UDV và System Variable)
Có thể đặt biến NULL như sau:
$ no=
$ no=“”
Không dùng ?,* etc để đặt tên biến
Để xuất giá trị biến, thêm vào $
$ no=10
$ echo $no
26. Ví dụ minh hoạ
Định nghĩa biến x có giá trị 3 và xuất ra màn hình
$ x=3
$ echo $x
Định nghĩa biến k có giá trị xy
$ k=xyi
$ echo $k
In tổng của hai số
$ echo 6 + 3
$ expr 6 + 3
$ expr 6+3
27. Viết Shell script
Ctrl + D
Để thực thi shell :
$ ./firstshell --.error
$ chmod +x firstshell
$ ./first
$ cat > first shell
#
# My first shell script
#
clear
echo “test"
28. Làm thế nào sử dụng Shell
chmod để gán quyền execute cho script
Cú pháp : chmod +x shell-script-name
chmod 777 shell-script-name
Thực thi script :
Cú pháp : ./shell-program-name
Ví dụ : $ ./first
Hoặc :
$ bash shell-program-name
$ /bin/sh shell-program-name
29. Làm thế nào sử dụng Shell
$ /bin/sh /home/vinhth/shellscript
Thư mục /bin chứa các file thực thi. Có thể chạy
script trực tiếp khi copy vào thư mục /bin
$ cp first ~/bin
$ first
30. Một số lệnh liên quan đến lập trình Shell
echo [options] [string, variables...]
-n : không in ký tự xuống dòng.
-e : cho phép hiểu những ký tự theo sau dấu trong chuỗi
a : alert (tiếng chuông)
b : backspace
c : không xuống dòng
n : xuống dòng
r : về đầu dòng
t : tab
: dấu
31. Một số lệnh liên quan đến lập trình Shell
Dấu nháy kép - “Double Quotes” : tất cả trong “” sẽ được
bỏ qua (ngoại trừ và $)
Dấu nháy đơn – ‘Single quotes’ : tất cả trong ‘’ không thay
đổi
Dấu nháy huyền- `Back quotes`: thực thi câu lệnh
$ echo “Today is date” ( Xuất chuỗi )
$ echo "Today is `date`". ( Xuất giá trị ngày)
Shell và số học :
$ expr 1 + 3 (CHÚ Ý KHOẢNG TRẮNG)
$ echo "expr 6 + 3”
$ expr 10 * 3 (PHÉP NHÂN : *)
$ $ echo "expr 6 + 3" # Xuất : expr 6 + 3
$ echo 'expr 6 + 3' # Xuất : expr 6 + 3
32. Một số lệnh liên quan đến lập trình
Shell
echo $(( 20 + 5 ))
x=5
echo $(( x++ ))
echo $(( x++ ))
x=2
y=3
echo $(( x ** y ))
33. Tính toán trên Shell
$ bc # tính toán trên Linux
5 – 2
7
5 / 2
5 > 2
0 # trả lời của hệ thống
5 > 12
5 == 10
5 != 2
5 == 5
12 < 2
34. Xử lý câu lệnh
Thực hiện câu lệnh với 1 file không tồn tại
$ ls file_luu_tru
$ file_luu_tru : No such file or directory
35. Sự cần thiết của tham số trong câu
lệnh
$ rm {file-name}
$ ls -a /*
36. Ví dụ minh họa
Lưu script Ctrl+d
$ chmod +x demo
$ ./demo Hello World
$ cp demo ~/bin
$ demo
$ cat > demo
#!/bin/sh
#
# Script that demos, command line
#
echo "Total number of command line argument
are $#"
echo "$0 is script name"
echo "$1 is first argument"
echo $2 is second argument"
echo "All of them are :- $*"
37. Trạng thái thoát
Mặc định sau khi kết thúc câu lệnh, hệ thống sẽ trả về 2 giá
trị :
Lệnh thành công, giá trị =0
Lệnh không thành công, lỗi : giá trị >0
$ rm thu_muc
rm: cannot remove thu_muc': No such file or directory
$ echo $?
$ ls
$ echo $?
39. Cấu trúc : if..fi
$cat sho
$echo $
$ chmod +x sho
$./sho fs
$ ./sho foo
if condition
then
command1 if condition is true or if exit status
of condition is 0 (zero)
...
...
fi
$ cat > sho
#!/bin/sh
#
#Script to print file
#
if cat $1
then
echo -e "nnFile $1, found and successfully echoed"
Fi
40. Cấu trúc : if..fi
$ chmod +x trmif cat > trmif
#
# Script to test rm command and exist status
#
if rm $1
then
echo "$1 file deleted"
fi
41. Cấu trúc : if..fi – kiểm tra biểu thức
$ chmod +x soduong
$ ./soduong 5
$./soduong -45
$./soduong
./soduong: test: -gt: unary operator expected
$ cat > soduong
#!/bin/sh
#
# Script to see whether argument is positive
#
if test $1 -gt 0
then
echo "$1 number is positive"
fi
43. Toán tử trong Shell Script
Toán tử trên chuỗi :
Trên file
Kết hợp
44. Cấu trúc : if...else...fi
if condition
then
command1 if condition is true or
if exit status
of condition is 0(zero)
...
...
else
command2 if condition is false or
if exit status
of condition is >0 (nonzero)
...
...
fi
$ cat > kiemtra
#!/bin/sh
#
# kiem tra so duong hay am
#
if [ $# -eq 0 ]
then
echo "$0 : You must give/supply one integers"
exit 1
fi
if test $1 -gt 0
then
echo "$1 number is positive"
else
echo "$1 number is negative"
fi
45. Cấu trúc if-then-else lồng nhau
if condition
then
condition is zero (true - 0)
execute all commands up to elif
statement
elif condition1
condition1 is zero (true - 0)
execute all commands up to elif
statement
elif condition2
condition2 is zero (true - 0)
execute all commands up to elif
statement
else
None of the above
condtion,condtion1,condtion2 are true (i.e.
all of the above nonzero or false)
execute all commands up to fi
fi
$ cat > etf
#!/bin/sh
# Script to test if..elif...else
#
if [ $1 -gt 0 ]; then
echo "$1 is positive"
elif [ $1 -lt 0 ]
then
echo "$1 is negative"
elif [ $1 -eq 0 ]
then
echo "$1 is zero"
else
echo "$1 is not number, give number"
fi
46. Vòng lặp for
for { variable name } in { list }
do
execute one for each item in the
list until the list is
not finished (And repeat all
statement between do and done)
done
$ cat > testfor
#!/bin/sh
for i in 1 2 3 4 5
do
echo “Xin chao $i times"
done
47. Vòng lặp for
$ cat > mtable
#!/bin/sh
# kiem tra vong lap
if [ $# -eq 0 ]
then
echo "Error – Cau lenh sai"
echo "Syntax : $0 number"
echo “Xuat ra bang cuu chuong"
exit 1
fi
n=$1
for i in 1 2 3 4 5 6 7 8 9 10
do
echo "$n * $i = `expr $i * $n`"
done
49. $cat > nwhile
#!/bin/sh
#Script to test while statement
#
if [ $# -eq 0 ]
then
echo "Error – Cau lenh sai"
echo "Syntax : $0 number"
echo " In ra bang cuu chuong"
exit 1
fi
n=$1
i=1
while [ $i -le 10 ]
do
echo "$n * $i = `expr $i * $n`"
i=`expr $i + 1`
done
50. Cấu trúc in case
case $variable-name in
pattern1) command
...
..
command;;
pattern2) command
...
..
command;;
patternN) command
...
..
command;;
*) command
...
..
command;;
esac
51. $ cat > car
# if no vehicle name is given
# i.e. -z $1 is defined and it is NULL
# if no command line arg
if [ -z $1 ]
then
rental="*** Unknown vehicle ***"
elif [ -n $1 ]
then
# otherwise make first arg as rental
rental=$1
fi
case $rental in
“xehoi") echo "For $rental Rs.20 per k/m";;
“xedap") echo "For $rental Rs.5 per k/m";;
“honda") echo "For $rental 20 paisa per k/m";;
*) echo "Sorry, I can not gat a $rental for you";;
esac
52. Lệnh break và continue
#!/bin/sh
a=10
while [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
$cat breaktest
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
53. Lệnh break và continue
$ cat >continuetest
#!/bin/sh
NUMS="1 2 3 4 5 6 7"
for NUM in $NUMS
do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "Number is an even number!!"
continue
fi
echo "Found odd number"
done
54. Câu lệnh read
Cú pháp : read varible1, varible2,...varibleN
$ cat > sayhello
#
#Script to read your name from key-board
#
echo "Your first name please:"
read fname
echo "Hello $fname, Lets be friend!"
56. - Chức năng: Cho phép ước lượng một biểu thức chứa
biến
- Ví dụ:
foo=10
x=foo
y=‘$’$x
echo $y
Kết quả $foo
Dùng lệnh evan
foo=10
x=foo
eval y=‘$’$x
echo $y
Kết quả : 10
Lệnh eval
57. Lệnh exec
- Chức năng: Dùng để gọi một lệnh bên ngoài khác. Thông thường
lệnh exec sẽ gọi một shell phụ khác với shell mà script đang thực thi
Lệnh exit n
- Chức năng: Dùng để thoát ra khỏi shell đang gọi và trả về mã lỗi n
- Mã lỗi ‘0’ được coi là thành công
Lệnh exec và exit
58. Lệnh printf
- Chức năng: Tương tự như lệnh printf của thư viện C
- Danh sách các ký tự đặc biệt dùng chung với dấu “”, gọi là chuỗi
thoát
59. Lệnh return
- Chức năng: Trả về giá trị của hàm
Lệnh set
- Chức năng: Dùng để thiết lập giá trị cho các tham số môi trường như
$1,$2,$3,v.v... Ngoài ra, lệnh này còn có chức năng loại bỏ những
khoảng trắng không cân thiết và đặt nội dung của chuỗi truyền cho nó
vào các biến tham số
#set This is parameter
#echo $1
This
#echo $2
is
Lệnh return và set
60. Lệnh shift
- Chức năng: Di chuyển nội dung các tham số môi trường $1,
$2,$3,v.v... xuống một vị trí. (Do ta chỉ có tối đa 9 tham số $1..$9)
Lệnh trap
(tham khảo thêm)
Lệnh shift, trap
61. - Chức năng: Loại bỏ biến khỏi môi trường shell
- Lệnh unset rất ít được sử dụng
- Ví dụ:
#!/bin/sh
foo=“Hello World”
echo $foo
unset foo
echo $foo
- Kết quả chương trình sẽ in ra chuỗi rỗng (do lúc này biến foo
không tồn tại nữa)
Lệnh unset
62. Lệnh đi kèm /dev/null
Cú pháp : command > /dev/null : gửi tới những
output không muốn xuất hiện
$ ls > /dev/null
63. Biến cục bộ và toàn cục
Biến cục bộ (local variables) là các biến ta sử dụng. Nếu tải bản
copy của shell $/bin/bash, shell mới sẽ bõ qua tất cả các biến cũ
Ví dụ :
$x=5
$echo $x
5
$/bin/bash
$echo $x
NOTE:-Empty line printed
$x=7
$exit
$echo $x
64. Từ khóa export
Có thể copy biến shell cũ tới shell mới, biến như vậy gọi là
biến toàn cục.
Cú pháp : export variable1, variable2,.....variableN
$ xe=Bus
$ echo $xe
Bus
$ export xe
$ /bin/bash
$ echo $xe
Bus
$ exit
$ echo $xe
65. Điều kiện thực th: && và ||
Toán tử điều khiển :
&& : AND
Cú pháp command1 && command2 : command1 được thực
thi, iff command1 trả về giá trị thoát 0.
|| : OR
Cú pháp : command1 || command2 : command2 được thực
thi iff command1 trả về giá trị thoát non-zero
Hoặc :
command1 && comamnd2 if exist status is zero || command3
if exit status is non-zero
66. Input – Output chuyển hướng
$ cat > myft
This is my file # ctrl D
$ cal
$ cal >myfile #lưu
$ cat >number
$sort <number
67. Input – Output chuyển hướng
$cat >demosc
#!/bin/sh
if [ $# -ne 2 ]
then
echo "Error : Number are not supplied"
echo "Usage : $0 number1 number2"
exit 1
fi
ans=`expr $1 + $2`
echo "Sum is $ans"
68. Hàm
Hàm có vai trò quan trọng trong Shell
function-name ( )
{
command1
command2
.....
...
commandN
return
}
$ SayHello()
{
echo "Hello $LOGNAME !”
return
}
69. Dò lỗi – debug trong shell
- Do script là lệnh văn bản được shell thông dịch nên
việc dò lỗi không khó như các chương trình biên dịch
nhị phân
- Quá trình dò lỗi thì shell sẽ in ra số thứ tự của dòng
gây lỗi. Ta cũng có thể thêm vào lệnh echo để in ra nội
dung của các biến có khả năng gây lỗi cho chương trình
Có thể dùng set để đặt một số tùy chọn cho shell hoặc
đặt thêm tham số khi gọi shell thực thi script
$ bash -x script-name
$ bash -x domains.sh
71. 71
Xử lý chuỗi
1. Khởi tạo một chuỗi
string=abcDefghu1234EDstuV
2. Lấy độ dài một chuỗi
$ echo {#string}
echo `expr length $string`
echo `expr "$string" : ".*"`
3. Định vị một ký tự trong string
$ echo `expr index "$string" c `
$echo `expr index "$string" E`
72. 72
stringZ=abcABC123ABCabc
4.Lọc N ký tự đầu tiên của chuỗi
$echo ${stringZ:0}
echo ${stringZ:7:3} # lấy từ vị trí thứ 7, 3 ký tự
5.Lọc các ký tự từ đầu chuỗi trừ N ký tự cuối cùng
${string: -N}
echo ${stringZ:-4}
echo ${stringZ:(-4)}
6.Lọc N ký tự bắt đầu từ ký tự số M
echo `expr substr $string M N `
7.Lọc các ký tự từ a* đến u (đầu tiên)
$ echo ${stringZ#a*C} # 123ABCabc
$echo ${stringZ#a*3}
Xử lý chuỗi
74. 74
12. Loc N ký tự kể từ ký tự thứ M vd : N=3 , M=4
read N
echo `expr substr $string $M $N ` # Def
13.Lọc các ký tự kể từ chuỗi con “substr”
string1=xyzabcd123xyzthung
{string1%%substr*} #xyz
14. Lọc N ký tự đầu tiên
${string1:N} #N=3:abcd123xyzthung
${string1#kytu*kytu} #abcd123xyzthung
15.Lọc các ký tự kể từ substr trở về trươc
${string1##*substr}#thung
Xử lý chuỗi
75. 75
Xử lý chuỗi trong shell
#!/bin/bash
string=abcDefghu1234EDstuV
echo ${#string} 19
echo `expr lengt#h $string` #19
echo `expr index "$string" c ` #3
echo `expr index "$string" E ` #14
echo ${string:2} # cDefghEDstuVF
echo ${string: -3} # tuV
echo `expr substr $string 3 5 `# cDefg
echo ${string#a*u} # 1234EDstuV
76. 76
Xử lý chuỗi trong script
echo ${string#*123} #4EDstuV
echo ${string##a*u} # V
echo ${string%s*V} #abcDefghu1234ED
echo ${string%234*V} #abcDefghu1
echo ${string%%u*V} #abcDefgh
echo ${string/abc/xyz}
#xyzDefghu1234EDstuV
read N
echo `expr substr $string 3 $N `
77. 77
Xử lý mảng
array[xx]
1.Khai báo mảng : declare –a array
2. Lấy giá trị mảng : ${array[xx]}
${array[@]} hoặc ${array[*]} : lâý tât́ cả phân tử của
mảng
${#array[@]} hoăc̣${#array[*]} : tông số phâǹ tử của
mảng
Ví dụ :
array[5]=`expr ${array[11]} + ${array[13]}`
Một cách khác
array=( zero one two three four )
-> array[0]=zero ; array[4]=four
78. 78
Cách khác :
array=( [xx]=XXX [yy]=YYY ...)
array=([17]=seventeen [21]=twenty-
one)
Ví dụ :
array=( zero one two three four five )
echo ${array[0]} # zero
echo ${array:0} # zero
echo ${array:1} # ero : lâý từ vị trí số 1 cuả
phân tử thư ́ nhất
Xử lý mảng
79. 79
arrayZ=( one two three four five five )
echo ${#array[0]} # 3 : chiều daì cuả phần tử thứ nhất
echo ${#array} # 4
echo ${#array[1]} # 3 : chiều daì cuả phần tử thứ 2
echo ${#array[*]} # 6 : số phần tử của mảng
echo ${#array[@]} # 6 : số phâǹ tử của mảng.
Ví dụ :
array2=( [0]="first element" [1]="second
element" [3]="fourth element" )
echo ${array2[0]} # first element
echo ${array2[1]} # second element
echo ${array2[2]} # không khơỉtaọnên
có giátrị null
echo ${array2[3]} # fourth element
80. 80
Xử lý mảng
Ví dụ :
arrayZ=( one two three four five
five )
echo ${arrayZ[@]:0} # one two three four
five five
echo ${arrayZ[@]:1} # two three four five
five : lâý từ̉ phân tử thứ 1
81. 81
echo ${arrayZ[@] 2} # two three : lâý
phân tử 1 đến 2
Khai báo mảng rỗng
array0=( first second third )
array1=( ' ' ) # "array1" có 1 phần tử rôñg.
array2=( ) # mảng rỗng
82. 82
Thêm phân tử vào mảng
array0=( "${array0[@]}" "new1" )
# ${array0[@]} là toan bộ mang cũ, new1 là phần tử mới
array1=( "${array1[@]}" "new1" )
array2=( "${array2[@]}" "new1" )
hoặc
array0[${#array0[*]}]="new2"
array1[${#array1[*]}]="new2"
array2[${#array2[*]}]="new2"
85. 85
echo "[3] Show calendar"
echo "[4] Exit/Stop"
echo "======================="
echo -n "Enter your choice [1-4]: "
read choice
case $choice in
1) echo "Today is `date` "
echo "Press Enter key to continue ...";
read;;
2) echo "Files in $PWD"; ls -l
echo "Press Enter key to continue...";
read;;
3) cal ; echo "Press Enter key to
continue..."; read;;
4) exit 0;;
*) echo "Please choice 1,2,3,4. Press Enter
key to continue..."; read;;
esac
done
Tạo menu tương tać vơí ngươì dùng.