Kiến Thức Cơ Bản Slackware Linux
Chương 5 Sử dụng Slackware Linux
5.1 Shell(vỏ)
Trong môi trường đồ họa thì interface chính
là các chương trình mà vẽ lên
các cử sổ,đường thẳng,menu...Trong môi trường câu
lệnh(dòng lệnh) thì interface là vỏ(shell)
và dùng để làm sáng tỏ các câu
lệnh.Ngay sau khi tài khoản đăng nhập thì sẽ đi vào
shell ngay lập tức.Bạn có thể làm việc ở đấy.Trong phần
này chỉ giới thiệu chung về shell và những thông tin
cần thiết về môi trường bash(Bourne
Again Shell)- được sử dụng phổ biến trong thế giới Linux.Để có
thêm thông tin hãy sử dụng man của bash(1).
5.1.1
Tài khoản sử dụng
Đăng nhập vào hệ thống
Sau khi hệ thống hoàn thành qúa trình khởi
động.Trước mặt bạn sẽ hiện ra như sau:
Welcome to Linux 2.2.14
darkstar login:
uhm..không có ai nói cho tôi biết về login?
Còn darkstar là gi?Bạn không phải lo lắng.Darkstar
chỉ là tên của máy tính theo ngầm định.Nếu
như trong qúa trình cài đặt hệ thống mà thay
đổi tên máy tính thì khi đó màn
hình login sẽ như sau:
Welcome to Linux 2.2.14
<tên mà thay đổi>
login:
Nếu như bạn đăng nhập vào hệ thống lần đầu tiên thì
bạn cần đăng nhập vào bằng root.Hệ thống hỏi bạn password.Nếu bạn
thay đổi nó trong qúa trình cài đặt
thì hãy nhập vào còn không thì
chỉ nhấn Enter là được.
Root - superuser
Như vậy root là gì?Có vai trò gì
trong hệ thống.
Có thể nói trong thế giới Unix và các hệ
thống tương tự(Linux) thì root là tài khoản
chính của hệ thống.Nó có đầy đủ các quyền
hạn trên hệ thống.Sẽ là tốt nhất nếu bạn là root.
Đó có đúng là rất tuyệt vời.Bạn cần phải
biết rằng root có thể phá hỏng hết mọi thứ nếu muốn.Bạn
có thể xem phần "Hệ thống Administrator" để xem các quyền
hạn của root(bổ sung tài khoản sử dụng,đăng nhập các
root...).Một câu nói thông minh thế này:Sử
dụng root chỉ khi nào điều đó thật cần thiết để sửa chữa
lại hệ thống.
Nếu bạn đăng nhập vào hệ thống như các tài khoản
thông thường mà bạn muốn thực hiện các lệnh nhử root
thì hãy sử dụng su(1).Bạn cần phải nhập vào mật
khẩu root.Bạn trở thành root cho đến khi kết thúc
công việc và thoát ra.Khi sử dụng su bạn có
thể trở thành bất cứ tài khoản nào nếu bạn biết mật
khẩu của nó.Ví dụ: su logan...
5.1.2 Vỏ lệnh
Chạy các chương
trình
Thật là khó có thể làm việc gì
mà không phải chạy một chương trình bào
cả.Và đừng quên là trong Linux tất cả mọi thứ đều
là các tập tin.Đối với các chương trình cũng
vậy.Mỗi một lệnh mà bạn thực hiện(nếu như không thuộc
shell) sẽ tương ứng với một tập tin.Bạn có thể chạy các
chương trình nhưng phải chỉ rõ đầy đủ đường dẫn tới
nó.
Ví dụ như su?Thực tế
nó là một tệp tin thuộc catalog /bin.Để gọi nó hãy
thực hiện /bin/su
Nhưng tại sao chỉ cần su là được mà không cần phải
chỉ ra hẳn /bin/su.Tại sao máy tính lại biết để thực
hiên...Câu trả lời là biến PATH;Hầu như shell
có biến PATH hoặc là một cái gì đó
tương tự.Trong đó chứa danh sách các catalog
mà dùng để tìm các chương trình khi
bạn nhập vào.Chính vì thế khi mà bạn chạy su
thực ra là shell đã tìm kiếm su trong các
catalog cho bạn,và khi tìm thấy sẽ thực thi
nó.Có trường hợp khi mà bạn chạy chương
trình nhưng lại nhận được thông báo "Command not
found".Điều đó có nghĩa là chương trình
mà bạn định tìm không có trong các
catalog liệt kê trong PATH(Nó có nghĩa là
chương trình không tồn tại..).Chúng ta sẽ bàn
luận về PATH chi tiết hơn ở bash.
Wildcard Matching
Thực tế thấy rằng mọi shell đều cho phép sử dụng một vài
kí hiệu thay thế,"ở đây có thể bất kì".Những
kí hiệu này gọi là "wildcards".
Phổ biến trong chúng là "*" và "?".Kí hiệu
"?" có thể thay thế bất kì một kí hiệu
nào.Chẳng hạn bạn có catalog trong đó có:example1.txt,example2.txt,và
example3.txt.Bạn muốn sao chép tất cả những tập tin
này bằng chương trình cp vào catalog /tmp
Hãy thực hiên như sau:
cp example1.txt example2.txt
example3.txt /tmp
Điều này sẽ thực sự là quá nhiều để ghi hết
câu lệnh.Có lẽ đơng giản hơn
cp example?.txt /tmp
Khi ấy "?" sẽ thay thế lần lượt là "1","2","3".Tuy nhiên
vẫn rất là nhiều.Thật là kinh khủng nếu số lượng phải thay
thế là quá lớn.Tuy nhiên bạn vẫn có thể
thoát khỏi nó bằng kí hiệu "*".
Có lẽ phải nói thêm "*" sẽ tự thay thế tất cả
các kí hiệu không có mặt.Nếu như trường hợp
bạn sử dụng "*" thay thế cho tất cả thì nó sẽ lấy
hết những gì nó gặp.
Chẳng hạn bạn có example.txt và hejaz.txt và
chúng ta muốn sao chép example.txt còn hejaz.txt để
lại.
cp example*.txt /tmp sẽ
giúp bạn làm điều này.Nhưng còn:
cp example?.txt /tmp
Tất nhiên cũng sẽ làm việc nhưng chỉ với ba tập tin
example1.txt example2.txt example3.txt mà thôi
còn example.txt(mà cần sao chép) thì
nó bỏ lại.Hic..bạn nghĩ thế nào?
Định hướng lại vào/ra và
piping
(Có cài gì đó rất hấp dẫn ở đây)
$ ps > blargh
Điều đó có nghĩa là gì.Tôi thực
hiên ps để xem có những tiến trình nào đang
hoạt động(xem phần quản lý các tiến trình).Tuy
nhiên đó không phải là điều chính
mà hãy để ý đến "> blargh".Ý nghĩa
của nó chính là thực hiện ps và ghi nội dung
thu được lên tập tin blargh.Tuy nhiên hãy chờ nhiều
điều thú vị hơn.
$ ps | less
Có nghĩa là thực hiện ps và biểu diễn qua less
$ ps >> blargh
Nó thực hiên giống như ps > blargh tuy
nhiên bổ sung vào tập tin blargh(có sẵn) nội dung
thu được tại thời điểm hiện tại.,còn nếu như blargh không
tồn tại thi nó hoàn toàn như ps > blargh.
(Chú ý:">" có nghĩa là ghi nội dung vao
blargh còn "<" có nghĩa là nội dung được lấy từ
nguồn sau đây.)
$ fromdos < dosfile.txt >
unixfile.txt
Việc kết hợp các toán tử sẽ làm cho quá
trình định hướng vào/ra chở lên hiệu quả hơn.
$ ps | tac >> blargh
Lúc này ps sẽ thực hiện và sắp sếp lai các
dòng thu được đồng thời ghi vào tập tin blargh.
Bạn có thể sử dụng tổ hợp các lệnh tuỳ ý nhưng
chú ý là chúng được thể hiện từ trái
sang phải.
5.1.3 The
Bourne Again Shell (bash)
Môi trường biến số
Hệ thống Linux như là một cuộc thử thách.Có nhiều
thứ mà cần phải quan sát,nhiều chi tiết nhỏ tham gia
vào những hoạt động thông thường của bạn với những chương
trình khác nhau(một trong số chúng thậm chí
bạn không biết rõ).Không ai muốn chỉ ra quá
nhiều tham biến đối với chương trình,chỉ ra dạng terminal
nào mà sẽ sử dụng,tên host máy tính,..
Bởi vì như liên kết cơ học,các tài khoản
nhận được những thứ gọi là environment(Bao quanh).Môi
trường này xác định điều kiện mà các chương
trình sẽ thực hiện trong đó.Một vài điều kiên
coi là tam thời.Tài khoản có thể thay đổi và
sử dụng nó cho mục đích của mình.
Thực tế cho thấy,mỗi shell có một môi trưòng biến
số (nếu như không thì có lẽ là một shell rất
là tốt).Ở đây chúng ta sẽ đưa ra các lệnh sử
dụng trong bash để làm rõ với môi trường biến số:
$ set
Bản thân của set sẽ hiển thị tất cả các môi trường
biến số cùng với các giá trị của nó tại
thời điểm tạm thời.Giống như các lệnh khác trong bash,set
cũng được sử dụng trong cácmục đích
khác.Chúng ta không đi sâu hơn bởi vì
các thông tin đó có ở trọng man của bash.
Hãy chạy set và trên màn hình sẽ như
sau:
PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:
/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='\h:\w~$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash
Chú ý rằng,trên PATH tạm thời mà
chúng ta đã nói ở trên,chúng ta
có thể thực hiên mọi chương trình thuộc catalog
đã nhớ.Đơn giản chỉ cần chỉ ra tên của chương
trình(không cần đường dẫn).
$ unset VARIABLE
Nó sẽ xoá đi nội dung được chỉ ra trong lệnh và cả
biến,bash sẽ quên rằng cái biến đấy đã tồn từng tại.
$ export VARIABLE=some_value
Bây giờ export thực sự là một lệnh có lợi.Với sự
giúp đỡ của nó bạn có thể gán biến số một
vài giá trị.Nếu như biến không tồn tại thì
nó tự động sẽ được tạo ra.Nếu như biến tồn tại thì
nó sẽ xoá nội dụng cũ đi và thay vào nội
dung mới.Nếu bạn chỉ đơn giản bổ sung thêm tên catalog
vào PATH,thì hãy thực hiện như sau:
$ export PATH=$PATH:/some/new/directory
Chú ý vào $PATH: khi bạn muốn bash thay đổi
biến(biến nó thành giá trị của nó)
thì hãy đặt dấu "$" trước tên của biến($tên
biến).Ví dụ:
$ echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:
/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
Kết thúc công việc bằng
TAB
Có lẽ bash
sẽ cứu giúp chúng ta khỏi công việc này.
Kết thúc bằng tab giống như
sau:
Bạn hãy điền tên tập tin vào.Có thể
nó có ở PATH,có thể ở catalog tam thời.Thế
nào cũng được,đó là thông tin cần thiết
đánh vào để xác định tập tin.Sau đó
hãy nhấn tab.
bash sẽ xác định xem bạn cần gì và bổ sung đầy đủ
tên tập tin cho bạn.
Ví dụ như: Catalog /usr/src chứa
hai catalog con: /usr/src/linux
và /usr/src/sendmail.Tôi muốn kiểm tra xem có
cai gì thuộc /usr/src/linux.
Tôi đánh vào ls
/usr/src/l,và nhấn TAB.Khi đó bash sẽ đưa ra ls /usr/src/linux.
Bây giờ bạn hãy nghĩ là bạn có hai
catalog /usr/src/linux và
/usr/src/linux-old.Nếu bạn chỉ đánh vào ls /usr/src/l và nhấn TAB
thì bash sẽ làm đầy đến mức có thể và
tôi nhận đươc /usr/src/linux.
Tôi có thể dừng lại như thế nào hoặc khi nhấn TAB
lần nữa bash lại hiển thị cho tôi danh sách catalog
mà đã được đánh vào.
Như vậy là không phải đánh máy quá
nhiều.Thật là tuyệt phải không.
5.1.4 Virtual
Terminal
Nếu bạn muốn làm một cái gì đấy thì bạn
phải làm một cái gì đấy.Theo ý tưởng ấy bạn
có thể vứt những cái mà đã làm được
và chuyển sang làm cái khác.Tất cả
nói chung là một hệ đa tài khoản.Bạn có thể
đăng nhập bao nhiêu tuỳ ý.Sau đó tiến hành xử
lý các công việc hoặc cũng có thể song song
làm các công việc khác.
Vấn đề là chúng ta không thể kết nối với một
vài bàn phím cùng,chuột,màn
hình với một máy tính.Và tất nhiên đại
đa số cũng không muốn điều đó.Thực tế mà
nói,việc bổ sung các thiết bị không phải là
giải pháp tốt.Còn các chương trình
thì lại có thể.Linux làm được điều này bằng
cách sử dụng các "Virtual Terminal"(VTs)
Nhấn Alt cộng với các phím hàm số(F1,...F6(trong
Slackware có 6 VT)),bạn có thể chuyển đến làm việc
trên các VT khác nhau.Các phím
hàm sẽ tương ứng với terminal của mình.Slackware sử dụng 6
VT theo ngầm định.Atl+F2 - chuyển sang VT thứ hai,Alt+F3 - chuyển sang
VT thứ ba...
Các phím hàm còn lại sử dụng trong X
session.Mỗi X session có một VT của mình,được bắt đầu từ
bẩy(Alt+F7)và cao hơn.Khi bạn ở tròng X,Atl+phím
hàm được thay bằng Ctrl+Alt+phím hàm.Chính
vì thế khi ở X mà muốn chuyển sang VT thứ ba hãy
nhấn Ctrl+Alt+F3(Để quay trở lại X hãy nhấn Alt+F7 - nếu sử dụng
X session thứ nhất).
Biên dịch: Vũ Dũng(vudung@mail.ru)
website:http://khigiacmoquayve.narod.ru
1-9-2005 Voronezh Russian