You are on page 1of 12

LINUX

Unix là một hệ điều hành máy tính mà có khả năng thực hiện nhiều hoạt động bởi nhiều
người trong cùng một thời gian.

Hệ điều hành Unix là tập hợp các chương trình mà thực hiện vai trò như một đường link
giữa máy tính và người sử dụng.

Các chương trình máy tính phân cấp các nguồn hệ thống và phối hợp tất cả các phần bên
trong của máy tính được gọi là Hệ điều hành hoặc kernel (hạt nhân).

Những người sử dụng giao tiếp với kernel thông qua một chương trình mà được biết như
là shell. Shell là một bộ biên dịch dòng lệnh, nó biên dịch các lệnh được nhập bởi người sử
dụng và chuyển đổi chúng thành một ngôn ngữ mà kernel có thể hiểu.

Unix/Linux được phát triển lần đầu tiên bởi một nhóm các nhân viên AT&T tại phòng thí
nghiệm Bell Labs, gồm có Ken Thompson, Dennis Ritchie, Douglas Mclloy và Joe Ossanna.
Có rất nhiều phiên bản Unix khác nhau trên thị trường. Solaris Unix, AIX, HP Unix và BSD
là một số ví dụ. Linux cũng là một phiên bản của Unix mà là miễn phí.
Nhiều người có thể sử dụng một máy tính Unix cùng một lúc; vì thế Unix được gọi là hệ
thống đa người dùng.
Một người sử dụng có thể chạy nhiều chương trình cùng một lúc; vì thế Unix được gọi là đa
nhiệm.

Khái niệm chính mà được thống nhất trong tất cả các phiên bản Unix gồm 4 cơ sở sau:

 Kernel: Kernel là trái tim của hệ điều hành. Nó tương tác với phần cứng và hầu hết nhiệm
vụ như quản lý bộ nhớ, quản lý file, lên chương trình nhiệm vụ.
 Shell: Shell là một tiện ích mà xử lý các yêu cầu của bạn. Khi bạn gõ một lệnh tại terminal
của bạn, shell biên dịch lệnh đó và gọi chương trình mà bạn muốn. Shell sử dụng cú pháp
chuẩn cho tất cả các lệnh. C Shell, Bourne Shell và Korn Shell là những shell được biết đến
nhiều nhất và có sẵn trong hầu hết các phiên bản Unix.
 Các lệnh và các tiện ích: Có rất nhiều lệnh và tiện ích mà bạn có thể sử dụng trong công
việc hàng ngày. cp, mv, cat và grep … là một số ví dụ của lệnh và tiện ích. Có trên 250 lệnh
tiêu chuẩn cộng với một số lệnh khác được cung cấp bởi phần mềm thứ 3. Tất cả các lệnh
này đi cùng với các tùy chọn (chức năng) của nó.
 File và thư mục: Tất cả dữ liệu trong Unix được tổ chức trong các file. Tất cả các file được
tổ chức vào trong các thư mục. Những thư mục này được tổ chức trong một cấu trúc dạng
cây được gọi như là hệ thống file.

Quản lý File
Tất cả dữ liệu trong Unix được tổ chức trong các file. Tất cả các file được tổ chức trong các
thư mục. Những thư mục này được tổ chức trong một cấu trúc cây mà được gọi là hệ
thống file.

Trong Unix, có 3 kiểu file cơ bản:

1. Ordinary File: File thường, là một file trên hệ thống mà lưu trữ dữ liệu, văn bản, hoặc
chỉ dẫn chương trình. Trong chương này, bạn sẽ được hướng dẫn cách làm việc với
những file này.

2. Directory: Thư mục, lưu giữ cả các file thường và đặc biệt. Tương tự với các thư
mục trong Windown, Mac OS, thư mục trong Unix là các folder.

3. Special File: File đặc biệt, một số file đặc biệt cung cấp quyền truy cập vào phần
cứng như các ổ cứng, CD-ROM, modem và các đầu đọc Ethernet. Một số file đặc
biệt khác là tương tự như các phím tắt và khiến bạn có thể truy cập vào một file riêng
nào đó bằng cách sử dụng các tên khác nhau.

Để liệt kê file $ls (list). Lệnh $ls –l cho kết quả nhiều thông tin hơn các file được liệt kê.

Các siêu ký tự trong Unix/Linux

Các siêu ký tự có ý nghĩa quan trọng trong Unix. Ví dụ * và ? là siêu ký tự. Chúng ta sử
dụng * để so khớp 0 hoặc nhiều ký tự, sử dụng ? để kết nối với một ký tự đơn.

Ví dụ:

$ls ch*.doc

Hiển thị tất cả các file mà tên bắt đầu với cặp ký tự ch và kết thúc với .doc.

ch01-1.doc ch010.doc ch02.doc ch03-2.doc

ch04-1.doc ch040.doc ch05.doc ch06-2.doc

ch01-2.doc ch02-1.doc c
Dưới đây ký tự * thực hiện so khớp với bất kỳ ký tự nào. Nếu bạn muốn hiển thị tất cả các
file kết thúc với .doc, thì khi đó bạn sử dụng lệnh sau:

$ls *.doc

Các file ẩn trong Unix/Linux


Một file không nhìn thấy là một file mà các ký tự đầu tiên của nó là dấu chấm (.). Các chương
trình Unix (bao gồm shell) sử dụng hầu hết những file này để giữ các thông tin cấu hình.

Một vài ví dụ về các file ẩn bao gồm:

 .profile: là script khởi tạo Bourne shell (sh)


 .kshrc: là script khởi tạo Korn shell (ksh)
 .cshrc: là script khởi tạo C shell (csh)
 .rhosts: là file định hình shell điều khiển từ xa.
Để liệt kê các file nhìn không nhìn thấy (bị ẩn), xác định tùy chọn -a cho lệnh ls:

Tạo các file trong Unix/Linux


Bạn có thể sử dụng vi editor để tạo ra các file thường có tên là filename trên hệ thống Unix.
Bạn chỉ cần đơn giản sử dụng lệnh sau:

$ vi filename

Lệnh trên sẽ mở một file với tên đã cung cấp. Bạn sẽ cần nhấn phím i để tiến vào chế độ
chỉnh sửa. Một khi bạn trong chế độ chỉnh sửa, bạn có thể bắt đầu ghi nội dung vào file như
hình dưới:

This is unix file....I created it for the first time.....

I'm going to save this content in this file.

Khi đã thực hiện xong, bạn làm theo các bước sau:

 Nhấn phím esc để thoát khỏi chế độ này


 Nhấn tổ hợp phím Shift+ZZ để thoát khỏi file hoàn toàn.
Chỉnh sửa các file trong Unix/Linux
Bạn có thể chỉnh sửa các file hiện tại bằng cách sử dụng bộ soạn vi. Chúng ta sẽ đi vào chi
tiết từng phần trong một chương hướng dẫn cụ thế. Nhưng rút gọn ở đây, bạn có thể mở
một file đang tồn tại như sau:

$ vi filename

Một khi file này được mở, bạn có thể tiến vào chế độ chỉnh sửa bằng cách nhấn phím i và
sau đó bạn có thể chỉnh sửa nội dung như bạn thích. Nếu bạn muốn di chuyển tại nơi này
hoặc nơi khác bên trong file, khi đó đầu tiên bạn cần thoát khỏi chế độ chỉnh sửa bằng cách
nhấn phím esc, sau đó bạn có thể sử dụng các phím sau để di chuyển bên trong một file:

 Phím l để di chuyển sang phía bên phải;


 Phím h để di chuyển sang bên trái;
 Phím k để di chuyển lên phía trên trong một file;
 Phím j để di chuyển xuống phía dưới trong một file
Do đó bằng cách sử dụng các phím trên, bạn có thể đặt con trỏ bất cứ vị trí nào bạn muốn
chỉnh sửa. Một khi bạn đã xác định vị trí, sau đó bạn có thể sử dụng phím i để tiến vào chế
độ chỉnh sửa. Sau khi bạn thực hiện xong, nhấn esc và cuối cùng nhấn tổ hợp
phím Shift+ZZ để thoát khỏi file hoàn toàn.

Hiển thị nội dung của một file trong Unix/Linux


Bạn có thể sử dụng lệnh cat để quan sát nội dung của một file. Dưới đây là ví dụ đơn giản
để quan sát nội dung của một file đã được tạo.

$ cat filename

This is unix file....I created it for the first time.....

I'm going to save this content in this file.

Bạn có thể hiển thị số lượng dòng bằng cách sử dụng tùy chọn -b cùng với lệnh cat như
sau:

$ cat -b filename

1 This is unix file....I created it for the first time.....

2 I'm going to save this content in this file.


$

Tính toán số lượng từ trong một file trong Unix/Linux


Bạn có thể sử dụng lệnh wc để nhận được số dòng, số lượng từ và số lượng các ký tự có
trong một file. Dưới đây là một ví dụ đơn giản để quan sát thông tin về file đã được tạo trên.

$ wc filename

2 19 103 filename

Dưới đây là chi tiết trong 4 cột:

1. Cột 1: đại diện cho tổng số dòng trong file đó;

2. Cột 2: đại diện cho tổng số từ trong file đó;

3. Cột 3: đại diện cho tổng dung lượng byte mà file chiếm. Đây là kích thước thực của
file.

4. Cột 4: đại diện cho tên file.

Sao chép các file trong Unix/Linux


Để tạo một bản sao của một file, bạn sử dụng lệnh cp. Cú pháp đơn giản của lệnh này là:

$ cp source_file destination_file

Trong đó, source_file là file chứa thông tin bạn cần sao chép đến destination_file. Dưới
đây là ví dụ để tạo một bản sao của filename đang tồn tại:

$ cp filename copyfile

Bây giờ bạn sẽ tìm thấy một copyfile trong thư mục hiện tại của bạn. File này sẽ giống hoàn
toàn filename.

Đặt lại tên file trong Unix/Linux


Để thay đổi tên của một file, bạn sử dụng lệnh mv. Cú pháp đơn giản của lệnh này là:
$ mv old_file new_file

Dưới đây là một ví dụ mà đặt lại filename đang tồn tại thành newfile:

$ mv filename newfile

Lệnh mv sẽ di chuyển tất cả file đang tồn tại vào trong file mới. Vì thế trong tình huống này
bạn sẽ chỉ tìm thấy một newfile duy nhất trong thư mục hiện tại.

Xóa file trong Unix/Linux


Để xóa một file đang tồn tại, bạn sử dụng lệnh rm. Cú pháp đơn giản của nó là:

$ rm filename

Chú ý: Có thể rất nguy hiểm khi xóa một file bởi vì nó chứa thông tin hữu ích. Vì thế bạn
cần phải cẩn thận trong khi thực hiện lệnh này. Nó đề nghị tùy chọn -i song song với lệnh rm.

Dưới đây là ví dụ mà gỡ bỏ hoàn toàn filename đang tồn tại:

$ rm filename

Bạn có thể gỡ bỏ nhiều file tại cùng một lớp như sau:

$ rm filename1 filename2 filename3

Các Unix Stream tiêu chuẩn trong Unix/Linux


Các chi tiết trong chương trình Unix có 3 stream (hoặc file) được mở cho nó khi nó bắt đầu:

1. stdin: Nó như là một đầu vào tiêu chuẩn (standard input) và phần tử mô tả file liên
kết là 0. Nó cũng được biểu diễn như là STDIN. Chương trình Unix sẽ đọc đầu vào
mặc định từ STDIN.

2. stdout: Nó như là một đầu ra tiêu chuẩn (standard output) và phần tử mô tả file liên
kết là 1. Nó cũng được biểu diễn như là STDOUT. Chương trình Unix sẽ ghi đầu ra
mặc định tại STDOUT.
3. stderr: Nó như là một lỗi tiêu chuẩn (standard error) và phần tử mô tả file liên kết là
2. Nó cũng được biểu diễn như là STDERR. Chương trình Unix sẽ ghi toàn bộ thông
tin lỗi tại STDERR.
1. Nêu sự khác biệt cơ bản giữa UNIX và Linux

Linux là hệ điều hành nguồn mở, trong khi đó UNIX lại là hệ điều hành độc quyền. Bạn
có thể sử dụng các distro của Linux hoàn toàn miễn phí, trong khi đó, phải trả tiền để
sử dụng UNIX.

2. Làm thế nào để xác định được các kết nối trong trạng thái active thông qua
Terminal?

Dùng lệnh nestat.

Với lệnh này, ta có thể hiển thị lên Terminal các kết nối internet tới máy hiện tại trong
trạng thái active.

3. Để cài đặt Linux, cần tối thiểu bao nhiêu phân vùng?

2 phân vùng, cụ thể là:

Swap Partition

Root Directory

4. Lệnh su có tác dụng gì không?

Mục đích của lệnh này là để lựa chọn các usert account khác nhau.

Bạn có thể gõ sudo su và nhập password để nhảy sang các account khác trong hệ điều
hành Linux.

5. Trình bày các cách để shutdown một máy tính cá nhân chạy linux trên giao
diện CLI?

Đó là lệnh shutdown -h time

Với tham số time, bạn sẽ thay nó bằng một số biểu thị số giây bạn muốn đếm ngược
trước khi hệ thống shutdown.

6. fork() là gì?

fork() là một system call. Nó được dùng để tạo một process (tiến trình) mới từ một
process đang hoạt động trong bộ nhớ hệ thống. Do đó, process đang hoạt động kia gọi
là process cha và process mới tạo gọi là process con.

7. Linux hỗ trợ bao nhiêu chế độ chạy (run level modes)?


Có tất cả 7 chế độ chạy. Mỗi chế độ chạy tương ứng với việc bật hoặc tắt một số
service nào đó. 7 chế độ đó xếp theo level từ 0 đến 6 như sau:

Single-User, Multi-User, Multi-User Mode with Networking, UNdefined, X11, Reboot

Bạn có thể tham khảo thêm tại đây.

Tham khảo các khóa học lập trình online, onlab, và thực tập lập trình tại TechMaster

8. Phần mềm nguồn mở là như thế nào?

Phần mềm nguồn mở tuân theo giấy phép bản quyền GPL (GPL License). Đại khái la
chúng ta có thể sử dụng miễn phí, xem source code, chỉnh sửa source code. Nhưng
không được bán lại phần mềm đó dưới bất kỳ hình thức nào.

9. Hãy liệt kê tất cả chương trình đang chạy trên hệ thống của bạn?

Với câu hỏi này, hãy dùng lệnh top trong terminal, nó sẽ trả về chi tiết của tất cả các
process đang chạy trong hệ thống.

10. BASH với DOS khác gì nhau?

BASH là một ngôn ngữ dòng lệnh trong Unix shell.

DOS là viết tắt của Disk Operating System. DOS chạy trong các hệ thống Microsoft sử
dụng giao diện CLI.

Về mặt cú pháp, các lệnh DOS không phân biệt chữ hoa - thường trong khi lệnh BASH
thì có phân biệt.

11. Làm thể nào để xem được đầy đủ bộ nhớ Swap và RAM trong môi trường
LInux?

Sử dụng lệnh free

12. Sửa đổi mã nguồn của Linux Ubuntu có phải là một hành động hợp pháp
không?

Vì Linux tuân theo GNU GPL License nên chắc chắn đó là một hành động hợp pháp.
Thậm chí có cả một cộng đồng chuyên làm việc này.

Các thay đổi sẽ được review kỹ lưỡng bởi team phát triển và team phát triển sẽ căn cứ
vào đó để cài đặt chúng vào phiên bản kế tiếp.
13. Lệnh nào dùng để liệt kê các file và thư mục trong hệ thống?

Đó là lệnh ls. ls là viết tắt của list.

14. Kernel là gì?

Kernel là nhân của hệ điều hành. Nó là phần quan trọng nhất của một OS.

