intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

nhập môn Linux cho newbie phần 2

Chia sẻ: Thái Duy Ái Ngọc | Ngày: | Loại File: PDF | Số trang:12

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

Chương 3 S d ng các câu l nh c a Linux 3.1 Gi i thi u ls Bây gi , chúng ta s xem qua câu l nh ls. R t có th là b n đã làm quen v i ls và bi t r ng ch gõ câu l nh này (không có tham s ) li t kê n i dung c a thư m c hi n th i: $ cd /usr $ ls bin doc games include info lib local sbin share src X11R6 1 B ng vi c ch rõ tùy ch n -a, b...

Chủ đề:
Lưu

Nội dung Text: nhập môn Linux cho newbie phần 2

  1. Chương 3 S d ng các câu l nh c a Linux 3.1 Gi i thi u ls Bây gi , chúng ta s xem qua câu l nh ls. R t có th là b n đã làm quen v i ls và bi t r ng ch gõ câu l nh này (không có tham s ) li t kê n i dung c a thư m c hi n th i: $ cd /usr $ ls bin doc games include info lib local sbin share src X11R6 1 B ng vi c ch rõ tùy ch n -a, b n có th th y t t c t p tin c a m t thư m c, bao g m các t p tin đư c che gi u (hiđen files): nh ng cái mà b t đ u v i .. Như b n có th th y trong ví d sau, ls -a đưa ra c các thư m c liên k t đ c bi t . và .. : $ ls -a . .. bin doc games include info lib local sbin share src X11R6 3.2 Danh sách thư m c lo i dài B n cũng có th ch rõ m t hay nhi u t p tin hay thư m c trên dòng l nh ls. N u b n ch rõ m t t p tin, ls s ch hi n th ra có t p tin đó mà thôi. N u b n 1 chú thích c a ngư i d ch: trong ví d này và m t s phía dư i, k t qu thu đư c là trên Debian Linux, k t qu trong nguyên b n có khác 13
  2. CHƯƠNG 3. S D NG CÁC CÂU L NH C A LINUX 14 ch rõ m t thư m c, ls s hi n th ra n i dung c a thư m c. Tùy ch n -l r t thu n ti n khi b n c n xem các thông tin như quy n h n (permissions), s h u (ownership), th i gian s a đ i (modification time), và kích thư c (size) trong danh sách thư m c. 3.3 Danh sách thư m c lo i dài, ti p theo Trong ví d dư i đây, chúng ta s d ng tùy ch n -l đ hi n th danh dách đ y đ c a thư m c /usr. $ ls -l /usr total 122 drwxr-xr-x 2 root root 53104 2004-08-29 02:17 bin drwxr-xr-x 2 root root 2336 2004-06-22 19:51 doc drwxr-xr-x 2 root root 3088 2004-06-01 15:44 games drwxr-xr-x 46 root root 5528 2004-06-13 16:33 include lrwxrwxrwx 1 root root 10 2004-05-31 22:29 info -> share/info drwxr-xr-x 138 root root 43384 2004-08-29 00:28 lib drwxrwsr-x 11 root staff 272 2004-06-05 04:06 local drwxr-xr-x 2 root root 6760 2004-08-29 00:28 sbin drwxr-xr-x 236 root root 6360 2004-06-22 19:31 share drwxrwsr-x 5 teppi82 src 136 2004-08-28 21:58 src drwxr-xr-x 6 root root 144 2004-05-31 22:53 X11R6 C t th nh t hi n th thông tin quy n h n cho t ng m c trong danh sách. M t chút n a tôi s gi i thích cách d ch thông tin này. C t ti p theo hi n th s liên k t (links) cho m i m c c a h th ng t p tin, chúng ta s t m th i c t l i nhưng s tr l i sau. C t th ba và c t th tư, tương ng, ngư i s h u (owner) và nhóm (group). C t th năm li t kê kích thư c. C t th sáu là "th i gian s a đ i g n nh t" ("last modified" time) hay "mtime" c a các m c. C t cu i cùng là tên g i. N u t p tin là liên k t tư ng trưng (symbolic link), b n s th y d u -> và đư ng d n t i nơi mà liên k t ch đ n.2 . 2 chú thích c a ngư i d ch: trong ví d trên info là m t trư ng h p như v y
  3. 3.4. XEM THƯ M C 15 3.4 Xem thư m c Đôi khi b n ch mu n xem thư m c, không quan tâm n i dung trong. Cho nh ng trư ng h p này, b n có th ch rõ tùy ch n -d, đ nói v i ls xem b t kỳ thư m c nào: $ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 241 root root 6488 2004-09-02 18:21 ../share drwxr-xr-x 12 root root 312 2004-05-31 22:29 /usr drwxr-xr-x 2 root root 53208 2004-09-02 18:21 /usr/bin drwxr-xr-x 2 root root 3984 2004-06-22 19:30 /usr/X11R6/bin 3.5 Danh sách inode và danh sách đ qui (recursive) Như v y b n có th s d ng -d đ xem thư m c, nhưng đ ng th i b n cũng có th dùng -R đ làm đi u ngư c l i: không ch xem n i dung thư m c, mà còn xem t t c các t p và thư m c bên trong c a thư m c đó (Xem toàn b )! Chúng tôi không đưa ra ví d nào cho tùy ch n này (vì nó thư ng to), nhưng b n có th mu n th m t vài l n câu l nh ls -R và ls -Rl đ bi t chúng làm vi c như th nào. Cu i cùng, tùy ch n -i c a ls có th s d ng đ hi n th trong danh sách s inode c a các v t th h th ng t p tin: $ ls -i /usr 685 bin 917 include 9352 local 920 src 915 doc 918 info 706 sbin 12522 X11R6 916 games 919 lib 708 share 3.6 Hãy hi u inode, Ph n 1 M i v t th trên m t h th ng t p tin đư c xác đ nh m t ch s (index) duy nh t, g i là ch s inode. Cái này có v t m thư ng, nhưng am hi u inode là c n thi t đ hi u nhi u thao tác v i h th ng t p tin. Ví d , xem xét các liên k t . và .. mà xu t hi n trong m i thư m c. Đ hi u đ y đ thư m c .. th c s là gì, đ u tiên chúng ta xem ch s inode c a /usr/local:
  4. CHƯƠNG 3. S D NG CÁC CÂU L NH C A LINUX 16 $ ls -id /usr/local 9352 /usr/local Thư m c /usr/local có ch s inode là 9352. Còn bây gi , hãy xem ch s inode c a mbox/usr/local/bin/..: $ ls -id /usr/local/bin/.. 9352 /usr/local/bin/.. 3.7 Hãy hi u inode, ph n 2 Như b n có th th y, /usr/local/bin/.. có cùng ch s inode v i /usr/local! đây là cách chúng ta ti n t i s hi u th u v i khám phá gây "s c" này. Trư c đây, chúng ta xem xét /usr/local t nó là thư m c. Bây gi , chúng ta khám phá ra inode 9352 trên th c t là thư m c, và tìm th y hai m c (g i là "liên k t") ch t i inode này. C /usr/local và /usr/local/bin/.. đ u liên k t t i inode 9352. M c dù inode 9352 ch t n t i m t nơi trên đĩa, nhi u cái có th liên k t t i nó. Inode 9352 là m c th t s trên đĩa. 3.8 Hãy hi u inode, Ph n 3 Trên th c t , chúng ta có th th y t ng s l n mà inode 9352 đư c liên k t đ n, dùng câu l nh ls -dl : $ ls -dl /usr/local drwxrwsr-x 11 root staff 272 2004-06-05 04:06 /usr/local N u nhìn vào c t th hai t bên trái, chúng ta s th y r ng thư m c /usr/local (inode 9352) đư c liên k t đ n mư i m t l n. Đây là các đư ng d n khác nhau, liên k t đ n inode này trên h đi u hành c a tôi: /usr/local /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/..
  5. 3.9. MKDIR 17 /usr/local/share/.. /usr/local/src/.. /usr/local/j2sdk1.4.2/.. /usr/local/man/.. /usr/local/include/.. 3.9 mkdir Hãy xem xét nhanh câu l nh mkdir, l nh có th s d ng đ t o thư m c m i. Ví d dư i đây t o 3 thư m c m i, co, ca, ro, t t c dư i /tmp: $ cd /tmp $ mkdir co ca ro Theo m c đ nh, câu l nh mkdir không t o thư m c m cho b n; toàn b đư ng d n t ph n t ti p theo đ n ph n t cu i cùng ph i t n t i. Vì v y, n u b n mu n t o các thư m c co/gai/dep, b n c n đưa ra ba câu l nh mkdir riêng bi t: $ mkdir co/gai/dep mkdir: cannot create directory ‘co/gai/dep’: Not a directory $ mkdir co $ mkdir co/gai $ mkdir co/gai/dep 3.10 mkdir -p Tuy nhiên, mkdir có tùy ch n -p r t thu n ti n, thông báo cho mkdir t o b t kỳ thư m c m nào n u chưa có, như b n có th th y đây: $ mkdir -p de/nhu/an/chao/ga Nói chung, không ph c t p đ p m t. Đ h c thêm v câu l nh mkdir, gõ man mkdir và đ c trang hư ng d n s d ng (manual page). Cách này cũng làm vi c v i g n như t t c các câu l nh bao hàm đây (ví d , man ls ), tr cd, vì cd g n li n (built-in) vào bash.
  6. CHƯƠNG 3. S D NG CÁC CÂU L NH C A LINUX 18 3.11 touch Bây gi , chúng ta s xem xét nhanh các câu l nh cp và mv, s d ng đ sao chép, đ i tên, và di chuy n t p tin, thư m c. Đ b t đ u cái t ng quan này, th nh t chúng ta s s d ng câu l nh touch đ t o m t t p tin trong /tmp: $ cd /tmp $ touch saochepem Câu l nh touch c p nh t "mtime" c a m t t p tin n u t p tin đó đã có (nh c l i c t th sáu trong k t qu c a ls -l ). N t t p tin không t n t i, thì m t t p tin m i, r ng s đư c t o ra. Bây gi b n đã có t p tin /tmp/saochepem v i kích thư c b ng không. 3.12 echo Bây gi khi đã có t p tin, hãy thêm vào đó m t s d li u. Chúng ta có th làm đi u này, s d ng câu l nh echo, l nh l y đ i s và in chúng thi t b ra tiêu chu n3 (standard output). Đ u tiên, ch m t mình l nh echo: $ echo "tepdautien" tepdautien 3.13 echo và s chuy n hư ng Bây gi , v n câu l nh echo v i s chuy n hư ng k t qu (output redirection): $ echo "tepdautien" > saochepem D u l n hơn nói v i v shell vi t k t qu c a echo vào t p tin saochepem. T p tin này s đư c t o ra n u chưa có, và s b vi t đè lên n u đã có. B ng cách gõ ls -l, chúng ta có th th y t p tin saochepem "dài" 11 byte, vì nó ch a t tepdautien và ký t dòng m i: $ ls -l saochepem -rw-r–r– 1 teppi82 thang 11 2004-09-02 18:56 saochepem 3 chú thích c a ngư i d ch: thông thư ng là màn hình
  7. 3.14. CAT VÀ CP 19 3.14 cat và cp Đ hi n th n i dung t p tin trên thi t b đ u cu i (terminal), s d ng câu l nh cat : $ cat saochepem tepdautien Bây gi , chúng ta có th s d ng "câu th n chú" cơ b n c a l nh cp đ t o t p tin embansao t t p tin g c saochepem: $ cp saochepem embansao D a trên s nghiên c u, chúng ta th y đây là nh ng t p tin th t s riêng r ; ch s inode c a chúng khác nhau: $ ls -i saochepem embansao 471627 embansao 471620 saochepem 3.15 mv Bây gi , hãy s d ng câu l nh mv đ đ i tên "embansao" thành "em- bichuyen". S inode c a chúng s v n không thay đ i; tuy nhiên, tên t p tin ch đ n inode đó s khác. $ mv embansao embichuyen $ ls -i embichuyen 471627 embichuyen S inode c a t p tin b chuy n s v n không thay đ i đ ng th i t p tin thu đư c n m trên cùng h th ng t p tin như t p tin ngu n. Chúng ta s có cái nhìn g n hơn v h th ng t p tin t i Ph n 3 c a chu i sách hư ng d n này. Trong khi đang nói v mv, hãy xem cách s d ng khác c a câu l nh này. mv, ngoài s cho phép chúng ta thay đ i tên t p tin, còn cho phép di chuy n m t hay nhi u t p tin t i v trí khác trong h đ ng c p các thư m c. Ví d , đ chuy n /var/tmp/teptin.txt t i /home/teppi82 (t p tin nhà c a tôi ;) tôi gõ:
  8. CHƯƠNG 3. S D NG CÁC CÂU L NH C A LINUX 20 $ mv /var/tmp/teptin.txt /home/teppi82 Sau khi gõ câu l nh này, teptin.txt s b chuy n đ n /home/teppi82/teptin.txt. Và n u /home/teppi82 n m trên h th ng t p tin khác v i /var/tmp, thì câu l nh mv s sao chép teptin.txt t i h th ng t p tin m i và xóa cái trên h th ng cũ. Như b n có th đoán đư c, khi teptin.txt b di chuy n gi a các h th ng t p tin, teptin.txt t i v trí m i s có s inode m i. Đó là vì m i h th ng t p tin có b các s inode đ c l p c a riêng mình. Chúng ta cũng có th s d ng câu l nh mv đ di chuy n nhi u t p tin t i m t thư m c đích. Ví d , đ di chuy n teptin1.txt và baibao3.txt t i /home/teppi82, tôi c n gõ: $ mv /var/tmp/teptin1.txt /var/tmp/baibao3.txt /home/teppi82
  9. Chương 4 T o liên k t và xóa t p tin 4.1 Liên k t c ng Chúng ta đã đ c p thu t ng "liên k t" khi nói đ n quan h gi a hai thư m c (tên chúng ta gõ) và inode (ch s trên h th ng t p tin mà ta thư ng hay b qua). Th c t , có hai ki u liên k t trên Linux. Ki u mà chúng ta đã th o lu n g i là liên k t c ng. M i inode có th có s liên k t c ng b t kỳ, và inode s v n còn trên h th ng t p tin cho đ n khi t t c liên k t c ng bi n m t. Khi liên k t c ng cu i cùng bi n m t và không có chương trình nào m t p đó, Linux s t đ ng xóa t p tin. Liên k t c ng m i có th t o b ng câu l nh ln : $ cd /tmp $ touch lienketdau $ ln lienketdau lienkethai $ ls -i lienketdau lienkethai 10662 lienketdau 10662 lienkethai 4.2 Liên k t c ng, ti p theo Như b n có th th y, liên k t c ng làm vi c trên c p đ inode đ ch t i m t t p tin nói riêng. Trên h đi u hành Linux, liên k t c ng có m t vài h n ch . Th nh t, b n ch có th t o liên k t c ng t i t p tin, t i thư m c thì không. Đi u này đúng; th m chí . và .. là các liên k t c ng h th ng t o ra, b n (dù là ngư i dùng "root") không có quy n t o m t cái cho riêng mình. Gi i h n 21
  10. CHƯƠNG 4. T O LIÊN K T VÀ XÓA T P TIN 22 th hai c a liên k t c ng là chúng không th n i h th ng t p tin. Có nghĩa là b n không th t o m t liên k t t /usr/bin/bash t i /bin/bash n u các thư m c / và /usr c a b n n m trên các h th ng t p tin riêng bi t. 4.3 Liên k t tư ng trưng Trên th c ti n, liên k t tư ng trưng (hay symlink ) đư c s d ng thư ng xuyên hơn liên k t c ng. Liên k t tư ng trưng là lo i m t t p tin đ c bi t, mà đó liên k t ch t i t p tin khác b ng, tên ch không tr c ti p t i inode. Liên k t tư ng trưng không ngăn ng a m t t p tin trư c s xóa b ; n u t p tin đích bi n m t, thì liên k t tư ng trưng s không có giá tr s d ng, ho c b h ng. 4.4 Liên k t tư ng trưng, ti p theo Liên k t tư ng trưng có th t o b ng cách đưa tùy ch n -s t i ln. $ ln -s lienkethai lienketba $ ls -l lienketdau lienkethai lienketba lrwxrwxrwx 1 teppi82 thang 10 2004-09-02 23:04 lienketba -> lienkethai -rw-r–r– 2 teppi82 thang 0 2004-09-02 19:19 lienketdau -rw-r–r– 2 teppi82 thang 0 2004-09-02 19:19 lienkethai Trong k t qu c a ls -l, có th phân bi t liên k t tư ng trưng v i các t p tin bình thư ng b ng 3 cách. Th nh t, c t đ u tiên ch a ký t l đ báo hi u liên k t tư ng trưng. Th hai, kích thư c c a liên k t tư ng trưng là s ký t c a đích (lienkethai, trong trư ng h p này). Th ba, c t cu i cùng hi n th tên t p tin đích có d u mũi tên -> đi trư c. 4.5 Sâu hơn v liên k t tư ng trưng, ph n 1 Liên k t tư ng trưng nói chung linh ho t hơn liên k t c ng. B n có th t o liên k t tư ng trưng t i b t kỳ lo i v t th nào c a h th ng t p tin, bao g m thư m c. Và b i vì liên k t tư ng trưng th c thi trên cơ s đư ng d n (không ph i inode), có th t o m t cách hoàn h o liên k t tư ng trưng mà ch đ n v t th trên m t h th ng t p tin v t lý khác. Tuy nhiên, th c t này làm cho vi c hi u liên k t tư ng trưng thêm ph c t p.
  11. 4.6. SÂU HƠN V LIÊN K T TƯ NG TRƯNG, PH N 2 23 4.6 Sâu hơn v liên k t tư ng trưng, ph n 2 Xem xét trư ng h p khi chúng ta mu n t o m t liên k t trong /tmp mà ch đ n /usr/local/bin. Chúng ta c n gõ như sau: $ ln -s /usr/local/bin bin1 $ ls -l bin1 lrwxrwxrwx 1 teppi82 thang Hay m t cách tương đương: $ ln -s ../usr/local/bin bin2 $ ls -l bin2 lrwxrwxrwx 1 teppi82 thang 16 2004-09-02 23:05 bin2 -> ../usr/local/bin 4.7 Sâu hơn v liên k t tư ng trưng, ph n 3 Như b n có th th y, c hai liên k t tư ng trưng cùng ch t i m t thư m c. Tuy nhiên, n u liên k t tư ng trưng th hai c a chúng ta b chuy n t i thư m c khác, nó s b "v " vì đư ng d n tương đ i: $ mkdir thumucmoi $ mv bin2 thumucmoi $ cd thumucmoi $ cd bin2 bash: cd: bin2: No such file or director Vì thư m c /tmp/usr/local/bin không t n t i, chúng ta không th chuy n t i thư m c bin2; nói cách khác, bin2 b v . 4.8 Sâu hơn v liên k t tư ng trưng, ph n 4 Vì lý do này, đôi lúc tránh vi c t o liên k t tư ng trưng v i đư ng d n tương đ i là m t ý ki n hay. Tuy nhiên, có nhi u trư ng h p liên k t tư ng trưng v i đư ng d n tương đ i l i thu n ti n. Xem xét m t ví d khi b n mu n t o tên th hai tương đương cho m t chương trình trong /usr/bin: # ls -l /usr/bin/unicode_start -rwxr-xr-x 1 root root 1061 2004-04-22 22:30 /usr/bin/unicode_start
  12. CHƯƠNG 4. T O LIÊN K T VÀ XÓA T P TIN 24 4.9 Sâu hơn v liên k t tư ng trưng, ph n 5 N u là ngư i s d ng "root", có th b n mu n t o m t tên tương đương cho "unicode_start", ví d như "u_s". Trong ví d này, chúng ta có quy n root, b ng ch ng là d u nh c bash thay đ i thành "#". Chúng ta c n quy n root vì ngư i dùng bình thư ng không th t o t p tin trong /usr/bin/. Là root, chúng ta có th t o m t tên tương đương cho unicode_start như sau: # cd /usr/bin # ln -s /usr/bin/unicode_start u_s # ls -l unicode_start -rwxr-xr-x 1 root root 1061 2004-04-22 22:30 unicode_start # ls -l u_s lrwxrwxrwx 1 root root 22 2004-09-02 23:14 u_s -> /usr/bin/unicode_start Trong ví d này, chúng ta đã t o ra liên k t tư ng trưng u_s ch t i t p tin /usr/bin/unicode_start. 4.10 Sâu hơn v liên k t tư ng trưng, ph n 6 Trong khi gi i pháp này làm vi c, nó s t o ra v n đ n u chúng ta quy t đ nh chuy n c hai t p /usr/bin/unicode_start và /usr/bin/u_s t i /usr/local/bin: # mv /usr/bin/unicode_start /usr/bin/u_s /usr/local/bin # ls -l /usr/local/bin/unicode_start -rwxr-xr-x 1 root root 1061 2004-04-22 22:30 /usr/local/bin/unicode_start # ls -l /usr/local/bin/u_s lrwxrwxrwx 1 root root 22 2004-09-02 23:14 /usr/local/bin/u_s -> /usr/bin/unicode_start Vì chúng ta đã s d ng đư ng d n tuy t đ i trong liên k t tư ng trưng, u_s v n còn ch t i /usr/bin/unicode_start, cái đã không còn t n t i n a vì /usr/bin/unicode_start đã b di chuy n t i /usr/local/bin. Có nghĩa là bây gi u_s là m t liên k t b v . C đư ng d n tuy t đ i và đư ng d n tương đ i trong liên k t tư ng trưng đ u có giá tr riêng c a mình, và b n nên s d ng m t lo i đư ng d n thích h p v i nhu c u c a
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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