Đây là những kiến thức cơ bản về unix và linux dành cho những người mới làm quen với kiểu hệ điều hành này. Loạt bài hướng dẫn cơ bản của chúng tôi sẽ giới thiệu những kiến thức cơ bản nhất về các lệnh của UNIX / Linux.
UNIX là gì?
UNIX là một hệ điều hành được phát triển vào thập kỷ 60. Nó là một hệ thống đa nhiệm, đa người dùng và ổn định đối với các máy chủ, máy trạm hoặc các laptop.
Các hệ thống UNIX cũng có một giao diện đồ họa giống (GUI) như Windows của Microsoft, tạo sự dễ dàng trong sử dụng. Tuy vậy bạn vẫn phải cần đến rất nhiều kiến thức cần thiết cho các hoạt động của UNIX, đây là các kiến thức không được mô tả bằng chương trình đồ họa, hoặc như khi không có giao diện cửa sổ, ví dụ trong một phiên telnet.
Các kiểu Unix
Có một số phiên bản khác nhau của Unix, tuy vậy chúng có nhiều điểm chung được chia sẻ với nhau. Những sự khác nhau phổ biến nhất đối với Unix là Solaris, GNU/Linux và MacOS X.
Hệ điều hành Unix
Hệ điều hành Unix được xây dựng trên ba phần chính đó là: kernel, shell và các chương trình.
Kernel
Kernel (nhân) của Unix được ví như một hub (điểm trung tâm) của hệ điều hành: nó định phần thời gian và bộ nhớ cho các chương trình, quản lý các file và vấn đề truyền thông để phục vụ cho các cuộc gọi của hệ thống.
Như một minh chứng cho cách shell và kernel làm việc cùng nhau, giả dụ một người dùng nào đó đánh rm myfile (lệnh có tác dụng xóa file có tên myfile). Shell sẽ tìm kiếm ngân hàng các file đối với file gồm chương trình rm, sau đó yêu cầu kernel, thông qua các cuộc gọi, để thực thi chương trình rm đối với file myfile. Khi quá trình xử lý rm myfile kết thúc, shell sẽ trả về dấu nhắc % của Unix cho người dùng, chỉ thị rằng nó đang ở trong trạng thái đợi các lệnh tiếp theo.
Shell
Shell làm việc như một giao diện giữa người dùng và kernel. Khi một người dùng nào đó đăng nhập, chương trình đăng nhập sẽ kiểm tra tên người dùng và mật khẩu, sau đó bắt đầu chương trình khác. Shell là một trình thông dịch dòng lệnh (CLI). Nó thông dịch các lệnh mà người dùng đánh vào và sắp xếp chúng để thực thi. Các lệnh bản thân chúng cũng là chương trình: khi chúng kết thúc, shell sẽ trả về cho người dùng một nhắc lệnh khác.
Những người dùng có kinh nghiệm có thể tùy chỉnh shell của chính bản thân họ và người dùng có thể sử dụng các shell khác trên cùng một máy tính. Các nhân viên và sinh viên trong các trường học có thể chọn tcsh shell mặc định.
tcsh shell có các tính năng giúp đỡ người dùng trong việc nhập vào các lệnh.
Filename Completion – Bằng cách đánh một phần tên của lệnh, tên file hoặc thư mục và nhấn phím [Tab], tcsh shell sẽ hoàn tất phần còn lại của tên một cách tự động. Nếu shell tìm thấy nhiều tên bắt đầu với các ký tự mà bạn đã đánh thì nó sẽ ra tín hiệu nhắc bạn đánh thêm một số ký tự nữa trước khi nhấn phím tab lại một lần nữa.
History – shell giữ một danh sách các lệnh mà bạn đã đánh trong đó. Nếu bạn cần lặp lại một lệnh nào đó, hãy sử dụng các phím con trỏ để cuộn lên hoặc xuống danh sách hoặc đánh history để xem danh sách các lệnh trước đó.
File và các qúa trình
Mọi thứ trong UNIX đều là file hoặc một quá trình.
Một quá trình là một file thực thi được nhận dạng bằng một PID duy nhất (bộ nhận dạng xử lý).
Một file là bộ sưu tập các dữ liệu bên trong. Chúng được tạo bởi người dùng sử dụng các công cụ văn bản, chạy các trình biên dịch,…
Các ví dụ về file:
-
Một tài liệu (báo cáo, bài luận,…)
-
Văn bản của chương trình đã được viết bằng một số ngôn ngữ lập trình mức cao
-
Các chỉ lệnh dễ hiểu trực tiếp cho máy và không dễ hiểu đối với những người dùng ít kinh nghiệm, ví dụ, một bộ sưu tập các số nhị phân (file nhị phân hoặc file thực thi);
-
Một thư mục, gồm có các thông tin về nội dung của nó, các thông tin này có thể là một sự trộn lẫn của các thư mục khác (thư mục con) và các file gốc.
Cấu trúc thư mục
Tất cả các file đều được nhóm cùng với nhau theo một cấu trúc thư mục. Hệ thống file được sắp xếp theo một cấu trúc có thứ bậc, giống như một cây trồng ngược. Đỉnh của kiến trúc theo truyền thống vẫn được gọi là root (viết như một dấu /)
Trong sơ đồ ở trên, chúng ta có thể thấy thư mục chủ của một sinh viên chưa tốt nghiệp “ee51vn” gồm có hai thư mục cọn (docs và pics) và một file có tên gọi report.doc.
Đường dẫn đầy đủ đến file report.doc là “/home/its/ug1/ee51vn/report.doc“
Bắt đầu với UNIX terminal
Để mở một cửa sổ UNIX terminal, bạn hãy kích vào biểu tượng “Terminal” từ menu chính của hệ điều hành.
Cửa sổ UNIX Terminal sẽ xuất hiện với dấu nhắc %, đợi để bạn nhập vào các lệnh của mình.
Các câu lệnh thực hiện với thư mục hẳn chưa đủ bởi chúng ta còn phải tương tác với các file trên hệ thống Unix. Bài này sẽ giới thiệu những lệnh cơ bản có thể thực hiện với các file.
1. Copy file
cp (copy)
cp file1 file2
là lệnh tạo một copy cho file1 trong thư mục đang làm việc hiện hành và gọi nó là file2
Những gì chúng ta sẽ thực hiện ở đây là lấy một file đã được lưu trong một vùng truy cập mở nào đó của hệ thống file và sử dụng lệnh này để copy nó vào thư mục unixstuff.
Trước tiên, cd vào thư mục unixstuff
% cd ~/unixstuff
Sau đó tại dấu nhắc lệnh bạn đánh
% cp /vol/examples/tutorial/science.txt .
Lưu ý: không được quên dấu chấm “.” ở phần cuối. Nhớ rằng trong UNIX, dấu chấm này có nghĩa là thư mục hiện hành.
Lệnh trên có nghĩa copy file science.txt vào thư mục hiện hành, vẫn giữ lại tên cũ.
(Lưu ý: thư mục /vol/examples/tutorial/ là vùng mà bất kỳ ai trong mạng cũng có thể đọc và copy.)
Bài tập 1
Tạo một backup cho file science.txt bằng cách copy nó thành một file có tên gọi science.bak
2. Chuyển file
mv (move)
mv file1 file2
Lệnh này sẽ chuyển (hoặc đặt lại tên) file1 thành file2
Để chuyển file từ địa điểm này sang một địa điểm khác, sử dụng lệnh mv. Lệnh này có hiệu lực chuyển thay vì copy file, chính vì vậy khi thực hiện lệnh bạn chỉ có một file chứ không phải hai.
Lệnh này cũng có thể được sử dụng để đặt lại tên cho một file nào đó, bằng việc chuyển một file vào cùng thư mục, nhưng tạo cho nó một tên khác.
Lúc này chúng ta sẽ chuyển file science.bak vào thư mục backup của bạn.
Trước tiên, bạn cần vào thư mục unixstuff. Sau đó, bên trong thư mục unixstuff, bạn hãy đánh
% mv science.bak backups/.
Đánh ls và ls backups để xem lệnh đã làm việc chưa
3. Xóa file và thư mục
rm (remove), rmdir (remove directory)
Để xóa một file, bạn sử dụng lệnh rm. Một ví dụ, chúng ta sẽ tạo một copy cho file science.txt sau đó xóa nó.
Bên trong thư mục unixstuff bạn đánh
% cp science.txt tempfile.txt
% ls
% rm tempfile.txt
% ls
Sử dụng lệnh để xóa một thư mục (trước tiên phải bảo đảm nó hoàn toàn trống rỗng). Hãy xóa thư mục backups. Bạn sẽ không thể xóa vì UNIX không cho phép xóa một thư mục non-empty (không rỗng).
Bài tập 2
Tạo một thư mục có tên tempstuff bằng lệnh mkdir, sao đó xóa nó bằng lệnh rmdir
4. Hiển thị nội dung của file lên màn hình
clear (clear screen)
Trước khi bắt đầu phần tiếp theo, bạn có thể xóa trống cửa sổ các lệnh trước đó để các đầu ra của lệnh tíêp theo được sáng sủa và dễ hiểu hơn.
Tại dấu nhắc lênh, đánh
% clear
Đây là lệnh xóa tất cả văn bản và để lại cho bạn dấu nhắc lệnh ở phần trên cùng của cửa sổ.
cat (concatenate)
Lệnh cat có thể được sử dụng để hiển thị nội dung của một file lên màn hình. Đánh:
% cat science.txt
Như những gì bạn có thể thấy được, một file thường dài hơn kích thước của cửa sổ, chính vì vậy các phần trên sẽ khó đọc.
less
Lệnh này sẽ viết nội dung của file lên một trang màn hình tại một thời điểm. Đánh
% less science.txt
Nhấn [space-bar] nếu bạn muốn xem trang khác, và đánh [q] nếu bạn muốn thoát khỏi trang đang đọc. Như những gì bạn có thể thấy, lệnh less này được sử dụng tốt hơn lệnh cat đối với các file dài.
head
Lệnh head viết 10 dòng đầu tiên của một file vào màn hình
Trước tiên xóa màn hình sau đó đánh
% head science.txt
Sau đó đánh tiếp
% head -5 science.txt
Bạn thấy lệnh dưới với -5 khác gì so với lệnh head trên?
tail
Lệnh tail viết 10 dòng cuối cùng của file ra màn hình
Xóa màn hình và đánh
% tail science.txt
Câu hỏi đặt ra: Bạn có thể xem 15 dòng cuối của file như thế nào?
5. Tìm kiếm nội dung của một file
Tìm kiếm đơn giản bằng sử dụng lệnh less
Sử dụng lệnh less bạn hoàn toàn có thể tìm kiếm thông qua một file văn bản cho một từ khóa nào đó (mẫu). Ví dụ, để tìm kiếm toàn bộ trong science.txt để lấy một từ ‘science’, đánh
% less science.txt
sau đó, vẫn trong lệnh less, bạn đánh một dấu [/] và theo sau là từ muốn tìm kiếm.
/science
Như bạn thấy, lệnh less có thể tìm và làm nỗi bật từ khóa. Đánh [n] để tìm kiếm từ tiếp theo.
grep
grep là một trong nhiều tiện ích UNIX chuẩn. Lệnh này tìm kiếm các file bằng từ chỉ định hoặc các mẫu. Trước tiên là xóa màn hình, sau đó đánh
% grep science science.txt
Như bạn có thể thấy, grep đã in ra một dòng có chứa có từ science.
Thử đánh
% grep Science science.txt
Lệnh grep có phân biệt ký tự thường và ký tự in hoa ví dụ như giữa Science và science.
Để bỏ qua sự phân biệt giữa các ký tự thường và in hoa này, hãy sử dụng tùy chọn –i, nghĩa là đánh thêm vào –i trước science
% grep -i science science.txt
Để tìm kiếm một cụm từ hoặc một mẫu, ban phải đặt nó bên trong dấu nháy (‘ ’). Cho ví dụ về tìm kiếm cụm từ spinning top, đánh
% grep -i ‘spinning top’ science.txt
Một số tùy chọn khác đi kèm với lệnh grep là:
-
-v hiển thị các dòng không hợp lệ
-
-n nói mỗi dòng hợp lệ trước số dòng
-
-c chỉ in tổng số dòng hợp lệ
Hãy thử một trong số chúng và xem các kết quả khác nhau như thế nào. Không được quên rằng bạn có thể sử dụng nhiều tùy chọn trong cùng một dòng lệnh. Ví dụ, số dòng không có từ science hoặc Science là:
% grep -ivc science science.txt
wc (word count)
Một tiện ích khác nữa là lệnh wc, viết tắt cho “word count”. Để thực hiện việc đếm từ trong file science.txt, đánh
% wc -w science.txt
Để tìm ra file này có bao nhiêu dòng, đánh
% wc -l science.txt
Kết luận
Lệnh | Ý nghĩa |
cp file1 file2 | copy file1 và gọi nó là file2 |
mv file1 file2 | Chuyển và đổi tên file1 thành file2 |
rm file | Xóa một file |
rmdir directory | Xóa một thư mục |
cat file | Hiển thị một file |
less file | Hiển thị file theo từng trang |
head file | Hiển thị một vài dòng đầu tiên |
tail file | Hiển thị một vài dòng cuối của file |
grep ‘từ khóa‘ file | Tìm kiếm một file bằng từ khóa |
wc file | Số lượng các dòng / từ/ ký tự trong file |
JB

Cuộc sống vẫn vậy nếu nó lấy đi thứ gì của bạn, thì thế nào nó cũng bù lại cho bạn thứ khác, chỉ có điều là bạn có chịu đi tìm hay không thôi.