intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 7

Chia sẻ: AFASFAF FSAFASF | Ngày: | Loại File: PDF | Số trang:6

47
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Windows NT4 sử dụng MBR DOS,nhưng thay thế bảng ghi khởi động của phân vùng kích hoạt bằng cách thay thế NTLDR vào chỗ IO.SYS.

Chủ đề:
Lưu

Nội dung Text: Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 7

  1. ˆ’ ˆ’ 3.7 Khai trien bieu thuc 39 ´’ kênh giao tác [user]$ export name=value `’ ˆ ’ ˆ’ ’ ’ ´’ ’ Trong truong hop này, tat ca các chuong trình chay tu he vo (ke ca ban sao thu hai cua ’`’ ´’ ˆ ’ ’’ ˙ `n truy cap toi các bien d oc gán nhu vay, tuc là su dung giá tri cua ˙ ˙ ´ ¯u ’ ˆ’˜ ’’ ’ chính he vo) se có quye ˆ ´’ ˆ ´’ ˆ ˆ ’ ’ ˙ tên. ˙ ˙ ˙ ˙ ˙ chúng qua ˆ’ ˆ’ 3.7 Khai trien bieu thuc ´’ ˆ ’ ¯o ’´ ˆ ’ ˆ ¯u ’ Hay he vo d c các câu lenh nhu the nào? Khi he vo nhan d ’oc mot dòng ˆ ˆ ˆ `n ˙ ’c hien, nó (he vo) truoc khi chay câu lenh thu˙ hien viec "phân tích ngu ˙ ˙ ˙ ˙ ˙’ lenh này d ca thu ’c ˆ ’´’ ˜’ ¯ó ˆ ˆ ˆ ˆ ˆ ˆ pháp" dòng lenh này (giong trong ngôn ngu, phân tích chu ngu˙ vi ngu). ˙ ˆ t trong nhung ˙ ˙ ˙´ ˙ ˙ ˙’ ˙ ˜’, ˜’ Mo ˜’ ˜’ ˆ ˆ ˙ ˙ ˙ ˆ’ ˆ’ ´’ ’’ ’´’ ’ ’ buoc cua su phân tích này là phép mo hay khai trien bieu thuc (expansion). Trong bash có ˙ ˆ’ ˆ’ ´’ ’ bay loai khai trien bieu thuc: ˙ ˆ’ ´ • Khai trien dau ngoac (brace expansion); ˘ ˆ ˙ ´´ • Thay the dau ngã (tilde expansion); ˆˆ ´ ´ ´´ • Phép the các tham bien và bien so; ˆ ˆ ˆˆ ´ • Phép the các câu lenh; ˆ ˆ ˙ ´´ ’ • Phép the so hoc (thuc hien tu trái sang phai); ’ ˆ `’ ˆˆ ˙ ˙ ˙ • Phép chia tu (word splitting); `’ ˆ’ ˜ • Khai trien các mau tên tap tin và thu muc (pathname expansion). ˆ ˆ ’ ˙ ˙ Các thao tác này d ’oc thuc hien theo d ¯úng thu tu liet kê trên. Chúng ta se xem xét chúng ´’ ’ ˆ ˜ ¯u ’ ’ˆ ˙ ˙ ˙ ˙˙ theo tu tu này. ´’ ’ ˙ ˆ’ ´ˆ 3.7.1 Khai trien dau ngoac ˘ ˙ ˆ’ ´ ˘´ ´ ’´ ` Khai trien dau ngoac tot nhat minh hoa trên ví du. Gia thiet, chúng ta can tao thu muc con ˆ ˆ ˆ ˆ ˆ ’ ˙ d hoac thay d ’i nguoi dùng so huu cua vài tap tin cùng mot lúc. Có ˙ ˙’ ˙ ˆ˙ ’ trong mot thu muc nào ¯ó, ˘ ’`’ ’ ˜’ ¯o ˆ ˆ ˆ ’ the thuc˙hien d ˆ˙u này nho các câu lenh sau: `’ ˙ ˙ ˙ ˆ’ ’ ˆ ¯ie ` ˆ ˙ ˙ ˙ kênh giao tác [user]$ mkdir /usr/src/unikey/{old,new,dist,bugs} [root]# chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex} ` Trong truong hop d ˆ u, trong thu muc /usr/src/unikey/ se tao ra các thu muc con ’`’ ˜ ’ ¯a ’ ’ ˙ bugs. Trong truong hop thu hai, nguoi dùng so huu cua các tap tin sau ˙ ’’ ˙ ˜’ ’ ˙ old,new,dist, và `’ ´’ `’ ˆ ’ ’ ’ ˙ ˙ se thay d ˆ’i (thành root): ˜ ¯o • /usr/ucb/ex • /usr/lib/ex?.?
  2. 40 Bash • /usr/ucb/edit • /usr/lib/ex?.? • /usr/ucb/ex • /usr/lib/how_ex • /usr/ucb/edit • /usr/lib/how_ex ˜ ´’ ˆ ˘ ´ ˜ ´ ˜’ ` ´ `’ Tuc là voi moi cap dau ngoac se tao ra vài dòng riêng re (so nhung dòng này bang so tu ´’ ˘˜ ˘ ˆ ˆ ˆ ˙ ˙ ` ng trong dau ngoa˙ bang cách ghi thêm vào truoc moi tu trong ngoac nhung gì d ´’ng truoc ˜ `’ ´ ` na ˘ c) ˘ ˘ ’´’ ˆ ˘ ’´’ ˜’ ¯u ˆ ˙ ´ ˙˘ ˜ `’ ´ dau ngoac, và ghi thêm vào sau moi tu này nhung gì d ´’ng sau dau ngoac. Mot ví du khác: ˘ ˜’ ¯u ˆ ˆ ˆ ˆ ˙ ˙ ˙’ ´ ˙ ˆ’ ˜ dòng a{d,c,b}e khi khai trien se thu d ’oc ba tu "ade ace abe". Khai trien dau ngoac `’ ˘ ¯u ’ ˆˆ ˙ trong dòng lenh, hon nua tat ca các ký tu d ˘ c ˙ ’n khác ´’ d ’oc thuc hien truoc các dang khai trie ’´’ ’ ˜’ ˆ ¯u ’ ’ ¯a ’ˆ ˆ ˆ bie˙t có trong˙dòng lenh, ke˙ca nhung ký tu nam trong dau ngoac, se d ’oc giu không thay d˙ˆ’i ˙ ´ ˙ ˘ ˜ ¯u ’ ˜’ ˙ ˆ’ ’ ˜’ ` ’˘ ¯o ˆ ˆ ˆ ˙ ˙ dich o các buoc phía˙sau). ˙ ˙ ’’ (chúng se d ’oc biên ’´’ ˜ ¯u ’ ˙ ˙ ´´ ˆˆ 3.7.2 Thay the dau ngã (Tilde Expansion) ´ ´` ’´ ´’ ’´’ ´ ` Neu nhu tu bat d ˆ u voi ký tu dau ngã (’∼’), tat ca các ký tu d ´’ng truoc dau gach chéo d ˆ u tiên ’ `’ ˘ ¯a ´’ ’ ¯u ¯a ˆ ˆ ˆ ˆ ´ t ca các ký tu neu nhu không có dau gach chéo) se˙d ’oc hieu là tên nguoi dùng (login ˙ ˙` ’ ´ ´ (hay ta ’ ˜ ¯u ’ ˆ ˆ ’ˆ ˆ ’ ’’ ˙ ´’˙ ˙ ˜ ´ ´ ´ name). Neu nhu tên này là mot dòng rong (tuc là dau gach chéo d ´’ng ngay phía sau dau ngã), ¯u ˆ ˆ ˆ ˆ ˆ ’ ˙ ’ i giá tri cua bien HOME. Và neu giá tri cua bien HOME không ˙ ´ ´’ ´ ´ ´ ’ ’ thì dau ngã se d ’oc thay the bo ˜ ¯u ’ ˆ ˆ ˆ ˆ ˆ ´ u ngã se d ’oc thay the ˙boi d ’ong dan d ˆ u d ’ d´ n thu ˙muc cá nhân cua nguoi ˙ ˜ ¯a ¯u ¯e ´ ’’ ¯u `’ ` ’ d ’oc gán thì da ’`’ ˜ ¯u ’ ¯u ’ ˆ ˆ ˆ ˆ ’ ˙ mà d chay he vo. Neu nhu ngay sau dau ngã (và truoc dau gach ˙ ˙ ˆ’ ´ ´ ’´’ ´ dùng, chéo) là mot tu trùng ˆ `’ ¯ã ˆ ˆ ˆ ’ voi tên cua mot˙ngu˙’i dùng hop pháp, thì dau ngã cong voi tên nguoi dùng d ’oc thay the boi ˙ ˙ ´ ´ ’’ ’ ’o ´’ ` ´’ ’`’ ¯u ’ ˆ ˆ ˆ ˆ ’ ˙ d ’ d´ n thu muc cá nhân cua nguoi ˙ ˙ ˙ sau dau ngã ˜ ¯a ` ´ ´ ’ d ’ong dan d ˆ y ¯u ¯e `’ dùng này. Neu nhu tu d ´’ng `’ `’ ¯u ¯u ˆ ˆ ˆ ˆ ’ ’ ’ ˙` không phai là tên cua mot nguoi dùng (và không rong), thì tu không bi thay d ˆ’i. Neu nhu sau ˜ ¯o ´ ’ ’ `’ ˆ ˆ ˆ ’’ ’ ˙ ` ¯u ’ ˙ ’ ´ u ngã là ’+’, hay ký hieu này se d ’oc thay the boi tên d ˆ u d ’ cua thu muc hien thoi (tuc là ´ ’’ da `’ ´’ ˜ ¯u ’ ¯a ˆ ˆ ˆ ˆ giá tri cua bien PWD). Ne˙u dung sau dau ngã là ’-’, thì thay the giá tri cua bien ˙ ˙´ ’ ˙ ´ OLDPWD (thu ´ ´ ´’ ´ ’ ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ muc "cu"). ˜ ˙ ´ ´ ´´ ˆ ˆ ˆˆ 3.7.3 Phép the các tham bien và bien so ˆ’ ´ ´ ´ ´ ’ ¯u ’ ’’ Ký tu $ d ’oc su dung cho các thao tác the tham bien, the các câu lenh và the các bieu thuc ´’ ˆ ˆ ˆ ˆ ˆ ´ hoc. Bie˙u thuc ˙hay tên d ´’ng sau $ có the d ’oc d ’a vào ngoac, ˙ ˙ ’ ’ ¯u ’ ¯u ´ t thiet, nhung ´ so ˘ không nha ´’ ¯u ˆ ˆ ˆ ˆ ˆ ’ rat tien, vì dau ngoac phân cách bieu thuc voi các tu hay ký tu˙ d ´’ng sau. Nhu vay, d ˆ’ goi ´ ˙ˆ ´’ ´’ ˙ `’ ˆ’ ´ ˘ ¯u ˆ ¯e ˆ ˆ ’ ’ giá tri cua tham bien nói chung cung nhu bien môi truong nói riêng trong dòng lenh, can d˙ t ˙’ ´˙ ˙ ˙`˘ ’´ ’`’ ˜ ˆ ¯a ˆ ˆ ˆ ˙´ ˙´ ˙ ’u thuc dang $parameter. Dau ngoac chı can thiet, neu tên cua tham bien có chua vài chu ´ ` ´´ ´ ’ˆ ’ bie ˘ ˜’ ˆ ˆ ˆˆ ˆ ’ ’ so, hoac khi theo sau tên còn có các ˙ tu khác, mà chúng ta không muon he vo "hieu lam" ˙ ˆ’ ˆ ´ ´ ˆ’ ` ký ’ ˘ ˆ ˆ chúng˙là mot phan cua tên tham bien. Trong tat ca các giá tri cua bien so xay ˙ phép the dau ˙´’ ` ´ ´ ´ ’ ra ´´ ˆ’ ’ ˆ ˆ ˆ ˆˆ ˆˆ ˙khai trien tham bien và bien so, phép the các câu lenh, phép the các bieu thuc so ˙ ’ ’ ´’ ´ ´ ´´ ´ ´ ngã (∼), su ˆ ˆ ˆˆ ˆ ˆ ˆ ˆ ˆ ’ hoc, cung ˙ ’ xóa các ký tu trích dan (xem duoi). Su phân chia tu không xay ra, tru truong ˙` ˜ ’ ˜ nhu ’´’ `’ ’`’ ˆ ’ ’ ’ hop "$" (loi giai thích xem ˙o bang so 3). Su khai trien các mau tên tap tin và thu muc cung ˙ ˙ ˆ’ ˜ ´ `’ ’ ’’ ’ ˜ ˆ ˆ ˆ ’ ’ ’ ˙ ˙ ˙ ˙ không d ’oc thuc hien. ¯u ’ ˆ ’ ˙ ˙ ˙
  3. ˆ’ ˆ’ 3.7 Khai trien bieu thuc 41 ´’ ´ ˆ ˆ 3.7.4 Phép the các câu lenh ˙ ˜ ´ ´ ` ’’ ˆ ´ ’ ˜’ Phép the các câu lenh là mot công cu rat mang cua bash. Ý nghıa cua nó nam o cho thay the ˘ ˆ ˆ ˆ ˆ ˆ ˙ i ket qua thuc hien cua chúng. Có hai dang phép the lenh: $(command) ˙ ˙ ’˙ tên các câu lenh bo ´ ´ˆ ’’ ˆ ’’ˆ ˆ ˆ và ‘command‘ Neu ung dung dang thu hai (chú ý o d ˙su dung dau "ngoac d ’n nguoc", ˙ ˙ ˙ ´˙ ´ ´’ ’’ ¯ây ’’ ´’ ˘ ¯o ˆ ˆ ’’ phím cho nó thuong nam trên phím Tab), thì dau gach nguoc (\) ˙’ trong dau ngoac se có chuc ˙ ˙ ˙˘ ˙´ ` ´ ´ ’ o `’ ˘ ˜ ˆ ˆ ’ ’’ ’ nang nhu mot ký tu thông thuong, tru truong hop,˙ khi d ´’ng sau nó (dau gach nguoc) là mot ˙ ˙ ´ ˘ ’`’ `’ ’`’ ¯u ’ˆ ˆ ˆ ’ ’ ’’ $, ‘, hay mot˙ \. Neu nhu su dung dang $(command), thì tat ca các ký tu d ´’ng trong ˙ngoac ta˙o ´˙ ˙ ˙ ´’ ’ ’’ ˘ ’ ¯u ˆ ˆ ˆ thành mot ˙ lenh, không có ký tu nào có ý nghıa d ˘ c biet. Neu phép the câu lenh xay ˙ ˙ ˙ ˙ ˙’ ra ´ ´ ˆ câu ˆ ˜ ¯a ˆ ˆ ˆ ˆ ’ ˙ ngoac kép, thì trong ket qua cua phép the se˙không thuc hien phép phân˙ chia tu và ˙ ˙’ ’ ˙ ´ ´˜ phía trong ˘ `’ ˆ ˆ ’ˆ ˙˜u tên tap tin và thu muc. ˙ ˙ ’n ma su khai trieˆ ˆ ˆ ’ ’ ˙ ˙ ˙ ´´ ˆˆ 3.7.5 Phép the so hoc (Arithmetic Expansion) ˙ ˆ’ ˆ’ ´´ ´’ ´ ´ ’ Phép the so hoc cho phép tính giá tri cua mot bieu thuc so hoc và thay the nó (bieu thuc) ´’ ˆˆ ˆ ˆ ˆ ˙ d oc. Có hai dang phép the so˙hoc: $[expression] ((expression)) ˙ ´´ ˙ ´ ’’i ket qua thu ¯u ’ ’ bo ˆ ˆˆ ’ Trong d expression d ’oc˙ hieu (d ’oc bash d c) nhu khi d ´’ng trong ngoac kép, nhung ˙ ˙ ¯u ’ ˆ’ ¯u ’ ˘ ¯ó ¯o ¯u ’ ’ ˙ expression lai d ˙oc d c nhu mot ký tu thuong. Phía trong ˙ ˙ ´ u ngoac kép o trong ’’ nhung da ˘ ’ ’`’ ˜’ ¯u ’ ¯o ˆ ’ˆ ’ expression ˙có thuc hien các phép the tham bien và the câu le˙ Cú pháp cua bieu thuc ˙ ´˙ ˙´ nh. ˙ ˆ’ ´ ’ ´’ ’ˆ ˆ ˆ ˆ ˆ ˙ tu nhu cú pháp cua bieu thuc so hoc cua ngôn ngu C, cu the hon ve van ˙ ˙ ’ ´’ ´ ’’ ˆ´ `ˆ ’ ’ expression tuong ’ ’ ˜’ ˆ ˆ ˆ ’’ ˙ ˙ ˙’ ’ ¯o ` này có the d c trong phan ARITHMETIC EVALUATION cua trang man cua bash. Ví ` ’ dˆ ¯e ˆ ˆ du, câu lenh ˙ ˆ ˙ ˙ kênh giao tác [user]$ echo $((2 + 3 * 5)) ˆ’ ´’ ˜ ´ ’` ´ cho ket qua bang "17". Neu bieu thuc không chính xác, bash se d ’a ra thông báo loi. ˘ ˜ ¯u ˆ ˆ ˆ 3.7.6 Phân chia tu (word splitting) `’ ˆ’ ´’ ´ ´ ´ ´ˆ ´ ˆ’ Sau khi thuc hien xong các phép the tham bien, the lenh, và the các bieu thuc so hoc, he vo lai ’ˆ ˆ ˆ ˆ ˆ ˆ ˙ ˙lenh mot lan nua (nhung o dang thu˙ d oc sau các phép the nói trên) và thuc ˙ ˙ ˙ ` ˜’ ´ ’ ’’ phân tích dòng ˆ ¯u ’ ˆˆ ˆ ’ ’ ˙ tu ˙ ˙ tác này nam o cho, he vo tìm trong dòng lenh ˙ ˙ ˜ ` ’’ ˆ ˆ ’ hien viec phân chia `’ (word splitting). Thao ˘ ˆ ˆ ˆ tat˙ ca các ký tu phân chia, xác d nh boi bien IFS (xem trên), và nho d chia nho dòng lenh ´ ’˙ ˙` ˙ ’’ ´ ’ ¯i ’ ¯ó ˆ ˆ ˆ ’ ˙ re trong các cho tuong ung. Neu giá tri cua IFS bang mot dòng trong,˙thì ˙˜ ´ ` ´ ’ thành các tu riêng ˜ `’ ˆ ’ ’ ´’ ˘ ˆ ˆ ˆ ˙ ˙ ´ ´ ’ viec phân chia tu se không xay ra. Neu trong dòng lenh không thuc hien phép the nào trong `’ ˜ ˆ ˆ ˆ ˆ ˆ ’ ˙ ’˙ ˙ ˙ ´ ˆ’ các phép the ke trên, thì phân chia tu cung không xay ra. `’ ˜ ˆ ˆ’ ˜ ˆ ˆ 3.7.7 Khai trien các mau tên tap tin và thu muc (Pathname Expansion) ’ ˙ ˙ Phép the tên d ’ong dan và tap tin (Pathname expansion) su dung d ˆ’ chı nho mot mau nho ˜ ˜ ´ ’’ ¯e ’ `’ ˆ ’ ¯u `’ ˆ ˆ ˆ ˆ ˙ ˙˜ ˙ ’ chı ra vài tap tin (hay thu muc), tuong ung voi mau này. Sau khi phân chia tu, gon mà có the ’ ’ ’ ´’ ´’ ˆ `’ ˆ ˆ ’ ˙ neu nhu không d a ra tùy chon -f, thì bash se tìm kiem trong tung tu cua dòng lenh các ˙ ˙ ´ ´ ’ và ˆ `’ `’ ˜ ¯u ˆ ˆ ’ ’ ký tu *, ?, và [. Neu tìm thay tu voi mot hay vài ký tu nhu vay, thì tu này se d ’˙’c xem ´˙ `’ ´’ ˆ ´ ˜ ¯uo `’ ˆ ˆ ˆ ’ ’’ nhu ˙ ˆ t mau, và can thay the boi các tu trong danh sách d˙ ’ong dan, tuong ung voi mau này. `’ ˙ ˙ ´’ ˙˜ ˜ ˜ ` ´ ’’ ’ mo ˆ ¯u `’ ’ ’ ´’ ˆ ˆ ˆ ˆ ˙ ˜ ´ ´ ´ Neu nhu không tìm thay tên tuong ung voi mau, và bien nullglob không d ’oc d ’a ra, thì tu ´’ ´’ ˆ `’ ¯u ’ ¯u ˆ ˆ ˆ ’ ’’ ’i, tuc là các ký tu d ˘ c biet bi mat giá tri và hieu nhu các ký˙tu thuong. Neu ’ ´ ´ se không thay d ˆ ´’ ’ ’`’ ˜ ¯o ’ ¯a ˆ ˆ ˆ ˆ ’ ˙ `˙ ˙˜ ˙ ˙´ ˙ ˜ ´ n này d ’oc xác d nh, mà d ’ong dan tuong ung voi mau không tìm thay, thì tu se bi ´ nhu bie ˆ ’ ’ ´’ `’ ˜ ¯u ’ ¯i ¯u ’ ’ˆ ’ˆ ˆ xóa khoi dòng le˙ Các ˙ tu dùng d ˆ’ tao mau có các giá tri trong bang 3.4 ˙ ˜ ’ ’ ˆ nh. ký ’ ¯e ˆ ˙ ˙ ˙ ˙
  4. 42 Bash ˜ ’ Bang 3.4: Các ký tu tao mau ˆ ’ ˙˙ ´ Ký tu Quy luat thay the ˆ ˆ ’ ˙ ˙ ˆ’ ’ ˜ ´’ ´ ` * Tuong ung voi bat ky dòng ký tu nào, ke ca dòng rong. Ví du, v*.txt ’ ’ ´’ ˆ ˆ ’ ˙ ˙ ´ boi vnoss.txt, vnlinux.txt và vntex.txt ’’ se d ’oc thay the ˜ ¯u ’ ˆ ´˙ ˆ ` ˜ ’ ’ ´’ ´ ’ (neu các tap tin này ton tai), và *.png se tuong ung tat ca các tap tin có ˆ ˆ ˆ ˆ ˙ ˙` ˙ `n mo rong png (tap tin d ˆ hoa hai chieu). ` ’’ ˆ pha ¯o ˆ ˆ ˆ ˙ ´˙ ˙ ˜ ? Tuong ung bat ký mot ký tu d ’n nào. Ví du, mau ´’ ’ ¯o ˆ ˆ ˆ ’’ ˙ thaythe ˙ boi các tên tep sau ˙ ´ ’’ file?.txt se d ’oc ˜ ¯u ’ ˆ ˆ ˙ ˙ file1.txt, file2.txt, file3.txt, và filea.txt ´ ` (neu chúng ton tai), nhung file23.txt thì không. ˆ ˆ ’ ´ ˙` ´ ` ´ [...] Tuong ung bat ky ký tu nào trong so các ký tu nam trong dau ngoac ’ ’ ´’ ’˘ ˘ ˆ ˆ ˆ ’ ˙ ´ u ˙ `’ (-), ví du c-f, bieu ˙ ˆ’ ’’ ˆ vuông này. Cap ký tu, phân cách nhau boi da tru ˘ ’ ˙ ˙ ˙ thi mot dãy; bat ký ký tu nào, theo tu d ˆ’n, nam giua hai ký tu này, ke ca ˆ’ ’ ´ ` `’ ¯ie ˘ ˜’ ˆ ˆ ’ ’ ˙ ký tu tao ra dãy (c ˙ f trong ví du) cung tuong ung vo˙ mau. Neu ˙ ˜ ´ hai và ´’i ˆ ’ ’ ´’ ˜ ˆ ’ `˙ tiên trong ngoac vuông là hay ˆ thì mau (o vi trí này) se tuong ˙ ˙, ˜ ’’ ký tu d ˆ u ˘ ˜ ’’ ’ ¯a ˆ ung ˙tat ca các ký tu, không d ’oc chı ra trong ngo ˙ ˙ ´’ ´ ’ ¯u ’ ’ ˆ ’ ˙ ˙ ˜ ´ ’’ ’’’ Mau tên tap tin rat thuong xuyên su dung trong dòng lenh có chua ls. Hãy tuong tuong ’`’ ´’ ˆ ˆ ˆ ˆ ’’ ´ n xem thông tin cua mot thu muc, trong d có ˙ ´’a mot so luong lon các tap˙tin ˙ ˙ ´ ’ ’ ´’ ’ là ban muo ¯ó chu ˆ ˆ ˆˆ ˆ ’ ˙ ’˙ ˙´ ˙ ˙ ˙ D ˆ’ d ’ các dang, ví du, tap tin hình anh, phim voi dang gif, jpeg, avi, v.v. . . . ¯ e thu d ’oc thông ¯u ¯u ’ ˆ ’ tin chı cua tap tin˙dang jpeg, có the dùng câu lenh ˙ ˙ ˙ ˙ ˆ’ ’’ ˆ ˆ ˙ ˙ ˙ kênh giao tác [user]$ ls *.jpg ´ ` ´ˆ ˆ` ´ ˜’ ´ ’ Neu trong thu muc có nhieu tap tin, mà tên cua chúng là các so gom bon chu so (thu muc ˆ ˆˆ ˆ ˆ ’ ’ ˙ thì lenh sau chı d a ra danh sách các tap tin có so tu 0500 d´ n 0999: ˙ ˙ ´ `’ ’ ¯u /proc là mot ví du+), ¯e ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ˙ kênh giao tác [user]$ ls -l 0[5-9]?? ˆ 3.7.8 Xóa các ký tu dac biet ’ ¯˘ ˙˙ ˙ ´’ ´ Sau khi làm xong tat ca các phép the, các ký tu \, ‘ và " còn lai trong dòng lenh (chúng ˆ ˆ ˆ ’ d ’oc su dung d ˆ’ huy bo giá tri d ˘ c biet cua các˙ký tu khác) se bi xóa het. ˙´ ˙ ’’ ’’ ’ ˜ ¯u ’ ¯e ¯a ˆ ˆ ’ ˙ ˙ ˙˙ ˙ ˙ ˙ ˆ ˜’ ˆ 3.8 Shell - mot ngôn ngu lap trình ˙ ˙ Nhu d nói o trên, d ˆ’ có the xây dung bat ky giai thuat nào, cung can có các toán tu kiem tra ˆ’ ’’ ˆ’ ´`’ ` ’’ ˜ ’ ¯ã ¯e ˆ ˆ ˆ ’ ˜ tro các˙ toán tu lua chon if...then...else và case, cung ˙ ` ˆ’ ’’ ’ d ˆ u kien. He vo bash ho ’ ˜ ¯ie ˆ ˆ ˙ toán˙ tu vòng lap for, while, ˙until, nho d nó (bash) tro thành mot ngôn ˙ ˙ ’’ ’’ nhu các ˘ `’ ¯ó ˆ ’ ngu lap trình manh. ˙ ˙ ˜’ ˆ ˙ ˙ ’’ 3.8.1 Toàn tu if và test (hoac [ ]) ˘ ˙ ´ ` ’ ’’ ¯ie Cau trúc cua toán tu d ˆ u kien có dang thu gon nhu sau: if list1 then list2 else list3 ˆ ˆ ’ ˙ ˙ fi trong d list1, list2, và list3 là ˙ chuoi câu lenh, phân cách nhau boi dau ˜ ’’ ´ các ¯ó, ˆ ˆ ˆ ˙
  5. ˆ ˜’ ˆ 3.8 Shell - mot ngôn ngu lap trình 43 ˙ ˙ ˆ’ ˆ’ ˜ ´ ’’ ˆ ´ ´ ’ phay và ket thúc boi mot dau cham phay hay ký tu dòng moi. Ngoài ra, các chuoi này có the ´’ ˆ ˆ ˆ ˆ ’ ˙c nhon: list. Toán tu if kiem tra giá tri d oc tra lai boi các câu lenh ˙ ˆ’ ´ ’’ ¯u ’ ’ ’’ d ’oc d ’a vào dau ngoa ˘ ¯u ’ ¯u ˆ ˆ ’ ˙ ˙ ˙ có vài câu lenh, thì kiem tra giá tri d oc ˙tra lai boi câu lenh ˙˙ ˙ ’ ´ ¯u ’ ’ ’’ tu list1. Neu trong danh sách `’ ˆ ˆ ˆ ˆ ’ ´ i cùng cua danh sách. Neu giá tri này bang 0, thì se thuc hien˙ các˙ lenh tu list2; còn ˙ ˙ ˙ ´ ` ’ ˆ cuo ˘ `’ ˜’ˆ ˆ ˆ neu giá tri này khác không, thì se thuc hien nhung lenh tu ˙list3. Giá˙ tri d ’oc tra lai boi ˙ ˙ ´ ¯u ’ ’ ’’ `’ ˜’ˆ ˜’ ˆ ˆ ˙ nhu vay, trùng voi giá tri mà chuoi lenh thuc hien (list2 hoac list3) d˙ a ra. ˙ ˙˜ ˙ ˙˙ ’’ toán tu if ´’ ˘ ¯u ’ˆ ˆˆ ’ˆ ’ Dang day du cua˙ lenh if nhu sau: ˙ ˙ ˙ ˙ ˙ ` ˆ ¯’ ’ ˆ ¯ ’ ˙ if list then list [ elif list then list ] ... [ else list ] fi ˙ ’’ ¯ây ´ ` ´ ’ (o d dau ngoac vuông chı có nghıa là, nhung gì nam trong nó, ngoac vuông, không nhat ˘ ˘ ˘ ˜ ˜’ ˆ ˆ ˙ thuc d ´ ng sau if hay elif thuong là câu lenh test, mà có the d oc ˙ ˆ’ ˆ’ ¯u ’ ´ ’ thiet phai có). Bieu ´’ ¯u `’ ˆ ˆ ’ ’ ’ ˙ ˙ ˆ’ ˆ ˆ’ ’’ ´ bieu thi boi dau ngoac vuông [ ]. Lenh test thuc hien phép tính mot bieu thuc nào d và ˘ ´’ ¯ó, ˆ ˆ ’ˆ tra lai giá tri 0, neu bieu thuc là d ˙ và 1 trong truo˙ hop nguoc lai. Bieu thuc d ’oc d ’a ˙ ´ ˙ ˆ’ ˙ ` ng ˙ ˆ’ ’ ´’ ´’ ¯u ’ ¯u ¯úng, ˆ ’’ ’ ’’ ˙ ong trình test nhu mot tham so cua chuong trình. ˙ ˙ ˙ gõ˙ ˙ ´’ toi chu ’ Thay vì ´’ ’ˆ ˆ ’ ’’ ˙ test expression ˆ’ ¯u ˆ’ ´’ có the d ’a bieu thuc expression vào ngoac vuông: ˘ ˙ [ expression ] ` ` ’’ ’ Can chú ý rang, test và [ d là hai tên cua cua cùng mot chuong trình, chu không phai ˘ ´’ ¯ó ˆ ˆ ’’ ˙ cú pháp cua [ d hoi phai có ´ ` ¯ó ’ ˆ ’ ’ ’ ¯òi ’ ’ là mot phép bien hóa than thông nào d cua he vo bash (chı là ˆ ˆ ˆ ˙ ` ’’ ˙ ˆ ’ ’ ’’ ˜ ´u d `n chú ý rang o cho cua test trong cau trúc if có the su dung ´ da ¯óng ngoac). Và cung ca ˘ ˘ ˜ ˆ ˆ ˆ ˆ bat ky chuong˙ trình nào. ¯ e ket thúc muc này, chúng ta d ’a ra ví du su dung if: ˙ D ˆ’ ´ ´` ’’ ¯u ˆ ˆ ’’ ˙ ˙ ˙ kênh giao tác if [ -x /usr/bin/unicode_start ] ; then unicode_start else echo "hello world" fi ` ` ’’ Ve toán tu test (hay [...]) can d sâu hon. ˆ ¯i ˆ ’ ˆ’ ` ’’ ˆ’ ¯ˆ 3.8.2 Toán tu test và dieu kien cua bieu thuc ´’ ˙ ˆ’ Bieu thuc d ˆ u kien, su dung trong toán tu test, d ’oc xây dung trên co so kie’m tra thuoc ` ’’ ’’ ’ ’’ ˆ ´’ ¯ie ¯u ’ ˆ ˆ ’ ˙ ˙ các dòng và các so sánh so hoc thông thuong. Bieu thuc phuc tap hon ˙ ˙ ˙` ’ ´ tính tap tin, so sánh ´’ ´’ ˆ ˆ ˆ ’ ’’ ˙ ˙ ˙ ’ ’’ d ’oc tao ra tu các thao tác d ’n và kép sau ("nhung viên gach co so"): `’ ˜’ ¯u ’ ¯o ˙˙ ˙ • -a file ´ˆ ` ¯ úng neu tap tin có tên file ton tai. D ˆ ˆ ˙ ˙ • -b file ´ ` ´ ´ ¯ úng neu file ton tai, và là mot tap tin thiet bi khoi (block device) d ˘ c biet. D ¯a ˆ ˆ ˆˆ ˆ ˆ ˆ ˙ ˙˙ ˙ ˙ ˙ • -c file ´ ` ´ ¯ úng neu file ton tai, và là mot tap tin thiet bi ký tu (charater device) d ˘ c biet. D ¯a ˆ ˆ ˆˆ ˆ ˆ ’ ˙ ˙˙ ˙ ˙ ˙ ˙ • -d file ´ ` ¯ úng neu file ton tai và là mot thu muc. D ˆ ˆ ˆ ’ ˙ ˙ ˙ • -e file ´ˆ ` ¯ úng neu tap tin có tên file ton tai. D ˆ ˆ ˙ ˙
  6. 44 Bash • -f file ´ˆ ` ¯ úng neu tap tin có tên file ton tai và là mot tap tin thông thuong. D ’`’ ˆ ˆ ˆˆ ˙ ˙ ˙˙ • -g file ¯ úng neu tap tin có tên file ton tai và d ’oc d ˘ t bit thay d ˆ’i nhóm. ´ˆ ` D ¯o ¯u ’ ¯a ˆ ˆ ˙ ˙ ˙˙ • -h file hay -L file ´ˆ ` ´ˆ ˆ` ´ ’’ ¯ úng neu tap tin có tên file ton tai và là liên ket mem (liên ket tuong trung). D ˆ ˆ ˆ ’ ˙ ˙ ˙ • -k file ´ˆ ` ¯ úng neu tap tin có tên file ton tai và d ’oc d ˘ t bit sticky. D ¯u ’ ¯a ˆ ˆ ˙ ˙ ˙˙ • -p file ´ˆ ` ˆ´ ’ ¯ úng neu tap tin có tên file ton tai và là tên cua mot ong (kênh FIFO). D ˆ ˆ ˆ ˙ ˙ ˙ • -p file ´ˆ ` ˆ´ ’ ¯ úng neu tap tin có tên file ton tai và là tên cua mot ong (kênh FIFO). D ˆ ˆ ˆ ˙ ˙ ˙ • -r file ´ˆ ` ` ¯ úng neu tap tin có tên file ton tai và có quyen d ˙ c. D ˆ ¯o ˆ ˆ ˙ ˙ • -s file ´ˆ ` ¯ úng neu tap tin có tên file ton tai và kích thuoc lon hon không. D ’´’ ´’ ’ ˆ ˆ ˙ ˙ • -t fd ´ˆ ’’ ˆ ’’ ’ ¯ úng neu bo mô ta cua tap tin (fd) mo và chı lên terminal. D ˆ ˙ ˙ • -u file ¯ úng neu tap tin có tên file ton tai và d ’oc d ˘ t bit thay d ˆ’i nguoi dùng. ´ˆ ` ’` D ¯o ¯u ’ ¯a ˆ ˆ ’ ˙ ˙ ˙˙ • -w file ´ˆ ` ` ¯ úng neu tap tin có tên file ton tai và có quyen ghi. D ˆ ˆ ˆ ˙ ˙ • -x file ´ˆ ` ` ¯ úng neu tap tin có tên file ton tai và có quyen thuc thi. D ˆ ˆ ˆ ’ ˙ ˙ ˙ • -0 file ´ˆ ’ ’’ ˜’ ’ ¯ úng, neu tap tin có tên file và chu so huu cua nó là nguoi dùng mà ID có hieu luc D ’`’ ˆ ˆ’ ˙ ˙˙ chı d´ n. ’ ¯e ˆ • -G file ´ˆ ` ` ’’ ¯ úng, neu tap tin có tên file ton tai và thuoc ve nhóm, xác d˙nh boi ID nhóm có hieu D ¯i ˆ ˆ ˆˆ ˆ ˙ ˙ ˙ ˙ luc. ’ ˙ • -S file ´ˆ ` ¯ úng, neu tap tin có tên file ton tai và là socket. D ˆ ˆ ˙ ˙ • -N file ¯ úng, neu tap tin có tên file ton tai và thay d ˆ’i tu lan d ’oc d ˙ c cuoi cùng. ´ˆ ` ` ´ D ¯o `’ ˆ ¯u ’ ¯o ˆ ˆ ˆ ˙ ˙ ˙ • file1 -nt file2 ¯ úng, neu tap tin file1 có thoi gian sua d ˆ’i muon hon file2. ´ˆ ’’ ¯o ` D ˆ ˆ ’ ’ ˙ ˙
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2