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

Chap 4 shellandc programs HỆ ĐIỀU HÀNH LINUX

54 64 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

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 455,92 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu• Gọi thực hiện lệnh trong Shell • Biến trong Shell • Câu lệnh alias • Tùy biến môi trường • Điều khiển công việc • Viết chương trình Shell... Biến trong shell• Sử dụng trong l

Trang 1

LẬP TRÌNH TRÊN LINUX

Trang 2

Giới thiệu

• Gọi thực hiện lệnh trong Shell

• Biến trong Shell

• Câu lệnh alias

• Tùy biến môi trường

• Điều khiển công việc

• Viết chương trình Shell

Trang 3

Gọi thực hiện shell

bash [options] [arguments]

• Các tập tin liên quan

– /etc/profile – system initialization file

– ~/.bash_profile(.bashrc) – Khởi tạo biến cá nhân – ~/.bash_history – Lưu lại các lệnh đã gõ

Trang 4

Biến trong shell

• Sử dụng trong lập trình shell và điều khiển môi

trường

• Gán giá trị cho biến: variable_name=value

• Truy cập vào giá trị của biến: $variable_name

$ foo="hello there"

$ echo $foo

hello there

Trang 5

Các biến môi trường

• HOME – Thư mục nhà

• PATH – Đường dẫn tới các tập tin thực thi

• USER – Tên người dùng đăng nhập

• (command:env)

Trang 8

Các hàm toán học

• Các phép toán: +, -, *, /, %

• Sử dụng Let khi thực hiện các hàm toán học

let "sum = 4 + 3"

let "area = $len * $width"

let "percent = $num / 100"

let "remain = $n % $d"

Trang 9

Shell Script

• Là tập tin văn bản chứa các cấu trúc điều

khiển và các lệnh của Shell

• Thông dịch từng hàng trong Shell

• Cấp quyền chạy(execute)

• Có thể gọi từ shell script khác

• Tham số được truyền từ dòng lệnh

Trang 10

Hello, world

./myscript.sh

$ cat > myscript.sh

Trang 11

"Hello" program

$ cat > hello.sh

#!/bin/bash

# This is a comment: simple hello shell script

echo "Enter your name:"

Trang 12

Các biến

• Các biến môi trường

• Các biến xây dựng sẵn(Built-in variables)

• Các biến người dùng(User variables)

• Biến có thể lưu trữ số hay các ký tự

• Chuỗi kỹ tự phải đặt trong dấu nháy kép hay nháy đơn

Trang 13

Vị trí các tham số

• Các tham số được tham chiếu theo vị trí của nó

• Các biến có sẵn trong 1 chương trình shell

– $# - Số lượng tham số truyền vào

– $0 - Tên của shell script

– $* - Trả về tất cả tham số truyền vào

– $n - Tham chiếu đến tham số thứ n(1-9)

• $./myscript source dest

– $0 = /myscript

– $1 = source

– $2 = dest

Trang 14

Các biến đặc biệt

• $$ - ID của tiến trình hiện tại

• $? - Trạng thái kết thúc của tiến trình cuối

cùng

Trang 15

Biểu thức so sánh

[ expression ]

• So sánh chuỗi ký tự: =, !=, -n, -z

• So sánh số: -eq, -lt, -gt, -ne, -le, -ge

• Phép toán trên tập tin: -d, -f, -e, -w, -r, -x

• Phép toán logic: !, -o, -a

[ s1 = s2 ] [ $num -lt 100 ] [ -d mydir ] [ ! -f myfile ]

Trang 16

Câu lệnh điều kiện

Trang 17

Câu lệnh điều kiện (cont)

Trang 19

let "num= $num + 2"

done

Trang 20

Một số câu lệnh khác

• BREAK - exit a loop

• CONTINUE - skip to end of current while or for loop

• EXIT - end the shell script

• RETURN - return from funtion or shell script

