1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành Unix /Linux: Bài 6 - Đặng Ngọc Cường

62 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung trình bày trong bài 6 Lập trình trên Linux thuộc bài giảng Hệ điều hành Unix /Linux nhằm giới thiệu về shell, các thành phần của ngôn ngữ shell, shell scipts- lập trình shell, lập trình C++ trên Linux...bài giảng hữu ích dành cho sinh viên ngành công nghệ thông tin.

Bài Lập trình Linux 20/01/2011 Hệ Điều Hành Unix/Linux Nội dung trình bày Giới thiệu shell Các thành phần ngôn ngữ shell Shell scripts - Lập trình shell Lập trình C/C++ Linux 20/01/2011 Hệ Điều Hành Unix/Linux Giới thiệu Linux Shell GUI xterm csh KDE console Shell Kernel bash ksh GNOME 20/01/2011 Hệ Điều Hành Unix/Linux Giới thiệu Linux Shell Shell (hệ vỏ) môi trường tương tác mà người dùng giao tiếp với hệ điều hành Linux cung cấp số shell như: C shell (csh), Korn shell (ksh), Bourne shell (sh), BASH shell (bash) ,… BASH (Bourn Again Shell) shell mặc định Linux Shell diễn dịch lệnh cho phép người dùng lập trình script ngơn ngữ lập trình 20/01/2011 Hệ Điều Hành Unix/Linux Giới thiệu Linux Shell Linux cho phép chuyển đổi nhiều shell console ảo (Virtual console) sử dụng lệnh chsh Cú pháp: chsh [-s ] [-l] [username] Trong đó: -l : liệt kê loại shell có (thơng tin shell chứa tập tin /etc/shells) Ví dụ: chuyển sang c shell $ chsh csh ↵ 20/01/2011 Hệ Điều Hành Unix/Linux Mục đích shell Tương tác, diễn dịch lệnh: shell đợi người sử dụng gõ lệnh dấu nhắc, sau gửi tới hệ thống yêu cầu từ lệnh nhận Đặt biến môi trường người sử dụng Lập trình Shell cung cấp tập hợp lệnh từ viết chương trình (được gọi shell script) Ngoài lệnh đơn giản hệ thống, shell bổ sung thêm cấu trúc phức tạp điều khiển rẽ nhánh (if/case), vòng lặp (for/while) 20/01/2011 Hệ Điều Hành Unix/Linux Điều khiển shell Shell sử dụng ngơn ngữ lập trình gọi ngơn ngữ shell Các chương trình viết thơng dịch shell gọi shell script Có hai cách để viết chương trình điều khiển shell: Viết chương trình từ dịng lệnh Có thể gộp lệnh vào tập tin yêu cầu shell thực thực thi tập tin chương trình 20/01/2011 Hệ Điều Hành Unix/Linux Điều khiển shell từ dịng lệnh Ví dụ tìm hiển thị tập tin mà nội dung có chứa chuỗi ‘main()’ Thay dùng lệnh grep để tìm file sau sử dụng lệnh more để hiển thị Ta điều khiển shell tự động sau: $ for file in * >do > if [ $(grep –l ‘main()’ $file)] > then > more $file > fi >done 20/01/2011 Hệ Điều Hành Unix/Linux Điều khiển shell từ script Nhược điểm việc điều khiển shell từ dòng lệnh khó lấy lại khối lệnh trước để sửa đổi thực thi lần Để dễ bảo trì ta đưa lệnh vào tập tin yêu cầu shell đọc nội dung tập tin để thực thi Ví dụ: docfile.sh #!/bin/bash for file in * if [ $(grep –l ‘main()’ $file) ]; then more $file fi done 20/01/2011 Hệ Điều Hành Unix/Linux Môi trường Shell Môi trường shell tất thiết lập giúp cho việc chạy chương trình xác Bao gồm: Các tập tin khởi tạo shell Các biến shell Thực tính tốn số học Gán bí danh 20/01/2011 Hệ Điều Hành Unix/Linux 10 Cấu trúc lặp for Cú pháp: for in done 20/01/2011 Ví dụ 1: tính tổng số tự nhiên #!/bin/bash let "s = 0" for i in let "s=$s+$i" done echo “Tong là: $s” Hệ Điều Hành Unix/Linux 48 Cấu trúc while Cú pháp: while done 20/01/2011 Ví dụ 1: #!/bin/bash n=0 while [ $n -lt 10 ] echo $n let "n= $n + 1" done Hệ Điều Hành Unix/Linux 49 Ví dụ nhập mật #!/bin/bash echo -n “Enter password:" read password while [ “$password” != “secret” ] echo “Sorry, try again !” read password done echo “Password is accepted !” exit 20/01/2011 Hệ Điều Hành Unix/Linux 50 Bài tập Bài 1: Tính tổng s = + + + …+n Bài 2: Tính giai thừa số n! Bài 3: Viết shell script kiểm tra số có phải số ngun tố khơng ? Bài 4: Viết shell script đếm số dòng số từ tập tin Bài 5: Tính tổng s = + 1/32 + 1/52 + …+1/(2n+1)2 Bài 6: Kiểm tra số có phải số hồn thiện hay khơng? (n Số hồn thiện tổng ước - $1” i=0 tong=0 while [ $i -lt $1 ]; i=$(($i + 1)) tong=$($tong+$i)) done echo "Tong 1->$1= $tong" exit 20/01/2011 Hệ Điều Hành Unix/Linux 55 Tính giai thừa n (n!) #!/bin/sh echo “Chuong trinh tinh $1!” i=0 gt=1 while [ $i -lt $1 ]; i=$(($i +1)) gt=$(($gt * $i)) done echo "$1!= $gt" exit 20/01/2011 Hệ Điều Hành Unix/Linux 56 Đếm số dòng tập tin #!/bin/sh echo “Chuong trinh dem so dong cua tap tin $1” { count=0 while read line; count=$(($count + 1)) done echo “So dong cua tap tin $1 la : $n” }

Ngày đăng: 08/05/2021, 17:04

Xem thêm: