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 5

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

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

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).

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 5

  1. 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 ’ ’ ˆ’ ´’ ’ ˙ ˙ ˙ ˙ ˙
  2. 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.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 ˜ ˙ ˙ ˙ ˙
  4. 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 ˆ ˆ ˙
  5. ˆ’ 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 `’ ˆ ’ ˙ ˙
  6. 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 ˆ ˆ ˙ ˙ ˙
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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