Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 5
lượt xem 5
download
Trong phân vùng được định dạng dưới hệ thống tập tin FAT,trình khởi động thứ hai chiếm một sector ( 512 byte).
Bình luận(0) Đăng nhập để gửi bình luận!
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 5
- Chuong 3 ’’ Bash ˆ˜ ´ ˆ ’ ´ ’´’ ’ Tot go hon tot nuoc son ˆ – ca dao tuc ngu Viet Nam ˜’ ˆ ˙ ˙ Trong phan này chúng ta se d ˆ cap d´ n van d ˆ làm viec voi Linux o che d ˆ text, hay còn ` ˜ ¯e ˆ ¯e ´ ¯e ` ˆˆ` ’’ ´ ¯o ˆ ´’ ˆ ˆ ˙ ng nguoi dùng Linux moi (newbie) thuong nghı se ˙ ˙` d ’oc goi là console hoac terminal. Nhu ˘ `’ ´’ ˜’ ˜˜ ¯u ’ ’ ’’ chang bao gio làm viec ˙o che d ˆ này, vì d có giao dien d ˆ hoa. Tuy nhiên d là mot ý kien ˙˙ ’ ˆ ’’ ´ ¯o ` ´ ˘ `’ ¯ã ˆ ¯o ¯ây ˆ ˆ ˆ `m, boi vì rat nhieu công viec có the thuc hien nhanh và thuan tien trong che d ˆ ˙này hon ˙` ˙ ˙ ˙ ’’ˆ ´ ´ ¯o ’’ sai la ˆ ˆ ˆ ˆ ˆ ˆˆ ˆ ’ là su dung giao dien d ˆ hoa. Và ˙dù sao thì che d˙ text cua HDH˙Linux không phai ˙là che d ˆ ˙´ ˙ ` ´ ¯o ’’ ’¯ ’ ˆ ¯o ˆ ¯oˆ ˆ text mot tien trình˙cua MS-DOS. Vì Linux là HDH d tien trình, nên ngay trong che d ˆ text ˙ ˙ ˙ ´ ¯o ˙ ˆ´ ¯a ´ ’ ˆ ˆ ˆ ¯ ˙ ’ nang làm viec trong vài cua so. Và d ’ soan thao mot tap tin van ban không˙ nhat ’’ ˆ’ ´ ’ ’ d có kha ˘ ˘ ¯ã ¯e ˆ ˆ ˆˆ ˆ ˙ soan thao lon và cham chap ˙(d ˘ c biet trên˙các máy có cau hình phan ˙ ´ ´ ` ’ ’ ´’ thiet phai chay các trình ¯a ˆ ˆ ˆ ˆ ˆ cung thap) cua môi truong ˙¯o hoa. ˙ ˙ ˙ ˙ ˙ ´ ` ’ ’`’ d ˆ ´’ ˆ ˙ ˆ’ 3.1 He vo là gì? ˙ ` ` Chúng ta thuong nói "nguoi dùng làm viec voi he d ˆ u hành". ¯ ieu này không hoàn toàn Dˆ ’`’ ’`’ ˆ ´’ ˆ ¯ie ˙ ˙ ´ "liên he" voi nguoi dùng d ’oc thuc hien boi mot chuong trình d ˘ c biet. ’ ˆ ’’ ˆ d¯úng, vì trên thuc te ˆ ´’ ’`’ ¯u ’ ¯a ’ˆ ˆ ’’ Có hai dang cu˙ chuong trình d d ˆ cap - he vo, hay shell, d ˆ’ làm viec trong che ˙¯o text ˙ ’˙ ˙ ˙ ˙ ´ dˆ ˙ `ˆ ’a ¯ã ¯e ¯e ˆ ˆ ˆ ’’ (giao dien dòng lenh) và giao dien d ˆ ˙ a GUI (Graphical User Interface), thuc hien˙"liên ˙ ˙ ˙ ` ˆ ¯o ho ˆ ˆ ’ˆ he" voi ˙ ’oi dùng trong môi truong d ˆ˙ hoa. Can nói ngay rang, bat ky chuo˙ trình nào ˙ ˙` ˙ ` ` ` ´` ˆ ´’ ngu `’ ’ ’ng ˘ ’ ’ ¯o ˆ ˆ trong Linux có the khoi d ˆ ng tu dòng lenh˙ cua he vo (neu máy chu X d chay), cung nhu ˙ ˆ’ ’’ ¯o ’ ˆ’´ ’ `’ ˜ ¯ã ˆ ˆ ’ ` hoa. Chay chuong trình tu dòng lenh cua he vo tuong d ’ong ˙voi viec nháy ˙ ˙` ˙ ’ ˆ ’ ’ ’ ¯u ’ qua giao dien d ˆ ´’ ˆ ˆ ¯o ˆ ’’ ’ ˙ ˙ ˙’ ˙ D ’˙ ˙ ˆ’ ’ ’ ´ (d¯úp) chuot lên bieu tuong cua chuong trình trong GUI. ¯ ua các tham so cho chuong trình ˆ ˆ ’’ ’’ trên dòng lenh tuong d ’˙’ng voi viec chúng ta kéo và tha cái gì d lên bieu tuong chuong trình ˙ ˆ’ ’ ’ ’ ’ ’ ¯uo ´’ ˆ ¯ó ˆ ’’ ˙ ong d ` hoa. Nhung mat khác, mot so chuong trình không the chay o GUI và chı ˙˘ ’ ˙ ’’ ´ ’ trong môi tru `’ ¯o ˆ ˆˆ ˆ ’ ’ ’’ có the thuc hien tu dòng lenh. Nói ˙ngoài le mot chút, tên goi "he vo" bi pha˙ d´ i rat nhieu. ˙ `˙ ˆ’ ’ ˆ `’ ’ n ¯o ´ ` ˆ’ ˆ ˆˆ ˆˆ ˆ ˙´ ’ ˙ ˙ ˙ ˙ ˙ ˙ ˆ´ Theo ý kien cua mot so chuyên gia ngôn ngu cung nhu chuyên gia Linux thì nên goi chuong ˜’ ˜ ˆ ˆ ’ ’’ ˙d ˙ ’’ lý lenh" hay "trình biên dich lenh". Tuy nhiên, tên trình này mot cách ¯úng hon là "trình xu ˆ ˆ ˆ ’ goi "he vo" ˙ ˙ ˙ ˙ ˆ ’ (shell) d ’oc dùng cho các chuong trình dùng d ˆ’ biên dich lenh trong che d ˆ text ´ ¯o ¯u ’ ¯e ˆ ˆ ’’ ˙ moi he thong UNIX. Trên các he thong UNIX d `u tiên có mo˙ chuong trình, goi là sh, ˙ ˙ ˙ ˙ ´ ´ trên ˆt ¯a ˆˆ ˆˆ ˆ ’’ viet tat˙ cua shell. Sau d vài bien˙ the cua sh d ’oc phát trien và làm tot hon, trong d có ´ ˘ ’˙ ˙ ˙ ˆ’ ’ ˆ’ ˆ´ ´ ´ ¯ó, ¯u ’ ¯ó ˆ ˆ’ ´˙ ’’ ’ ’’ ˆ ’ Bourne shell - phiên ban mo rong cua sh, viet boi Steve Bourne. Du án GNU (du án ˆ ’ ’ ’n chuong trình ung dung cua Stollman, xem http://www.gnu.org/) ˙sau d cho ra˙ d `’i ’˙ phát trie ´’ ¯ó ¯o ˆ ’’ he vo bash, tên goi cua nó d ˙oc giai mã ra là Bourne-again shell, tuc là "lai là he vo ˆ’ ’ ¯u ’ ’ ˆ’ ´’ ’ ˙ ˙ ˙ ˙ ˙
- 28 Bash ´ ¯o ´ ’ cua Bourne". Trên tieng Anh d là mot cách choi chu, vì tu Bourne d c giong voi tu borne `’ ´’ `’ ’ ˜’ ¯ây ˆ ˆ ˆ ˙ the giai mã là "shell d oc sinh ˙ lan hai". Tiep theo (sinh ra, d ’ ra), và nhu the bash còn có ˆ’ ’ ´ ` ´ ra ˆ ¯e ¯u ’ ˆ ˆ ’ ’ ˙, xin ngam hieu d là bash ’ ¯ó chúng ta se chı xem xét bash, vì the o duoi khi nói d´ n he vo ´ ’’ ’´’ ` ˜’ ¯e ˆ ’ ˆ ˆ ˆ ˆ ˙ nào. Nhung nó ho tro viec thuc ˜ Tu mot mình bash không thuc hien mot công viec ung dung ˆ ´’ ’ˆ ’ˆ ˆ ˆ’ˆ ’ ’ ˙ moi chuong trình khác, tu viec tìm ˙kiem chuong trình d oc goi, chay chúng d´ n ˙ c ˙ ’ ˙ ˙ ˙ ˙ ˙ ˙ vie to ´ thi `’ ˆ ¯u ’ ¯e ˆ ˆ ˆˆ ’’ ’’ ’ chuc du lieu d ˆ u vào/d ˆ u ra. Ngoài ra, he vo chiu trách nhiem˙ ve công viec voi các bien˙môi ´’ ˙ ˜’ ˆ ¯a ˙ `˙ ˙ ` ` ´ ˆ’ ˆ ´’ ¯a ˆ ˆ ˆ ˙ c hien mot vài bien d ’i (the, hoán˙d ’i vi trí) các tham so lenh. Nhung tính chat ˙ ˙ ˙ ´ ¯o ´ ´ˆ ´ truong và thu `’ ¯o ’ˆ ˆ ˆˆ ˆ ˆ ˆ ˆ ’ ’ ˙ vo, ˙nho ˙ d a he vo tro thành mot công cu manh cua nguoi dùng, d là nó ˙ ˙` chính cua he ’ ’ˆ `’ d ¯u ˆ ’ ’’ ’ ¯ó ’ ¯ó ˆ ’’ ˙ ˙ ˙ ˙ `˙ ` ` ’ bao gom mot ngôn ngu lap trình d ’n gian. Trong toán hoc tu lâu d d ’oc chung minh rang, ´’ ˘ ˜’ ˆ ¯o ¯ã ¯u ’ ˆ ˆ ’ ˙ t toán nào cung có the d oc xây dung tu hai (ba) thao tác co ban và mot toán ˙ ˙ ˙ ˆ’ ¯u ’ ´`ˆ ’ bat ky mot thua `’ ˜ ˆ ˆ ˆ ’ ’ ’ tu d ˆ u kien. He vo cung cap các toán tu ˙d ˆ u kien và toán tu vòng lap. Nó su dung các tien ’’ ¯ie ˙ˆ ˙’ ˙ ˙ ` ´ ` ’’ ¯ie ’’ ’’ ˘ ˆ ˆ ˆ ˆ ˙ ˙ ` ˙ ¯ie ˙ ˙ ˙ ích và chuong trình khác (có trong thành phan he d ˆ u hành, hay d ’oc cài d ˘ t riêng) d ˆ’ làm ` ¯u ’ ¯a ¯e ˆˆ ’’ các thao tác co ban cho ngôn ngu lap trình mà nó ho tro. ¯ ong thoi ˙cho phép d ’a các tham ˙˜ ˙ ` ’’ ˆ ’ Dˆ `’ ˜’ ˆ ¯u ˙ t chuong trình toi ˙ chuong trình khác hay toi nguoi ´ cung nhu ket qua làm viec cua mo ´ ’ ’ so ˜ ´’ các ´’ ’`’ ˆ ’ˆ ˆ ˆ ’’ ’’ ˙ ˙ ´ ’ dùng. Ket qua thu d ’oc là mot ngôn ngu lap trình manh. ¯ ây cung là suc manh và là mot D ´’ ˜’ ˆ ˜ ¯u ’ ˆ ˆ ˆ ˙ ˙ he vo. Truoc ˙ bat d `u phan này, ban d c nên biet các to ho˙p ´ ¯a ˙ ˆ ˙´ ’’ ` trong các chuc nang chính cua ˆ ’ ’ ’´’ khi ˘ ˆ ´’ ˘ ¯o ˆ ˆ ’’ dung d ˆ’ d ˆ u khien viec nhap du lieu trên dòng lenh. Nên nho ít nhat cách ˙ ’’ ˙’ ˙˙ ` ´ phím chính, su su ´’ ˆ ˜’ ˆ ¯e ¯ie ˆ ˆ ˆ ˆ dung cua các (to ˙ ’p) phím +, +, và các phím có mui tên. ˙ ˙ ˙ ˙ ˆ’ ho ’ ˜ ˙ ˙ ˆ 3.2 Các ký tu dac biet ’ ¯˘ ˙˙ ˙ ¯ính riêng, hoac d ˆ’ ˆ’ ’’ He vo bash su dung mot vài ký tu tu bo 256 ký tu ASCII cho các muc d ’ `’ ˆ ˘ ¯e ˆ ’ ˙’u thi các thao ˙tác nào d hoac ˙d ’ bien d ’i bieu˙thuc. Các ký tu này bao gom: ˙ ´˙ ¯o ˆ’ ´’ ˙ ˙ ` bie ¯ó, ˘ ¯e ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ‘ ~ ! @ # $ % ^ & * ( ) _ -- [ ] { } : ; ’ " / \ > < ´ ´ ’ và ký tu voi mã 0, ký tu hàng moi (tao ra khi nhan phím ) và ký tu khoang trang. Phu ’ ´’ ´’ ˘ ˆ ’ ’ ˙ tình huong các ký tu d ˘ c˙biet này có the su dung voi ý nghıa ˙ ˘ c biet cua nó hay ˙ ˙ ’ ’’ ´ ˆ’ thuoc vào ˜d ´’ ’ ¯a ¯a ˆ ˆ ˆ ˆ ˙ ng nhu mot ký tu thông thuo˙ng. Nhung trong d so˙các truong hop không ˙khuyên dùng ˙` ˙ ˙ ¯a ´ ’’ su du ’`’ ’ˆ ˆ ’ ’’ ’ ’ ˙ tu voi giá tri thu hai. Truoc het d là viec su dung chúng trong ˙tên tap tin và thu muc. ˙ ˙´ ´’ ´ ¯ó ˆ ’’ các ký ’ ´’ ˆ ˆ ’ ’ ’ ˙ các ký tu _, - và . (dau gach duoi, gach ngang và dau cham) thu˙ ng d oc su du˙ ˙ ˙ ˙ ´ ´ ´ ’o ¯u ’ ’’ ng Tuy nhiên ’´’ `’ ˆ ˆ ˆ ’ ’ trong tên tap tin, và d là mot ví du cho thay ˙không phai lúc nào chúng cung có ˙giá tri ˙¯ac ˙ ˙ ´ ’ d˘ ˜ ¯ây ˆ ˆ ˆ ˙ tên tap tin chı dau˙cham ˙ và gach chéo (/) có giá tri d ˘ c biet. Ký hieu gach ˙ ˙ ’´ ´ (.) biet. Trong chéo ¯a ˆ ˆ ˆ ˆ ˆ ˆ ˙ d ’ phân chia tên các thu muc trong d ˙ong dan, còn dau cham có giá tri d ˘˙c biet khi nó ˙ ˙´ ˙ ˙ ˙ ˜ ´ dùng ¯e ¯u `’ ¯a ˆ ˆ ˆ ˆ ˆ ’ ’ là ký tu d ˆ u tiên trong tên tap tin˙ (cho biet tap tin là "an"). Viec d ’a ngay ta˙t ca ý nghıa d ˘ c ´˙ ˙ ˆ’ ` ´ˆ ˆ’ ˜ ¯a ¯a ˆ ¯u ˆ ˆ ’ ˙ nhung ký tu này và˙ các tình huong ˙ ’ dung chúng tam thoi không có ích. Chúng ˙˙` ´ su ˆ’ biet cua ˜’ ta ˆ ’ ’ ’ ˙xem xét chúng dan dan trong các phan sau, khi can su dung d´ n. Tuy nhiên, 3 ký hieu có ˙` ˙`’˙ `ˆ ` se ˜ ¯e ˆ ˆ ˆ ˆ ˆ ’ ý nghıa lon và can d ˆ cap d´ n d ˆ u tiên. Ký hieu \ (gach chéo nguoc) có the goi là "ký˙ hieu ˙ ˆ’ `` ˆ` ˜ ´’ ˆ ¯e ˆ ¯e ¯a ˆ ˆ ’’ ˙ cho bat ky ký tu d ˘ c biet nào, d ´ ng ngay sau \. Ví du, neu muon ˙ ˙ ˙ ˙´ ˙ ´` ´ ’ xóa bo ý nghıa d ˘ c biet" ˜ ¯a ’ ¯a ¯u ˆ ˆ ˆ ˆ ˆ ’ su dung khoang trang ˙ ˙˘ trong tên tap tin, thì chúng ˙ can d ˘ t truoc ký tu khoang trang d mot ˙˙ ’ ˙˘ ´ ` ´ ’’ ’ ta ˆ ¯a ’´’ ¯ó ˆ ˆ ’ ˙˙ du, câu lenh sau: ˙ ˙ ˙ ˙ ´ dau Ví ˆ ˆ ˙ ˙ kênh giao tác teppi82@teppi:~$ cp lennon_imagine lennon\ imagine ˆ’ ˜ ˜ Các ký tu ’ và " (ngoac d ’n và ngoac kép) có the goi là "các ký tu trích dan". Moi ký tu ˘ ¯o ˘ ˆ ˆ ’ ’ ’ ˙ d oc su dung trong mot cap voi ban sao cua chính nó d˙’ d ˙ ˙˘ ´ ’ ˙’ ˙ ’u ’’ này luôn luôn ¯u ’ ¯e ¯óng khung mot bie ˆ ˆ ˆˆ ’ ’ thuc nào d giong nhu ˙ ˙ trong các van ban, sách báo, . . . thông thuong. Neu nhu mo˙ d n ˘˙ ˙’ ¯ó, ´ ´ ˆ t ¯oa ´’ `’ ˆ ˆ ’ ’ ’ ˙ ˙
- ˆ 3.3 Thuc thi các câu lenh 29 ’ ˙ ˙ ´’ ’` ˘’ van ban nào d d ˘ t trong ngoac d ’n, thì tat ca các ký tu nam trong ngoac d ’n này có giá ˘ ¯o ˘ ˘ ¯o ¯ó ¯a ˆ ˙ ˙ khôn mot ký tu nào có ý ˙nghıa d ˘ c biet. Tro lai voi ví du su ˙’ ’’ tri nhu các ký tu thông thuong, `’ ´’ ˜ ¯a ˆ ˆ ’ ’ ’ ’ ’ ˙ ng khoang trang trong tên tap tin o trên, có˙the nói, neu muon˙ d ˘ t tap tin cái tên "lennon ˙ ˙ ˙ ˙ ˙ ’ ´ ´ ´ ¯a ˆ ’ ’’ du ˘ ˆ ˆ ˆ ˆ ˙ ˙ ˙˙ `n d ’a tên d vào dau ngoac: ´ imagine" ca ¯u ˘ ¯ó ˆ ˆ ˙ kênh giao tác teppi82@teppi:~$ cp lennon_imagine ’lennon imagine’ ˘ ¯o ´ ’’ Su khác nhau trong cách su dung ký tu ’ và " d là, trong ngoac d ’n mat ý nghıa d ˘ c biet ˜ ¯a ¯ó ˆ ˆ ’ ’ ˙ các ký tu, còn trong ngoac˙kép - ta˙ ca chúng ngoai tru $, ’ và \ (dau d la, ˙ngoac `’ ˙ ˘˙ ´’ ´t ’ ´ ¯ô ˆ tat ca ˘ ˆ ˆ ’ ˙ ˙ ˙ ˙ ´ d ’n và dau gach nguoc). ¯o ˆ ’’ ˙ ˙ ˆ 3.3 Thuc thi các câu lenh ’ ˙ ˙ ˆ’ ´’ ˆ ’’ ’ ˆ’ Nhu d nói o trên, mot trong các chuc nang chính cua he vo là to chuc viec thuc hien các câu ´’ ˘ ’ ¯ã ˆ ’ˆ ˙ a vào trên dòng lenh. He vo, nói riêng, cung cap ˙cho nguo˙ dùng hai ˙ ˙ `i ´ ˆ’ lenh mà nguoi dùng d ’ `’ ¯u ˆ ˆ ˆ ’ ’’ thao tác d ˘ c biet d ˆ’ to chuc viec d ’a các ˙câu lenh trên dòng lenh: ; và &. ˙ ˙ ˆ ¯e ˆ’ ´’ ˆ ¯u ¯a ˆ ˆ ˙ ˙ ˙ ˙ ˙ 3.3.1 Thao tác ; ˆ’ ¯u ’ˆ Mac dù nguoi dùng thuong chı nhap trên dòng lenh tung câu lenh mot, nhung còn có the d ’a ˘ ’`’ ’`’ `’ ˆ ˆ ˆ ’ ˙ dòng lenh d ngay lap tuc vài câu lenh, và ˙chúng se thuc hien ˙ `n luot tu câu lenh này ˙ ˙ vào ˜ ’ ˆ la ’ ’ `’ ˆ ´’ ¯ó ˆ ˆ ˆ ˆ ˙ ’ ˙ ¯u ’ ¯ie ˙` ’ ˙ ˙ ˙ ˙ ´ n câu lenh khác. ¯ e làm d ’oc d ˆ u này can su dung ký tu d ˘ c biet - ;. Neu dùng ký tu này ` ´ dˆ Dˆ ¯e ’ ¯a ˆ ˆ’ ˆ ˆ ’ d ˆ’ phân chia các câu lenh, thì ˙ lenh tiep theo se˙d ’oc coi nhu tham so cua lenh phía truoc. ˙ ˙˙ ˙ ˙´ ´ ´’ˆ câu ˆ ˜ ¯u ’ ¯e ˆ ˆ ˆ ’ ’’ Nhu vay, neu nhap vào dòng lenh cái gì d giong nhu˙sau: ˙ ˙ ˙ ’ˆ ´ ¯ó ´ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ kênh giao tác teppi82@teppi:~$ command1 ; command2 ` ˆ ’ ¯a thì he vo d ˆ u tiên se thuc hien câu lenh command1, cho cho lenh d hoàn thành, sau d `’ ˜’ˆ ¯ó ¯ó ˆ ˆ ˙ ˙ ˙ ˙ d lai d a ra dòng nhap ˙ nh và cho các hành d ng chay command2, cho lenh hoàn thành, sau ¯ó ˆ le `’ ˆ `’ ¯u ¯o ˆ ˆ ’ tie˙ theo cua nguoi dùng. ˙ ˙ ˙˙ ˙ ´p ’ ’`’ ˆ 3.3.2 Thao tác & Thao tác & d ’oc dùng d ˆ’ to chuc viec thuc hien các câu lenh trong che d ˆ nen sau. Neu d ˘ t ¯e ˆ’ ´’ ˆ ´ ¯o ˆ ` ´ ¯a ¯u ’ ’ˆ ˆ ˆ ˆ ˙ câu lenh, thì he vo se tra˙lai quyen d `u khien cho nguoi ˙ ˙’ ˙` ˙’ ˙ ´ ’˜ dau & ngay sau `’ dùng ngay sau khi ¯ie ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ´ chay câu lenh, mà không d ’i cho câu lenh d hoàn thành. Ví du, neu nhap vào dòng lenh ¯o ¯ó ˆ ˆ ˆ ˆ ˆ ˙ ˙ & command2 &", thì he˙vo chay câu lenh command1, ngay˙lap tuc chay lenh ˙ ˙ ˙ ’ "command1 ˆ ´’ ˆ ˆ ˆ ˜˙ ˙ ˙ ˙ ˙˙ ˆ’ command2, và sau d không cham tre tra lai dòng nhap lenh cho nguoi dùng. `’ ¯ó ˆ ˆˆ ’ ˙ ˙ ˙˙ 3.3.3 Thao tác && và || ˆ’ ´ ` Các thao tác && và || lá nhung thao tác d ˆ u khien. Neu trên dòng lenh là command1 && command2, ˜’ ¯ie ˆ ˆ thì command2 se thuc hien và chı thuc hien trong truong hop ˙trang thái thoát ra cua lenh ’’ˆ ’ˆ `’ ˜’ˆ ’ ’ ˙ (0), tuc là lenh˙d thuc hien thành công. Mot cách tuong tu, neu dòng ˙´ ˙ ˙ ˙ ˙ ` ’´ command1 bang không ˘ ¯ó ’ ˆ ˆ ˆ ˆ ’ ’’ ˙ ˙thì command2 se thuc hien và chı thuc hien khi ˙ ˙ ˙ ’’ˆ lenh có dang command1 || command2, ˜’ˆ ˆ ˙ ng thái˙thoát cua lenh command1 khác không. Chúng ta se không xem xét mat ky thuat cua ˙ ˙ ˘ ˙˜ ˙ˆ ’ ’ˆ tra ˜ ˙ ˙ ˙ ˙
- 30 Bash ˆ’ ´ ` ¯ó. ’ ˆ’ ’ viec thuc hien mot câu lenh nào d Chı có the nói ngan gon rang, he vo phai tìm mã (code) ˘ ˘ ˆ ’ˆ ˆ ˆ ˙ ong˙ trình, nap mã d ˙vào bo nho, chuyen các tham so d˙ nhap trên dòng lenh vào cho câu ˙ ˙ ˙ ˆ’ ´ ¯ã ˆ chu ’ ˆ ´’ ¯ó ˆ ˆ ’ ˙ thuc hien xong thì theo mot cách nào d tra lai ket qua thu˙ hien lenh này ˙ ˙´ ¯ó ’ ’ ’c ˆ ˆ lenh, và sau khi ’ ˆ ˆ ˆ ˆ ˙ nguoi dùng hay tien trình khác. Chúng˙ta se xem xét qua các buoc này.˙ Buo˙ d `u tiên - ˙ ´˙ ˙ ˙ cho ’´’c ¯a ’`’ ’´’ ˜ ˆ ˆ ´ ’ ’ tìm kiem câu lenh. Các câu lenh chia thành hai loai: noi trú (mã cua chúng có trong mã cua ˆ ˆ ˆ ˆ ˙ ngoai trú (mã˙ cua chúng nam trong mo˙t tap tin riêng le trên d a). He vo luôn ˙ ` ˆ’ ’ ’ ˆ’ chính he vo) và ˘ ˜ ¯ı ˆˆ luôn tìm thay lenh noi trú, còn d ˆ’ tìm các lenh ngoai ˙ ˙nguoi dùng, theo nguyên ˙tac, phai ˙´ ˙ ´ ’ trú `’ ˘ ¯e ˆˆ ˆ ˆ ’ ˙ ong dan d `y d ’ toi tap tin tu˙ ng ung. Tuy nhiên d ’ go "gánh nang" cho nguoi ˙˜ ˙ ’ ˆ ’ ¯u chı cho he vo d ’`’ ’o ´’ ˆ ¯a ¯u ´’ ˆ ˘ ’`’ ¯e ˜’ ˆ ˆ ’ ˙ ’ biet cách tìm lenh ngoai˙trú trong các thu muc, mà d oc liet kê trong d ong dan ˙ ˜ ´ ¯u ` dùng he vo ˆ ¯u ’ ˆ ˆ ˆ ˆ ’ ’ ’’ ˙ . Chı khi (he vo) không the tìm thay tap tin can˙ thiet trong các thu muc d nó moi ˙ ˙’ ˙˙ ´ ´ˆ ` ´ ’ ˆ’ tìm kiem ´’ ¯ó, ˆ ˆ ˆ ˆ ˆ ’ ´ t d nh rang ngu˙`’i dùng d nham khi nhap tên lenh. Ve cách thêm thu muc vào d ’ong ˙ ˙ ` ` ` quye ¯i ’o ˘ ¯u `’ ¯ã ˆ ˆ ˆ ˆ ˆ ’ dan tìm˙kiem chúng ta se nói d´ n o duoi, còn ˙ gio ˙chúng ta se xem xét cách ˙ ˆ vo to chuc he ’ ˆ’ ´’ ˜ ´ ’’ ’´’ bây `’ ˜ ˜ ¯e ˆ ˆ ˆ ˙ ˆ ¯u ´ ’ ´’ viec d ’a du lieu vào cho câu lenh d ¯ang thuc hien và viec d ’a ket qua toi cho nguoi dùng. ’`’ ˆ ¯u ˜’ ˆ ˆ ’ˆ ˆ ˙ ˙ ˙ ˙ ˙ ˙ ˆ’ ` ` Dˆ ¯ˆ 3.4 ¯ au vào/dau ra tiêu chuan ˜’ ˆ 3.4.1 Dòng du lieu vào-ra ˙ ´ Khi mot chuong trình d ’oc thuc hien, nó d ’oc cung cap ba dòng du lieu (hay còn goi là ˜’ ˆ ¯u ’ ¯u ’ ˆ ’ˆ ˆ ’’ ˙ ˙ ˙ ˙ ˙ ˙ ˙ kênh): ˆ’ ` • d ˆ u vào tiêu chuan (standard input hay stdin). Qua kênh này du lieu d ’oc d ’a vào cho ¯a ˜’ ˆ ¯u ’ ¯u ˙ ˙ chuong trình; ’’ ˆ’ ` ´ • d ˆ u ra tiêu chuan (standard output hay stdout). Qua kênh này chuong trình d ’a ra ket ¯a ¯u ˆ ’’ ’ ˆ’ qua làm viec cua mình; ˙ ˆ’ ˜ • kênh thông báo loi tiêu chuan (standard error hay stderr). Qua kênh này chuong trình ˆ ’’ `˜ d ’a ra thông tin ve loi. ¯u ˆˆ ˆ’ ˆ’ ¯o ˜ ` ` ’ Tu d ˆ u vào tiêu chuan chuong trình chı có the d c, còn hai d ˆ u ra và kênh thông báo loi `’ ¯a ¯a ˆ ’’ ˙` ’ ghi. Theo mac d nh d ˆ u vào có liên ket1 voi bàn phím, còn ´ ’’ ’ ¯e d ’oc chuong trình su dung chı d ˆ ˘ ¯i ¯a ˆ ´’ ¯u ’ ’’ d ˆ u ra và kênh báo loi huong d´ n terminal cua˙nguoi dùng. Nói cách khác, toàn bo thông tin `˙ ˜˙ ˙` ’ ˆ ’´’ ¯e ¯a ˆ ˆ ’’ cua lenh hay chuong trình mà nguoi dùng d chay, và tat ca nhung thông báo lo ˙ ¯u ’ ¯u ˜i, d ’oc d ’a ´ ’ ˜’ ’ˆ ’`’ ¯ã ˆ ˆ ’’ ˙’ ˙ ˙` ’ ’ ’´’ ´ ’’ ’´’ ’’a so terminal. Tuy nhiên, chúng ta se thay o duoi, có the chuyen huong thông báo d ˆ u ra cu ˆ ˜ˆ ¯a ˆ ˆ D ˆ’ ˆ’ ˜ ´ ´ ra (ví du, vào tap tin). ¯ e cho thay kênh thông báo loi tiêu chuan làm viec nhu the nào, hãy ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ´ ´ thuc hien câu lenh ls voi mot tham so không d ¯úng, ví du dùng tham so là mot tên tap tin ´’ ˆ ’ˆ ˆ ˆ ˆ ˆ ˆ không ton tai. Trong truong hop này, ls d ’a mot tin nhan˙báo loi ra kênh thông báo loi tiêu ˙ ˙` ˙ ˙ ˙ ˜˙ ˜ ´ `’ ˘ ¯u ˆ ˆ ˆ ˆ ’ ’ chuan. Tuy ˙ ˙ ˙` ˆ’ ˆ’ ˜ nhiên, d´ i voi nguoi dùng thì trong truong hop này kênh thông báo loi tiêu chuan ¯o ´’ ’`’ ˆ ˆ ’’ ’ ˙ thay thông báo loi d trên cua so ˆ’ ’’ ˆ’ ˜ không khác gì voi d ˆ u ra tiêu chuan, boi vì chúng ta cung ´ ` ’’ ´’ ¯a ˜ ˆ ¯ó ˆ ˆ’ ¯u ’ ` ` ´ ´ terminal. Làm viec voi d ˆ u vào và d ˆ u ra tiêu chuan d ’oc minh hoa tot nhat qua ví du các ˆ ´’ ¯a ¯a ˆ ˆ ˙. ˙ ˙ ˙ lenh echo và cat ˆ ˙ ˆ 3.4.2 Lenh echo ˙ Câu lenh echo dùng d ˆ’ chuyen toi d ˆ u ra tiêu chuan dòng ký tu, mà d ’oc d ’a vào làm tham ˆ’ ´’ ¯a ˆ’ ` ¯e ¯u ’ ¯u ˆ ’ ˙ nó. Sau d lenh này d a ra tín hieu chuyen dòng và hoàn tat công viec. Hãy thu thuc ˙´ ˙ ’ ´ cho ’’ ’ so ¯ó ˆ ¯u ˆ ˆ ˆ ˆ ˆ ’ hien câu lenh sau: ˙ ˙ ˙ ˙ ˆ ˆ ˙ ˙ 1 ´ ´ giong liên ket hóa hoc ˆ ˆ ˙
- ˆ’ 3.5 Chuyen huong dau vào/dau ra, duong ´ ng và dau loc ` ` ` ’´’ ¯ ˆ ¯ˆ ˆ ¯ˆ ¯ ’`’ o 31 ˙ kênh giao tác [user]$ echo ’xin chao cac ban!’ ˜` ´ ˘ ¯o ´ `’ ’ ’ ’’ Tôi nghı rang loi giai thích se là thua thãi (chı xin hãy su dung dau ngoac d ’n, neu không ˘ `’ ˜ ˆ ˆ ˙tai sao lai khác). ˙ ’˜ ’’ ´ t qua có the se khác. Neu ban d c chú ý thì có the giai thích ´ ’ ke ¯o ˆ ˆ ˆ ˆ ˙˙ ˙ ˙ ˆ 3.4.3 Lenh cat ˙ ` ` ’’ ¯ây Chúng ta se xem xét lenh cat o d vì lenh này thuong làm viec voi d ˆ u vào và d ˆ u ra tiêu ’`’ ˆ ´’ ¯a ˜ ¯a ˆ ˆ ’n. Theo mac d nh˙ket qua làm viec cua lenh cat huong toi˙d ˆ u ra tiêu chuan. ¯ e chung ˙ ’ D ˆ’ ´’ ´ ` ’ ’ˆ chua ˘ ¯i ’´’ ´’ ¯a ˆ ˆ ˆ ˆ ˙˙ ´ ˙ˆ ˙ minh là lenh này theo mac d nh tiep nhan dòng du lieu nhap vào, hãy chay lenh cat không ˘ ¯i ˜’ ˆ ˆ ˆ ˆ ˆ ˙´ ´ ˙ ˙’ ˙ ˙´ ˙ ˙’ ˙ ˆ’ ´’ ˆ ’ có tham so. Ket qua là con tro chuyen toi mot dòng moi, và hon nua có ve nhu không có gì ’ ˜’ ˆˆ ’ ’ xay ra. Lúc này câu lenh cho các ký tu d´ n tu˙ d ˆ u vào tiêu chuan. Hãy nhap bat ky ký tu nào, ’ ` ´` ’ `’ ¯e `’ ¯a ˆ ’ˆ ˆ ˆˆ ’ và nó se xuat hien ngay lap tuc trên màn hình, tuc là chuong trình ngay la˙ tuc d ’a chúng toi ˙ ˙ ˙´ ˜´ˆ ˆ p ´’ ¯u ˆ ´’ ´’ ˆ ’’ ’ `u ra tiêu chua˙ Có the˙ tiep tuc nhap các ký tu, và chúng cung se xuat ˙hien trên màn hình. ’n. ’´ ´ dˆ ˜ ˜ˆˆ ¯a ˆ ˆˆ ˆ ’ ˙ ˙ ˙ ˙ Thông thuong bàn phím d ’oc cau hình d ˆ’ nhap vào theo tung dòng, vì the neu ban nhan phím ¯u ’ ´ ´´ ´ `’ `’ ¯e ˆ ˆ ˆˆ ˆ ’ ˙ nhap se d oc d ˙a toi lenh cat, và lenh này se lai d a du lieu ra ˙ , dòng ký tu ban vua ˆ ˜ ¯u ’ ¯u ´’ ˆ `’ ˜ ¯u ˜’ ˆ ˆ ’ ’ ’ ’ màn hình thông qua d ˆ u ra tiêu chuan.˙Nhu vay, moi dòng ký tu nhap vào ˙se d ’oc hien ra ˙ ˙` ˙ ˙˜ ˙ ˙ ’ ˜ ¯u ’ ˆ ¯a ˆ ’ˆ ˆ ’ˆ ˙ ´ ˙ ˆ’ ˙ ’ ˙ ˙ ` ` ` ´ ’’ hay lan: mot lan khi gõ và lan thu hai boi câu lenh cat. Neu nhan to hop phím +, ´’ ˆ ˆˆ ˆ ˆ ˆ ˆ ˙’ ngung viec nhap du lieu, chúng ta se qua lai dòng nhap˙lenh. Cung có the su ˙ ˆ’ ’’ mà dùng d ˆ `’ ˆ ˜’ ˆ ˜ ˜ ¯e ˆ ˆˆ ˙ ˙ ˙là câu lenh trong he vo d ’ dung ˙ ˙ ng trình d ˙’ ˆ’ ’ dung to hop phím +, mà ¯e `’ chuo ¯ang chay. ˆ ˆ ˆ ’’ ˙ u d a tên mot tap tin vào làm tham so cho lenh cat, thì noi dung cua lenh này se d ˙ c ´ ¯u ˙ ´˙ ˆ ˙ ’ˆ Ne ˜ ¯uo ˆ ˆˆ ˆ ˆ ’ ’’ `u vào˙tiêu chuan, tu d lenh cat se d˙ c noi dung này và d ’a toi d˙ˆ u ra tiêu chuan ˙ ˙ ˙ ’ `’ ¯ó ˆ ˆ’ ` d ’a toi d ˆ ¯u ´’ ¯a ¯u ´’ ¯a ˜ ¯o ˆ ˆ ˙ ˙˙ ` (xem so d ˆ ). ’ ¯o ’ ` ` Noi dung tap tin -> ¯ au vào tiêu chuan (stdin) --cat--> dˆu ra ˆ ˆ Dˆ ˆ ¯a ˙ ˙ ’n (stdout) ˆ tiêu chua ˆ’ ’´’ ` ˆ ’ ´´ ’ ’ ¯ ây chı là mot truong hop riêng cua viec chuyen huong du lieu d ˆ u vào, mot co che rat D ’`’ ˜’ ˆ ¯a ˆ ˆ ˆˆ ’ ˙Và tat nhiên chúng ta can ˙ ˙ ` xem xét ky hon co che˙ này. ˙ ´ ´ ’ ˆ’ có ích cua he vo. ˜’’ˆ ˆ ˆ ˙ ˆ’ Chuyen huong dau vào/dau ra, duong ´ ng và dau loc ` ` ` ’´’ ¯ ˆ ¯ˆ ˆ ¯ˆ 3.5 ¯ ’`’ o ˙ ` ` ´ ´’ ’’ ’ Mac dù, nhu d nói o trên, thông thuong d ˆ u vào/d ˆ u ra cua mot chuong trình liên ket voi ˘ ’`’ ¯a ’ ¯ã ¯a ˆ ˆ ’’ ˙ d `u vào/d `u ra tiêu chuan, trong he vo còn có các môi truong d ˘ c biet cho phép chuyen ˙ ˆ’ ˆ’ ˆ’ các ¯a `’ ¯a ¯a ˆ ˆ ˆ ’ ˙ ˙ ˙ `u vào/d ˆ u ra. ` huong d ˆ ’´’ ¯a ¯a ’’ 3.5.1 Su dung >, < và >> ˙ D ˆ’ ˆ’ ` ’’ ’’ ¯ e chuyen huong d ˆ u vào/ra, su dung các ký hieu ">", ">". Thuong su dung viec ’´’ ¯a ’`’ ˆ ˆ ’n huong d ˜’ lieu ra cua câu lenh vào tap tin.˙Duoi d là mot ví du tuong ung: ˙ ˙ ˙ ’ chuye ’´’ ¯u ˆ ’´’ ¯ây ’ ’ ´’ ˆ ˆ ˆ ˆ ˙ ˙ kênh ˙ giao tác ˙ ˙ maikhai@fpt:/some/where$ ls -l > /home/maikhai/ls.txt ’ Theo lenh này danh sách tap tin và thu muc con cua thu muc, mà tu d nguoi dùng `’ ¯ó ’`’ ˆ ˆ ’ ’ ˙ nh ls2 se d oc ghi vào tap tin /home/maikhai/ls.txt; khi này neu tap tin ˙ ˙ ˙ ´ˆ thuc hien le ˜ ¯u ’ ’ˆˆ ˆ ˆ ’ ˙ ˙˙ ˙ ˙ ˙ 2 thu muc hien thoi `’ ˆ ’ ˙ ˙
- 32 Bash ` ´ˆ ’ ls.txt không ton tai, thì nó se d ’oc tao ra; neu tap tin d có, thì noi dung cua nó se bi ˜ ¯u ’ ˜ ¯ã ˆ ˆ ˆ ˙ sách nói trên. Neu ban không muon xóa noi dung cu mà ghi thêm ˙ ´˙ ˙ ˙ ˙ ´ ¯è ’’ xóa và ghi d boi danh ˜ ˆ ˆ ˆ ˙ ng ký hieu >> thay ˙ ` ´ˆ ` ˆ ’’ ’ du lieu d ˆ u ra vào cuoi tap tin, thì can su du cho >. Khi này khoang ˜’ ˆ ¯a ˆ ˆ ´ ng˙ truoc và sau các ký ˙ ˆ u > hay >> không có ý nghıa và chı dùng voi muc d ˙ ˙ ’ tra hie ¯ích thuan ˘ ’´’ ´’ ˜ ˆ tien, de nhìn. Ban có the chuyen huong không chı vào tap tin, mà còn toi d ˆ u˙ vào cua mot ˙’ ’ ˙ˆ ˆ’ ˜ ` ’ ´’ ´’ ¯a ˆ ˆ ˆ ˆ ’ ˙ ˙´ ˙ ˙ câu lenh khác hay toi mot thiet bi nào d (ví du, máy in). Ví du, d ˆ’ d ’a noi dung tap tin ´ ¯ó ¯e ¯u ˆ ˆ ’ˆ ˆ ˆ /home/maikhai/ls.txt vua˙tao o trên toi cua so terminal thu hai3 có the su dung lenh ˙ ˙ ´’ ˙’’ ˆ’ ˙´ ˙’ ’ ˙ ’’ `’ ˆ’ ˆ ’ ˙ ˙ ˙ sau: kênh giao tác maikhai@fpt:/sw$ cat /home/maikhai/ls.txt > /dev/tty2 Nhu ban thay, > dùng d ˆ’ chuyen huong du lieu cua d ˆ u ra. Chuc nang tuong tu d´ i voi ˆ’ ’´’ ´ ` ˜’ ˆ ’ ¯a ´’ ˘ ’ ¯o ´’ ¯e ˆ ˆ ’ ’’ ˙oc thuc hien boi > làm viec voi các kênh tiêu ˙ ˙´ nhung gì can d ˆ’ thuc hien lenh d Boi vì các ký hieu ` ¯e ’ ˆ ˆ ’’ ˜’ ¯ó. ˆ ˆ ˆ’ chuan (d ˆ u vào hoac d ˆ˙u ra), chúng không chı d ’oc dùng theo các cách ˙ ˙`˙ ’ ¯u ˙ ˆ’ ¯a ` quen thuoc, thuong ˘ ¯a ’`’ ˆ ’ ˙ ’ theo cách khác, "la mat" hon.˙ Ví du, các câu lenh sau là tuong d ong: ˙ ´ dùng, mà còn có the ˘ ’ ’ ¯u ’ ˆ ˆ ’ ’ ˙ ˙ ˙ kênh giao tác [user]$ cat > file [user]$ cat>file [user]$ >file cat [user]$ > file cat ˆ’ Tuy nhiên, tu chúng (không có mot lenh nào, tuc là không có kênh tiêu chuan nào cho ´’ ˆˆ ’ ˙ ’n huong này không˙the d ’oc su dung, nhu the không the, ví du, nhap ˙ ’ ¯u ’ ’’ ’ ´ lenh) các ký tu chuye ’´’ ˆ ˆ ˆ ’ˆ ˆ ˆ ’ vào dòng lenh˙sau: ˙ ˙ ˙ ˙ ˙ ˆ ˙ kênh giao tác [user]$ file1 > file2 ` ¯u ’ ’ ’ ’ ’ mà thu d ’oc ban sao cua mot tap tin nào d Nhung d ˆ u này không làm giam giá tri cua ¯ó. ’ ¯ie ˆˆ ’˙ ˙ ˙’ ’ ˙’´’ ’ ´ này, boi vì các kênh tiêu chuan có cho moi câu lenh. Khi này, có the chuyen huong co che ’ˆ ˆ ˆ ˆ ˆ ’ ˙ không chı d ˆ u vào và d ˆ u ra tiêu chuan, mà còn ˙ kênh khác. ¯ e làm d ’oc d ˆ u này, can ˆ’ D ˆ’ ` ` ` ` ’ ¯a các ¯a ¯u ’ ¯ie ˆ ˙’ ’n huong so cua kênh muon chuyen. ¯ au vào tiêu chuan stdin có so 0, ’ Dˆ ´’ ´ ` ´ ˆ d ˘ t truoc ký hieu chuye ¯a ’´’ ’´’ ˆ ˆ ˆ ˆ ˆ ˆ d ˙ u ra tiêu chuan stdout - so 1, kênh thông báo loi stderr - so 2. Tuc là lenh chuyen huong có ˙’ ’ ’´’ ˜ ` ´ ´ ´’ ¯a ˆ ˆ ˆ ˆ ˆ ˆ ˆ dang d ˆ y d ’ nhu sau (xin d ’oc nhac lai, khoang trang canh > là không ˙ ´ t thiet): ` ´ ´ ´ ’ nha ˘ ˘ ¯a ¯u ¯u ’ ˆ ˆ ’ ˙ ˙ ˙ ˙ command N > M ban can dùng to hop phím ++ d ˆ’ chuyen toi cua so terminal này và d ˘ ng nhap truoc ˆ’ ’ ˆ’ ´’ ’’ ˆ’ 3 ` ’´’ ¯e ¯a ˆ ˆ ˙ ˙ ˙
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tìm Hiểu Mạng Máy Tính - Hệ Thống Mạng Và Các Giao Thức Mạng
10 p | 290 | 88
-
Giáo trình Kiến trúc máy tính: Phần 1 - ThS. Võ Đức Khánh
38 p | 210 | 68
-
Bài giảng Kiến trúc máy tính: Chương 1 - Lịch sử phát triển của máy tính
20 p | 378 | 59
-
Khám phá lịch sử ngôn ngữ typography: Phần 1
249 p | 202 | 49
-
Khám phá lịch sử ngôn ngữ typography: Phần 2
191 p | 143 | 34
-
Bài giảng Hệ điều hành Linux: Chương 1 - Dzoãn Xuân Thanh
58 p | 246 | 25
-
Các khái niệm cơ bản.
51 p | 134 | 19
-
Tài liệu giảng dạy môn Kiến trúc máy tính: Phần 1 - Trường ĐH An Giang
41 p | 19 | 10
-
Hướng dẫn XML cho người mới học: Phần 1
199 p | 56 | 10
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 2
6 p | 80 | 7
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 4
6 p | 64 | 6
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 3
6 p | 69 | 6
-
Khái quát lịch sử phát triển và các yếu tố, nguyên tắc thiết kế cơ bản của đồ họa quảng cáo
7 p | 22 | 6
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 8
6 p | 84 | 6
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 1
6 p | 85 | 5
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 6
6 p | 47 | 4
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 7
6 p | 46 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn