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


Interface commandline đòi hỏi phải đánh máy rất nhiều
Đánh máy là công việc.
Không ai thích công việc này
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).

Mục Lục

Biên dịch: Vũ Dũng(vudung@mail.ru)
website:http://khigiacmoquayve.narod.ru
1-9-2005 Voronezh Russian
Hosted by uCoz