Tải bản đầy đủ (.pdf) (6 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (51.28 KB, 6 trang )

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
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

×