Ch o mứng án vợi "Linux nhỳng iãu cỡ bÊn," cuốn thự nhĐt trong bốn
cuốn sĂch hữợng dăn giúp bÔn chuân bà cho b i thi 101 cừa LPI (Linux
Professional Institute). T rong cuốn sĂch hữợng dăn n y , chúng tổi s³ giợi
thiằu vợi bÔn bash (vọ, shell, tiảu chuân cừa Linux), ch¿ cho bÔn cĂch sỷ
dửng th nh thÔo cĂc cƠu lằnh cỡ bÊn cừa Linux nhữ ls, cp v mv, giÊi thẵch
vã ino de, liản kát "cựng" v liản kát "tữủng trững" (hard link v symbolic
links) v nhiãu thự khĂc. Khi kát thúc cuốn sĂch hữợng dăn n y bÔn s³ cõ
kián thực vỳng v ng vã nhỳng iãu cỡ bÊn khi sỷ dửng Linux, v thêm chẵ
cỏn sđn s ng bưt Ưu hồc cỡ bÊn vã nhiằm vử quÊn trà mÔng Linux. Khi kát
thúc chuội sĂch hữợng dăn n y (tĂm cuốn tĐt cÊ), bÔn s³ cõ kián thực cƯn
thiát º trð th nh QuÊn trà viản hằ thống Linux v sđn s ng Ôt tợi chựng
ch¿ LPIC bêc I cừa Linux Professional Institute náu bÔn  dỹ ành nhữ v êy .
Cuốn sĂch hữợng dăn n y (PhƯn I) nõi riảng l lỵ tữðng vợi nhỳng "ngữới
mợi" vợi Linux, ho°c vợi nhỳng ngữới muốn xem lÔi ho°c cÊi tián sỹ hiºu
biát cừa mẳnh vã nhỳng khĂi niằm cỡ bÊn cừa Linux nhữ sao ch²p (copying)
v di chuyºn (moving) têp tin, tÔo ữớng dăn "cựng" v "tữủng trững", v
sỷ dửng cĂc cƠu lằnh "chá bián" v ôn bÊn cỡ bÊn song song vợi "bông chuyãn"
(pipeline) v "chuyºn hữợng" (redirection). Dồc theo cuốn hữợng dăn n y ,
chúng tổi s³ chia s´ vợi cĂc bÔn nhỳng lới gủi ỵ , lới mĂch nữợc v mĂnh lợi º
giỳ cho cuốn hữợng dăn thảm phong phú ("ngon ôn") v cõ tẵnh thỹc dửng,
thêm chẵ cho cÊ nhỳng ai cõ kinh nghiằm sỷ dửng Linux Ăng kº. V ợi nhỳng
"ngữới bưt Ưu", nhiãu t i liằu cừa cuốn hữợng dăn n y s³ mợi, những vợi
5
6 CHìèNG 1. TRìẻC KHI B T ?U
nhỳng ngữới sỷ dửng Linux kinh nghiằm cõ thº tẳm thĐy cuốn hữợng dăn
n y nhữ mởt cĂch tuyằt với º "l m b²o thảm" kÿ nông Linux cỡ bÊn.
V ợi nhỳng ai  qua phĂt h nh (release) 1 cừa cuốn hữợng dăn n
35 trang |
Chia sẻ: oanh_nt | Lượt xem: 1298 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Cuốn sách Linux những điều cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luyằn thi chựng ch¿ LPI 101
(phỏt hành 2). PhƯn I
Giợi thiằu bði cỏc nhà phỏt triºn developerWorks IBM, nguỗn
cừa cỏc cuốn sỏch hượng dăn tuyằt với
ibm.com/developerWorks
Dàch bði: Phan Vĩnh Thành
Mửc lửc
1 Trược khi bưt đƯu 5
1.1 Vã cuốn sỏch hượng dăn này . . . . . . . . . . . . . . . . . . . 5
1.2 Vã tỏc giÊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Giợi thiằu vã bash 7
2.1 Vọ (shell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Cú phÊi bÔn đang chÔy bash khụng? . . . . . . . . . . . . . . 7
2.3 Vã bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Sỷ dửng cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Đướng dăn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Đướng dăn tuyằt đối . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Đướng dăn tương đối . . . . . . . . . . . . . . . . . . . . . . . 9
2.8 Sỷ dửng .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.9 Sỷ dửng .., tiáp theo . . . . . . . . . . . . . . . . . . . . . . . 10
2.10 Vớ dử đướng dăn tương đối . . . . . . . . . . . . . . . . . . . . 10
2.11 Hóy hiºu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.12 cd và thư mửc nhà . . . . . . . . . . . . . . . . . . . . . . . . 11
2.13 Thư mửc nhà cừa nhỳng ngưới sỷ dửng khỏc . . . . . . . . . . 12
3 Sỷ dửng cỏc cõu lằnh cừa Linux 13
3.1 Giợi thiằu ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Danh sỏch thư mửc loÔi dài . . . . . . . . . . . . . . . . . . . 13
3.3 Danh sỏch thư mửc loÔi dài, tiáp theo . . . . . . . . . . . . . . 14
3.4 Xem thư mửc . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Danh sỏch inode và danh sỏch đằ qui (recursive) . . . . . . . . 15
3.6 Hóy hiºu inode, PhƯn 1 . . . . . . . . . . . . . . . . . . . . . . 15
3.7 Hóy hiºu inode, phƯn 2 . . . . . . . . . . . . . . . . . . . . . . 16
3.8 Hóy hiºu inode, PhƯn 3 . . . . . . . . . . . . . . . . . . . . . . 16
2
MệC LệC 3
3.9 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.10 mkdir -p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.11 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.12 echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.13 echo và sỹ chuyºn hượng . . . . . . . . . . . . . . . . . . . . . 18
3.14 cat và cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.15 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 TÔo liờn kát và xúa tằp tin 21
4.1 Liờn kát cựng . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Liờn kát cựng, tiáp theo . . . . . . . . . . . . . . . . . . . . . 21
4.3 Liờn kát tưủng trưng . . . . . . . . . . . . . . . . . . . . . . . 22
4.4 Liờn kát tưủng trưng, tiáp theo . . . . . . . . . . . . . . . . . 22
4.5 Sõu hơn vã liờn kát tưủng trưng, phƯn 1 . . . . . . . . . . . . 22
4.6 Sõu hơn vã liờn kát tưủng trưng, phƯn 2 . . . . . . . . . . . . 23
4.7 Sõu hơn vã liờn kát tưủng trưng, phƯn 3 . . . . . . . . . . . . 23
4.8 Sõu hơn vã liờn kát tưủng trưng, phƯn 4 . . . . . . . . . . . . 23
4.9 Sõu hơn vã liờn kát tưủng trưng, phƯn 5 . . . . . . . . . . . . 24
4.10 Sõu hơn vã liờn kát tưủng trưng, phƯn 6 . . . . . . . . . . . . 24
4.11 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.12 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.13 rm và thư mửc . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 Sỷ dửng cỏc ký tỹ đÔi diằn (wildcard) 28
5.1 Giợi thiằu vã ký tỹ đÔi diằn . . . . . . . . . . . . . . . . . . . 28
5.2 Giợi thiằu vã ký tỹ đÔi diằn, tiáp theo . . . . . . . . . . . . . . 28
5.3 Hiºu vã khụng tương ựng . . . . . . . . . . . . . . . . . . . . . 29
5.4 Hiºu vã khụng tương ựng, tiáp theo . . . . . . . . . . . . . . . 29
5.5 Cỳ phỏp đÔi diằn: * . . . . . . . . . . . . . . . . . . . . . . . . 30
5.6 Cỳ phỏp đÔi diằn: ? . . . . . . . . . . . . . . . . . . . . . . . . 30
5.7 Cỳ phỏp đÔi diằn: [] . . . . . . . . . . . . . . . . . . . . . . . . 30
5.8 Cỳ phỏp đÔi diằn: [!] . . . . . . . . . . . . . . . . . . . . . . . 31
5.9 Đào sõu vã đÔi diằn . . . . . . . . . . . . . . . . . . . . . . . . 31
5.10 Đào sõu vã đÔi diằn, tiáp theo . . . . . . . . . . . . . . . . . . 32
5.11 Ngo°c đơn "g°p" ngo°c kộp . . . . . . . . . . . . . . . . . . . 32
4 MệC LệC
6 Tờng kát và cỏc nguỗn bờ trủ 33
6.1 Tờng kát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2 Cỏc nguỗn bờ trủ . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.3 í kián tứ phớa bÔn . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4 Lới ghi cuối sỏch . . . . . . . . . . . . . . . . . . . . . . . . . 34
Chương 1
Trược khi bưt đƯu
1.1 Vã cuốn sỏch hượng dăn này
Chào mứng đán vợi "Linux nhỳng điãu cơ bÊn," cuốn thự nhĐt trong bốn
cuốn sỏch hượng dăn giỳp bÔn chuân bà cho bài thi 101 cừa LPI (Linux
Professional Institute). Trong cuốn sỏch hượng dăn này, chỳng tụi s³ giợi
thiằu vợi bÔn bash (vọ, shell, tiờu chuân cừa Linux), ch¿ cho bÔn cỏch sỷ
dửng thành thÔo cỏc cõu lằnh cơ bÊn cừa Linux như ls, cp và mv, giÊi thớch
vã inode, liờn kát "cựng" và liờn kát "tưủng trưng" (hard link và symbolic
links) và nhiãu thự khỏc. Khi kát thỳc cuốn sỏch hượng dăn này bÔn s³ cú
kián thực vỳng vàng vã nhỳng điãu cơ bÊn khi sỷ dửng Linux, và thêm chớ
cũn sđn sàng bưt đƯu hồc cơ bÊn vã nhiằm vử quÊn trà mÔng Linux. Khi kát
thỳc chuội sỏch hượng dăn này (tỏm cuốn tĐt cÊ), bÔn s³ cú kián thực cƯn
thiát đº trð thành QuÊn trà viờn hằ thống Linux và sđn sàng đÔt tợi chựng
ch¿ LPIC bêc I cừa Linux Professional Institute náu bÔn đó dỹ đành như vêy.
Cuốn sỏch hượng dăn này (PhƯn I) núi riờng là lý tưðng vợi nhỳng "ngưới
mợi" vợi Linux, ho°c vợi nhỳng ngưới muốn xem lÔi ho°c cÊi tián sỹ hiºu
biát cừa mỡnh vã nhỳng khỏi niằm cơ bÊn cừa Linux như sao chộp (copying)
và di chuyºn (moving) têp tin, tÔo đướng dăn "cựng" và "tưủng trưng", và
sỷ dửng cỏc cõu lằnh "chá bián" văn bÊn cơ bÊn song song vợi "băng chuyãn"
(pipeline) và "chuyºn hượng" (redirection). Dồc theo cuốn hượng dăn này,
chỳng tụi s³ chia s´ vợi cỏc bÔn nhỳng lới gủi ý, lới mỏch nược và mỏnh lợi đº
giỳ cho cuốn hượng dăn thờm phong phỳ ("ngon ăn") và cú tớnh thỹc dửng,
thêm chớ cho cÊ nhỳng ai cú kinh nghiằm sỷ dửng Linux đỏng kº. Vợi nhỳng
"ngưới bưt đƯu", nhiãu tài liằu cừa cuốn hượng dăn này s³ mợi, nhưng vợi
5
6 CHƯƠNG 1. TRƯẻC KHI BT ĐU
nhỳng ngưới sỷ dửng Linux kinh nghiằm cú thº tỡm thĐy cuốn hượng dăn
này như mởt cỏch tuyằt với đº "làm bộo thờm" kÿ năng Linux cơ bÊn.
Vợi nhỳng ai đó qua phỏt hành (release) 1 cừa cuốn hượng dăn này vợi
mửc đớch khỏc hơn là chuân bà thi LPI, bÔn cú khÊ năng khụng cƯn phỏt
hành 2. Tuy nhiờn, náu bÔn cú dỹ tớnh vưủt qua kỳ thi LPI, bÔn nờn lưu ý
đồc bÊn đó ch¿nh sỷa này.
1.2 Vã tỏc giÊ
Cư trỳ tÔi Albuquerque, New Mexico, Daniel Robbins là kián trỳc trưðng
cừa Gentoo Linux, mởt bÊn phõn phối Linux cao cĐp. Tỏc giÊ cũn viát cỏc
bài bỏo, sỏch hượng dăn, nhỳng lới mỏch nược cho IBM developerWorks và
Intel Developer Services và là tỏc giÊ đúng gúp cừa vài cuốn sỏch, gỗm cú
Samba Unleashed và SuSE Linux Unleashed. Daniel thớch thỳ sỷ dửng thới
gian vợi vủ, Mary, và con gỏi, Hadassah. BÔn cú thº liờn hằ vợi Daniel qua
tÔi drobbins@gentoo.org.
Vợi nhỳng cõu họi kÿ thuêt vã nởi dung cừa cuốn hượng dăn này, liờn hằ
vợi tỏc giÊ, Daniel Robbins, tÔi drobbins@gentoo.org.
Chương 2
Giợi thiằu vã bash
2.1 Vọ (shell)
Náu bÔn đó tứng sỷ dửng hằ điãu hành Linux, bÔn biát khi đó đăng nhêp,
bÔn đưủc đún chào bði dĐu nhưc trụng như sau:
$
DĐu nhưc bÔn thĐy núi riờng cú thº trụng khỏc mởt chỳt. Nú cú thº chựa
tờn mỏy, tờn cừa thư mửc hiằn thới, ho°c cÊ hai. Tuy nhiờn, bĐt kº là giĐu
nhưc cừa bÔn trụng như thá nào, cú ký hiằu đú là chưc chưn. Chương trỡnh
in dĐu nhưc gồi là "vọ" (shell), và rĐt cú thº vọ shell cừa riờng bÔn là chương
trỡnh đưủc gồi bash.
2.2 Cú phÊi bÔn đang chÔy bash khụng?
BÔn cú thº kiºm tra xem náu bÔn đang chÔy bash hay khụng bơng cỏch gừ:
$ echo $SHELL
/bin/bash
Náu dũng trờn cho ra lội ho°c đỏp lÔi khụng giống vợi vớ dử, thỡ bÔn cú
thº đang chÔy vọ shell khỏc bash. Trong trướng hủp đú, phƯn lợn cừa cuốn
hượng dăn này văn đưủc ỏp dửng, nhưng chuyºn qua bash rĐt cú lủi cho bÔn
vợi mửc đớch chuân bà cho kỳ thi 101. (Cuốn hượng dăn tiáp theo trong chuội
này, vã quÊn trà cơ bÊn, bao hàm viằc thay đời vọ shell cho ngưới dựng bơng
cõu lằnh chsh.)
7
8 CHƯƠNG 2. GIẻI THIU V BASH
2.3 Vã bash
Bash, viát tưt cừa "Bourne-again shell"1, là vọ shell theo m°c đành trờn hƯu
hát cỏc hằ điãu hành Linux. Cụng viằc cừa vọ shell là tuõn theo cỏc cõu lằnh
cừa ngưới dựng, vỡ thá bÔn cú thº tỏc đởng qua lÔi vợi hằ điãu hành Linux
cừa bÔn. Khi bÔn nhêp xong cõu lằnh, bÔn cú thº ch¿ thà cho vọ shell exit,
thoỏt ra, hay logout, đăng xuĐt, tÔi thới điºm này bÔn s³ đưủc đưa trð lÔi dĐu
nhưc đăng nhêp.
Nhõn tiằn, bÔn cú thº đăng xuĐt bơng cỏch gừ control-D tÔi dĐu nhưc
bash.
2.4 Sỷ dửng cd
Như bÔn đó thĐy, nhỡn chơm chơm vào dĐu nhưc bash khụng phÊi là điãu
thớch thỳ nhĐt trờn thá gian :). Vỡ vêy, hóy bưt đƯu sỷ dửng bash đº "đi dÔo"
vũng quanh hằ thống tằp tin. TÔi dĐu nhưc, gừ cõu lằnh sau (khụng gừ dĐu
$ ):
$ cd /
Chỳng ta vứa núi vợi bash rơng bÔn muốn làm viằc tÔi /, đưủc biát đán
như thư mửc root ; tĐt cÊ thư mửc trờn hằ thống tÔo thành mởt cõy thư mửc,
và / đưủc xem như thư mửc cao nhĐt cừa cõy này, hay là gốc rạ (root). cd
thiát lêp thư mửc mà ð đú bÔn đang làm viằc, đưủc biát đán như "thư mửc
hiằn thới".
2.5 Đướng dăn
Đº thĐy thư mửc hiằn thới cừa bash, bÔn cú thº gừ:
$ pwd /
Trong vớ dử phớa trờn, đối số / cho cd gồi là đướng dăn (path). Đối số
thụng bỏo cho cd biát nơi chỳng ta muốn đi đán. Trong trướng hủp này núi
1Chỳ thớch cừa ngưới dàch: Bourne-again shell là mởt cỏch chơi chỳ tiáng Anh. "Bourne"
đồc giống như borne (sinh ra, đ´ ra).
2.6. ĐƯÍNG DN TUYT ĐẩI 9
riờng, đối số / là đướng dăn tuyằt đối, cú nghĩa là nú ch¿ rừ mởt và trớ đối
vợi gốc (root) cừa cõy hằ thống tằp tin.
2.6 Đướng dăn tuyằt đối
Dượi đõy là mởt số đướng dăn tuyằt đối khỏc:
/dev
/usr
/usr/bin
/usr/local/bin
Như bÔn cú thº thĐy, tĐt cÊ đướng dăn tuyằt đối cú mởt điºm chung là bưt
đƯu vợi /. Vợi đướng dăn /usr/local/bin, chỳng ta thụng bỏo cho cd chuyºn
vào thư mửc /, sau đú thư mửc usr dượi nú, và sau đú local và bin. Đướng
dăn tuyằt đối luụn luụn nhên ra bði sỹ bưt đƯu bơng /.
2.7 Đướng dăn tương đối
Mởt loÔi đướng dăn khỏc là đướng dăn tương đối. Bash, cd, và cỏc cõu lằnh
khỏc luụn luụn biờn dàch nhỳng đướng dăn này tương đối vợi thư mửc hiằn
thới. Đướng dăn tương đối khụng bao giớ bưt đƯu vợi mởt /. Vỡ thá, náu
chỳng ta đang trong thư mửc /usr.
$ cd /usr
Sau đú, chỳng ta cú thº dựng đướng dăn tương đối đº thay đời tợi thư
mửc /usr/local/bin:
$ cd local/bin
$ pwd
/usr/local/bin
2.8 Sỷ dửng ..
Đướng dăn tương đối cú thº chựa đỹng mởt hay nhiãu thư mửc "..". Thư
mửc .. là thư mửc đ°c biằt ch¿ tợi thư mửc "bố". Vỡ thá, tiáp tửc vớ dử ð
trờn:
10 CHƯƠNG 2. GIẻI THIU V BASH
$ pwd
/usr/local/bin
$ cd ..
$ pwd
/usr/local
Như bÔn cú thº thĐy, thư mửc hiằn thới cừa chỳng ta bõy giớ là /usr/local.
Chỳng ta đó "quay trð lÔi" mởt thư mửc, tương đối vợi thư mửc hiằn thới
lỳc đƯu.
2.9 Sỷ dửng .., tiáp theo
Thờm vào đú, chỳng ta cú thº thờm .. vào đướng dăn tương đối đó cú, cho
phộp đi tợi mởt thư mửc nơm "ká bờn" thư mửc đang ð, vớ dử:
$ pwd
/usr/local
$ cd ../share
$ pwd
/usr/share
2.10 Vớ dử đướng dăn tương đối
Đướng dăn tương đối cú thº khỏ phực tÔp. Sau đõy là mởt số vớ dử, cỏc thư
mửc kát quÊ khụng đưủc hiºn thà. Hóy thỷ hỡnh dung xem bÔn s³ đi tợi đõu
sau khi gừ nhỳng cõu lằnh sau:
$ cd /bin
$ cd ../usr/share/zoneinfo
$ cd /usr/X11R6/bin
$ cd ../lib/X11
$ cd /usr/bin
$ cd ../bin/../bin
Bõy giớ, hóy thỷ gừ chỳng và xem bÔn đó hỡnh dung đỳng khụng :)
2.11. HÃY HIU . 11
2.11 Hóy hiºu .
Trược khi kát thỳc bài giÊng cừa chỳng ta vã cd, cú mởt vài điãu tụi muốn
đã cêp đán. ĐƯu tiờn, cú mởt thư mửc đ°c biằt khỏc gồi là ., cú ý nghĩa "thư
mửc hiằn thới". Trong khi thư mửc này khụng đưủc sỷ dửng vợi cõu lằnh cd,
nú thướng đưủc sỷ dửng đº thỹc thi mởt số chương trỡnh trong thư mửc hiằn
thới, giống như sau:
$ ./myprog
é vớ dử trờn tằp tin cú thº thỹc thi myprog nơm tÔi thư mửc hiằn thới s³
đưủc thỹc thi.
2.12 cd và thư mửc nhà
Náu chỳng ta muốn thay đời tợi thư mửc nhà (home directory), cú thº gừ:
$ cd
Khụng cú đối số , cd s³ thay đời tợi thư mửc nhà cừa bÔn, s³ là /root cho
ngưới dựng cao cĐp (superuser) và điºn hỡnh là /home/username cho ngưới
dựng bỡnh thướng. Nhưng náu chỳng ta muốn ch¿ rừ mởt tằp tin trong thư
mửc nhà thỡ sao? Cú thº là chỳng ta muốn đưa tằp tin như là đối số cho cõu
lằnh myprog. Náu tằp tin trỳ ngử trong thư mửc nhà, cú thº gừ:
$ ./myprog /home/teppi82/myfile.txt2
Tuy nhiờn, sỷ dửng đướng dăn tuyằt đối như vêy khụng phÊi lỳc nào cũng
tiằn lủi. RĐt may, chỳng ta cú thº sỷ dửng ký tỹ ∼ (dĐu ngó) đº làm viằc
tương tỹ:
$ ./myprog ∼/myfile.txt
2chỳ thớch cừa ngưới dàch: trong vớ dử này ngưới dựng cú tờn, username, là teppi82 ;)
12 CHƯƠNG 2. GIẻI THIU V BASH
2.13 Thư mửc nhà cừa nhỳng ngưới sỷ dửng
khỏc
Bash s³ khai triºn ký tỹ ∼ đựng mởt mỡnh đº ch¿ thư mửc nhà cừa bÔn,
nhưng bÔn cũng cú thº sỷ dửng nú đº ch¿ thư mửc nhà cừa nhỳng ngưới sỷ
dửng khỏc. Vớ dử, náu chỳng ta muốn ch¿ đán tằp tin girls.txt trong thư mửc
nhà cừa James, cú thº gừ:
$ ./myprog ∼james/girls.txt
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 X11R61
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
1chỳ 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
14 CHƯƠNG 3. SÛ DệNG CÁC CÂU LNH CếA LINUX
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.
2chỳ 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.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:
16 CHƯƠNG 3. SÛ DệNG CÁC CÂU LNH CếA LINUX
$ 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/..
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.
18 CHƯƠNG 3. SÛ DệNG CÁC CÂU LNH CếA LINUX
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
3chỳ thớch cừa ngưới dàch: thụng thướng là màn hỡnh
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ừ:
20 CHƯƠNG 3. SÛ DệNG CÁC CÂU LNH CếA LINUX
$ 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
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
22 CHƯƠNG 4. TO LIấN KT VÀ XểA TP TIN
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
Các file đính kèm theo tài liệu này:
- nhap_mon_linux.pdf