Kernel cung cấp các service cơ bản nhất và các tương tác với lệnh của người dùng.

15. Kể tên các loại kernels

Có rất nhiều bản thể của kernel nhưng tựu chung lại có 3 loại chính:

1. Monolithic kernel
2. Micro Kernel
3. Hybrid Kernel

16. Chương trình nào dùng để login một cách an toàn vào Linux?

Secure Shell được dùng để login từ xa vào Linux.

Nó còn được biết đến cái tên SSH.

SSH là một giao thức mạng được mã hóa. SSH được coi như người kế thừa xuất sắc
nhất của giao thức Telnet.

17. Phân vùng nào lưu trữ system configuration trong Linux?

System configuration sẽ nằm ở /etc

18. Kể tên các distributions của Linux?

1. Linux Mint
2. Ubuntu
3. Mandriva
4. Arch
5. Slackware
6. Debian
7. Fedora

Rasbpian - hệ điều hành nhân Debian được sử dụng cho Raspi

19. Trong hệ điều hành Linux, password được lưu ở đâu?


Thư mục: /etc/shadow ?

20. Trong hệ điều hành Linux, Daemon nào điều khiển Printer Spooling process?

Đó là Line Printing Daemon, hay còn gọi là LPD

21. Kể tên các filesystem mà Linux hỗ trợ?

1. XFS
2. EXT3
3. NFS
4. RAMFS
5. EXT4
6. AUTOFS
7. NTFS

22. Tình bày hiểu biết của bạn về GNU GPL Lincese?

GNU GPL = GNU General Public License. Nó là một License cho các phần mềm miễn
phí. License này cho phép người dùng chia sẻ, sao chép và thay đổi source code của
phần mềm.

23. Lệnh xóa thư mục trong Linux?

rmdir

24. Kích thước của Swap memory trong Linux nằm trong khoảng nào?

Thông thường, kích thước của Swap memory nên bằng hoặc gâp đôi RAM.

25. Trình bày ngắn gọn về SE-Linux?

SE-Linux là viết tắt của Security Enhanced Linux. Nó được phát triển để ngăn chặn các
Daemon bất hợp pháp cũng như các Server Misconfiguration( các config server lỗi).
SE-Linux cũng cung cấp một cơ chế điều khiển truy nhập (access control), kéo theo đó
là hệ thống phân quyền cho các daemons và chương trình, quy định các file mà chúng
được phép truy cập.

26. Kể tên đối số truyền vào để giải nén file trong Linux Terminal.

Để giải nén file bằng Terminal bằng lệnh tar, bạn hãy thêm đối số -x .

27. Package Manager là gì?

Nó một tập hợp các phần mềm, liên quan trực tiếp tới các quá trình cập nhật, chỉnh
sửa, gỡ bỏ và cài mới các chương trình trong Linux. Package Manager còn được gọi là
Package Management System.
28. Tên của Bootloader được sử dụng trong Linux Ubuntu?

GRUB Boot Loader

29. Lệnh sudo có tác dụng gì?

sudo được sử dụng để cho phép người dùng sử dụng hệ điều hành Linux với mức
phân quyền cao nhất.

30. Shell là gì?

Shell là một interface nằm giữa lệnh của người dùng với hệ điều hành.

Khi người dùng gõ lệnh hoặc nhập bất kỳ thứ gì vào cửa sổ Terminal, lệnh đó sẽ được
thông dịch bởi Shell và gửi qua cho Kernel hệ điều hành dưới dạng system call.

31. Liệt kê các boot file của Linux?

Trong Linux, các file sau được load khi hệ điều hành khởi động:

 /etc/fstab
 /etc/init.d/rc.d/rcN.d
 /boot/grub/grub.conf
 /etc/initab

32. Làm thế nào để xác định Linux đang chạy ở chế độ nào trong số 7 chế độ đã
biết ?

Sử dụng lệnh runlevel trong Terminal

33. Để quản lý các port trong Linux, ta cần sử dụng lệnh nào?

Trước tiên cần cài đặt nmap.

Sau đó sử dụng lệnh namp localhost.

You might also like