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

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

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

Thông tin tài liệu

Chu ’ o ’ ng 3 Bash To ˆ ´ t go ˆ ˜ ho ’ n to ˆ ´ t nu ’ o ´ ’ c so ’ n – ca dao tu ˙ c ngu ˜ ’ Vie ˆ ˙ t Nam Trong pha ˆ ` n này chúng ta se ˜ d ¯ e ˆ ` ca ˆ ˙ p d ¯ e ˆ ´ n va ˆ ´ n d ¯ e ˆ ` làm vie ˆ ˙ c vo ´ ’ i Linux o ’ ’ che ˆ ´ d ¯ o ˆ ˙ text, hay còn d ¯ u ’ o ˙ ’ c go ˙ i là console hoa ˘ ˙ c terminal. Nhu ˜ ’ ng ngu ’ o ` ’ i dùng Linux mo ´ ’ i (newbie) thu ’ o ` ’ ng nghı ˜ se ˜ cha ˘ ’ ng bao gio ` ’ làm vie ˆ ˙ c o ’ ’ che ˆ ´ d ¯ o ˆ ˙ này, vì d ¯ ã có giao die ˆ ˙ n d ¯ o ˆ ` ho ˙ a. Tuy nhiên d ¯ ây là mo ˆ ˙ t ý kie ˆ ´ n sai la ˆ ` m, bo ’ ’ i vì ra ˆ ´ t nhie ˆ ` u công vie ˆ ˙ c có the ˆ ’ thu ˙ ’ c hie ˆ ˙ n nhanh và thua ˆ ˙ n tie ˆ ˙ n trong che ˆ ´ d ¯ o ˆ ˙ này ho ’ n là su ’ ’ du ˙ ng giao die ˆ ˙ n d ¯ o ˆ ` ho ˙ a. Và dù sao thì che ˆ ´ d ¯ o ˆ ˙ text cu ’ a HD ¯ H Linux không pha ’ i là che ˆ ´ d ¯ o ˆ ˙ text mo ˆ ˙ t tie ˆ ´ n trình cu ’ a MS-DOS. Vì Linux là HD ¯ H d ¯ a tie ˆ ´ n trình, nên ngay trong che ˆ ´ d ¯ o ˆ ˙ text d ¯ ã có kha ’ na ˘ ng làm vie ˆ ˙ c trong vài cu ’ ’ a so ˆ ’ . Và d ¯ e ˆ ’ soa ˙ n tha ’ o mo ˆ ˙ t ta ˆ ˙ p tin va ˘ n ba ’ n không nha ˆ ´ t thie ˆ ´ t pha ’ i cha ˙ y các trình soa ˙ n tha ’ o lo ´ ’ n và cha ˆ ˙ m cha ˙ p (d ¯ a ˘ ˙ c bie ˆ ˙ t trên các máy có ca ˆ ´ u hình pha ˆ ` n cu ´ ’ ng tha ˆ ´ p) cu ’ a môi tru ’ o ` ’ ng d ¯ o ˆ ` ho ˙ a. 3.1 He ˆ ˙ vo ’ là gì? Chúng ta thu ’ o ` ’ ng nói "ngu ’ o ` ’ i dùng làm vie ˆ ˙ c vo ´ ’ i he ˆ ˙ d ¯ ie ˆ ` u hành". D ¯ ie ˆ ` u này không hoàn toàn d ¯ úng, vì trên thu ˙ ’ c te ˆ ´ "liên he ˆ ˙ " vo ´ ’ i ngu ’ o ` ’ i dùng d ¯ u ’ o ˙ ’ c thu ˙ ’ c hie ˆ ˙ n bo ’ ’ i mo ˆ ˙ t chu ’ o ’ ng trình d ¯ a ˘ ˙ c bie ˆ ˙ t. Có hai da ˙ ng cu ’ a chu ’ o ’ ng trình d ¯ ã d ¯ e ˆ ` ca ˆ ˙ p - he ˆ ˙ vo ’ , hay shell, d ¯ e ˆ ’ làm vie ˆ ˙ c trong che ˆ ´ d ¯ o ˆ ˙ text (giao die ˆ ˙ n dòng le ˆ ˙ nh) và giao die ˆ ˙ n d ¯ o ˆ ` ho ˙ a GUI (Graphical User Interface), thu ˙ ’ c hie ˆ ˙ n "liên he ˆ ˙ " vo ´ ’ i ngu ’ o ` ’ i dùng trong môi tru ’ o ` ’ ng d ¯ o ˆ ` ho ˙ a. Ca ˆ ` n nói ngay ra ˘ ` ng, ba ˆ ´ t ky ` chu ’ o ’ ng trình nào trong Linux có the ˆ ’ kho ’ ’ i d ¯ o ˆ ˙ ng tu ` ’ dòng le ˆ ˙ nh cu ’ a he ˆ ˙ vo ’ (ne ˆ ´ u máy chu ’ X d ¯ ã cha ˙ y), cu ˜ ng nhu ’ qua giao die ˆ ˙ n d ¯ o ˆ ` ho ˙ a. Cha ˙ y chu ’ o ’ ng trình tu ` ’ dòng le ˆ ˙ nh cu ’ a he ˆ ˙ vo ’ tu ’ o ’ ng d ¯ u ’ o ’ ng vo ´ ’ i vie ˆ ˙ c nháy (d ¯ úp) chuo ˆ ˙ t lên bie ˆ ’ u tu ’ o ˙ ’ ng cu ’ a chu ’ o ’ ng trình trong GUI. D ¯ u ’ a các tham so ˆ ´ cho chu ’ o ’ ng trình trên dòng le ˆ ˙ nh tu ’ o ’ ng d ¯ u ’ o ’ ng vo ´ ’ i vie ˆ ˙ c chúng ta kéo và tha ’ cái gì d ¯ ó lên bie ˆ ’ u tu ’ o ˙ ’ ng chu ’ o ’ ng trình trong môi tru ’ o ` ’ ng d ¯ o ˆ ` ho ˙ a. Nhu ’ ng ma ˘ ˙ t khác, mo ˆ ˙ t so ˆ ´ chu ’ o ’ ng trình không the ˆ ’ cha ˙ y o ’ ’ GUI và chı ’ có the ˆ ’ thu ˙ ’ c hie ˆ ˙ n tu ` ’ dòng le ˆ ˙ nh. Nói ngoài le ˆ ` mo ˆ ˙ t chút, tên go ˙ i "he ˆ ˙ vo ’ " bi ˙ pha ’ n d ¯ o ˆ ´ i ra ˆ ´ t nhie ˆ ` u. Theo ý kie ˆ ´ n cu ’ a mo ˆ ˙ t so ˆ ´ chuyên gia ngôn ngu ˜ ’ cu ˜ ng nhu ’ chuyên gia Linux thì nên go ˙ i chu ’ o ’ ng trình này mo ˆ ˙ t cách d ¯ úng ho ’ n là "trình xu ’ ’ lý le ˆ ˙ nh" hay "trình biên di ˙ ch le ˆ ˙ nh". Tuy nhiên, tên go ˙ i "he ˆ ˙ vo ’ " (shell) d ¯ u ’ o ˙ ’ c dùng cho các chu ’ o ’ ng trình dùng d ¯ e ˆ ’ biên di ˙ ch le ˆ ˙ nh trong che ˆ ´ d ¯ o ˆ ˙ text trên mo ˙ i he ˆ ˙ tho ˆ ´ ng UNIX. Trên các he ˆ ˙ tho ˆ ´ ng UNIX d ¯ a ˆ ` u tiên có mo ˆ ˙ t chu ’ o ’ ng trình, go ˙ i là sh, vie ˆ ´ t ta ˘ ´ t cu ’ a shell. Sau d ¯ ó, vài bie ˆ ´ n the ˆ ’ cu ’ a sh d ¯ u ’ o ˙ ’ c phát trie ˆ ’ n và làm to ˆ ´ t ho ’ n, trong d ¯ ó có Bourne shell - phiên ba ’ n mo ’ ’ ro ˆ ˙ ng cu ’ a sh, vie ˆ ´ t bo ’ ’ i Steve Bourne. Du ˙ ’ án GNU (du ˙ ’ án phát trie ˆ ’ n chu ’ o ’ ng trình u ´ ’ ng du ˙ ng cu ’ a Stollman, xem http://www.gnu.org/) sau d ¯ ó cho ra d ¯ o ` ’ i he ˆ ˙ vo ’ bash, tên go ˙ i cu ’ a nó d ¯ u ’ o ˙ ’ c gia ’ i mã ra là Bourne-again shell, tu ´ ’ c là "la ˙ i là he ˆ ˙ vo ’ 28 Bash cu ’ a Bourne". Trên tie ˆ ´ ng Anh d ¯ ây là mo ˆ ˙ t cách cho ’ i chu ˜ ’ , vì tu ` ’ Bourne d ¯ o ˙ c gio ˆ ´ ng vo ´ ’ i tu ` ’ borne (sinh ra, d ¯ e ’ ra), và nhu ’ the ˆ ´ bash còn có the ˆ ’ gia ’ i mã là "shell d ¯ u ’ o ˙ ’ c sinh ra la ˆ ` n hai". Tie ˆ ´ p theo chúng ta se ˜ chı ’ xem xét bash, vì the ˆ ´ o ’ ’ du ’ o ´ ’ i khi nói d ¯ e ˆ ´ n he ˆ ˙ vo ’ , xin nga ˆ ` m hie ˆ ’ u d ¯ ó là bash Tu ˙ ’ mo ˆ ˙ t mình bash không thu ˙ ’ c hie ˆ ˙ n mo ˆ ˙ t công vie ˆ ˙ c u ´ ’ ng du ˙ ng nào. Nhu ’ ng nó ho ˆ ˜ tro ˙ ’ vie ˆ ˙ c thu ˙ ’ c thi mo ˙ i chu ’ o ’ ng trình khác, tu ` ’ vie ˆ ˙ c tìm kie ˆ ´ m chu ’ o ’ ng trình d ¯ u ’ o ˙ ’ c go ˙ i, cha ˙ y chúng d ¯ e ˆ ´ n vie ˆ ˙ c to ˆ ’ chu ´ ’ c du ˜ ’ lie ˆ ˙ u d ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra. Ngoài ra, he ˆ ˙ vo ’ chi ˙ u trách nhie ˆ ˙ m ve ˆ ` công vie ˆ ˙ c vo ´ ’ i các bie ˆ ´ n môi tru ’ o ` ’ ng và thu ˙ ’ c hie ˆ ˙ n mo ˆ ˙ t vài bie ˆ ´ n d ¯ o ˆ ’ i (the ˆ ´ , hoán d ¯ o ˆ ’ i vi ˙ trí) các tham so ˆ ´ le ˆ ˙ nh. Nhu ’ ng tính cha ˆ ´ t chính cu ’ a he ˆ ˙ vo ’ , nho ` ’ d ¯ ó d ¯ u ’ a he ˆ ˙ vo ’ tro ’ ’ thành mo ˆ ˙ t công cu ˙ ma ˙ nh cu ’ a ngu ’ o ` ’ i dùng, d ¯ ó là nó bao go ˆ ` m mo ˆ ˙ t ngôn ngu ˜ ’ la ˆ ˙ p trình d ¯ o ’ n gia ’ n. Trong toán ho ˙ c tu ` ’ lâu d ¯ ã d ¯ u ’ o ˙ ’ c chu ´ ’ ng minh ra ˘ ` ng, ba ˆ ´ t ky ` mo ˆ ˙ t thua ˆ ˙ t toán nào cu ˜ ng có the ˆ ’ d ¯ u ’ o ˙ ’ c xây du ˙ ’ ng tu ` ’ hai (ba) thao tác co ’ ba ’ n và mo ˆ ˙ t toán tu ’ ’ d ¯ ie ˆ ` u kie ˆ ˙ n. He ˆ ˙ vo ’ cung ca ˆ ´ p các toán tu ’ ’ d ¯ ie ˆ ` u kie ˆ ˙ n và toán tu ’ ’ vòng la ˘ ˙ p. Nó su ’ ’ du ˙ ng các tie ˆ ˙ n ích và chu ’ o ’ ng trình khác (có trong thành pha ˆ ` n he ˆ ˙ d ¯ ie ˆ ` u hành, hay d ¯ u ’ o ˙ ’ c cài d ¯ a ˘ ˙ t riêng) d ¯ e ˆ ’ làm các thao tác co ’ ba ’ n cho ngôn ngu ˜ ’ la ˆ ˙ p trình mà nó ho ˆ ˜ tro ˙ ’ . D ¯ o ˆ ` ng tho ` ’ i cho phép d ¯ u ’ a các tham so ˆ ´ cu ˜ ng nhu ’ ke ˆ ´ t qua ’ làm vie ˆ ˙ c cu ’ a mo ˆ ˙ t chu ’ o ’ ng trình to ´ ’ i các chu ’ o ’ ng trình khác hay to ´ ’ i ngu ’ o ` ’ i dùng. Ke ˆ ´ t qua ’ thu d ¯ u ’ o ˙ ’ c là mo ˆ ˙ t ngôn ngu ˜ ’ la ˆ ˙ p trình ma ˙ nh. D ¯ ây cu ˜ ng là su ´ ’ c ma ˙ nh và là mo ˆ ˙ t trong các chu ´ ’ c na ˘ ng chính cu ’ a he ˆ ˙ vo ’ . Tru ’ o ´ ’ c khi ba ˘ ´ t d ¯ a ˆ ` u pha ˆ ` n này, ba ˙ n d ¯ o ˙ c nên bie ˆ ´ t các to ˆ ’ ho ˙ ’ p phím chính, su ’ ’ du ˙ ng d ¯ e ˆ ’ d ¯ ie ˆ ` u khie ˆ ’ n vie ˆ ˙ c nha ˆ ˙ p du ˜ ’ lie ˆ ˙ u trên dòng le ˆ ˙ nh. Nên nho ´ ’ ít nha ˆ ´ t cách su ’ ’ du ˙ ng cu ’ a các (to ˆ ’ ho ˙ ’ p) phím <Ctrl>+<C>, <Ctrl>+<D>, <Tab> và các phím có mu ˜ i tên. 3.2 Các ký tu ˙ ’ d ¯ a ˘ ˙ c bie ˆ ˙ t He ˆ ˙ vo ’ bash su ’ ’ du ˙ ng mo ˆ ˙ t vài ký tu ˙ ’ tu ` ’ bo ˆ ˙ 256 ký tu ˙ ’ ASCII cho các mu ˙ c d ¯ ính riêng, hoa ˘ ˙ c d ¯ e ˆ ’ bie ˆ ’ u thi ˙ các thao tác nào d ¯ ó, hoa ˘ ˙ c d ¯ e ˆ ’ bie ˆ ´ n d ¯ o ˆ ’ i bie ˆ ’ u thu ´ ’ c. Các ký tu ˙ ’ này bao go ˆ ` m: ‘ ~ ! @ # $ % ^ & * ( ) _ [ ] { } : ; ’ " / \ > < và ký tu ˙ ’ vo ´ ’ i mã 0, ký tu ˙ ’ hàng mo ´ ’ i (ta ˙ o ra khi nha ˆ ´ n phím <Enter>) và ký tu ˙ ’ khoa ’ ng tra ˘ ´ ng. Phu ˙ thuo ˆ ˙ c vào tình huo ˆ ´ ng các ký tu ˙ ’ d ¯ a ˘ ˙ c bie ˆ ˙ t này có the ˆ ’ su ’ ’ du ˙ ng vo ´ ’ i ý nghı ˜ a d ¯ a ˘ ˙ c bie ˆ ˙ t cu ’ a nó hay su ’ ’ du ˙ ng nhu ’ mo ˆ ˙ t ký tu ˙ ’ thông thu ’ o ` ’ ng. Nhu ’ ng trong d ¯ a so ˆ ´ các tru ’ o ` ’ ng ho ˙ ’ p không khuyên dùng các ký tu ˙ ’ vo ´ ’ i giá tri ˙ thu ´ ’ hai. Tru ’ o ´ ’ c he ˆ ´ t d ¯ ó là vie ˆ ˙ c su ’ ’ du ˙ ng chúng trong tên ta ˆ ˙ p tin và thu ’ mu ˙ c. Tuy nhiên các ký tu ˙ ’ _, - và . (da ˆ ´ u ga ˙ ch du ’ o ´ ’ i, ga ˙ ch ngang và da ˆ ´ u cha ˆ ´ m) thu ’ o ` ’ ng d ¯ u ’ o ˙ ’ c su ’ ’ du ˙ ng trong tên ta ˆ ˙ p tin, và d ¯ ây là mo ˆ ˙ t ví du ˙ cho tha ˆ ´ y không pha ’ i lúc nào chúng cu ˜ ng có giá tri ˙ d ¯ a ˘ ˙ c bie ˆ ˙ t. Trong tên ta ˆ ˙ p tin chı ’ da ˆ ´ u cha ˆ ´ m (.) và ga ˙ ch chéo (/) có giá tri ˙ d ¯ a ˘ ˙ c bie ˆ ˙ t. Ký hie ˆ ˙ u ga ˙ ch chéo dùng d ¯ e ˆ ’ phân chia tên các thu ’ mu ˙ c trong d ¯ u ’ o ` ’ ng da ˆ ˜ n, còn da ˆ ´ u cha ˆ ´ m có giá tri ˙ d ¯ a ˘ ˙ c bie ˆ ˙ t khi nó là ký tu ˙ ’ d ¯ a ˆ ` u tiên trong tên ta ˆ ˙ p tin (cho bie ˆ ´ t ta ˆ ˙ p tin là "a ˆ ’ n"). Vie ˆ ˙ c d ¯ u ’ a ngay ta ˆ ´ t ca ’ ý nghı ˜ a d ¯ a ˘ ˙ c bie ˆ ˙ t cu ’ a nhu ˜ ’ ng ký tu ˙ ’ này và các tình huo ˆ ´ ng su ’ ’ du ˙ ng chúng ta ˙ m tho ` ’ i không có ích. Chúng ta se ˜ xem xét chúng da ˆ ` n da ˆ ` n trong các pha ˆ ` n sau, khi ca ˆ ` n su ’ ’ du ˙ ng d ¯ e ˆ ´ n. Tuy nhiên, 3 ký hie ˆ ˙ u có ý nghı ˜ a lo ´ ’ n và ca ˆ ` n d ¯ e ˆ ` ca ˆ ˙ p d ¯ e ˆ ´ n d ¯ a ˆ ` u tiên. Ký hie ˆ ˙ u \ (ga ˙ ch chéo ngu ’ o ˙ ’ c) có the ˆ ’ go ˙ i là "ký hie ˆ ˙ u xóa bo ’ ý nghı ˜ a d ¯ a ˘ ˙ c bie ˆ ˙ t" cho ba ˆ ´ t ky ` ký tu ˙ ’ d ¯ a ˘ ˙ c bie ˆ ˙ t nào, d ¯ u ´ ’ ng ngay sau \. Ví du ˙ , ne ˆ ´ u muo ˆ ´ n su ’ ’ du ˙ ng khoa ’ ng tra ˘ ´ ng trong tên ta ˆ ˙ p tin, thì chúng ta ca ˆ ` n d ¯ a ˘ ˙ t tru ’ o ´ ’ c ký tu ˙ ’ khoa ’ ng tra ˘ ´ ng d ¯ ó mo ˆ ˙ t da ˆ ´ u ˙ Ví du ˙ , câu le ˆ ˙ nh sau: kênh giao tác teppi82@teppi:~$ cp lennon_imagine lennon\ imagine Các ký tu ˙ ’ ’ và " (ngoa ˘ ˙ c d ¯ o ’ n và ngoa ˘ ˙ c kép) có the ˆ ’ go ˙ i là "các ký tu ˙ ’ trích da ˆ ˜ n". Mo ˆ ˜ i ký tu ˙ ’ này luôn luôn d ¯ u ’ o ˙ ’ c su ’ ’ du ˙ ng trong mo ˆ ˙ t ca ˘ ˙ p vo ´ ’ i ba ’ n sao cu ’ a chính nó d ¯ e ˆ ’ d ¯ óng khung mo ˆ ˙ t bie ˆ ’ u thu ´ ’ c nào d ¯ ó, gio ˆ ´ ng nhu ’ trong các va ˘ n ba ’ n, sách báo, . . . thông thu ’ o ` ’ ng. Ne ˆ ´ u nhu ’ mo ˆ ˙ t d ¯ oa ˙ n 3.3 Thu ˙ ’ c thi các câu le ˆ ˙ nh 29 va ˘ n ba ’ n nào d ¯ ó d ¯ a ˘ ˙ t trong ngoa ˘ ˙ c d ¯ o ’ n, thì ta ˆ ´ t ca ’ các ký tu ˙ ’ na ˘ ` m trong ngoa ˘ ˙ c d ¯ o ’ n này có giá tri ˙ nhu ’ các ký tu ˙ ’ thông thu ’ o ` ’ ng, khôn mo ˆ ˙ t ký tu ˙ ’ nào có ý nghı ˜ a d ¯ a ˘ ˙ c bie ˆ ˙ t. Tro ’ ’ la ˙ i vo ´ ’ i ví du ˙ su ’ ’ du ˙ ng khoa ’ ng tra ˘ ´ ng trong tên ta ˆ ˙ p tin o ’ ’ trên, có the ˆ ’ nói, ne ˆ ´ u muo ˆ ´ n d ¯ a ˘ ˙ t ta ˆ ˙ p tin cái tên "lennon imagine" ca ˆ ` n d ¯ u ’ a tên d ¯ ó vào da ˆ ´ u ngoa ˘ ˙ c: kênh giao tác teppi82@teppi:~$ cp lennon_imagine ’lennon imagine’ Su ˙ ’ khác nhau trong cách su ’ ’ du ˙ ng ký tu ˙ ’ ’ và " d ¯ ó là, trong ngoa ˘ ˙ c d ¯ o ’ n ma ˆ ´ t ý nghı ˜ a d ¯ a ˘ ˙ c bie ˆ ˙ t ta ˆ ´ t ca ’ các ký tu ˙ ’ , còn trong ngoa ˘ ˙ c kép - ta ˆ ´ t ca ’ chúng ngoa ˙ i tru ` ’ $, ’ và \ (da ˆ ´ u d ¯ ô la, ngoa ˘ ˙ c d ¯ o ’ n và da ˆ ´ u ga ˙ ch ngu ’ o ˙ ’ c). 3.3 Thu ˙ ’ c thi các câu le ˆ ˙ nh Nhu ’ d ¯ ã nói o ’ ’ trên, mo ˆ ˙ t trong các chu ´ ’ c na ˘ ng chính cu ’ a he ˆ ˙ vo ’ là to ˆ ’ chu ´ ’ c vie ˆ ˙ c thu ˙ ’ c hie ˆ ˙ n các câu le ˆ ˙ nh mà ngu ’ o ` ’ i dùng d ¯ u ’ a vào trên dòng le ˆ ˙ nh. He ˆ ˙ vo ’ , nói riêng, cung ca ˆ ´ p cho ngu ’ o ` ’ i dùng hai thao tác d ¯ a ˘ ˙ c bie ˆ ˙ t d ¯ e ˆ ’ to ˆ ’ chu ´ ’ c vie ˆ ˙ c d ¯ u ’ a các câu le ˆ ˙ nh trên dòng le ˆ ˙ nh: ; và &. 3.3.1 Thao tác ; Ma ˘ ˙ c dù ngu ’ o ` ’ i dùng thu ’ o ` ’ ng chı ’ nha ˆ ˙ p trên dòng le ˆ ˙ nh tu ` ’ ng câu le ˆ ˙ nh mo ˆ ˙ t, nhu ’ ng còn có the ˆ ’ d ¯ u ’ a vào dòng le ˆ ˙ nh d ¯ ó ngay la ˆ ˙ p tu ´ ’ c vài câu le ˆ ˙ nh, và chúng se ˜ thu ˙ ’ c hie ˆ ˙ n la ˆ ` n lu ’ o ˙ ’ t tu ` ’ câu le ˆ ˙ nh này d ¯ e ˆ ´ n câu le ˆ ˙ nh khác. D ¯ e ˆ ’ làm d ¯ u ’ o ˙ ’ c d ¯ ie ˆ ` u này ca ˆ ` n su ’ ’ du ˙ ng ký tu ˙ ’ d ¯ a ˘ ˙ c bie ˆ ˙ t - ;. Ne ˆ ´ u dùng ký tu ˙ ’ này d ¯ e ˆ ’ phân chia các câu le ˆ ˙ nh, thì câu le ˆ ˙ nh tie ˆ ´ p theo se ˜ d ¯ u ’ o ˙ ’ c coi nhu ’ tham so ˆ ´ cu ’ a le ˆ ˙ nh phía tru ’ o ´ ’ c. Nhu ’ va ˆ ˙ y, ne ˆ ´ u nha ˆ ˙ p vào dòng le ˆ ˙ nh cái gì d ¯ ó gio ˆ ´ ng nhu ’ sau: kênh giao tác teppi82@teppi:~$ command1 ; command2 thì he ˆ ˙ vo ’ d ¯ a ˆ ` u tiên se ˜ thu ˙ ’ c hie ˆ ˙ n câu le ˆ ˙ nh command1, cho ` ’ cho le ˆ ˙ nh d ¯ ó hoàn thành, sau d ¯ ó cha ˙ y command2, cho ` ’ le ˆ ˙ nh hoàn thành, sau d ¯ ó la ˙ i d ¯ u ’ a ra dòng nha ˆ ˙ p le ˆ ˙ nh và cho ` ’ các hành d ¯ o ˆ ˙ ng tie ˆ ´ p theo cu ’ a ngu ’ o ` ’ i dùng. 3.3.2 Thao tác & Thao tác & d ¯ u ’ o ˙ ’ c dùng d ¯ e ˆ ’ to ˆ ’ chu ´ ’ c vie ˆ ˙ c thu ˙ ’ c hie ˆ ˙ n các câu le ˆ ˙ nh trong che ˆ ´ d ¯ o ˆ ˙ ne ˆ ` n sau. Ne ˆ ´ u d ¯ a ˘ ˙ t da ˆ ´ u & ngay sau câu le ˆ ˙ nh, thì he ˆ ˙ vo ’ se ˜ tra ’ la ˙ i quye ˆ ` n d ¯ ie ˆ ` u khie ˆ ’ n cho ngu ’ o ` ’ i dùng ngay sau khi cha ˙ y câu le ˆ ˙ nh, mà không d ¯ o ˙ ’ i cho câu le ˆ ˙ nh d ¯ ó hoàn thành. Ví du ˙ , ne ˆ ´ u nha ˆ ˙ p vào dòng le ˆ ˙ nh "command1 & command2 &", thì he ˆ ˙ vo ’ cha ˙ y câu le ˆ ˙ nh command1, ngay la ˆ ˙ p tu ´ ’ c cha ˙ y le ˆ ˙ nh command2, và sau d ¯ ó không cha ˆ ˙ m tre ˆ ˜ tra ’ la ˙ i dòng nha ˆ ˙ p le ˆ ˙ nh cho ngu ’ o ` ’ i dùng. 3.3.3 Thao tác && và || Cácthaotác&&và||lánhu ˜ ’ ngthaotác d ¯ ie ˆ ` ukhie ˆ ’ n.Ne ˆ ´ utrêndòng le ˆ ˙ nhlàcommand1 && command2, thì command2 se ˜ thu ˙ ’ c hie ˆ ˙ n và chı ’ thu ˙ ’ c hie ˆ ˙ n trong tru ’ o ` ’ ng ho ˙ ’ p tra ˙ ng thái thoát ra cu ’ a le ˆ ˙ nh command1 ba ˘ ` ng không (0), tu ´ ’ c là le ˆ ˙ nh d ¯ ó thu ˙ ’ c hie ˆ ˙ n thành công. Mo ˆ ˙ t cách tu ’ o ’ ng tu ˙ ’ , ne ˆ ´ u dòng le ˆ ˙ nh có da ˙ ng command1 || command2, thì command2 se ˜ thu ˙ ’ c hie ˆ ˙ n và chı ’ thu ˙ ’ c hie ˆ ˙ n khi tra ˙ ng thái thoát cu ’ a le ˆ ˙ nh command1 khác không. Chúng ta se ˜ không xem xét ma ˘ ˙ t ky ˜ thua ˆ ˙ t cu ’ a 30 Bash vie ˆ ˙ c thu ˙ ’ c hie ˆ ˙ n mo ˆ ˙ t câu le ˆ ˙ nh nào d ¯ ó. Chı ’ có the ˆ ’ nói nga ˘ ´ n go ˙ n ra ˘ ` ng, he ˆ ˙ vo ’ pha ’ i tìm mã (code) chu ’ o ’ ng trình, na ˙ p mã d ¯ ó vào bo ˆ ˙ nho ´ ’ , chuye ˆ ’ n các tham so ˆ ´ d ¯ ã nha ˆ ˙ p trên dòng le ˆ ˙ nh vào cho câu le ˆ ˙ nh, và sau khi thu ˙ ’ c hie ˆ ˙ n xong thì theo mo ˆ ˙ t cách nào d ¯ ó tra ’ la ˙ i ke ˆ ´ t qua ’ thu ˙ ’ c hie ˆ ˙ n le ˆ ˙ nh này cho ngu ’ o ` ’ i dùng hay tie ˆ ´ n trình khác. Chúng ta se ˜ xem xét qua các bu ’ o ´ ’ c này. Bu ’ o ´ ’ c d ¯ a ˆ ` u tiên - tìm kie ˆ ´ m câu le ˆ ˙ nh. Các câu le ˆ ˙ nh chia thành hai loa ˙ i: no ˆ ˙ i trú (mã cu ’ a chúng có trong mã cu ’ a chính he ˆ ˙ vo ’ ) và ngoa ˙ i trú (mã cu ’ a chúng na ˘ ` m trong mo ˆ ˙ t ta ˆ ˙ p tin riêng le ’ trên d ¯ ı ˜ a). He ˆ ˙ vo ’ luôn luôn tìm tha ˆ ´ y le ˆ ˙ nh no ˆ ˙ i trú, còn d ¯ e ˆ ’ tìm các le ˆ ˙ nh ngoa ˙ i trú ngu ’ o ` ’ i dùng, theo nguyên ta ˘ ´ c, pha ’ i chı ’ cho he ˆ ˙ vo ’ d ¯ u ’ o ` ’ ng da ˆ ˜ n d ¯ a ˆ ` y d ¯ u ’ to ´ ’ i ta ˆ ˙ p tin tu ’ o ’ ng u ´ ’ ng. Tuy nhiên d ¯ e ˆ ’ go ˜ ’ "gánh na ˘ ˙ ng" cho ngu ’ o ` ’ i dùng he ˆ ˙ vo ’ bie ˆ ´ t cách tìm le ˆ ˙ nh ngoa ˙ i trú trong các thu ’ mu ˙ c, mà d ¯ u ’ o ˙ ’ c lie ˆ ˙ t kê trong d ¯ u ’ o ` ’ ng da ˆ ˜ n tìm kie ˆ ´ m. Chı ’ khi (he ˆ ˙ vo ’ ) không the ˆ ’ tìm tha ˆ ´ y ta ˆ ˙ p tin ca ˆ ` n thie ˆ ´ t trong các thu ’ mu ˙ c d ¯ ó, nó mo ´ ’ i quye ˆ ´ t d ¯ i ˙ nh ra ˘ ` ng ngu ’ o ` ’ i dùng d ¯ ã nha ˆ ` m khi nha ˆ ˙ p tên le ˆ ˙ nh. Ve ˆ ` cách thêm thu ’ mu ˙ c vào d ¯ u ’ o ` ’ ng da ˆ ˜ n tìm kie ˆ ´ m chúng ta se ˜ nói d ¯ e ˆ ´ n o ’ ’ du ’ o ´ ’ i, còn bây gio ` ’ chúng ta se ˜ xem xét cách he ˆ ˙ vo ’ to ˆ ’ chu ´ ’ c vie ˆ ˙ c d ¯ u ’ a du ˜ ’ lie ˆ ˙ u vào cho câu le ˆ ˙ nh d ¯ ang thu ˙ ’ c hie ˆ ˙ n và vie ˆ ˙ c d ¯ u ’ a ke ˆ ´ t qua ’ to ´ ’ i cho ngu ’ o ` ’ i dùng. 3.4 D ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra tiêu chua ˆ ’ n 3.4.1 Dòng du ˜ ’ lie ˆ ˙ u vào-ra Khi mo ˆ ˙ t chu ’ o ’ ng trình d ¯ u ’ o ˙ ’ c thu ˙ ’ c hie ˆ ˙ n, nó d ¯ u ’ o ˙ ’ c cung ca ˆ ´ p ba dòng du ˜ ’ lie ˆ ˙ u (hay còn go ˙ i là kênh): • d ¯ a ˆ ` u vào tiêu chua ˆ ’ n (standard input hay stdin). Qua kênh này du ˜ ’ lie ˆ ˙ u d ¯ u ’ o ˙ ’ c d ¯ u ’ a vào cho chu ’ o ’ ng trình; • d ¯ a ˆ ` u ra tiêu chua ˆ ’ n (standard output hay stdout). Qua kênh này chu ’ o ’ ng trình d ¯ u ’ a ra ke ˆ ´ t qua ’ làm vie ˆ ˙ c cu ’ a mình; • kênh thông báo lo ˆ ˜ i tiêu chua ˆ ’ n (standard error hay stderr). Qua kênh này chu ’ o ’ ng trình d ¯ u ’ a ra thông tin ve ˆ ` lo ˆ ˜ i. Tu ` ’ d ¯ a ˆ ` u vào tiêu chua ˆ ’ n chu ’ o ’ ng trình chı ’ có the ˆ ’ d ¯ o ˙ c, còn hai d ¯ a ˆ ` u ra và kênh thông báo lo ˆ ˜ i d ¯ u ’ o ˙ ’ c chu ’ o ’ ng trình su ’ ’ du ˙ ng chı ’ d ¯ e ˆ ’ ghi. Theo ma ˘ ˙ c d ¯ i ˙ nh d ¯ a ˆ ` u vào có liên ke ˆ ´ t 1 vo ´ ’ i bàn phím, còn d ¯ a ˆ ` u ra và kênh báo lo ˆ ˜ i hu ’ o ´ ’ ng d ¯ e ˆ ´ n terminal cu ’ a ngu ’ o ` ’ i dùng. Nói cách khác, toàn bo ˆ ˙ thông tin cu ’ a le ˆ ˙ nh hay chu ’ o ’ ng trình mà ngu ’ o ` ’ i dùng d ¯ ã cha ˙ y, và ta ˆ ´ t ca ’ nhu ˜ ’ ng thông báo lo ˆ ˜ i, d ¯ u ’ o ˙ ’ c d ¯ u ’ a ra cu ’ ’ a so ˆ ’ terminal. Tuy nhiên, chúng ta se ˜ tha ˆ ´ y o ’ ’ du ’ o ´ ’ i, có the ˆ ’ chuye ˆ ’ n hu ’ o ´ ’ ng thông báo d ¯ a ˆ ` u ra (ví du ˙ , vào ta ˆ ˙ p tin). D ¯ e ˆ ’ cho tha ˆ ´ y kênh thông báo lo ˆ ˜ i tiêu chua ˆ ’ n làm vie ˆ ˙ c nhu ’ the ˆ ´ nào, hãy thu ˙ ’ c hie ˆ ˙ n câu le ˆ ˙ nh ls vo ´ ’ i mo ˆ ˙ t tham so ˆ ´ không d ¯ úng, ví du ˙ dùng tham so ˆ ´ là mo ˆ ˙ t tên ta ˆ ˙ p tin không to ˆ ` n ta ˙ i. Trong tru ’ o ` ’ ng ho ˙ ’ p này, ls d ¯ u ’ a mo ˆ ˙ t tin nha ˘ ´ n báo lo ˆ ˜ i ra kênh thông báo lo ˆ ˜ i tiêu chua ˆ ’ n. Tuy nhiên, d ¯ o ˆ ´ i vo ´ ’ i ngu ’ o ` ’ i dùng thì trong tru ’ o ` ’ ng ho ˙ ’ p này kênh thông báo lo ˆ ˜ i tiêu chua ˆ ’ n không khác gì vo ´ ’ i d ¯ a ˆ ` u ra tiêu chua ˆ ’ n, bo ’ ’ i vì chúng ta cu ˜ ng tha ˆ ´ y thông báo lo ˆ ˜ i d ¯ ó trên cu ’ ’ a so ˆ ’ terminal. Làm vie ˆ ˙ c vo ´ ’ i d ¯ a ˆ ` u vào và d ¯ a ˆ ` u ra tiêu chua ˆ ’ n d ¯ u ’ o ˙ ’ c minh ho ˙ a to ˆ ´ t nha ˆ ´ t qua ví du ˙ các le ˆ ˙ nh echo và cat. 3.4.2 Le ˆ ˙ nh echo Câu le ˆ ˙ nh echo dùng d ¯ e ˆ ’ chuye ˆ ’ n to ´ ’ i d ¯ a ˆ ` u ra tiêu chua ˆ ’ n dòng ký tu ˙ ’ , mà d ¯ u ’ o ˙ ’ c d ¯ u ’ a vào làm tham so ˆ ´ cho nó. Sau d ¯ ó le ˆ ˙ nh này d ¯ u ’ a ra tín hie ˆ ˙ u chuye ˆ ’ n dòng và hoàn ta ˆ ´ t công vie ˆ ˙ c. Hãy thu ’ ’ thu ˙ ’ c hie ˆ ˙ n câu le ˆ ˙ nh sau: 1 gio ˆ ´ ng liên ke ˆ ´ t hóa ho ˙ c 3.5 Chuye ˆ ’ n hu ’ o ´ ’ ng d ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra, d ¯ u ’ o ` ’ ng o ˆ ´ ng và d ¯ a ˆ ` u lo ˙ c 31 kênh giao tác [user]$ echo ’xin chao cac ban!’ Tôi nghı ˜ ra ˘ ` ng lo ` ’ i gia ’ i thích se ˜ là thu ` ’ a thãi (chı ’ xin hãy su ’ ’ du ˙ ng da ˆ ´ u ngoa ˘ ˙ c d ¯ o ’ n, ne ˆ ´ u không ke ˆ ´ t qua ’ có the ˆ ’ se ˜ khác. Ne ˆ ´ u ba ˙ n d ¯ o ˙ c chú ý thì có the ˆ ’ gia ’ i thích ta ˙ i sao la ˙ i khác). 3.4.3 Le ˆ ˙ nh cat Chúng ta se ˜ xem xét le ˆ ˙ nh cat o ’ ’ d ¯ ây vì le ˆ ˙ nh này thu ’ o ` ’ ng làm vie ˆ ˙ c vo ´ ’ i d ¯ a ˆ ` u vào và d ¯ a ˆ ` u ra tiêu chua ˆ ’ n. Theo ma ˘ ˙ c d ¯ i ˙ nh ke ˆ ´ t qua ’ làm vie ˆ ˙ c cu ’ a le ˆ ˙ nh cat hu ’ o ´ ’ ng to ´ ’ i d ¯ a ˆ ` u ra tiêu chua ˆ ’ n. D ¯ e ˆ ’ chu ´ ’ ng minh là le ˆ ˙ nh này theo ma ˘ ˙ c d ¯ i ˙ nh tie ˆ ´ p nha ˆ ˙ n dòng du ˜ ’ lie ˆ ˙ u nha ˆ ˙ p vào, hãy cha ˙ y le ˆ ˙ nh cat không có tham so ˆ ´ . Ke ˆ ´ t qua ’ là con tro ’ chuye ˆ ’ n to ´ ’ i mo ˆ ˙ t dòng mo ´ ’ i, và ho ’ n nu ˜ ’ a có ve ’ nhu ’ không có gì xa ’ y ra. Lúc này câu le ˆ ˙ nh cho ` ’ các ký tu ˙ ’ d ¯ e ˆ ´ n tu ` ’ d ¯ a ˆ ` u vào tiêu chua ˆ ’ n. Hãy nha ˆ ˙ p ba ˆ ´ t ky ` ký tu ˙ ’ nào, và nó se ˜ xua ˆ ´ t hie ˆ ˙ n ngay la ˆ ˙ p tu ´ ’ c trên màn hình, tu ´ ’ c là chu ’ o ’ ng trình ngay la ˆ ˙ p tu ´ ’ c d ¯ u ’ a chúng to ´ ’ i d ¯ a ˆ ` u ra tiêu chua ˆ ’ n. Có the ˆ ’ tie ˆ ´ p tu ˙ c nha ˆ ˙ p các ký tu ˙ ’ , và chúng cu ˜ ng se ˜ xua ˆ ´ t hie ˆ ˙ n trên màn hình. Thông thu ’ o ` ’ ng bàn phím d ¯ u ’ o ˙ ’ c ca ˆ ´ u hình d ¯ e ˆ ’ nha ˆ ˙ p vào theo tu ` ’ ng dòng, vì the ˆ ´ ne ˆ ´ u ba ˙ n nha ˆ ´ n phím <Enter>, dòng ký tu ˙ ’ ba ˙ n vu ` ’ a nha ˆ ˙ p se ˜ d ¯ u ’ o ˙ ’ c d ¯ u ’ a to ´ ’ i le ˆ ˙ nh cat, và le ˆ ˙ nh này se ˜ la ˙ i d ¯ u ’ a du ˜ ’ lie ˆ ˙ u ra màn hình thông qua d ¯ a ˆ ` u ra tiêu chua ˆ ’ n. Nhu ’ va ˆ ˙ y, mo ˆ ˜ i dòng ký tu ˙ ’ nha ˆ ˙ p vào se ˜ d ¯ u ’ o ˙ ’ c hie ˆ ˙ n ra hay la ˆ ` n: mo ˆ ˙ t la ˆ ` n khi gõ và la ˆ ` n thu ´ ’ hai bo ’ ’ i câu le ˆ ˙ nh cat. Ne ˆ ´ u nha ˆ ´ n to ˆ ’ ho ˙ ’ p phím <Ctrl>+<D>, mà dùng d ¯ e ˆ ’ ngu ` ’ ng vie ˆ ˙ c nha ˆ ˙ p du ˜ ’ lie ˆ ˙ u, chúng ta se ˜ qua la ˙ i dòng nha ˆ ˙ p le ˆ ˙ nh. Cu ˜ ng có the ˆ ’ su ’ ’ du ˙ ng to ˆ ’ ho ˙ ’ p phím <Ctrl>+<C>, mà là câu le ˆ ˙ nh trong he ˆ ˙ vo ’ d ¯ e ˆ ’ du ` ’ ng chu ’ o ’ ng trình d ¯ ang cha ˙ y. Ne ˆ ´ u d ¯ u ’ a tên mo ˆ ˙ t ta ˆ ˙ p tin vào làm tham so ˆ ´ cho le ˆ ˙ nh cat, thì no ˆ ˙ i dung cu ’ a le ˆ ˙ nh này se ˜ d ¯ u ’ o ˙ ’ c d ¯ u ’ a to ´ ’ i d ¯ a ˆ ` u vào tiêu chua ˆ ’ n, tu ` ’ d ¯ ó le ˆ ˙ nh cat se ˜ d ¯ o ˙ c no ˆ ˙ i dung này và d ¯ u ’ a to ´ ’ i d ¯ a ˆ ` u ra tiêu chua ˆ ’ n (xem so ’ d ¯ o ˆ ` ). No ˆ ˙ i dung ta ˆ ˙ p tin -> D ¯ a ˆ ` u vào tiêu chua ˆ ’ n (stdin) cat > d ¯ a ˆ ` u ra tiêu chua ˆ ’ n (stdout) D ¯ ây chı ’ là mo ˆ ˙ t tru ’ o ` ’ ng ho ˙ ’ p riêng cu ’ a vie ˆ ˙ c chuye ˆ ’ n hu ’ o ´ ’ ng du ˜ ’ lie ˆ ˙ u d ¯ a ˆ ` u vào, mo ˆ ˙ t co ’ che ˆ ´ ra ˆ ´ t có ích cu ’ a he ˆ ˙ vo ’ . Và ta ˆ ´ t nhiên chúng ta ca ˆ ` n xem xét ky ˜ ho ’ n co ’ che ˆ ´ này. 3.5 Chuye ˆ ’ n hu ’ o ´ ’ ng d ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra, d ¯ u ’ o ` ’ ng o ˆ ´ ng và d ¯ a ˆ ` u lo ˙ c Ma ˘ ˙ c dù, nhu ’ d ¯ ã nói o ’ ’ trên, thông thu ’ o ` ’ ng d ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra cu ’ a mo ˆ ˙ t chu ’ o ’ ng trình liên ke ˆ ´ t vo ´ ’ i các d ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra tiêu chua ˆ ’ n, trong he ˆ ˙ vo ’ còn có các môi tru ’ o ` ’ ng d ¯ a ˘ ˙ c bie ˆ ˙ t cho phép chuye ˆ ’ n hu ’ o ´ ’ ng d ¯ a ˆ ` u vào/d ¯ a ˆ ` u ra. 3.5.1 Su ’ ’ du ˙ ng >, < và >> D ¯ e ˆ ’ chuye ˆ ’ n hu ’ o ´ ’ ng d ¯ a ˆ ` u vào/ra, su ’ ’ du ˙ ng các ký hie ˆ ˙ u ">", "<" và ">>". Thu ’ o ` ’ ng su ’ ’ du ˙ ng vie ˆ ˙ c chuye ˆ ’ n hu ’ o ´ ’ ng d ¯ u ˜ ’ lie ˆ ˙ u ra cu ’ a câu le ˆ ˙ nh vào ta ˆ ˙ p tin. Du ’ o ´ ’ i d ¯ ây là mo ˆ ˙ t ví du ˙ tu ’ o ’ ng u ´ ’ ng: kênh giao tác maikhai@fpt:/some/where$ ls -l > /home/maikhai/ls.txt Theo le ˆ ˙ nh này danh sách ta ˆ ˙ p tin và thu ’ mu ˙ c con cu ’ a thu ’ mu ˙ c, mà tu ` ’ d ¯ ó ngu ’ o ` ’ i dùng thu ˙ ’ c hie ˆ ˙ n le ˆ ˙ nh ls 2 se ˜ d ¯ u ’ o ˙ ’ c ghi vào ta ˆ ˙ p tin /home/maikhai/ls.txt; khi này ne ˆ ´ u ta ˆ ˙ p tin 2 thu ’ mu ˙ c hie ˆ ˙ n tho ` ’ i 32 Bash ls.txt không to ˆ ` n ta ˙ i, thì nó se ˜ d ¯ u ’ o ˙ ’ c ta ˙ o ra; ne ˆ ´ u ta ˆ ˙ p tin d ¯ ã có, thì no ˆ ˙ i dung cu ’ a nó se ˜ bi ˙ xóa và ghi d ¯ è bo ’ ’ i danh sách nói trên. Ne ˆ ´ u ba ˙ n không muo ˆ ´ n xóa no ˆ ˙ i dung cu ˜ mà ghi thêm du ˜ ’ lie ˆ ˙ u d ¯ a ˆ ` u ra vào cuo ˆ ´ i ta ˆ ˙ p tin, thì ca ˆ ` n su ’ ’ du ˙ ng ký hie ˆ ˙ u >> thay cho >. Khi này khoa ’ ng tra ˘ ´ ng tru ’ o ´ ’ c và sau các ký hie ˆ ˙ u > hay >> không có ý nghı ˜ a và chı ’ dùng vo ´ ’ i mu ˙ c d ¯ ích thua ˆ ˙ n tie ˆ ˙ n, de ˆ ˜ nhìn. Ba ˙ n có the ˆ ’ chuye ˆ ’ n hu ’ o ´ ’ ng không chı ’ vào ta ˆ ˙ p tin, mà còn to ´ ’ i d ¯ a ˆ ` u vào cu ’ a mo ˆ ˙ t câu le ˆ ˙ nh khác hay to ´ ’ i mo ˆ ˙ t thie ˆ ´ t bi ˙ nào d ¯ ó (ví du ˙ , máy in). Ví du ˙ , d ¯ e ˆ ’ d ¯ u ’ a no ˆ ˙ i dung ta ˆ ˙ p tin /home/maikhai/ls.txt vu ` ’ a ta ˙ o o ’ ’ trên to ´ ’ i cu ’ ’ a so ˆ ’ terminal thu ´ ’ hai 3 có the ˆ ’ su ’ ’ du ˙ ng le ˆ ˙ nh sau: kênh giao tác maikhai@fpt:/sw$ cat /home/maikhai/ls.txt > /dev/tty2 Nhu ’ ba ˙ n tha ˆ ´ y, > dùng d ¯ e ˆ ’ chuye ˆ ’ n hu ’ o ´ ’ ng du ˜ ’ lie ˆ ˙ u cu ’ a d ¯ a ˆ ` u ra. Chu ´ ’ c na ˘ ng tu ’ o ’ ng tu ˙ ’ d ¯ o ˆ ´ i vo ´ ’ i d ¯ a ˆ ` u vào d ¯ u ’ o ˙ ’ c thu ˙ ’ c hie ˆ ˙ n bo ’ ’ i <. Ví du ˙ , có the ˆ ’ d ¯ e ˆ ´ m so ˆ ´ tu ` ’ trong ta ˆ ˙ p tin ls.txt nhu ’ sau (chú ý, d ¯ ây chı ’ là mo ˆ ˙ t ví du ˙ minh ho ˙ a, trên thu ˙ ’ c te ˆ ´ thu ’ o ` ’ ng su ’ ’ du ˙ ng câu le ˆ ˙ nh d ¯ o ’ n gia ’ n ho ’ n): kênh giao tác maikhai@fpt:/sw$ wc -w < /home/maikhai/ls.txt Cách chuye ˆ ’ n hu ’ o ´ ’ ng này thu ’ o ` ’ ng d ¯ u ’ o ˙ ’ c su ’ ’ du ˙ ng trong các script, cho các câu le ˆ ˙ nh mà thu ’ o ` ’ ng tie ˆ ´ p nha ˆ ˙ n (hay cho ` ’ ) du ˜ ’ lie ˆ ˙ u vào tu ` ’ bàn phím. Trong script dùng d ¯ e ˆ ’ tu ˙ ’ d ¯ o ˆ ˙ ng hóa mo ˆ ˙ t thao tác nào d ¯ ó, có the ˆ ’ d ¯ u ’ a các thông tin ca ˆ ` n thie ˆ ´ t cho câu le ˆ ˙ nh tu ` ’ ta ˆ ˙ p tin: trong ta ˆ ˙ p tin này ghi sa ˘ ˜ n nhu ˜ ’ ng gì ca ˆ ` n d ¯ e ˆ ’ thu ˙ ’ c hie ˆ ˙ n le ˆ ˙ nh d ¯ ó. Bo ’ ’ i vì các ký hie ˆ ˙ u <, > và >> làm vie ˆ ˙ c vo ´ ’ i các kênh tiêu chua ˆ ’ n (d ¯ a ˆ ` u vào hoa ˘ ˙ c d ¯ a ˆ ` u ra), chúng không chı ’ d ¯ u ’ o ˙ ’ c dùng theo các cách quen thuo ˆ ˙ c, thu ’ o ` ’ ng dùng, mà còn có the ˆ ’ theo cách khác, "la ˙ ma ˘ ´ t" ho ’ n. Ví du ˙ , các câu le ˆ ˙ nh sau là tu ’ o ’ ng d ¯ u ’ o ’ ng: 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ó mo ˆ ˙ t le ˆ ˙ nh nào, tu ´ ’ c là không có kênh tiêu chua ˆ ’ n nào cho le ˆ ˙ nh) các ký tu ˙ ’ chuye ˆ ’ n hu ’ o ´ ’ ng này không the ˆ ’ d ¯ u ’ o ˙ ’ c su ’ ’ du ˙ ng, nhu ’ the ˆ ´ không the ˆ ’ , ví du ˙ , nha ˆ ˙ p vào dòng le ˆ ˙ nh sau: kênh giao tác [user]$ file1 > file2 mà thu d ¯ u ’ o ˙ ’ c ba ’ n sao cu ’ a mo ˆ ˙ t ta ˆ ˙ p tin nào d ¯ ó. Nhu ’ ng d ¯ ie ˆ ` u này không làm gia ’ m giá tri ˙ cu ’ a co ’ che ˆ ´ này, bo ’ ’ i vì các kênh tiêu chua ˆ ’ n có cho mo ˙ i câu le ˆ ˙ nh. Khi này, có the ˆ ’ chuye ˆ ’ n hu ’ o ´ ’ ng không chı ’ d ¯ a ˆ ` u vào và d ¯ a ˆ ` u ra tiêu chua ˆ ’ n, mà còn các kênh khác. D ¯ e ˆ ’ làm d ¯ u ’ o ˙ ’ c d ¯ ie ˆ ` u này, ca ˆ ` n d ¯ a ˘ ˙ t tru ’ o ´ ’ c ký hie ˆ ˙ u chuye ˆ ’ n hu ’ o ´ ’ ng so ˆ ´ cu ’ a kênh muo ˆ ´ n chuye ˆ ’ n. D ¯ a ˆ ` u vào tiêu chua ˆ ’ n stdin có so ˆ ´ 0, d ¯ a ˆ ` u ra tiêu chua ˆ ’ n stdout - so ˆ ´ 1, kênh thông báo lo ˆ ˜ i stderr - so ˆ ´ 2. Tu ´ ’ c là le ˆ ˙ nh chuye ˆ ’ n hu ’ o ´ ’ ng có da ˙ ng d ¯ a ˆ ` y d ¯ u ’ nhu ’ sau (xin d ¯ u ’ o ˙ ’ c nha ˘ ´ c la ˙ i, khoa ’ ng tra ˘ ´ ng ca ˙ nh > là không nha ˆ ´ t thie ˆ ´ t): command N > M 3 ba ˙ n ca ˆ ` n dùng to ˆ ’ ho ˙ ’ p phím <Ctrl>+<Alt>+<F2> d ¯ e ˆ ’ chuye ˆ ’ n to ´ ’ i cu ’ ’ a so ˆ ’ terminal này và d ¯ a ˘ ng nha ˆ ˙ p tru ’ o ´ ’ c . Bo ’ ’ i vì các ký hie ˆ ˙ u <, > và >> làm vie ˆ ˙ c vo ´ ’ i các kênh tiêu chua ˆ ’ n (d ¯ a ˆ ` u vào hoa ˘ ˙ c d ¯ a ˆ ` u ra), chúng không chı ’ d ¯ u ’ o ˙ ’ c dùng theo các cách quen. Nên nho ´ ’ ít nha ˆ ´ t cách su ’ ’ du ˙ ng cu ’ a các (to ˆ ’ ho ˙ ’ p) phím <Ctrl>+<C>, <Ctrl>+<D>, <Tab> và các phím có mu ˜ i tên. 3.2 Các ký tu ˙ ’ d ¯ a ˘ ˙ c. na ˙ p mã d ¯ ó vào bo ˆ ˙ nho ´ ’ , chuye ˆ ’ n các tham so ˆ ´ d ¯ ã nha ˆ ˙ p trên dòng le ˆ ˙ nh vào cho câu le ˆ ˙ nh, và sau khi thu ˙ ’ c hie ˆ ˙ n xong thì theo mo ˆ ˙ t cách nào d ¯ ó

Ngày đăng: 29/07/2014, 12:21

Mục lục

    HÐH Linux: lich su và các ban phân phoi

    Cài dat HÐH Linux trên cùng máy tính voi Windows

    Chuan bi cài dat

    Phòng xa và nhung loi khuyên

    Phân vùng trên dia và quá trình khoi dong

    The nào là cau trúc "hình hoc cua dia"

    Phân vùng và bang phân vùng cua dia

    Quá trình khoi dong HÐH công ty Microsoft

    Van de voi các dia lon

    Lua chon trình khoi dong

Tài liệu cùng người dùng

Tài liệu liên quan