SlideShare a Scribd company logo
Đỗ Hoàng Kiên
Bài thực hành 1
Login vào hệ thống (cho đúng tên người dùng và mật khẩu). Thực hiện từng lệnh và
xem xét nội dung kết quả (giải thích ý nghĩa từng lệnh).
Chú ý tên file và tên thư mục có thể khác so với nội dung ở đây.
1. Hãy kiểm tra và cho biết xem LINUX đang dùng shell nào bằng cách gõ lệnh:
alias
2. $ who > temp
$
$ wc -l temp
(sẽ hiện ra thông tin về các đếm)
$
hoặc sử dụng kiểu đường ống
$ who | wc -l
(sẽ hiện ra)
$
3. Sử dụng lệnh đường ống
$ who|grep user | sort
(sẽ hiện ra)
4. Ghi nhận kết quả đã sắp xếp
$ who | sort > memo1
$
5. Hiện danh sách file (bao gồm cả file bị che)
$ ls -a
(sẽ hiện ra)
$
6. Đổi mode file temp
$ chmod 755 temp
$
Để xem lại thông tin sau khi đổi mode:
$ ls -l temp
(sẽ hiện ra và bắt đầu là -rwxr-xr-x .....)
7. Tạo thư mục games
$ mkdir games
$
8. Kiểm tra games có được tạo:
$ ls -l
(sẽ hiện ra)
$
9. Sao file cùng thư mục hiện tại
$ cp temp temp1
$ cp temp temp2
$
10. Sao các file vào thư mục khác
1
Đỗ Hoàng Kiên
2
$ cp temp temp2 games
$
Chuyển vào thư mục games
$ cd games
$ pwd
(sẽ hiện ra)
$ ls temp temp2
$
11. Chuyển về thư mục cha
$ cd ..
$
12. Xem lại đường dẫn thư mục hiện tại
$ pwd
(sẽ hiện ra)
$
13. Chuyển file từ thư mục này sang thư mục khác
$ mv temp1 games
$
14. Lại quay về games
$ cd games
$ pwd
$
15. Xoá hai file
$ rm -l temp1 temp2
(sẽ hiện ra)
16. Trở về thư mục riêng
$ cd
$
17. Xóa thư mục games
$ rmdir games
(sẽ hiện ra, giải thích)
18. Nối them một tên vào file đã tồn tại dùng lệnh
$ ln temp temp4
$
Sau đó dùng lệnh
$ ls -l
19. Tìm tên 1 file từ cây con thư mục hiện tại
$ find . -name temp -print
20. Xác định kiểu của file
$ file temp1 temp2
21. Hiện tình trạng mọi máy in gõ lệnh
$ lpstat -p
(sẽ hiện ra điều gì, giải thích)
Đỗ Hoàng Kiên
3
22. Bắt đầu tính toán gõ
$ bc
2+4
(sẽ hiện ra)
300+600
(sẽ hiện ra)
300*600
(sẽ hiện ra)
1+2*3
(sẽ hiện ra)
1/2
(sẽ hiện ra, giải thích)
scale = 4
1/2
(sẽ hiện ra, giải thích)
quit
$
23. Để đổi dấu mời là 'K44', gõ
$ PS1 = 'K44'
K44
K44 ls -l
K44
K44 PS1 = '$'
$
24. Gọi phần mềm Midnight Command bằng lệnh
mc
và sau đó làm việc với MC như đã làm với NC trong MS-DOS.
Bài thực hành 2. Truyền thông và chạy chương trình trên
UNIX-LINUX
A. Lệnh write: Truyền thông on-line
Tại máy người dùng gõ:
$ who
(sẽ hiện ra)
Trong các thông tin hiện ra giả sử các người dùng có tên là may1, may2, may3, ....,
may31; từng cặp người dùng may(2i-1) và may (2i) trao đổi với nhau theo lệnh write.
Ví dụ với người dùng ở may1 sẽ gui thu cho người dùng ở may2, viết
$write may2
Trên màn hình trạm cuối của may2 thấy hiện ra một số thông tin thông báo.
Sau khi may1 hiện thông báo là may2 sẵn sàng nhận thông báo, người dùnh ở may1 gõ
thông báo và nội dung này từ may1 sẽ hiện ra màn hình của may2 (Nội dung thông
báo là tùy chọn; chú ý, gõ Ctrl-d khi kết thúc).
Đỗ Hoàng Kiên
4
Sau khi đã nhận được thông báo từ may1, việc nhận đã kết thúc và tại may2,
dấu mời của shell xuất hiện:
$
Đến đây, người dùng ở may2 trả lời cho người dùng ở may1 qua việc gửi 1
thông báo tới may1:
$write may1
Chú ý: Dùng lệnh talk trong Linux.
B. Lệnh mail: Truyền thông off-line
Người dùng ở may1 gửi một thư tới người dùng ở may2:
$ mail may2
(Nội dung thư và kết thúc là Ctrl-d)
Người dùng ở may2 sẽ thấy thông báo trên màn hình:
mail for may2
Để xem chi tiết nội dung thư, người dùng ở may2 sử dụng lệnh
$ mail
Sử dụng các lệnh trong chế độ lệnh của mail, đọc được nội dung của thư mới
nhận được, sau đó muốn trả lời ngay (chú ý thư hiện tại đang là thư của người may1)
dùng:
?r
(sẽ hiện ra: mail may1)
Người dùng may2 gõ các dòng thư trả lời và kết thúc cũng là Ctrl-d.
Chú ý: 1. Có thể xem xét trường hợp khi người dùng may1 gửi mail cho người dùng ở
may2 thì may2 đang tắt. Sau khi người dùng ở may1 gửi thư xong thì may2 mới khởi
động để phân biệt rõ hai loại truyền thông.
2. Dùng lệnh ls để xem nội dung thư mục chứa mail của mỗi người dùng, các
file, các thư mục con của thư mục này và ý nghĩa của mỗi đối tượng trong đó.
3. Nếu điều kiện của phòng máy cho phép, có thể làm quen với một số nội
dung về internet.
C. Biên soạn chương trình bằng VIM
Gọi VIM để soạn thảo một file văn bản bất kỳ (nên định hướng file văn bản
chương trình trên C để thuận lợi cho các bước sau).
D. Chạy chương trình
Dịch chương trình bằng gcc (hoặc bcc)
Kết nối (link) chương trình đích
Chạy chương trình (chú ý mode chạy được).
Đỗ Hoàng Kiên
Bài thực hành 3. lập trình trên shell
Mục đích:
- Ôn lại soạn thảo văn bản vi và dùng vi để tạo File chương trình trên shell,
- Soạn thảo, dịch, chạy chương trình trên C trên UNIX,
- Tạo File chương trình trên shell theo một số yêu cầu nào đó
Nội dung:
1. Thực hiện chương trình trên C:
- Viết một chương trình C nhờ soạn thảo vi,
- Nhờ cc dịch chương trình nói trên,
- Đổi lại mode cho file .out để chạy được ở mức shell,
- Chay chương trình, đưa input và nhận output.
2. Thông qua lệnh đặt lại giá trị biến môi trường để thay đổi lại dấu mời hệ thống theo
nghĩa gồm tên người dùng và dấu $.
3. Lập chương trình shell có tác dụng:
- Nhận tên của người chạy chương trình,
- Hiện thông báo gồm các nội dung:
* Lời chào người dùng,
* Hiện lại thời gian, ngày tháng ( trong đó thứ trong tuần, tháng hiện thời hiện
theo tiếng Việt không dấu).
Đây là một chương trình ví dụ thực hiện các công việc sau:
- Nhận hai tham số dòng lệnh là hai giá trị số
- Hiện kết quả thực hiện lệnh date
- Hiện tiếng Việt không dấu thứ, ngày, tháng hiện tại
- Hiện kết quả tính tổng hai giá trị tham số dòng vào
tong=`expr $1 + $2`
set `date`
echo $*
case $1 in
T2) s="Thu Hai";;
T3) s="Thu Ba";;
T4) s="Thu Tu";;
esac
case $2 in
Thg01) s="$s, Thang Gieng, ";;
Thg02) s="$s, Thang Hai, ";;
Thg11) s="$s, Thang Muoi Mot, ";;
Thg12) s="$s, Thang Muoi Hai, ";;
esac
case $3 in
1) echo $s "Ngay Mot";;
2) echo $s "Ngay Hai";;
28) echo $s "Ngay Hai Muoi Tam";;
5
Đỗ Hoàng Kiên
6
29) echo $s "Ngay Hai Muoi Chin";;
esac
echo "Tong = $tong "
4. Lập chương trình shell có tính năng:
- Bao gồm tính năng của câu 3.
- Chạy chương trình kết quả của câu 1
- Thử nghiệm thay đổi file .profile
/* -------- */
#!/bin/sh
# Chuong trinh tinh tong cac file (regular file) trong 1 thu muc
# Minh hoa cach su dung if then fi, while do done
# va cac CT test, expr
if test $# -ne 1
then
echo Cu phap: $0 <Ten thu muc>
exit 1
fi
cd $1 # Chuyen vao thu muc can list
if test $? -ne 0 # Neu thu muc khong ton tai thi ra khoi CT
then
exit 1
fi
ls -lL |
# Liet ke ca cac thong tin cua symbolic link
# Su dung sub-shell de tu giai phong bien
{
sum=0
# Lenh read x y de bo di dong 'total 1234..' cua lenh ls -lL
read x y ; while read mode link user group size month day hour name
do
if [ -f $name ]
then
sum=`expr $sum + $size`
# echo $size $sum
fi
done
echo Tong so byte trong thu muc $1: $sum
}
/* -------- */
Đỗ Hoàng Kiên
7
#!/bin/sh
# Chuong trinh dem so dong cua 1 file
# Minh hoa cau truc: if then fi, while do done
# va cach su dung CT test, expr
if [ $# -ne 1 ]
then
echo Cu phap: $0 <Ten file>
exit 1
fi
{
n=0
while read dong
do
n=`expr $n + 1`
done
echo So dong cua $1: $n
} < $1
/* -------- */
#!/bin/sh
# CT dem so tu cua 1 file
# Minh hoa cach su dung cau truc for do done, while do done
if [ $# -ne 1 ]
then
echo Cu phap: $0 <Ten file>
exit 1
fi
{
n=0
tu=""
dong=""
while read dong
do
for name in $dong
do
n=`expr $n + 1`
done
done
echo Tong so tu doc vao la: $n
} < $1
Đỗ Hoàng Kiên
8
/* -------- */
#!/bin/sh
# Chuong trinh tim dong co do dai lon nhat trong 1 file
# Minh hoa cau truc: if then fi, while do done
# va cach su dung CT test, expr
if [ $# -ne 1 ]
then
echo Cu phap: $0 <Ten file>
exit 1
fi
max=0
dongmax=""
{
while read dong
do
n=`expr length "$dong"`
if [ $n -gt $max ]
then
dongmax="$dong"
max=$n
fi
done
echo $dongmax ($max)
} < $1
/* -------- */
#!/bin/sh
# Chuong trinh in ra cac so cua day Fibonaci nho hon 1 so n cho truoc
# Minh hoa cau truc: if then fi, util do done
# va cach su dung CT test, expr
if [ $# -ne 1 ]
then
echo Cu phap: $0 <So nguyen>
exit 1
fi
export tam
truoc=1
sau=1
echo -n $truoc $sau
until tam=`expr $truoc + $sau` ; [ $tam -ge $1 ]
do
truoc=$sau
sau=$tam
Đỗ Hoàng Kiên
9
echo -n " "$tam
done
echo
/* -------- */
#!/bin/sh
# Chuong trinh liet ke cac thu muc con cua 1 thu muc
# Minh hoa cach su dung if then fi, while do done
# va cac CT test, expr
if test $# -ne 1
then
echo Cu phap: $0 <Ten thu muc>
exit 1
fi
cd $1 # Chuyen vao thu muc can list
if test $? -ne 0 # Neu thu muc khong ton tai thi ra khoi CT
then
exit 1
fi
ls -lL |
# Liet ke ca cac thong tin cua symbolic link
# Su dung sub-shell de tu giai phong bien
{
sum=0
# Lenh read x y de bo di dong 'total 1234..' cua lenh ls -lL
read x y ; while read mode link user group size month day hour name
do
if [ -d $name ]
then
echo $name $size ($mode)
fi
done
}
/* -------- */
#!/bin/sh
# Chuong trinh liet ke cac file thuc hien duoc trong thu muc
# Minh hoa cach su dung if then fi, while do done
# va cac CT test, expr
if test ! $# -eq 1
then
echo Cu phap: $0 <Ten thu muc>
Đỗ Hoàng Kiên
10
exit 1
fi
cd $1 # Chuyen vao thu muc can list
if test $? -ne 0 # Neu thu muc khong ton tai thi ra khoi CT
then
exit 1
fi
ls -lL |
# Liet ke ca cac thong tin cua symbolic link
# Su dung sub-shell de tu giai phong bien
{
sum=0
# Lenh read x y de bo di dong 'total 1234..' cua lenh ls -lL
read x y ; while read mode link user group size month day hour name
do
if [ -x $name ] && [ ! -d $name ]
then
echo $name $size ($mode)
fi
done
}
/* -------- */
#!/bin/sh
# Chuong trinh minh hoa viec doc tu ban phim (read) va su dung case do esac
chon=0
until [ $chon = q ] || [ $chon = Q ]
do
clear
echo Lua chon che do lam viec:
echo 1. Soan thao
echo 2. Doi thu muc lam viec
echo 3. Xem thu muc
echo 4. Xem gio
echo q. Thoat
echo -n "Chon: "
read chon
case $chon in
1) echo -n "Ten file: " ; read file ; vi $file ;;
2) echo -n "Ten thu muc: " ; read dir ; cd $dir || echo "Thu muc khong hop le" ;;
3) echo -n "Ten thu muc: " ; read dir ; ls -l $dir || echo "Thu muc khong hop le";;
4) date ;;
Đỗ Hoàng Kiên
11
q|Q) continue;;
*) echo "Tuy chon khong hop le"; chon=0;;
esac
echo -n "Bam phim Enter de tiep tuc"; read cont
done
/* -------- */
#!/bin/sh
# Chuong trinh tinh giai thua cua mot so nguyen
# Minh hoa cau truc: if then fi, while do done
# va cach su dung CT test, expr
if [ $# -ne 1 ]
then
echo Cu phap: $0 <So nguyen>
exit 1
fi
gt=1
index=2
while [ $index -le $1 ]
do
gt=`expr $gt * $index`
index=`expr $index + 1`
done
echo $1! = $gt
/* -------- */
#!/bin/sh
# Chuong trinh in ra ngay thang bang tieng Viet
# Minh hoa cau truc: case do esac
date |
{
read thu thang ngay gio mui_gio nam
case $thu in
Mon) thu="Thu Hai" ;;
Tue) thu="Thu Ba" ;;
Wed) thu="Thu Tu" ;;
Thu) thu="Thu Nam" ;;
Fri) thu="Thu Sau" ;;
Sat) thu="Thu Bay" ;;
Sun) thu="Chu Nhat" ;;
esac
case $thang in
Đỗ Hoàng Kiên
12
Jan) thang="Thang Gieng" ;;
Feb) thang="Thang Hai" ;;
Mar) thang="Thang Ba" ;;
Apr) thang="Thang Tu" ;;
May) thang="Thang Nam" ;;
Jun) thang="Thang Sau" ;;
Jul) thang="Thang Bay" ;;
Aug) thang="Thang Tam" ;;
Sep) thang="Thang Chin" ;;
Oct) thang="Thang Muoi" ;;
Nov) thang="Thang Mot" ;;
Dec) thang="Thang Chap" ;;
esac
echo Hom nay $thu ngay $ngay $thang nam $nam ($gio - mui gio $mui_gio)
}
/* -------- */
#!/bin/sh
# Chuong trinh tinh tong cac so tu nhien tu 1 den n
# Minh hoa cau truc: if then fi, while do done
# va cach su dung CT test, expr
if [ $# -ne 1 ]
then
echo Cu phap: $0 <So nguyen>
exit 1
fi
gt=0
index=1
echo -n $index
while [ $index -le $1 ]
do
echo -n " + $index"
gt=`expr $gt + $index`
index=`expr $index + 1`
done
echo " = $gt"
/* ...*/
#!/bin/sh
# Chuong trinh tim mot xau trong mot van ban
# Minh hoa cau truc: if then fi, while do done
# va cach su dung CT test, expr (substr, length)
Đỗ Hoàng Kiên
13
if [ $# -ne 2 ]
then
echo Cu phap: $0 <Xau can tim> <Ten file>
exit 1
fi
{
wordlen=`expr length $1` # Do dai tu can tim
while read textline
do
textlen=`expr length "$textline"` # Do dai cua dong vua doc
loop=`expr $textlen - $wordlen + 1`
index=1
while [ $index -le $loop ]
do
tam=`expr substr "$textline" $index $wordlen`
if [ "$tam" = $1 ]
then
echo Tim thay $1-- $textline
break
fi
index=`expr $index + 1`
done
done
} < $2

More Related Content

PDF
ShellProgramming
PDF
php_nangcao [compatibility mode]
DOCX
PHP Security File inclusion
DOCX
Project name
DOCX
Cấu trúc cơ bản
PDF
Cac lenh linux_co_ban
PPT
Php02 ngon nguphp
DOC
Dang baitapthuchanh monhdh_unix
ShellProgramming
php_nangcao [compatibility mode]
PHP Security File inclusion
Project name
Cấu trúc cơ bản
Cac lenh linux_co_ban
Php02 ngon nguphp
Dang baitapthuchanh monhdh_unix

What's hot (7)

PDF
Speaker dang minh tuan javascript for php developer
PDF
Web301 slide 3
PDF
Quản lý tiến trình
PPTX
Flutter vs React Native 2018
PDF
Localizing globalization step_bystep
DOCX
PHP Regular expressions
PDF
linux_huongdanthuchanh
Speaker dang minh tuan javascript for php developer
Web301 slide 3
Quản lý tiến trình
Flutter vs React Native 2018
Localizing globalization step_bystep
PHP Regular expressions
linux_huongdanthuchanh
Ad

Similar to Thuchanh unix moi (20)

PDF
Lập trình Shell 1.pdf
PPTX
CHƯƠNG 2 Lệnh và tiện ích trên Linux (Hệ điều hành).pptx
PDF
8 filter
PDF
8 filter
PDF
Bảng tra cứu các lệnh cơ bản của unix và linux sưu tầm bởi www.vilinux.com
DOC
Onthith hdh
PDF
Lpi01
PDF
Co ban ve linuxshellscript
PDF
Nhapmon linux
PDF
Thuc hanh 13
PPTX
Làm thế nào để học linux trong 24h?
PPTX
Lab1.pptxgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
PDF
Carte ref-ubuntu-vi
PDF
Lesson 3 - Linux File System
PDF
Linux và mã nguồn mở
PDF
Hệ thống tệp Linux
PDF
Linux2 lap trinhshellchohocvien
Lập trình Shell 1.pdf
CHƯƠNG 2 Lệnh và tiện ích trên Linux (Hệ điều hành).pptx
8 filter
8 filter
Bảng tra cứu các lệnh cơ bản của unix và linux sưu tầm bởi www.vilinux.com
Onthith hdh
Lpi01
Co ban ve linuxshellscript
Nhapmon linux
Thuc hanh 13
Làm thế nào để học linux trong 24h?
Lab1.pptxgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
Carte ref-ubuntu-vi
Lesson 3 - Linux File System
Linux và mã nguồn mở
Hệ thống tệp Linux
Linux2 lap trinhshellchohocvien
Ad

Recently uploaded (20)

PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
Tốc độ và vận tốc trong chuyển động thẳng
PDF
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
DOCX
2024-2025 HSG HÓA 12 CỤM LẦN 3 - Hải Dương - đề.docx
PDF
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
PDF
Vision - Language - Model-- - Ebook.pdf
PDF
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
PPTX
Chương 2 - Mô hình thực thể kết hợp.pptx
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
DOCX
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
PPTX
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
PPT
Bài giảng Power Point 2003, hướng dẫn học tập
PPTX
SLIDE BV CHÍNH THỨC LATSKH - note.pptx
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 GLOBAL SUCCESS - CẢ NĂM (30...
PDF
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PPTX
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
PPTX
Powerpoint cho Ke toan tai chinh KET307_Bai1_SV.pptx
PDF
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
Tốc độ và vận tốc trong chuyển động thẳng
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
2024-2025 HSG HÓA 12 CỤM LẦN 3 - Hải Dương - đề.docx
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
Vision - Language - Model-- - Ebook.pdf
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
Chương 2 - Mô hình thực thể kết hợp.pptx
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
Bài giảng Power Point 2003, hướng dẫn học tập
SLIDE BV CHÍNH THỨC LATSKH - note.pptx
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 GLOBAL SUCCESS - CẢ NĂM (30...
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
Powerpoint cho Ke toan tai chinh KET307_Bai1_SV.pptx
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf

Thuchanh unix moi

  • 1. Đỗ Hoàng Kiên Bài thực hành 1 Login vào hệ thống (cho đúng tên người dùng và mật khẩu). Thực hiện từng lệnh và xem xét nội dung kết quả (giải thích ý nghĩa từng lệnh). Chú ý tên file và tên thư mục có thể khác so với nội dung ở đây. 1. Hãy kiểm tra và cho biết xem LINUX đang dùng shell nào bằng cách gõ lệnh: alias 2. $ who > temp $ $ wc -l temp (sẽ hiện ra thông tin về các đếm) $ hoặc sử dụng kiểu đường ống $ who | wc -l (sẽ hiện ra) $ 3. Sử dụng lệnh đường ống $ who|grep user | sort (sẽ hiện ra) 4. Ghi nhận kết quả đã sắp xếp $ who | sort > memo1 $ 5. Hiện danh sách file (bao gồm cả file bị che) $ ls -a (sẽ hiện ra) $ 6. Đổi mode file temp $ chmod 755 temp $ Để xem lại thông tin sau khi đổi mode: $ ls -l temp (sẽ hiện ra và bắt đầu là -rwxr-xr-x .....) 7. Tạo thư mục games $ mkdir games $ 8. Kiểm tra games có được tạo: $ ls -l (sẽ hiện ra) $ 9. Sao file cùng thư mục hiện tại $ cp temp temp1 $ cp temp temp2 $ 10. Sao các file vào thư mục khác 1
  • 2. Đỗ Hoàng Kiên 2 $ cp temp temp2 games $ Chuyển vào thư mục games $ cd games $ pwd (sẽ hiện ra) $ ls temp temp2 $ 11. Chuyển về thư mục cha $ cd .. $ 12. Xem lại đường dẫn thư mục hiện tại $ pwd (sẽ hiện ra) $ 13. Chuyển file từ thư mục này sang thư mục khác $ mv temp1 games $ 14. Lại quay về games $ cd games $ pwd $ 15. Xoá hai file $ rm -l temp1 temp2 (sẽ hiện ra) 16. Trở về thư mục riêng $ cd $ 17. Xóa thư mục games $ rmdir games (sẽ hiện ra, giải thích) 18. Nối them một tên vào file đã tồn tại dùng lệnh $ ln temp temp4 $ Sau đó dùng lệnh $ ls -l 19. Tìm tên 1 file từ cây con thư mục hiện tại $ find . -name temp -print 20. Xác định kiểu của file $ file temp1 temp2 21. Hiện tình trạng mọi máy in gõ lệnh $ lpstat -p (sẽ hiện ra điều gì, giải thích)
  • 3. Đỗ Hoàng Kiên 3 22. Bắt đầu tính toán gõ $ bc 2+4 (sẽ hiện ra) 300+600 (sẽ hiện ra) 300*600 (sẽ hiện ra) 1+2*3 (sẽ hiện ra) 1/2 (sẽ hiện ra, giải thích) scale = 4 1/2 (sẽ hiện ra, giải thích) quit $ 23. Để đổi dấu mời là 'K44', gõ $ PS1 = 'K44' K44 K44 ls -l K44 K44 PS1 = '$' $ 24. Gọi phần mềm Midnight Command bằng lệnh mc và sau đó làm việc với MC như đã làm với NC trong MS-DOS. Bài thực hành 2. Truyền thông và chạy chương trình trên UNIX-LINUX A. Lệnh write: Truyền thông on-line Tại máy người dùng gõ: $ who (sẽ hiện ra) Trong các thông tin hiện ra giả sử các người dùng có tên là may1, may2, may3, ...., may31; từng cặp người dùng may(2i-1) và may (2i) trao đổi với nhau theo lệnh write. Ví dụ với người dùng ở may1 sẽ gui thu cho người dùng ở may2, viết $write may2 Trên màn hình trạm cuối của may2 thấy hiện ra một số thông tin thông báo. Sau khi may1 hiện thông báo là may2 sẵn sàng nhận thông báo, người dùnh ở may1 gõ thông báo và nội dung này từ may1 sẽ hiện ra màn hình của may2 (Nội dung thông báo là tùy chọn; chú ý, gõ Ctrl-d khi kết thúc).
  • 4. Đỗ Hoàng Kiên 4 Sau khi đã nhận được thông báo từ may1, việc nhận đã kết thúc và tại may2, dấu mời của shell xuất hiện: $ Đến đây, người dùng ở may2 trả lời cho người dùng ở may1 qua việc gửi 1 thông báo tới may1: $write may1 Chú ý: Dùng lệnh talk trong Linux. B. Lệnh mail: Truyền thông off-line Người dùng ở may1 gửi một thư tới người dùng ở may2: $ mail may2 (Nội dung thư và kết thúc là Ctrl-d) Người dùng ở may2 sẽ thấy thông báo trên màn hình: mail for may2 Để xem chi tiết nội dung thư, người dùng ở may2 sử dụng lệnh $ mail Sử dụng các lệnh trong chế độ lệnh của mail, đọc được nội dung của thư mới nhận được, sau đó muốn trả lời ngay (chú ý thư hiện tại đang là thư của người may1) dùng: ?r (sẽ hiện ra: mail may1) Người dùng may2 gõ các dòng thư trả lời và kết thúc cũng là Ctrl-d. Chú ý: 1. Có thể xem xét trường hợp khi người dùng may1 gửi mail cho người dùng ở may2 thì may2 đang tắt. Sau khi người dùng ở may1 gửi thư xong thì may2 mới khởi động để phân biệt rõ hai loại truyền thông. 2. Dùng lệnh ls để xem nội dung thư mục chứa mail của mỗi người dùng, các file, các thư mục con của thư mục này và ý nghĩa của mỗi đối tượng trong đó. 3. Nếu điều kiện của phòng máy cho phép, có thể làm quen với một số nội dung về internet. C. Biên soạn chương trình bằng VIM Gọi VIM để soạn thảo một file văn bản bất kỳ (nên định hướng file văn bản chương trình trên C để thuận lợi cho các bước sau). D. Chạy chương trình Dịch chương trình bằng gcc (hoặc bcc) Kết nối (link) chương trình đích Chạy chương trình (chú ý mode chạy được).
  • 5. Đỗ Hoàng Kiên Bài thực hành 3. lập trình trên shell Mục đích: - Ôn lại soạn thảo văn bản vi và dùng vi để tạo File chương trình trên shell, - Soạn thảo, dịch, chạy chương trình trên C trên UNIX, - Tạo File chương trình trên shell theo một số yêu cầu nào đó Nội dung: 1. Thực hiện chương trình trên C: - Viết một chương trình C nhờ soạn thảo vi, - Nhờ cc dịch chương trình nói trên, - Đổi lại mode cho file .out để chạy được ở mức shell, - Chay chương trình, đưa input và nhận output. 2. Thông qua lệnh đặt lại giá trị biến môi trường để thay đổi lại dấu mời hệ thống theo nghĩa gồm tên người dùng và dấu $. 3. Lập chương trình shell có tác dụng: - Nhận tên của người chạy chương trình, - Hiện thông báo gồm các nội dung: * Lời chào người dùng, * Hiện lại thời gian, ngày tháng ( trong đó thứ trong tuần, tháng hiện thời hiện theo tiếng Việt không dấu). Đây là một chương trình ví dụ thực hiện các công việc sau: - Nhận hai tham số dòng lệnh là hai giá trị số - Hiện kết quả thực hiện lệnh date - Hiện tiếng Việt không dấu thứ, ngày, tháng hiện tại - Hiện kết quả tính tổng hai giá trị tham số dòng vào tong=`expr $1 + $2` set `date` echo $* case $1 in T2) s="Thu Hai";; T3) s="Thu Ba";; T4) s="Thu Tu";; esac case $2 in Thg01) s="$s, Thang Gieng, ";; Thg02) s="$s, Thang Hai, ";; Thg11) s="$s, Thang Muoi Mot, ";; Thg12) s="$s, Thang Muoi Hai, ";; esac case $3 in 1) echo $s "Ngay Mot";; 2) echo $s "Ngay Hai";; 28) echo $s "Ngay Hai Muoi Tam";; 5
  • 6. Đỗ Hoàng Kiên 6 29) echo $s "Ngay Hai Muoi Chin";; esac echo "Tong = $tong " 4. Lập chương trình shell có tính năng: - Bao gồm tính năng của câu 3. - Chạy chương trình kết quả của câu 1 - Thử nghiệm thay đổi file .profile /* -------- */ #!/bin/sh # Chuong trinh tinh tong cac file (regular file) trong 1 thu muc # Minh hoa cach su dung if then fi, while do done # va cac CT test, expr if test $# -ne 1 then echo Cu phap: $0 <Ten thu muc> exit 1 fi cd $1 # Chuyen vao thu muc can list if test $? -ne 0 # Neu thu muc khong ton tai thi ra khoi CT then exit 1 fi ls -lL | # Liet ke ca cac thong tin cua symbolic link # Su dung sub-shell de tu giai phong bien { sum=0 # Lenh read x y de bo di dong 'total 1234..' cua lenh ls -lL read x y ; while read mode link user group size month day hour name do if [ -f $name ] then sum=`expr $sum + $size` # echo $size $sum fi done echo Tong so byte trong thu muc $1: $sum } /* -------- */
  • 7. Đỗ Hoàng Kiên 7 #!/bin/sh # Chuong trinh dem so dong cua 1 file # Minh hoa cau truc: if then fi, while do done # va cach su dung CT test, expr if [ $# -ne 1 ] then echo Cu phap: $0 <Ten file> exit 1 fi { n=0 while read dong do n=`expr $n + 1` done echo So dong cua $1: $n } < $1 /* -------- */ #!/bin/sh # CT dem so tu cua 1 file # Minh hoa cach su dung cau truc for do done, while do done if [ $# -ne 1 ] then echo Cu phap: $0 <Ten file> exit 1 fi { n=0 tu="" dong="" while read dong do for name in $dong do n=`expr $n + 1` done done echo Tong so tu doc vao la: $n } < $1
  • 8. Đỗ Hoàng Kiên 8 /* -------- */ #!/bin/sh # Chuong trinh tim dong co do dai lon nhat trong 1 file # Minh hoa cau truc: if then fi, while do done # va cach su dung CT test, expr if [ $# -ne 1 ] then echo Cu phap: $0 <Ten file> exit 1 fi max=0 dongmax="" { while read dong do n=`expr length "$dong"` if [ $n -gt $max ] then dongmax="$dong" max=$n fi done echo $dongmax ($max) } < $1 /* -------- */ #!/bin/sh # Chuong trinh in ra cac so cua day Fibonaci nho hon 1 so n cho truoc # Minh hoa cau truc: if then fi, util do done # va cach su dung CT test, expr if [ $# -ne 1 ] then echo Cu phap: $0 <So nguyen> exit 1 fi export tam truoc=1 sau=1 echo -n $truoc $sau until tam=`expr $truoc + $sau` ; [ $tam -ge $1 ] do truoc=$sau sau=$tam
  • 9. Đỗ Hoàng Kiên 9 echo -n " "$tam done echo /* -------- */ #!/bin/sh # Chuong trinh liet ke cac thu muc con cua 1 thu muc # Minh hoa cach su dung if then fi, while do done # va cac CT test, expr if test $# -ne 1 then echo Cu phap: $0 <Ten thu muc> exit 1 fi cd $1 # Chuyen vao thu muc can list if test $? -ne 0 # Neu thu muc khong ton tai thi ra khoi CT then exit 1 fi ls -lL | # Liet ke ca cac thong tin cua symbolic link # Su dung sub-shell de tu giai phong bien { sum=0 # Lenh read x y de bo di dong 'total 1234..' cua lenh ls -lL read x y ; while read mode link user group size month day hour name do if [ -d $name ] then echo $name $size ($mode) fi done } /* -------- */ #!/bin/sh # Chuong trinh liet ke cac file thuc hien duoc trong thu muc # Minh hoa cach su dung if then fi, while do done # va cac CT test, expr if test ! $# -eq 1 then echo Cu phap: $0 <Ten thu muc>
  • 10. Đỗ Hoàng Kiên 10 exit 1 fi cd $1 # Chuyen vao thu muc can list if test $? -ne 0 # Neu thu muc khong ton tai thi ra khoi CT then exit 1 fi ls -lL | # Liet ke ca cac thong tin cua symbolic link # Su dung sub-shell de tu giai phong bien { sum=0 # Lenh read x y de bo di dong 'total 1234..' cua lenh ls -lL read x y ; while read mode link user group size month day hour name do if [ -x $name ] && [ ! -d $name ] then echo $name $size ($mode) fi done } /* -------- */ #!/bin/sh # Chuong trinh minh hoa viec doc tu ban phim (read) va su dung case do esac chon=0 until [ $chon = q ] || [ $chon = Q ] do clear echo Lua chon che do lam viec: echo 1. Soan thao echo 2. Doi thu muc lam viec echo 3. Xem thu muc echo 4. Xem gio echo q. Thoat echo -n "Chon: " read chon case $chon in 1) echo -n "Ten file: " ; read file ; vi $file ;; 2) echo -n "Ten thu muc: " ; read dir ; cd $dir || echo "Thu muc khong hop le" ;; 3) echo -n "Ten thu muc: " ; read dir ; ls -l $dir || echo "Thu muc khong hop le";; 4) date ;;
  • 11. Đỗ Hoàng Kiên 11 q|Q) continue;; *) echo "Tuy chon khong hop le"; chon=0;; esac echo -n "Bam phim Enter de tiep tuc"; read cont done /* -------- */ #!/bin/sh # Chuong trinh tinh giai thua cua mot so nguyen # Minh hoa cau truc: if then fi, while do done # va cach su dung CT test, expr if [ $# -ne 1 ] then echo Cu phap: $0 <So nguyen> exit 1 fi gt=1 index=2 while [ $index -le $1 ] do gt=`expr $gt * $index` index=`expr $index + 1` done echo $1! = $gt /* -------- */ #!/bin/sh # Chuong trinh in ra ngay thang bang tieng Viet # Minh hoa cau truc: case do esac date | { read thu thang ngay gio mui_gio nam case $thu in Mon) thu="Thu Hai" ;; Tue) thu="Thu Ba" ;; Wed) thu="Thu Tu" ;; Thu) thu="Thu Nam" ;; Fri) thu="Thu Sau" ;; Sat) thu="Thu Bay" ;; Sun) thu="Chu Nhat" ;; esac case $thang in
  • 12. Đỗ Hoàng Kiên 12 Jan) thang="Thang Gieng" ;; Feb) thang="Thang Hai" ;; Mar) thang="Thang Ba" ;; Apr) thang="Thang Tu" ;; May) thang="Thang Nam" ;; Jun) thang="Thang Sau" ;; Jul) thang="Thang Bay" ;; Aug) thang="Thang Tam" ;; Sep) thang="Thang Chin" ;; Oct) thang="Thang Muoi" ;; Nov) thang="Thang Mot" ;; Dec) thang="Thang Chap" ;; esac echo Hom nay $thu ngay $ngay $thang nam $nam ($gio - mui gio $mui_gio) } /* -------- */ #!/bin/sh # Chuong trinh tinh tong cac so tu nhien tu 1 den n # Minh hoa cau truc: if then fi, while do done # va cach su dung CT test, expr if [ $# -ne 1 ] then echo Cu phap: $0 <So nguyen> exit 1 fi gt=0 index=1 echo -n $index while [ $index -le $1 ] do echo -n " + $index" gt=`expr $gt + $index` index=`expr $index + 1` done echo " = $gt" /* ...*/ #!/bin/sh # Chuong trinh tim mot xau trong mot van ban # Minh hoa cau truc: if then fi, while do done # va cach su dung CT test, expr (substr, length)
  • 13. Đỗ Hoàng Kiên 13 if [ $# -ne 2 ] then echo Cu phap: $0 <Xau can tim> <Ten file> exit 1 fi { wordlen=`expr length $1` # Do dai tu can tim while read textline do textlen=`expr length "$textline"` # Do dai cua dong vua doc loop=`expr $textlen - $wordlen + 1` index=1 while [ $index -le $loop ] do tam=`expr substr "$textline" $index $wordlen` if [ "$tam" = $1 ] then echo Tim thay $1-- $textline break fi index=`expr $index + 1` done done } < $2