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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 51,28 KB

Nội dung

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

TỪ KHÓA LIÊN QUAN

w