if [ $# -lt 2 ]; then

echo "Usage: ‘basename $0‘ source dest"

exit 1

fi

Trang 21

• Function format

function func_name { statements

Trang 22

Gỡ lỗi (Debugging)

lệnh

$ bash -x command

Trang 23

Lập Trình C trong Linux

Trang 24

Trình biên dịch: GCC

Trang 25

Giới thiệu

• Ngôn ngữ lập trình C là lựa chọn tốt cho những người mới học lập trình

• Đơn giản, mạnh và được sử dụng rộng

• Linux là môi trường thích hợp để viết các chương trình không cần mất chi phí mua các phầm mềm hỗ trợ lập trình đắt tiền

Trang 26

Biên dịch với gcc

• Trình biên dịch(compiler): chuyển từ “human-readable

source code” sang ”machine-readable object code”

• Cách sử dựng

– [CODE]% gcc [ tùy chọn | tên file ]

• Giả sử bạn có 1 file myfile.c khi bạn đánh :

% gcc myfile.c

• Trong thư mục của bạn sẽ có thêm file a.out đó là file

output mặc định của gcc Lúc này bạn đã có thể run chương trình bằng :

Trang 27

Biên dịch với gcc (tt)

• Nếu tiếp tục biên dịch file khác theo cách như trên thì file a.out của bạn sẽ bị ghi đè bằng file mới.

• Để khắc phục bạn có thể sử dụng tùy chọn -o để đặt tên file out put

$ gcc -o myout myfile.c

• $./myout

Trang 29

Dịch chương trình nhiều tập tin

• Cho phép quản lý các chương trình lớn

• Dịch lại chương trình lớn thì lâu hơn rất nhiều so với khi dịch các chương trình nhỏ

Trang 30

Biên dịch với nhiều tệp

Trang 31

Compile green.o: $gcc -c green.c

Compile blue.o: $gcc -c blue.c

Link the parts together: $gcc green.o blue.o

Trang 32

Biểu đồ phụ thuộc(Dependency

graphs)

Trang 33

Cách hoạt động makefile

Makefile:

project 1: data.o main.o io.o

gcc data.o main.o io.o –o project1 data.o : data.c data.h

gcc –c data.c main.o : data.h io.h main.c

gcc –c main.c Io.o : io.h io.c

gcc –c io.c

Trang 34

Sử dụng makefile với make

Trang 36

Tạo Makefile để chạy bằng lệnh make

demo: add.o main.o

gcc add.o main.o –o demoadd.o: add.c head.h

gcc –c add.c main.o: head.h main.c

gcc –c main.c

$ make

Trang 37

Chỉnh sửa văn bản với trình soạn thảo vim

Trang 38

Vi/Vim là gì

• VI là trình soạn thảo rất mạnh, cho phép bạn tạo và chỉnh sửa tập tin Vi chỉ làm việc với các tập tin văn bản

• Trình soạn thảo VI được tạo ra bởi Bill Joy

• Trình soạn thảo VIM(vi improved), là phiên bản cải tiến

của vi, bao gồm tất cả chức năng của vi và một số chức

năng mở rộng như: multiple windows, highlighting text, và command history

Trang 39

Khởi động vim

• vi có thể khởi động theo 3 cách:

– vim tạo một tập tin rỗng

– vim filename … chỉnh sửa một tập tin có sẵn

– vim +n filename mở trình soạn thảo và đưa con trỏ tới

vị trí dòng thứ n của tập tin

– vim +/pattern filename mở trình soạn thảo và đưa con trỏ tới vị trí của pattern xuất hiện đầu tiên trong tập tin

• Khi làm việc với nhiểu tập tin thì phải lưu lại tập tin đang

mở mới có thể mở tiếp tập tin khác

Trang 40

Các chế độ làm việc của vi

• Trình soạn thảo vi hoạt động ở 2 chế độ chính

– Chế độ chèn văn bản(Insert Mode): dùng để chèn

đoạn văn bản vào

– Chế độ lệnh(command mode): Dùng để nhập các lệnh

vào

• vi khởi động ở chế độ lệnh

• Gõ <ESC> để chuyển từ insert mode -> command mode

• Hầu hết các lệnh phân biệt chữ thường và chữ hoa

Trang 41

Chèn văn bản

• i Chèn đoạn văn bản trước vị trí con trỏ

• a Thêm đoạn văn bản sau vị trí con trỏ

• I Chèn văn bản vào vị trí đầu dòng

• A Thêm đoạn văn bản vào cuối dòng

• o Chèn hàng mới ngay sau hàng hiện tại

• O Chèn hàng mới trước hàng hiện tại

Trang 42

Thoát khỏi vi

• ZZ Lưu tập tin lại và thoát

• :x Lưu tập tin lại và thoát

• :w lưu tập tin lại

• :q! thoát khỏi vi và không lưu lại

• :wq Lưu tập tin lại và thoát

• !: chỉ thao tác bắt buộc

Trang 44

Di chuyển con trỏ - màn hình

• ^F forward one screen

• ^B backward one screen

• ^D down half screen

• ^U up half screen

(not case sensitive)

Trang 45

Di chuyển con trỏ - đoạn văn bản và hàng

• G go to last line of file

• [n] G go to last line or line [n]

• gg go to first line of file

• $ end of current line

• ^ beginning of text on current line

• [n] w forward [n] word(s)

• [n] b backward [n] word(s)

• e end of word

Trang 46

• D xóa từ vị trí con trỏ tới cuối hàng

• dd xóa hàng hiện tại

• [n] dd xóa [n] hàng

Xóa văn bản luôn được lưu trữ lại

Trang 47

Chỉnh sửa văn bản

• r,s thay thế 1 ký tự tại vị trí con trỏ

• R thay thế một chuỗi ký tự từ vị trí con trỏ

• S thay thế toàn bộ hàng

Trang 48

Thay đổi văn bản

• cw thay đổi một từ

• cc thay đổi toàn bộ hàng

• C thay đổi tự vị trí con trỏ tới cuối hàng

• ~ thay đổi chữ in của ký tự

Trang 49

Sao chép văn bản

• [n] yl sao chép [n] ký tự vào vùng đệm

• [n] yw sao chép [n] từ vào vùng đệm

• [n] yy sao chép [n] hàng vào vùng đệm

Trang 52

Tìm kiếm và thay thế (Line Mode)

• Gõ vào s để yêu cầu vi thực hiện tìm kiếm và thay thế

Định dạng chung của lệnh sẽ như sau: range

s/WordToReplace/Replacement/g

• range có thể nhận các giá trị sau:

1,$ - toàn bộ tài liệu

10, $ - từ hàng 10 tới cuối tài liệu

1,20 - từ hàng 1 tới hàng 20

• g chỉ ra là quá trình thay thế đuợc thực hiện trên toàn bộ

tài liệu, nếu không có g thì chỉ thay thế giá trị xuất hiện

đầu tiên

Trang 53

Tìm kiếm

• /[pattern] search pattern forward

• ?[pattern] search pattern backward

Trang 54

The End.

Ngày đăng: 24/02/2019, 20:15

TỪ KHÓA LIÊN QUAN

w