Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 6
lượt xem 4
download
Nếu vì lý do nào đó không thể tìm thấy trên đĩa phân vùng kích hoạt,thì quá trình khởi động sẽ tiếp với việc xử lý Int 18th.
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 6
- ˆ’ 3.5 Chuyen huong dau vào/dau ra, duong ´ ng và dau loc ` ` ` ’´’ ¯ ˆ ¯ˆ ˆ ¯ˆ ¯ ’`’ o 33 ˙ ˆ’ ´’ Trong d N và M - so cua kênh tiêu chuan (0, 1, và 2) hoac tên tap tin. Trong mot vài ˘ ¯ó, ˆ ˆ ˆ truong hop có su dung các ký hieu và >> mà không chı ˙ so kênh hay tên tap tin, vì ’ ra ´ ˙ ˙ ’’ `’ ˆ ˆ ˆ ’ ’ ˙ thieu se d ˘ t, theo mac d nh, 1 neu dùng >, tuc là d `u ra tiêu chuan, hoac 0 neu ˙ ˙ ˙˘ ˆ’ ˜ vào cho còn ´ ˜ ¯a ´ ´ ˘ ¯i ´’ ¯a ˆ ˆ ˆ ˆ ˆ ˙tiêu chuan. Nhu the, khi không có so nào chı ra, > se d oc biên dich ˙˙ ˙ ’ `u vào ´ ´ ’ dùng , còn < se d ’oc biên dich là 0 &M ˆ’ Lenh này có nghıa là, d ˆ u ra cua kênh voi so N d ’oc gui d´ n ca d ˆ u ra tiêu chuan, và sao ` ´’ ´ ` ’ ¯u ’ ’’ ¯e ’ ¯a ˜ ¯a ˆ ˆ ˆ ˙´ i kênh có so M. Ví du, d ’ sao chép thông báo loi vào d `u ra tiêu chuan, can dùng lenh ˙ ’ˆ ˜ ´ ` chép to ¯e ¯a ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙` ´ ’˘ 2>&1, còn 1>&2 sao chép stdout vào stderr. Kha nang này d ˘ c biet có ích khi muon ghi d ˆ u ¯a ¯a ˆ ˆ ˙ trên màn hình, vua ghi chúng ˙ ’ nhìn thay thông báo ´ ra vào tap tin, vì khi d chúng ta vua có the `’ `’ ¯ó ˆ ˆ ˆ ˙tin. Ví du, truong hop sau thuong d oc ung dung trong các script chay khi khoi d ng ’’ ¯o vào tap ’`’ ’`’ ¯u ’ ´’ ˆ ˆ ’ ’ ˙ ˙ ˙ ˙ ˙ ˙ ˙ Linux: kênh giao tác teppi82@teppi:~$ cat hiho > /dev/null cat: hiho: No such file or directory teppi82@teppi:~$ cat hiho > /dev/null 2>&1 ’’ 3.5.2 Su dung | ˙ ˆ’ ’´’ ¯a ’ ˆ’ ´’ ` ¯u `’ ´ ˆ’ Mot truong hop d ˘ c biet cua chuyen huong d ˆ u ra là su to chuc các d ’ong ong (ha y còn có ’`’ ’ ¯a ˆ ˆ ˙ goi là kênh giua các chuong trình, hoac bang chuyen). Hai hay vài câu lenh, mà d `u ra ˙˙ ˙ ˙` ’ the ˘˘ ˜’ ¯a ˆ ˆ ˆ ˆ ’’ cua lenh truoc dùng làm d ˆ u vào cho lenh˙sau, liên ket voi nhau (có the nói phân cách nhau, ˙ ˙ ’ ` ´ ´’ ’ˆ ´’ ¯a ˆ ˆ ˆ ’ ´ ˙´ ˙ ’ ˆ’ ’ ˆ ` ’’ neu muon) boi ký hieu gach thang d ´’ng - "|". Khi này d ˆ u ra tiêu chuan cua lenh d ´’ng bên ˘ ¯u ¯a ¯u ˆ ˆ ˆ ˙ ’n d´ n d `u vào tiêu chuan cua chuong trình, dung bên phai so voi |. ˙ ˙’ ’’ trái so voi | duoc chuye ¯e ¯a ´’ ´’ ´’ ˆˆˆ ˆ ’’ ’’ ˙ Ví du: ˙ kênh giao tác maikhai@fpt:/sw$ cat ls.txt | grep knoppix | wc -l ˆ’ ´ ’’ ˆ Dòng này có nghıa là ket qua cua lenh cat, tuc là noi dung tap tin ls.txt, se d ’oc chuyen ´’ ˜ ˜ ¯u ’ ˆ ˆ ˆ ´ n d ˆ u vào cua lenh grep, lenh này se phân chia no˙ dung nói trên và chı lay˙ ra nhung ˙ ˙ ` ´ ’ˆ ’ˆ d ˆ ¯a ˆi ˜ ˜’ ¯e ˆ ˙ ` knoppix. ˙ ´ n luot mình, ket qua ˙cua lenh grep d oc chuyen toi d `u ’ ´’ ¯a ´’’ˆ dòng nào có chua tu ¯ e ’˙’ Dˆ ´’ ’ ¯u ’ ˆ ˆ ˆ ’ vào cua lenh wc -l, mà tính so nhung dòng thu d ’oc. ¯ uong ong su du˙ d ˆ’ ket hop vài˙ ´ ¯u ’ D ’`’ ´ ’’ ng ¯e ´ ’ ’ˆ ˆ ˜’ ˆ ˆ chuong trình nho lai voi nhau (moi chuong trình thuc ˙ ˆ n mot bien d ˆ’i xác d nh nào d˙ trên ˙ ˙ ˜ ˆ ´ ¯o ’ ’ hie ´’ ¯i ¯ó ˆ ˆ ’’ ’’ d ˆ u vào) tao thành˙ mot lenh tong quát, mà ket qua˙ cua ˙ se là mot bien d ˆ’i˙ phuc tap. Can ’ ’ nó ˜˙ ˆ’ ` ´ ˆ ´ ¯o ` ´’ ¯a ˆˆ ˆ ˆ ˆ ˙ he vo goi và thuc hien tat ca các câu lenh có trong d ong ong cùng mot lúc, chay ˙˙ ˙´ ˙ ` ’ ˆ´’ chú ý rang, ˆ ’ ˘ ¯u `’ ˆ ˆ ˆ ˆ ’ ˜i lenh d trong mot ban ˙ he vo riêng. Vì the˙ngay khi chuong trình thu nhat bat d ˆ u d ˙’a ˙ ˙ ’ sao ˙ˆ ’ ´ ˙ ´ ¯a ¯u ´ ´’ ˆ ˘ ` mo ˆ ¯ó ˆ ˆ ˆ ’’ ˙ ’ o d `u ra, chuong trình tiep theo bat d `u xu lý ket qua này. Cung y nhu vay, các lenh ˙ ˙ ´ ´ ´ˆ ´ ket qua ’’ ¯a ˘ ¯a ’’ ’ ˜ ˆ ˆ ˆ ˆ ’ˆ ˆ ’’ ´ ˙’ ˙ ´ p theo thuc hien các công viec cua mình: cho du lieu tu lenh truoc và d ’a ket qua cho lenh ˆ’ tie `’ ˜’ ˆ `’ ˆ ’´’ ¯u ˆ ˆ ’ˆ ˆ ˙´ ˙ ˙`’ ´ ˙’ ´ ˙ ˙ ´ ´ ´ tiep theo, giong nhu mot dây chuyen san xuat. Neu nhu muon mot lenh nào d ket thúc hoàn ¯ó ˆ ˆ ˆ ’ˆ ˆ ˆ ˆ ˆ ˆˆ ˙ ˙˙ ˆ’ ’’ ´ ’ toàn, truoc khi thuc hien lenh tiep theo, ban có the sue dung trên mot dòng ca ký hieu dây ’´’ ’ˆˆ ˆ ˆ ˆ ˙ da˙ chap phay ;. Tru˙´ c moi dau cha˙m phay, he vo se dung lai và cho ˙´ ’ ˆ˙ ’ ˜ `’ ˙ ’ ˜´ `n |, cung nhu ´ u ˆ ´ chuye ’o `’ ˜ ˆ ’ˆ ˆ ’ˆˆ ˆ ˆ cho d´ n khi thuc hien xong tat ca các câu lenh truoc cua d ’ong ong. ˙Trang thái thoát ra (giá ˙ ´’ ´’ ’ ¯u `’ ´ ¯eˆ ˆ ˆ ˆ ˆ ’ ’ ˙ ˙ ˙ ˙
- 34 Bash ˆ ¯u `’ ´ ¯u ’ ’ ’ tri lôgíc, mà d ’oc tra lai sau khi thuc hien xong chuong trình) cua mot d ’ong ong se trùng ˜ ’ˆ ˆ ’’ ˙ i trang thái thoát ra cua câu lenh sau cùng trong d ong ong. O truoc˙câu lenh d `u tiên cua ˙ ˙’ ˙ ˙ ’’ ’´’ ¯u `’ ´ ’ vo´’ ¯a ˆ ˆ ˆ ˆ ’ ˙ ong có the d ˘ t ký hieu "˙!", khi d trang thái thoát ra cua d ong ong se là phu d nh ˙ ’ ¯a d ’ong ´ ’ ¯u `’ ´ ’ ¯i ¯u `’ ˆ ˜ ¯ó ˆ ˆ ˆ ’ ’ a trang thát ˙ ˙cua lenh cuoi cùng trong d ong ong. Tuc là neu trang thái thoát ˙ ˙ ´ ´ ´ ’ˆ lôgíc cu thoát ra ¯u `’ ˆ ´’ ˆ ˆ ’ ra cua lenh ˙ ´ i cùng bang 0 thì trang thái thoát ra cua d ’ong ong se bang 1 và ˙ ’oc lai. He ˙ ` ’ ¯u `’ ´ ` ’ ˆ cuo ngu ’ ˘ ˜˘ ˆ ˆ ˆ ˙ tat ca các câu lenh ket ˙ ˙˙ ˙ ´’ ´ thúc roi moi xác d nh và d ’a ra giá tri này. ` ´’ ’ `’ vo cho cho ˆ ¯i ¯u ˆ ˆ ˆ ˙ ˙ ˙ ` Dˆ 3.5.3 ¯ au loc ˙ Ví du cuoi cùng o trên (ví du voi câu lenh grep) có the dùng d ˆ’ minh hoa cho mot khái niem ˆ’ ´ ’’ ´’ ¯e ˆ ˆ ˆ ˆ ˙ ng khác, d là, dau loc chuong trình. Dau loc - d là lenh (hay chuong trình), mà tiep ˙ ˙ ˙ ˙ ˙´ ` ` ¯ˆ qua tro ¯ó ¯ó ˆ ˆ ˆ ’’ ’’ ˙ lieu vào, thuc hien ˙mot vài bien d ’i ¯ ˙ lieu này ˙và d a ra ket qua o d `u ra tiêu ´ ¯o trên du ˆ ´ ’ ’’ ¯a nhan du ˆ ˆ ˜’ ˜’ ¯u ’ˆ ˆ ˆˆ ˆ ˆ ’ chuan (tu d còn có the ˙ ˙’ ` ˙ ˙ ’ chuyen d´ n noi nào d theo ý˙muon cua nguoi dùng). Các câu lenh ˙’ ´’ `’ ¯ây ˆ ¯e ¯ó ˆ ˆ ˆ ˆ ˆ ’ ’ ’ ˙ `u loc bao gom các lenh d nói d´ n o trên cat, more, less, wc, cmp, diff, ` ¯e ’’ - dˆ ¯a ¯ã ˆ ˆ ˆ và ca nhung câu lenh có˙trong bang 3.1 ’ ˙ ˜’ ’ ˆ ˙ ` ’ Bang 3.1: Các câu lenh d ˆ u loc ¯a ˆ ˙ ˙ ´ ’˘ Lenh Mô ta ngan gon ˆ ˙ ˙ ˜ ` ´’ ˆ ˘ ’ grep, fgrep, egrep Tìm trong tap tin hay du lieu d ˆ u vào các dòng có chua mau van ban ˜’ ˆ ¯a ˆ ˙ d a các dòng˙này toi d `u ra tiêu chuan ˆ’ ¯u ’ ’ d ’oc chı ra và ¯u ´’ ¯aˆ ’ ˙ ` ´ ´’ ´ ’’ ’ ’’ tr Trong du lieu d ˆ u vào thay the các ký tu o ô thu nhat boi các ký tu tuong ˜’ ˆ ¯a ˆ ˆ ’ ’’ ˙ hai. Hãy thu gõ lenh tr ˙ ˙ ` ´’ ’’ ’’ ung o ô thu abc ABC roi gõ vài dòng chua ´’ ´’ ˆ ˆ ˙ các ký tu abc! ’ ˙ ˆ’ ` comm So sánh hai tap tin theo tung dòng mot và d ’a vào d ˆ u ra tiêu chuan 3 `’ ¯u ¯a ˆ ˆ ˙ ng dòng chı gap o tap tin thu nhat, hai - nhung dòng chı ˙ ´ ’ ˘ ’’ ˆ ’ cot : mot - nhu ´’ ˆ ˜’ ˜’ ˆ ˆ gap o tap tin thu hai, và ba - nhung˙dòng có trong ca hai tap tin. ˙’˙ ˙ ’ ˘ ’ˆ ´’ ˜’ ˆ ˙ ˙ ˙ Dinh dang tap tin hay noi dung cua d ˆ u tiêu chuan d ˆ’ in ´ n.ˆ’ ¯e a ` ’ ¯a pr ˆ ˆ ˆ ¯˙ ˙ ˙’ ˙ Trình soan thao tap tin theo dòng, su dung d ˆ’ thuc hien mot vài bien d ˆ’i ´ ¯o ’’ sed ¯e ’ ˆ ˆ ˆ ˆ ˙ u d `u vào (lay tu tap tin hay ˙d `u vào tiêu chuan) ˙ ˙ ˙ ’˙ ´ `’ ˆ trên du lie ¯a ˜’ ˆ ˆ ¯a ˆ ˆ ˆ ˙ ˙ ` ` ˆ ˘ ’’ ˜’ ˆ Mot d ˆ u loc d ˘ c biet, câu lenh tee, nhân d du lieu d ˆ u vào, mot mat gui du lieu này ¯ôi ˜’ ˆ ¯a ˆ ¯a ¯a ˆ ˆ ˙u ra tiêu chuan, mat khác˙ghi nó (du lieu) vào tap ˙ (nguoi dùng can d ˘ t tên). De thay ˙ ˙’ ˙ ˘ ˙ `˙ ˙˜ ´ d´ n d ˆ ˆ` ˆ tin ’`’ ˜’ ˆ ¯e ¯a ˆ ¯a ˆ ˆˆ ˙ mình lenh tee tuong tu nhu nhóm ký tu chuyen huong 1>&file. ˙ ˙ ˙´ ’ ` ng theo chuc nang cua ’ ra˘ ´’ ˘ ˆ ˆ ’’ ’’ ’ ’’ Kha nang cua d ˆ u loc có the mo ˙ ˆ ng voi viec su dung các bieu thu˙c chính quy (d ˆ u khien), ´’ ˆ ’’ ˙ ˆ’ ’’ ro ˆ’ ´’ ˆ’ ` ` ’˘ ’ ¯a ¯ie ’˙chuc tìm kiem theo các˙ mau tìm kiem tu d ’n gian d´ n phuc tap và rat ´˙ ˜˙ ´ ´ ’ ¯e cho phép, ví du, to ´’ `’ ¯o ´’ ˆ ˆ ˆ ˆ ˆ ˆ ˙ ´ n, chúng ta có the nói rat nhieu ve chuyen huong và d `u loc. Nhung noi ˙ ’ ’ ’´’ ´ u muo ´ `ˆ ` phuc tap. Ne ´’ ¯a ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ’ dung này có trong phan lon các cuon sách ve UNIX và Linux (xem phan lo˙ ket). Vì va˙ ˙ ` ´ ` ˆ `’i ´ ` ˆ y, ˆ ´’ ˆ ˆ ˆ ˙ ˆ’ ` ´ ˜ `’ ’’ ¯ây chúng ta se dung o d và chuyen sang mot phan khác, d ’oc goi là "môi truong và các bien ’`’ ¯u ’ ˆ ˆ ˆ ˙ ˙˙ ’’ ˆ ’ môi truong" tao boi he vo. `’ ’ ˙ ˙ ´ ´´ ’ ˆ’ ˆ ˆˆ 3.6 Tham bien và các bien so. Môi truong cua he vo ’`’ ˙ ´ ´´ ˆ’ Khái niem tham bien trong he vo bash tuong ung voi khái niem bien so trong các ngôn ngu ’ ’ ´’ ´’ ˜’ ˆ ˆ ˆ ˆˆ ˙ thông thuong. Tên goi (hay ID) cua tham bien có the là mot tu bao gom các ký tu ˙ ˙’ ´ ` ’ lap trình ’`’ ˆ `’ ˆ ˆ ˆ ˆ ’ ˙’ ng chu cái, chu so, dau gach duoi (chı ký tu d `u tiên cua tu này không d oc là chu so), và ˙´ ˙ ˙ ´´ ´ ’ ’ `’ ba ˜’ ˜’ ˆ ˆ ˜’ ˆ ’ ¯a ¯u ’ ˆ ’’ ’ ca nhung ký tu sau: , , #, , - ˙(gach ngang), $,,˙0, _ (gach duoi). Chúng ta nói ˙rang, tham bien ` ´ ’ ˜’ ´’ ˘ ˆ ’ ’ ˙ ˙ ˙
- ´ ´´ ’ ˆ’ ˆ ˆˆ 3.6 Tham bien và các bien so. Môi truong cua he vo 35 ’`’ ˙ ˆ’ ´ ´ d ’oc xác d nh hay d ’oc d ˘ t ra, neu nguoi dùng gan cho nó mot giá tri. Giá tri có the là mot ’`’ ˘ ¯u ’ ¯i ¯u ’ ¯a ˆ ˆ ˆ ˙ trong˙rong. De nhìn thay giá tri cua tham bien, nguoi ta su dung ˙ tu $ o truoc tên cua ˙ ˙´ ˙’ ˙ ’˙ ˜ ¯ ˆ’ dòng ´ ´ ’ ký ’ ’’ ’´’ `’ ˆ ˆ ˆ ˆ ’ ’ ˙ ˙ ˙ nó. Nhu vay, lenh: ’ˆ ˆ ˙˙ kênh giao tác maikhai@fpt:/sm$ echo parameter ˆ’ hien thi tu parameter, còn lenh `’ ˆ ˙ ˙ kênh giao tác maikhai@fpt:/sm$ echo $parameter ˆ’ ´ ´ ´ ´ ¯ó ’ ’ ’ hien thi giá tri cua tham bien parameter (tat nhiên neu nhu tham bien d duoc xác d nh). ¯i ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ˙ ´ ˆ 3.6.1 Các dang tham bien khác nhau ˙ ´ ´ ´ ¯a Tham bien chia thành ba dang: tham bien vi trí, tham bien d ˘ c biet (các ký tu d ˘ c biet d nói ’ ¯a ˆ ¯ã ˆ ˆ ˆ ˆ ˙ ˙ ´ ˙ ’˙ ˆ ’ ˙˙ ˙’ ´ ´ ’’ trên chính là tên cua nhung tham bien này) và các bien so cua he vo. Tên (ID) cua tham ’ o ˜’ ˆ ˆˆ bien vi trí gom mot hay vài chu so (nhung không có tham bien vi trí ˙ Giá tri cua tham bien ´ ` ˜’ ´ ´ ´ ’ 0). ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ các tham so cho lenh, d oc d a ra khi chay he vo (tham so d `u tiên là giá tri cua tham ˙´ ˙´ ˙ ˆ’ ’ vi trí là ¯u ’ ¯u ˆ ¯a ˆ ˆ ˆ ’ ’ ˙´ n 1, tham so thu hai - ˙ ˙´ n 2, v.v. . . ). Có the dùng câu lenh set d ’ thay ˙d ’i giá tri ˙ ˙’ ´ ´’ bie tham bie ¯e ¯o ˆ ˆ ˆ ˆ ˆ ˆ ˆ cua tham bien vi trí. Giá tri cua các tham bien này cung thay d ˆ’˙ trong khi he vo thuc hien ˙ ´ ´ ’ ’ ˆ’ ’ ˆ ¯oi ˜ ˆ ˆ ˙ so (chúng ta se xem xét van d ` này o duoi). Các tham bien d ˘ c biet˙ không ˙ ˙ ˙ mot trong các hàm ´ ´ ¯e ´ ¯a ’’ ’´’ ˜ ˆ ˆ ˆˆ ˆ ˆ ˙khác hon là các mau, mà su thay the (phép the, phép hoán d ’i) chúng d oc thuc hien nhu ˙ ˙ ˜ ´ ´ gì ¯o ¯u ’ ˆ ˆ ˆ ˆ ’ˆ ’ ’ ’ ’ ˙ ˙ ˙ ˙ ’ trong bang 3.2: Các tham bien d ˘ c biet, d ’oc liet kê o bang trên, có mot d ˆ’m khác biet d là chı có the ˆ’ ´ ¯a ’’ ’ ’ ˆ ¯u ’ ˆ ˆ ¯ie ˆ ¯ó ˆ ˙ ˙ the gán các giá tri cho các tham ˙bien này. Bien ˙ ˙˙ "nhac" d´ n chúng, không ˆ’ ´ môi truong, nhìn ´ ´ ˆ ˘ ¯e ’`’ ˆ ˆ ´ n d ’oc d ˘˙ tên. Giá tri cua bien môi truong d ’oc gán nho ´ ˆ ’ ¯ó ’ tu phía he vo, d là các tham bie ¯u ’ ¯at `’ ’`’ ¯u ’ `’ ˆ ˆ ˙ dang sau: ˙˙ ˙ ˙ thao tác có ˙ kênh giao tác [user]$ name=value ˆ’ ´ ´ ´ ’ Trong d name - tên cua bien, còn value - giá tri muon gán cho bien (có the là mot ¯ó, ˆ ˆ ˆ ˆ `˙ ˙ ’ ´ ng). Tên cua bien môi truong chı có the bao gom các chu so, chu cái và không d ’oc ´ ´ ’ ’ dòng tro ’`’ ˜’ ˆ ˜’ ¯u ’ ˆ ˆ ˆ ˆ ˙ ¯ã ˆ’ ´` ˜’ ´ ` ¯o ¯oa ´ ˆ ˆ` ´ ˘ ¯a ’’ ˆ bat d ˆ u boi mot chu so. (Tin rang sau khi d c d n viet ve tham bien vi trí thì các ban d hieu ˘ ˆ ˆ tai sao mot bien môi truong không the bat˙d ˆ u boi mot chu so.) Giá tri có the là bat ky mot ˙ ´ `˙ ˙ ˙´ ` ˆ’ ˘ ¯a ’’ ˆ ˆ’ ˆ´ ˜’ ´ ’`’ ˆ ˆ ˆ ˆ ˙ ˙ban nào. Neu giá tri có chua nhung ký tu d ˘ c biet, thì can d ˘ t nó (giá tri) vào da˙u ˙ ˙ ´ ` ¯a ´ ’ dòng van ˘ ´’ ˜’ ’ ¯a ˆ ˆ ˆ ˆ ˙ ˘˙ ˙ ˙´ ˙ ˙ ´ ´ ˆ´ ngoac. Giá tri tat nhiên se không chua các dau ngoac này. Neu mot bien môi truòng d ’oc xác ˘ ´’ ˜ ¯u ’ ˆ ˆ ˆ ˆ ’ d nh, thì cung có the bi xóa bo bang lenh noi trú unset. Tap hop˙tat ca các bien này cùng voi ˙ ˙ ˙ ˙´ ˆ’ ’` ’´’ ´ ˆ ˘ ˜ ¯i ˆ ˆ ˆ ˆ ’ ˙ giá tri d gán cho ˙chúng goi là môi truong (enviroment) cua he vo. Có the xem nó (môi ˙ ˙` ˙ ˙ ˆ’ ’ ’ các ¯ã ˆ ’’ truong) nho lenh set khi không có tham so (có the can dùng d ’o˙ng ong ’set | less", ˙` ˙ ˆ’ ˆ ´ ` ¯u `’ ´ ’`’ ’ˆ ˆ ˆ ˙´ ˆ D ˆ’ ˆ’ ´ ` ´ ˆ´ ’ neu môi truong lon, có nhieu bien). ¯ e xem giá tri cua mot bien môi truong cu the, thay vì ’`’ ’`’ ˆ ˆ ˆ ’ ˙nó bien muon xem), có the ˙ ’ dung lenh ˙´ ˆ’ su ` ´ ´ ’’ dùng lenh set (khi này can tìm trong ket qua cua ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ echo: kênh giao tác [user]$ echo $name
- 36 Bash ´ ´ ¯a ’ Bang 3.2: Thay the các tham bien d ˘ c biet ˆ ˆ ˆ ˙ ˙ ´ ´ Tham bien Quy luat thay the ˆ ˆ ˆ ˙´ ’ ´ ´ ¯a `’ ˘` ´ ´’ ´ ´ * Thay the boi các tham bien vi trí, bat d ˆ u tu tham bien thu nhat. Neu su ˆ’ ˆ ˆ ˆ ˆ’ ˙ ˘ c kép, thì tham bien này se d oc thay ˙ ´ thuc hien trong dau ngoa ´ ´ thay the ’ ˆ ˜ ¯u ’ ˆ ˆ ˆ ’ boi mot tu ˙duy ˙ ´ t, mà tao ra tu tat ca các tham bien vi trí, phân cách ˙ˆ ˙ `’ ´ ’ ´ ’’ ˆ `’ ˆ nha ˆ ˙ ’ i ký tu d ˆ u tiên cu˙ bien so IFS (se nói d´ n o sau). Tuc là "$" ˙ ` ’a ´ ´ ¯e ’’ nhau bo ´’ ˜ ’ ¯a ˆˆ ˆ ’ ˙ ´ i "$1c$2c. . . ", trong d c - ký tu d `u tiên trong giá tri tuong d ’ong vo ¯u ’ ¯ó ¯aˆ ’’ ’ ’ ˘˙ ˙ ´´ ´ ´ ’ ’ cua bien so IFS. Neu giá tri cua IFS trong, hoac không d ’oc xác d nh ¯u ’ ¯i ˆˆ ˆ ˆ giá tri, thì tham bien phân cách nhau boi các khoang trang. ˙ ˙ ˙’ ˙ ´ ´ ’’ ˘ ˆ ˙´ ’ ´ ´` ´ ´’ ´ ˆ´ ´ @ Thay the boi tham bien vi trí, bat d ˆ u tu tham bien thu nhat. Neu thay the ˘ ¯a `’ ˆ’ ˆ ˆ ˆ ˆ ˙ thì moi tham bien se d oc thay the boi mot ˜ ´ ˜ ¯u ’ ´ ’’ ˆ thuc hien trong ngoac kép, ˘ ’ˆ ˆ ˆ ˆ ’ ˙riêng biet. Tuc là,˙"$@" tuong d ong voi "$1" "$2" . . . Neu không có ˙ ˙ ˙ ´ tu `’ ˆ ´’ ´’ ’ ’ ¯u ’ ˆ ’ tham bien ˙ trí, thì giá tri se không d ’oc thiet lap (tham bien se bi x ´ vi ´ˆ ´ ˜ ˜ ¯u ’ ˆ ˆ ˆ ´ bo˙ giá tri thap phân cua các tham bien vi trí. ˙ ˙ ´˙ ˙ Thay the ’’i ’ # ˆ ˆ ˆ ˙˙ ´˙ ´ ’’ ¯u `’ ´ ’ ? Thay the boi trang thái thoát ra cua câu lenh cuoi cùng trong d ’ong ong, ˆ ˆ ˆ ˆ ˙ n trong che d nen truoc. ˙ ´ ¯o ˆ ˆˆ` mà d ’oc thuc hie ’´’ ¯u ’ ’ˆ ˙ ´ ’˙ ˙ ˙ ¯u ’ ¯a ’’ ˆ - (gach ngang) Thay the boi giá tri các co, flag, d ’oc d ˘ t boi lenh noi trú set hay trong `’ ˆ’ ˆ ˙ khi chay he vo. ˙ ˙˙ ˙ ˙ ’ ˆ ˙ ´ ˙’ ´ ’ ´ $ Thay the boi so cua tien trình (PID - process identificator) ˆ’ˆ ˆ ´ boi so cua tien trình (PID) cuoi cùng trong so các câu lenh thuc ´’ ´ ´ ´ Thay the ’’ ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ `n sau. hien trong ne ˆ ˆ ˙ ´ ’’ ´ ˆ’ ’ 0 Thay the boi tên he vo hay tên cua script d ¯ang chay. Neu bash chay ˆ ˆ ˙ d thì $0 có giá tri bang tên cua tap tin này. Trong ˙ ˙ ` ’ˆ mot tap tin lenh nào ¯ó, ˘ ˆˆ ˆ truong hop nguoc lai giá tri này bang d ’ong dan d ˆ u ˙¯u d´ n he vo (ví ˙` ˙ ˙ ˘ ˙¯u `’ ˜` ` ˆ ¯a d ’ ¯e ˆ ’ ˆ ’’ ’ ’’ ˙ ˙˙ ˙ ˙ du, /bin/bash ˙ ´ ’’ ´´ ´ ’ _ (gach duoi) Thay the boi tham so cuoi cùng cua câu lenh truoc trong so các câu lenh ’´’ ’´’ ˆ ˆˆ ˆ ˆ ˆ ˙ ˙ bien hay bien so, thì se˙ su d d ’oc thuc hien (neu d lai là mot tham ´ ´ ¯ó ´´ ˜ ’’ ¯ã ¯u ’ ˆ ˆ ˆ ˆ ˆˆ ’ dung giá tri cua ˙ ˙ ˙’n ˙ ˙ ˙ ˙ ` ´ ` ’’ ’ Trong d can thay name boi tên bien (nhu vay, trong truong hop này, ban lai can phai ’`’ ¯ó, ˆ ˆ ’ˆ ˆ ’ ´ t tên cua bien muon xem). Trong so các bien, mà ban se thay trong ket qua˙cua˙ lenh set, ´˙ ˙´ ´ ´ ´ ´ ’ ’’ ˆ bie ˜ˆ ˆ ˆ ˆ ˆ ˆ ˆ ´˙ ˙` có nhung bien rat thú vi. Xin hãy chú ý d´ n, ví du, bien RANDOM. Neu thu chay vài lan liên ´´ ´ ’’ ˜’ ¯e ˆˆ ˆ ˆ ˆ ˆ ˙ ˙ ˙ ´ tiep câu lenh sau: ˆ ˆ ˙ kênh giao tác maikhai@fpt:/sw$ echo $RANDOM ˜` ´ ’ thì moi lan ban se nhan d ’oc mot giá tri moi. Nguyên nhân là vì bien này tra lai mot giá ´’ ˜ ˆ ¯u ’ ˆ ˆˆ ˆ ˆ 4˙ ˙’ ng 0˙- 32 ˙768. ˙ ˙˙ ˜ tri ngau nhiên trong khoa ˆ ˙ ´ ´ ’ ˆ’ ˆ 3.6.2 Dau nhac cua he vo ˘ ˙ ´´ ´ ´ ’´ ´ Mot trong các bien rat quan trong có tên PS1. Bien này cho biet dang cua dau nhac, mà bash ˘ ˆ ˆˆ ˆ ˆ ˆ ˙ ra trong khi cho nguoi dùng nhap câu lenh tiep theo. Theo mac d nh thì bien này d oc ˙ ˙˘ ´ ´ d ’a `’ ’`’ ¯u ¯i ¯u ’ ˆ ˆ ˆ ˆ ’ ˙ ˙ban phân phoi khác nhau˙ thuong có các script ˙ ˙ ´ ’ gán giá tri "\s-\v\$ , tuy nhiên trên các ’`’ ˆ ˙ ˜ 4 `’ ´ random là tu tieng Anh có nghıa ngau nhiên ˜ ˆ ˆ
- ´ ´´ ’ ˆ’ ˆ ˆˆ 3.6 Tham bien và các bien so. Môi truong cua he vo 37 ’`’ ˙ ´ ´’ ’’ ¯o khoi d ˆ ng (hay script d ˘ ng nhap) xác d nh lai bien này. Nói chung thì trong bash có tat ca ¯a ¯i ˆ ˆ ˆ ˙ nhac, d oc su dung trong các truong hop khác nhau. Bien PS1 d a ra dang cua dau ˙ ˙`˙ ´´ ´ ´ ’´ bon dau ˘ ¯u ’ ’’ ¯u ˆˆ ˆ ˆ ’ ’’ ’ ’ ˙` nhap˙lenh. Dau nhac thu hai, xác d nh boi bien PS2, xuat hien khi he vo ˙ ˙ ´ ´ ´ ’’ ´ ´ ˆ’ ˆ’ nhac khi he vo cho ˆ ˆ ˘ ˘ ´’ ¯i ˆ ˆ ˆˆ ’ ˙ ˙ ˙ mot vài du lieu can thiet nào d d ’ có the tiep tuc chay câu lenh ´ ˙ ¯ó ¯e ˙ ˙ ’´ ` cho nguoi dùng nhap thêm ˆ `’ ’`’ ˜’ ˆ ˆ ˆ ˆ ˆ ˆˆ ˆ (chuong trình) d goi. Theo mac d nh bien PS2 có giá tri ">". Rat có the ban d˙ nhìn thay ˙ ˙˘ ˙´ ˙ ˙´ ˆ’ ´ ¯ã ¯i ¯ã ˆ ˆ ˆ ’’ ˙ y lenh cat d ˙ d a du lieu vào tu bàn phím vào tap tin. ˙Mot ví du khác ˙’ ˙ ´ u nhac này, khi cha ˆ ´ da ˘ `’ ¯e ¯u ˜’ ˆ ˆ ˆ’ ˆ ˆ - lenh ftp, sau khi chay lenh này dau nhac se có dang nhu d nói. Dau nhac, ˙ d nh boi ˙˙ ˘ ˙˜ ˙ ˘ xác ¯i˙ ´ ´ ´ ´ ’’ ’ ¯ã ˆ ˆ ˆ ˆ ˙n PS3, su dung trong lenh select. Dau nhac, xác d nh boi bien PS4, d oc d a ra truoc ˙˙ ˙ ˙ ´ ´ ´ ’’ ´ ’’ bie ˘ ’´’ ¯i ¯u ’ ¯u ˆ ˆ ˆ ˆ ’ ’ ˙ ˙ ˙ ˙ ˜i câu lenh, trong lúc bash theo dõi quá trình thuc hien. Giá tri theo mac d nh - "+". Neu ´ mo ˘ ¯i ˆ ˆ ’ˆ ˆ ˙ ´ n, ban có the thay d ’i các bien PS1 và PS2. Khi này có the ˙ ’ dung bat ky ký ˙ ˙ ˙ ˙ ˆ’ ˆ’ su ´ ´` có mong muo ¯o ˆ ˆ ˆ ˆ ’ ˙ ˙ tu nào nhap tu bàn phím, cung nhu mot vài ký tu chuyên dùng d ˆ’ xác d nh dang dau nhac ´ ´ ˆ `’ ˘ ˜ ¯e ¯i ’ˆ ˆ ’ ’ ˙ trong ˙bang 3.3 (chı d a ra mot vài trong so chúng làm ví du, danh sách d `y ˙ ’ xem trong ˙ ˙ ˙ ´ ’ ’ ¯u nhu d ¯a ¯u ˆ ˆ ˆ ’ ’ ˙ ˙ ’ trang man cua bash - gõ lenh "man bash"). ˆ ˙ ´ ´ ’ Bang 3.3: Ký tu xác d nh dang dau nhac ˘ ¯i ˆ ’ ´ t qua thu d ’oc) ˙ ˙ ˙ ’ Cum ký tu Giá tri (ke ¯u ’ ˆ ’ ˙ ˙ ˙ ˙ \a Tín hieu âm thanh (mã ASCII 07) ˆ ˙’ \d Thoi gian o dang "Thu, tháng, ngày", ví du, Sun, Dec, 26. `’ ´’ ’ ˙ ˙ Tên máy (hostname) d´ n dau cham d ˆ u tiên. ¯e ´ ´ ¯a ` \h ˆˆ ˆ ` Tên máy d ˆ y d ’ , ví du teppi.phanthinh.com \H ¯a ¯u ˙ `’ ’’ \t Thoi gian hien thoi o dang 24 gio: HH:MM:SS (gio:phút:giây) `’ `’ `’ ˆ ˙ ˙ `’ ’’ \T Thoi gian hien thoi o dang 12 gio: HH:MM:SS `’ `’ ˆ ˙ ˙ ` `’ ’’ \@ Thoi gian hien thoi o dang 12 gio am/pm (sáng/chieu) `’ `’ ˆ ˆ ˙ ˙ ˆ’ \u Tên nguoi dùng d chay he vo, ví du teppi ’`’ ¯ã ˙˙ ˙ ` `’ ˘ ¯a `’ ´ ´` Tên d ˆ y d ’ cua thu muc làm viec hien thoi (bat d ˆ u tu goc), ví du ¯a ¯u ’ \w ˆ ˆ ˆ ’ ˙ ˙ ˙ ˙ /home/teppi82/project/l4u ˜ \W Thu muc hien thoi (không có d ’ong dan) `’ ¯u `’ ˆ ˆ ’ ˙ ´˙ ´ ˆ’ ˆ ˆ ’ ¯u ’ ’’ \$ Ký tu #, neu he vo d ’oc chay boi nguoi dùng root, và ký tu $, neu he vo ’`’ ˆ ’ ’ ˙ chay boi ˙nguoi dùng thuong. ˙ ˙` ˙ ˙ ’’ d ’oc ’`’ ¯u ’ ’’ ˙ ˙ \nnn Ký tu có mã he tám nnn ˆ ’ ˙ ˙’ \n Dòng moi (chuyen dòng) ´’ ˆ ˆ’ \s Tên he vo ´ ˆ˙ `’ ’ \# So hien thoi cua câu lenh ˆ ˆ ˙ ˙ ´ u gach nguoc (backslash) \\ Da ˆ ’’ Sau ký tu này ˙´ t ca các ký tu se không d ’oc in ra. ˙ ta ’ \[ ’˜ ¯u ’ ˆ ’ ´ t thúc˙chuoi các ký tu không d ’oc in ra.˙ ˙ ˜ \] Ke ¯u ’ ˆ ˆ ’ So thu tu cua lenh hien ˙thoi trong lich su các câu lenh d dùng. ˙ ´ ´’ ’ ’ ˆ ’’ \! `’ ¯ã ˆ ˆ ˆ ˙ ˙ ˙ ˙ ˙ ˆ’ ˆ’ ´’ˆ ´ ´’ ’ ’ ˆ So cua lenh (so thu tu cua lenh d ¯ang thuc hien trong buoi làm viec hien thoi) có the khác `’ ˆ ˆ ’ˆ ˆ ˆ ´ cua chính nó trong danh sách "lich˙ su các câu lenh", boi vì˙ danh sách còn chua ca ˙ ˙ ˙ ˙ ˙ voi so ’ ’’ ’’ ´’ ’ ´’ ˆ ˆ nhung câu lenh d d ’oc ghi lai trong tap tin lich su. Sau˙ khi giá tri cua bien d ’oc he vo d c ˙ ´ ¯u ’ ˆ ’ ¯o ’’ ’ ˜’ ¯ã ¯u ’ ˆ ˆ ˆ xong, se xay ra su thay the theo các quy luat ˙ ’’ rong trong bang trên, d ˆ ng thoi còn xay ˙ ˙ ˙´˙ ˙ ’˙ `’ ˙ ’ ra ˙ ` ˜’ ˆ mo ˆ ¯o ˆ ’ ˙ các câu lenh, trong các bieu thuc so hoc, và su chia tu (word splitting). ˙ ’ ˙´ ´ ´ su thay the trong tên `’ ˆ ˆ ˆ ’ˆ ’ ’ Chúng ta se nói d´ n nhung su thay the này o duoi.Ví du, sau˙khi thuc hien lenh (vì trong dòng ˙ ˙ ˙ ´ ’’ ’´’ ˜ ˜’ ¯eˆ ˆ ˆˆ ’ ’ ˙´ ´ ˙˘ ˙ ˙˙ ´ ´ ˘’ ’ ’ van ban có khoang trong, nên nhat thiet phai có dau ngoac): ˆ ˆ ˆ ˆ kênh giao tác ˙ [user/root]$ PS1="[\u@\h \W]\$"
- 38 Bash ´ ´˜ ´ ’’ ’ thì trong dau nhac se có dau mo ngoac vuông, tên nguoi dùng, ký hieu , tên máy, khoang ˘ ˘ ’`’ ˆ ˆ ˆ trang, tên cua thu muc hien thoi (không˙ có d ’ong dan), dau d ´ ¯óng ngoa˙c vuông, và ký hieu ˜ ´ ’ ˘ `’ ¯u `’ ˘ ˆ ˆ ˆ ˆ ’ ˙ làm viec nguoi dùng bình thuong) hay #(neu he vo chay duoi ngu˙` i ˙ ˙’ ´ ´ˆ ˆ ’ ¯ang $ (neu trên he vo d ’o ’`’ ’`’ ’´’ ˆ ˆ ˆ ’ ˙ ˙ ˙ ˙ dùng root). ´ ˆ 3.6.3 Bien môi truong PATH ’`’ ˜ ˆ´ ´ Còn mot bien cung quan trong nua có tên PATH. Bien này d ’a ra danh sách d ’ong dan¯u `’ ˆ˜ ˜’ ¯u ˆ ˆ ˙ ˙ ´ n các thu muc, mà bash se tìm kiem tap tin (truong hop riêng là các tap tin lenh) ´ dˆ ’`’ ˜ ¯e ˆ ˆ ˆ ˆ ’ ’ trong truong hop, d ’ong dan d ˆ y d ’ d´ n ta˙ tin không d ’o˙ d ’a ra. Các thu muc trong ˙ ˙ ˙ ˜ ` ˆ ¯a ¯u ¯e ˆ p ¯u ’c ¯u `’ ¯u `’ ˆ ’ ’ ’ ˙ phân cách nhau boi dau hai cham (:). Theo mac d nh bien PATH chua ˙ ˙ ˙ ’’ ´ ´ ´ danh sách này ˘ ¯i ´’ ˆ ˆ ˆ ˙˙ các thu muc /usr/local/bin, /bin, /usr/bin, /usr/X11R6/bin, tuc là có ´’ ’ ˙ D ˆ’ dang: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin: ¯ e thêm thu muc ’ ˙ danh sách này, can thuc hien câu lenh sau: ˙ ` vào ˆ ’ˆ ˆ ˙ ˙ ˙ kênh giao tác [user]$ PATH=$PATH:new_path ´ ´ ˆ’ Khi tìm kiem, he vo "luc loi" các thu muc theo d ¯úng thu tu d liet kê trong bien PATH. ´’ ’ ¯ã ˆ ˆ ˆ ’ ˙ ’ d a˙ vào danh sách này thu muc hien thoi, khi thêm vào bien PATH ˙ ˙ ˙` ˙ ´ ’ Mot chú ý nho, có the ¯u ˆ ˆ’ ˆ ˆ ’ ’ ˙t dau cham (.). Tuy nhiên, d là d `u không khuyên làm voi lý do bao mat: nguoi có ác ˙ ˙´ ´ ´ ’ mo ˆ ’`’ ¯ây ¯ie ˆ ˆ ˆ ˆ ’ ˙ ´˙ ˆ ˆ’ ¯a ´ ý có the d ˘ t vào thu muc dùng chung mot chuong trình nào d có cùng tên voi mot trong so ¯ó, ˆ ˆ ’ ’’ ’ ˙ lenh thuong˙dùng boi root, nhung thuc hien nhung chuc nang khác hoàn toàn (d ˘ c ˙ ˙ ’’ nhung câu ˆ ’`’ ´’ ˘ ˜’ ˜’ ¯a ’ˆ ’ biet nguy hiem neu thu muc hien thoi d ´’ng o d˙ u danh sách tìm kiem). ˙’ ´ `’ ¯u ’’ ¯a ˙ ˙ ` ´ ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ´ ˆ 3.6.4 Bien môi truong IFS ’`’ ´ ’’ Bien này xác d nh ký tu (cum ký tu) phân cách (Internal Field Separator), su dung trong thao ¯i ˆ ’ ’ tác phân chia tu˙ngu khi bie˙ d ˆ’i dòng lenh, mà he vo thuc hien truoc khi chay mot câu lenh nào `’ ˜’ ˙ ´ n ¯o ˙ ˆ ˙ ’’ˆ ´’ ˆ ˆ ˆ ˆ ’ d (xem duoi). Giá tri theo mac d nh cua bien này˙- "". ’˙ ´ ˙’ ˙ ˘ ˙ ˙ ˙ ´ ’´’ ˘ ¯i ´’ ¯ó ˆ ’ ˙ ˙ ", ban se nhan d oc mot ngac nhiên nho. ˙ ˙ ´ u thu gõ lenh "echo $IFS ’’ ’ Ne ˜ ˆ ¯u ’ ˆ ˆ ˆ ’ ˙ ˙ ˙ ˙ ˙ ˙ ˆ 3.6.5 Thu muc hien thoi và thu muc cá nhân `’ ’ ’ ˙ ˙ ˙ ´ ´ ’ ’ Tên cua thu muc hien thoi ghi trong bien môi truong voi tên PWD, và giá tri cua bien này thay `’ ’`’ ´’ ˆ ˆ ˆ ’ ’i sau moi lan cha˙y chuong trình cd (cung nhu moi lan thay d ˆ’i thu muc hien thoi theo bat ˜ ˆ˙ ˙ ˜ˆ ` ` ´ dˆ `’ ˜ ¯o ¯o ˆ ’ˆ ˆ ˆ ’’ ’ ˙ qua Midnight Commander). Tuong tu nhu vay tên d `˙ d ’ ˙(gom ca d ong ` ’ ¯u `’ ky cách nào, ví du, ¯ay ¯u ˆ ` ˆ ˆ ’’ ’’ ’ dan) cua thu muc˙cá nhân cua nguoi dùng, chay tien trình d cho, ghi trong bien HOME. ˙ ˙ ˜ ´ ´ ’ ’ ’`’ ¯ã ˆ ˆ ˆ ’ ˙ ˙ ˆ 3.6.6 Câu lenh export ˙ ´ ˆ’ ˆ’ Khi he vo chay mot chuong trình hay câu lenh nào d nó (he vo) cung cap cho chúng mot ¯ó, ˆ ˆ ˆ ˆ ’’ ˙ ´ n môi truong. De có the cung cap bien môi truong cho tien trình chay tu he vo, ca˙n ˙ ˙ ˙´ ˙´ ’ ’ ` ´ ` `’ ˆ ’ ˆ phan bie ’`’ ¯ ˆ ’`’ ˆ ˆ ˆ ˆ ˆ ˆ ˙ ˙ ´ gán giá tri cho bien này voi lenh export, tuc là thay vì ´’ ˆ ´’ ˆ ˙ ˙ kênh giao tác [user]$ name=value ` can gõ: ˆ
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 5
6 p | 63 | 5
-
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 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