Tải bản đầy đủ (.docx) (32 trang)

Quản trị hệ thống linux (LPI12)

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 (927.25 KB, 32 trang )

MỤC LỤC

1


DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG

2


TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX
1. Cài đặt hệ điều hành Ubuntu (server)
Bước 1: Chọn ngôn ngữ

Bước 2: Chọn Install ubuntu server

Bước 3: Chọn ngôn ngữ cho hệ thống

3


Bước 4: Chọn vị trí hoặc tên quốc gia

Bước 5: Chọn “NO”

Bước 6: Chọn ngôn ngữ bàn phím

4



Bước 7: Đặt tên cho hệ điều hành

Bước 8: Đặt tên User
Bước 9: Nhập password
Bước 10: Chọn “No”

Bước 11: Chọn TimeZone (chọn time zone: Ho_Chi_Minh)
Bước 12: Chọn “Guided – use entire disk”

Bước 13: Chọn Ỗ đĩa
Bước 14: Thực hiện trên ỗ đĩa đã chọn “Yes”

5


Bước 15: Chọn continue
Bước 16: Chọn LAMP server
Bước 17: Nhập password mysql
Bước 18: Kết thúc quá trình cài đặt chọn continue
Bước 19: Login vào server vừa tạo thành công

6


2. Cấu trúc thư mục của Linux

Hình 2.1. Cấu trúc cây thư mục
2.1.
/ - Root - Thư mục gốc

Mỗi tập tin đơn và thư mục được bắt đầu thư mục gốc.
Chỉ người dùng root mới có quyền ghi trong thư mục này.
Lưu ý rằng: thư mục /root là thư mục của người dùng root chứ không phải là thư
mục /.
2.2.
/bin - Các tập tin thực thi của người dùng
Chứa các tập tin thực thi.
Các lệnh thường dùng của Linux mà cần để dùng trong chế độ người dùng đơn
được lưu ở đây.
Các lệnh được sử dụng bởi tất cả người dùng trong hệ thống được lưu ở đây.
Ví dụ: ps, ls, ping, grep, cp.
2.3.
/sbin – Các tập tin thực thi của hệ thống
Giống như /bin, /sbin cũng chứa các tập tin thực thi.
Nhưng, các lệnh được lưu trong thư mục này về cơ bản được dùng cho người quản
trị và được dùng để bảo trì hệ thống.
7


Ví dụ: iptables, reboot, fdisk, ifconfig, swapon
2.4.
/etc – Các tập tin cấu hình
Chứa các tập tin cấu hình cần thiết cho tất cả các chương trình.
Nó cũng chứa các đoạn mã khởi động và tắt mà được dùng để khởi động/dừng các
chương trình đơn lẻ.
Ví dụ: /etc/resolv.conf, /etc/logrotate.conf
2.5.
/dev – Các tập tin thiết bị
Chứa các tập tin thiết bị.
Nó chứa các tập tin thiết bị đầu cuối như là USB hay bất kỳ thiết bị nào gắn vào hệ

thống.
Ví dụ: /dev/tty1, /dev/usbmon0
2.6.
/proc – Thông tin tiến trình
Chứa thông tin về các tiến trình của hệ thống.
Như các tập tin chứa thông tin về các tiến trình đang chạy. Ví dụ: /proc/{pid}
directory >>> lưu thông tin về tiến trình với pid.
Hay các tập tin hệ thống ảo với nội dung về tài nguyên hệ thống.
Ví dụ: /proc/uptime
2.7.
/var – Các tập tin biến đổi
var là viết tắt của các tập tin biến đổi.
Gồm những tập tin mà dung lượng lớn dần theo thời gian sử dụng.
Chẳng hạn - các tập tin ghi chú hệ thống (/var/log); các gói và các tập tin cơ sở dữ
liệu (/var/lib); thư điện tử (/var/mail); hàng đợi - in queues (/var/spool); các tập tin khóa
(/var/lock); các tập tin tạm được dùng khi khởi động lại (/var/tmp).
2.8.
/tmp – Thư mục chứa các tập tin tạm
Thư mục chứa các tập tin tạm được tạo bởi hệ thống và người dùng.
Các tập tin trong thư mục này bị xóa khi hệ thống khởi động lại.
2.9.
/usr – Các chương trình của người dùng
Tập trung các tập tin thực thi, thư viện, tài liệu, và mã nguồn cho các chương trình
mức độ thứ hai.
/usr/bin chứa các tập tin thực thi cho các chương trình của người dùng. Nếu không
thể tìm thấy trong thư mục /bin thì tìm trong /usr/bin. Ví dụ: at, awk, cc, less, scp
/usr/sbin chứa các tập tin thực thi cho quản trị hệ thống. Nếu không thể tìm thấy
trong /sbin thì tìm trong /usr/sbin. Ví dụ: atd, cron, sshd, useradd, userdel
/usr/lib chứa các tập tin thư viện /usr/bin và /usr/sbin
/usr/local chứa các chương trình của người dùng mà cài từ mã nguồn. Ví dụ, khi

cài Apache từ mã nguồn, nó được đưa vào thư mục /usr/local/apache2
8


2.10. /home – Thư mục người dùng
Chứa các tập tin của các người dùng trong hệ thống.
Ví dụ: /home/demons, /home/arya
2.11. /boot – Các tập tin của chương trình khởi động máy
Chứa những tập tin liên quan tới chương trình quản lý khởi động máy.
Các tập tin initrd, vmlinux, grub được lưu trong thư mục /boot
Ví dụ: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic
2.12. /lib – Các tập tin thư viện của hệ thống
Chứa các tập tin thư viện để hỗ trợ các tập tin thực thi được lưu trong /bin và /sbin
Tên của các tập tin này là ld* hay lib*.so.*
Ví dụ: ld-2.11.1.so, libncurses.so.5.7
2.13. /opt – Các ứng dụng tùy chọn hay thêm
opt là viết tắt của optional.
Chứa các ứng dụng thêm của các hãng khác nhau.
Các ứng dụng thêm nên được cài trong thư mục con của thư mục /opt/.
2.14. /mnt – Thư mục Mount
Thư mục mount tạm thời nơi mà người quản trị hệ thống có thể mount các tập tin
hệ thống.
2.15. /media – Các thiết bị tháo lắp
Thư mục chứa các mount tạm thời cho các thiết bị tháo lắp.
Ví dụ: /medica/cdrom cho CD-ROM; /media/floppy cho ổ đĩa mềm;
/media/cdrecorder cho ổ đĩa ghi CD.
2.16. /srv – Dữ liệu dịch vụ
srv là viết tắt của service.
Chứa dữ liệu liên quan tới các dịch vụ trên máy chủ.
Ví dụ: /srv/cvs chứa dữ liệu liên quan tới CVS.

3. Tìm hiểu về Grub. Mô tả quá trình khởi động HĐH Linux
3.1. Giới thiệu về Grub Boot Loader
GRUB (Grand Unified Bootloader) là một Boot loader đa dụng. Nó cho phép Boot
vào nhiều hệ điều hành trên cùng một Boot Drive. Cho nên có thể cài đặt và sử dụng
nhiều hệ điều hành trên cùng một ổ đĩa cứng.

9


Hình 3. 1. Grub Boot Loader
3.2. Quá trình làm việc của GRUB
Để có thể làm việc GRUB cần: kernel file, tên ổ đĩa cứng, phân vùng ổ cứng có
chứa kernel và initial RAM disk. GRUB có thể boot bằng 2 cách:
Trực tiếp: GRUB sẽ tìm và khởi động kernel (đây là cách mặc định trên hệ thống
Linux).
Chain Loading: GRUB sẽ load một Boot Loader khác (ví dụ NTLDR của
Microsoft Windows hoặc Boot Camp của Mac OS X.).
3.3. Cấu hình GRUB Boot Loader.
- Đối với phiên bản GRUB 2 thì:
File script thực thi menu boot nằm tại /boot/grub/grub.cfg. File
grub.cfg sẽ bị ghi đè mỗi khi cập nhật GRUB, khi thêm hoặc xoá bỏ kernel, hoặc khi
user chạy lệnh update-grub.
Các file cấu hình chính sẽ nằm trong thư mục /boot/grub.
Nếu muốn thay đổi các tham số của GRUB có thể chỉnh sửa file
/etc/default/grub hoặc các file trong thư mục /etc/grub.d/.
Thông thường các tham số mà mọi người hay sử dụng trong file /etc/default/grub
là:
GRUB_DEFAULT=0 – Nếu gán giá trị 0 thì mặc định GRUB sẽ boot vào dòng
đầu tiên trong menu. Nếu gán giá trị 1 thì mặc định GRUB sẽ boot vào dòng thứ 2.
10



GRUB_TIMEOUT=2 – Chọn thời gian hiển thị menu boot (đơn vị tính là giây).

Hình 3. 2. Các tham số trong /etc/default/grub
Nếu sử dụng dual boot Ubuntu với Windows và muốn GRUB tự động boot vào hệ
điều hành lần trước mình đã chọn. Thì thêm thông số như sau:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
4. Cách đặt IP, khai báo DNS cho máy linux
Để cấu hình địa chỉ IP tĩnh trong Linux, phải chỉnh sửa một số tập tin cấu hình
network tùy vào bản phân phối Linux đang sử dụng
4.1. Đối với Fedora/RHEL/CentOS
Trước khi cấu hình cần kiểm tra xem đang dùng card mạng tên là gì, kiểm tra bằng
cách gõ: ip addr. Sau đó, thực hiện các bước sau:
− Bước 1: Chỉnh sửa /etc/sysconfig/network-scripts/ifcfg-eth0
để thiết lập IP, subnetmask cho eth0 (Lưu ý: chỉnh sửa địa chỉ MAC
52:24:ff:ff:ff:04 cho phù hợp với card mạng đang cấu hình ):
DEVICE=eth0 # Tên card mạng
BOOTPROTO=static (dhcp) # thiết lập chế độ static ip
hoặc dhcp
HWADDR=52:24:ff:ff:ff:04 # Địa chỉ MAC
ONBOOT=yes # Khởi động cùng hệ thống
11


TYPE=Ethernet
IPADDR=192.168.1.10 # Địa chỉ IP
NETMASK=255.255.255.0 # subnet mask
− Bước 2: Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:

nameserver 8.8.8.8
nameserver 8.8.4.4
− Bước 3: Sau đó phải chạy lệnh service network restart để áp dụng cấu hình mới.
4.2. Đối với Debian/Ubuntu/LinuxMint:
− Bước 1: Chỉnh sửa /etc/network/interfaces
IP/subnetmask/default gateway (ví dụ với eth0):

để

thiết

lập

iface eth0 inet static
address 192.168.1.103
netmask 255.255.255.0
gateway 192.168.1.1
− Bước 2: Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để
phân giải:
nameserver 8.8.8.8
nameserver 8.8.4.4
− Bước 3: Sau đó phải chạy lệnh /etc/init.d/networking restart để áp
dụng cấu hình mới.
5. Các câu lệnh trong Linux và cách sử dụng
Bảng 5. 1. Một số câu lệnh trong Linux
Câu lệnh
Tên
Ý nghĩa
ls


Rmdir

ls - liệt kê nội dung (file và thư mục) trong thư mục
hiện hành.
Make Directory
mkdir <tên thư mục mới> - tạo một thư mục
mới.
Print
Working pwd - in ra đường dẫn đầy đủ đến thư mục hiện hành.
Directory
Change directory
cd <thư mục> - chuyển một thư mục thành thư
mục hiện hành cho phiên làm việc hiện tại.
Remove directory
rmdir <thư mục> - xóa một thư mục.

Rm

Remove

mkdir
pwd
Cd

List

rm <tên file> - xóa file. có thể sử dụng rm -r
<tên thư mục> để xóa thư mục và toàn bộ dữ liệu
trong thư mục đó
12



Cp

Copy

Mv

Move

Cat
Tail

Concatenate
print files
Print TAIL

Less

Print LESS

More

Find

Tar

Gzip
Unzip


Help

cp <file nguồn> <file đích> - sao chép file
từ vị trí nguồn đến vị trí đích.
Sử dụng cp -r <thư mục nguồn> đích> để sao chép thư mục và toàn bộ dữ liệu bên
trong.
mv <nguồn> <đích> - di chuyển một file hoặc thư
mục từ vị trí này sang vị trí khác. Lệnh này cũng dùng
để đổi tên file hoặc thư mục nếu như <nguồn> và
<đích> là cùng một thư mục.
and cat <tên file> - đọc và in ra nội dung của file ra
màn hình.
tail <tên file> - đọc và in ra nội dung 10 dòng
cuối cùng của file (mặc định).
Dùng tail -n N <tên file> để chỉ định in N
dòng ra màn hình.
less <tên file> - in ra nội dung của một file
theo từng trang trong trường hợp nội dung của file quá
lớn và phải đọc theo trang.
Dùng Ctrl+F để chuyển trang tiếp theo và Ctrl+B để
chuyển về trang trước.
more <tên file> - xuất hiên nội dung của tập tin
file trên màn hình theo chế độ từng trang một.
Dùng phím Enter để xuống 1 dòng; ấn phím Space để
sang thêm 1 trang; ấn phím q để thoát.
find <thư mục> -name <tên file> - tìm
kiếm file trong <thư mục> theo <tên file> .
Dùng find <thư mục> -iname <tên file>
để tìm kiếm không phân biệt hoa thường.

tar -cvf <tên-file-nén.tar> hoặc file2 ...> tạo file nén (.tar) từ các file có
sẵn.
tar -tvf <tên-file-nén.tar> - xem nội
dung file nén (.tar).
tar -xvf <tên-file-nén.tar> - giải nén
(file .tar).
gzip <tên file> - tạo file nén (.gz). Sử dụng
gzip -d <tên file> để giải nén (file .gz).
unzip <file-nén.zip> - giải nén một file nén
(.zip). Sử dụng unzip -l <file-nén.zip> để
xem nội dung file zip mà không cần giải nén.
<câu lệnh> --help - xem thông tin trợ giúp và
các tùy chỉnh của câu lệnh.
13


Whatis
Man

What
is
command
Manual

Exit
Ping
Who
Su


Uname

Free

Df

Disk space free

Ps

Processes

Top

Top processes

this whatis <tên câu lệnh> - hiển thị mô tả về câu
lệnh.
man <tên câu lệnh> - hiển thị trang hướng dẫn
cho câu lệnh.
exit - thoát khỏi phiên làm việc.
ping <địa chỉ host> ping một host từ xa
(server) bằng cách gửi các gói tin đến host đó. Nó
thường dùng để kiểm tra kết nối mạng đến server.
who - hiển thị danh sách các tài khoản đang đăng nhập
vào hệ thống.
su <tên tài khoản> chuyển sang đăng nhập
bằng một tài khoản khác. Tài khoản root có thể chuyển
sang đăng nhập bằng các tài khoản khác mà không cần
nhập mật khẩu.

uname - hiển thị ra một số thông tin hệ thống như tên
kernel, tên host, bộ xử lý, ...
Dùng lệnh uname -a để hiển thị tất cả thông tin.
free - xem thông tin về bộ nhớ: bộ nhớ đã sử dụng,
bộ nhớ còn trống trên hệ thống.
Dùng lệnh free -m để xem bộ nhớ với đơn vị KBs
hoặc free -g để xem với đơn vị GBs
df - xem thông tin về dung lượng đĩa cứng (đã sử
dụng, còn trống, ...) và các thiết bị lưu trữ khác.
Dùng lệnh df -h để xem thông tin dưới dạng human
readable (hiển thị với đơn vị KBs, GBs cho dễ đọc).
ps - hiển thị thông tin về các tiến trình đang chạy.

top - hiển thị thông tin về các tiến trình đang chạy,
sắp xếp theo hiệu suất CPU.
Có thể dùng lệnh top -u <tài khoản> để xem
thông tin các tiến trình đang chạy của tài khoản đó.
 Các lệnh lọc dữ liệu trong linux
• Lệnh Grep

grep <chuỗi> <tên file> tìm kiếm nội dung của file theo chuỗi cung cấp.
Có thể dùng grep -i <chuỗi> <tên file> để tìm kiếm không phân biệt hoa
thường hoặc grep -r <chuỗi> <tên thư mục> để tìm kiếm trong toàn thư mục
• Lệnh Cut
Lệnh cut cho phép cắt ra những cột dữ liệu mong muốn trong 1 file. chỉ cần cho nó
ký tự phân cách cột là gì và các cột dữ liệu muốn lấy.
14


Ví dụ: Muốn lấy ra cột username và userid của 4 dòng cuối cùng trong file

/etc/passwd thì gõ như sau:
$ cut -d: -f1,3 /etc/passwd | tail -4
• Kết quả:

• Nguyên bản trong /etc/passwd như sau:

• Lệnh wc
Lệnh wc (word count) cho phép đếm số từ, số dòng, số ký tự trong một file dữ liệu.
Có thể sử dụng lệnh wc với các option:
-l (line): đếm số dòng có trong file dữ liệu.
-c (character): đếm số ký tự có trong file dữ liệu, nó đếm luôn ký tự khoảng trắng
đó nha.
-w (word): đếm số từ trong một file dữ liệu.
ví dụ như muốn xem có bao nhiêu người đang đăng nhập vào máy chủ của mình
thì gõ: who | wc –l

• Lệnh sed
Lệnh sed (Stream Editor) là một công cụ mạnh mẽ cung cấp nhiều tính năng để
thao tác với dữ liệu như thay thế, xóa dòng, in ra một số dòng…
Cú pháp: sed OPTIONS... [SCRIPT] [INPUTFILE...]
Nếu không chỉ định INPUTFILE , hoặc nếu INPUTFILE là " - ", sed sẽ lọc nội
dung theo chuẩn input.
OPTION:
-n, --quiet, --silent

Ngăn chặn in tự động không gian mẫu

-e script, --expressio=script

Thêm kịch bản script vào các lệnh được thực hiện.

15


-f script-file, --file=script-file

Thêm nội dung script-file vào các lệnh được thực hiện.

--follow-symlinks

Thực hiện theo các symlinks khi xử lý tại chỗ.

-i[SUFFIX],
place[=SUFFIX]
-l N, --line-length=N

--in- Chỉnh sửa các tệp ở vị trí (tạo bản sao lưu nếu SUFFIX
được cung cấp)
Chỉ định chiều dài dây chuyền, N , cho lệnh " l ".

--POSIX

Vô hiệu hoá tất cả các phần mở rộng GNU .

-r, --regexp-extended

Sử dụng các biểu thức chính quy mở rộng trong kịch bản.

-s, --separate

--help


Xem xét các tệp như tách biệt chứ không phải là một
dòng dài liên tục duy nhất.
Tải lượng dữ liệu tối thiểu từ các tập tin đầu vào và tuôn
ra các bộ đệm đầu ra thường xuyên hơn.
Hiển thị thông báo trợ giúp và thoát.

--version

Xuất thông tin về phiên bản và thoát.

-u, --unbuffered

• Lệnh awk
Lệnh awk là một phương pháp mạnh mẽ để xử lý hoặc phân tích các tập tin văn
bản - đặc biệt là các tệp dữ liệu được tổ chức bởi dòng (hàng) và cột.
Các lệnh awk đơn giản có thể được chạy từ dòng lệnh . Các tác vụ phức tạp hơn
nên được viết dưới dạng các chương trình awk (cái gọi là kịch bản awk) vào một tệp.
Định dạng cơ bản của một lệnh awk:
awk 'pattern {action}' input-file > output-file
Ý nghĩa: lấy mỗi dòng của tập tin đầu vào
awk '{ print $4 }' table1.txt > output1.txt
Câu lệnh này lấy phần tử của cột thứ 4 của mỗi dòng và viết nó như một dòng
trong tệp tin đầu ra "output.txt". Biến '$ 4' đề cập đến cột thứ tư. Tương tự, có thể truy cập
vào cột thứ nhất, thứ hai và thứ ba, với $ 1, $ 2, $ 3, vv Theo mặc định các cột được cho
là bị ngăn cách bởi dấu cách hoặc các tab (gọi là không gian trắng). Vì vậy, nếu tệp tin
đầu vào "table1.txt" chứa những dòng này:

Sau đó, lệnh sẽ ghi các dòng sau vào tập tin đầu ra "output1.txt":


Nếu muốn tách cột ngăn cách bởi các dấu phẩy có thể dùng câu lệnh:
awk -F, '{ print $3 }' table1.txt > output1.txt
16


Khi đó, kết quả sẽ là:

• Lệnh Vim
Vim là chương trình soạn thảo chuẩn trên các hệ điều hành Unix. Nó là chương
trình soạn thảo trực quan, hoạt động dưới 2 chế độ: Chế độ lệnh (command line) và chế
độ soạn thảo (input mode).Để soạn thảo tập tin mới hoặc xem hay sửa chữa tập tin cũ ta
dùng lệnh: $vi tập-tin
Khi thực hiện, vi sẽ hiện lên màn hình soạn thảo ở chế độ lệnh. Ở chế độ lệnh, chỉ
có thể sử dụng các phím để thực hiện các thao tác như: dịch chuyển con trỏ, lưu dữ liệu,
mở tập tin...Do đó, không thể soạn thảo văn bản. Nếu muốn soạn thảo văn bản, phải
chuyển từ chế độ lệnh sang chế độ soạn thảo. Chế độ soạn thảo giúp sử dụng bàn phím để
soạn thảo nội dung văn bản.
 Chuyển sang chế độ
Dưới đây là nhóm lệnh để chuyển sang chế độ soạn thảo:
i trước dấu con trỏ
l trước ký tự đầu tiên trên dòng
a sau dấu con trỏ
A sau ký tự đầu tiên trên dòng
o dưới dòng hiện tại
O trên dòng hiện tại
r thay thế 1 ký tự hiện hành
R thay thế cho đến khi nhấn
Để chuyển ngược lại mode command ta dùng phím ESC
 Các nhóm lệnh di chuyển con trỏ
h - sang trái 1 space

l - sang phải 1 space
k - lên 1 dòng
j - xuống 1 dòng
) - cuối câu
( - đầu câu
} - đầu đoạn văn
{ - cuối đoạn văn
 Nhóm lệnh xóa
17


dw - xóa 1 từ
d^ - xóa ký tự từ con trỏ đến đầu dòng
d$ - xóa ký tự từ con trỏ đến cuối dòng
3dw - xóa 3 từ
dd - xóa dòng hiện hành
5dd - xóa 5 dòng
x - xóa 1 ký tự
 Nhóm lệnh thay thế
cw - thay thế 1 từ
3cw - thay thế 3 từ
cc - dòng hiện hành
5cc - 5 dòng
 Nhóm lệnh tìm kiếm
? tìm trở lên
/ tìm trở xuống
*/and tìm từ kế tiếp của and
*?and tìm từ kết thúc là and
*/nThe tìm dòng kế bắt đầu bằng The
n tìm hướng xuống

N tìm hướng lên
 Nhóm lệnh tìm kiếm và thay thế
:s/text1/text2/g - thay thế text1 bằng text2
:1.$s/tập tin/thư mục - thay tập tin bằng thư mục từ hàng 1
:g/one/s/1/g - thay thế one bằng 1
 Nhóm lệnh copy, paste, undo
Để copy ta dùng lệng y và để paste ta dùng lệnh p
y$ - copy từ vị trí hiện tại của cursor đến cuối cùng
yy - copy toàn bộ dòng
3yy - copy 3 dòng liên tiếp
u - Undo lại thao tác trước đó
 Thao tác trên tập tin
:w - ghi vào tập tin
:x - lưu và thoát khỏi chế độ soạn thảo
:wq - lưu và thoát khỏi chế độ soạn thảo
:w - lưu vào tập tin mới
:q - thoát nếu ko có thay đổi
18


:q! - thoát không lưu
:r - mở tập tin đọc
• Lệnh nano
Nano là một trình soạn thảo rất dễ sử dụng (dễ hơn nhiều so với vi hay emacs).
Nano cải tiến Pico, hỗ trợ UTF-8, cải tiến mầu sắc, copy văn bản mà không cần cắt, lưu
lại phiên tìm kiếm cuối, kiểm tra lỗi, canh lề, tìm kiếm trong trình duyệt file, … Nano là
một trình soạn thảo đáng tin cậy. Không giống như Pico, việc cài đặt Nano rất dễ dàng và
bạn có thể cài đặt Nano trên hầu hết các bản phân phối.
Trong Linux, bản nano thường dùng là GNU nano, phát hành theo giấy phép GPL.
Tính năng:

Nano cho phép soạn thảo kí tự với các tính năng đơn giản (mở file, lưu file, v.v...).
Do sử dụng thư viện curse hiện đại, nano đọc được các kí tự Unicode.
Từ dấu nhắc hệ thống có thể gọi nano bằng cách gõ lệnh: $ nano demo.txt
Phím tắt:
Ctrl-O: Lưu file (giữ phím Ctrl và bấm O)
Ctrl-G: Gọi trợ giúp
Ctrl-R: Mở file
Ctrl-C: Thông tin về vị trí hiện thời của con trỏ
Ctrl-X: Thoát khỏi nano
6. Tìm hiểu về permission
Sử dụng lệnh ls –la để hiện thị thông tin chi tiết về file và folder

6.1. File Types.
Ký tự đầu tiên trong dãy 10 ký tự thể hiện file types. Và có những kiểu file như
sau:
– : dấu gạch này thể hiện đó là một file bình thường. Có thể là file chứa dữ liệu,
text, hoặc file thực thi binary.
d : Chữ d thể hiện đó là một thư mục (Directory).
l : Chữ L thể hiện đó là một Link (như shortcut trong Windows).
c : Chữ c thể hiện Character devices (kiểu thiết bị như bàn phím, chuột, card màn
hình, card âm thanh…).
b : Chữ b thể hiện Block devices (dạng thiết bị lưu dữ liệu như ổ cứng, usb…).
19


s : Chữ s thể hiện Socket – một loại file đặc biệt dùng cho việc trao đổi thông tin
giữa các process.
p : Chữ p thể hiện Named pipe – dùng cho trao đổi thông tin giữa các process
6.2. File permissions
Chín ký tự tiếp theo mô tả quyền truy cập được gán cho file hoặc folder. Nó quy

định một user hoặc group được phép làm gì trên file hoặc folder đó. Phân quyền trên file
và folder là một kiến thức về bảo mật căn bản nhất trong Linux.
 Những permissions thông dụng nhất là:
• r (read) : có giá trị là 4 thể hiện quyền đọc file hoặc folder.
• w (write) : có giá trị là 2 thể hiện quyền tạo mới file trong folder hoặc là chỉnh sửa
nội dụng file.
• x (execute) : có giá trị là 1 thể hiện quyền thực thi một file.
 Những permissions trên thường được áp dụng cho các đối tượng:
• u: User
• g: Group
• o: Other or everyone
• a: All

Hình 6. 1. File permissions

20


6.3. Thay đổi permissions cho file hoặc folder.
Để thay đổi permission (phân quyền cho file hoặc folder). sử dụng lệnh chmod. Có
thể sử dụng dạng chữ hoặc số thập phân để phân quyền.
Ví dụ: Muốn phân quyền trên file text.txt như sau:
User sở hữu file text.txt có quyền đọc, viết, thực thi.
Group sở hữu file text.txt có quyền đọc, viết, thực thi.
Other user không có quyền gì cả.
chmod 770 text.txt
hoặc
chmod ug+rwx,o-rwx text.txt
6.4. Khái niệm về Umask
Umask được dùng để phân quyền mặc định cho file hoặc folder khi nó vừa được

tạo ra.
Mặc định thì: Giá trị umask là 0002.
Khi tạo ra một file permission sẽ là 0666 – 0002 = 0664. Nghĩa là user và group sở
hữu nó có quyền đọc và ghi, other user chỉ được đọc.
Khi tạo mới một folder permission sẽ là 0777 – 0002 = 0775. Nghĩa là user và
group sở hữu nó có đầy đủ quyền, other user chỉ có quyền đọc và thực thi.
Có thể thay đổi giá trị umask bằng lệnh: umask <giá trị mới>
6.5. SETUID, SETGID, STICKY BIT
a. SETUID/ SETGID
SETUID / SETGID permission cho phép một user thực thi một file giống như user
đó là chủ sở hữu của file đó. Có nghĩa là nó cho phép user thực hiện những việc mà có thể
khi bình thường nó bị cấm.
Ví dụ khi cần đổi mật khẩu. Khi sử dụng lệnh passwd để đổi mật khẩu nó cần phải
viết lại thông tin vào file password mà không có quyền. Bằng việc gán SETUID /
SETGID cho nó có thể thực thi nó như là user root vậy.
Để bật SETUID /SETGID cho một file bạn có thể sử dụng lệnh: chmod 6755 text.txt
Trong chuỗi 4 số đó thì số đầu tiên để gán SETUID /SETGID (với SETUID có giá trị là
4 / SETGID có giá trị là 2) còn 3 số đằng sau là phân quyền cho user, group và other user.
b. STICKY BIT
STICKY BIT là một permission được gán cho folder (nó chả có ý nghĩa gì khi gán
cho file). Khi một folder được bật STICKY BIT thì những file trong folder đó chỉ có thể
được xóa hoặc thay đổi bởi chủ sở hữu nó hoặc root mà thôi. Thường áp dụng khi tạo ra
một folder share dùng chung cho nhiều user trên một file server. Ở trong folder này thì ai
cũng có quyền được tạo file nhưng chỉ xóa được file do mình tạo ra thôi.
21


7. Giới thiệu về Linking file
Mỗi tập tin được liên kết với một inode mà chứa các thuộc tính của tập tin đó như
là định dạng (text, binary,…), kích thước, ngày khởi tạo, vị trí trên thiết bị lưu trữ, chủ sở

hữu, quyền truy cập,… Thông tin về tập tin mà inode nắm giữ thường được gọi là
metadata, đặc biệt inode không chứa tên file và nội dung thật sự của file.
Mỗi inode có một số inode (inode number), tạo thành một bảng inode (inode table)
ghi ở một khu vực riêng trên ổ cứng.

Hình 7. 1. Liên kết tập tin
Chú ý: trong inode không có tên tập tin.
Tên tập tin được lưu trong thư mục cùng với số inode của nó.
Khi truy cập đến một tập tin, hệ điều hành từ tên tập tin tìm ra số inode rồi dùng số
inode để đọc nội dung inode, từ đó xác định được địa chỉ block để đọc nội dung tập tin.

Hình 7. 2. Thư mục inode
Lệnh ls -i liệt kê các số inode của các đối tượng trong thư mục: thư mục Desktop
có số inode là 391749, tập tin post-install.log có số inode là 67478.
22


Lệnh stat cho biết chi tiết về nội dung inode:

7.1. Liên kết cứng (hard link)
Là một liên kết trong cùng hệ thống tập tin với 2 inode entry tương ứng trỏ đến
cùng một nội dung vật lý (cùng số inode vì chúng trỏ đến cùng dữ liệu).

Hình 7. 3. Liên kết cứng
Cú pháp: ln <nguồn> <đích>
Tạo 1 tập tin tên là hard với nội dung 123
[root@localhost data]# echo “123” > hard
Tạo hard link
[root@localhost data]# ln hard hardlink
Sử dựng lệnh ls -i và thấy số inode giống nhau.

[root@localhost data]# ls –i

Xóa tập tin hard: [root@localhost data]# rm hard
23


Kiểm tra nội dung tập tin hardlink. nội dung tập tin không hề mất đi. Vì thực chất khi xóa
tập tin hard hệ thống chỉ xóa đi số link count trong inode của tập tin đi 1.

Chú ý: không thể tạo hard link trên hai partition khác nhau và hard link tới 1 thư mục.
Khi sử dụng lệnh rm để xóa file thì thực chất là làm giảm đi một hard link. Khi số
lượng hard link giảm còn 0 thì không thể truy cập tới nội dung của file được nữa (mặc dù
nội dung đó vẫn tồn tại trên thiết bị lưu trữ) vì hệ điều hành không còn cách nào để tham
khảo tới tập tin này. Dữ liệu của tập tin chỉ thực sự bị mất khi vị trí của nó bị ghi đè bởi
các tập tin mới. Điều này giải thích tại sao ta vẫn có thể khôi phục dữ liệu vừa bị xóa và
không có dữ liệu nào được tạo ra trên vị trí của dữ liệu cũ.
7.2. Liên kết mềm (soft link)
Là liên kết không dùng đến inode entry mà chỉ đơn thuần là một shortcut. Nó sẽ
tạo ra một inode mới và nội dung của inode này trỏ đến tên tập tin gốc.

Hình 7. 4. Liên kết mềm (soft link)
Cú pháp: ln -s <nguồn> <đích>
Tạo 1 tập tin tên là hard với nội dung 123
[root@localhost data]# echo “123” > soft
Tạo soft link
[root@localhost data]# ln -s soft softlink
Sử dựng lệnh ls -i và thấy số inode khác nhau.
[root@localhost data]# ls –i
Thêm nội dung vào softlink
[root@localhost data]# echo “456” >> soft

Kiểm tra nội dung tập tin soft

24


Xóa tập tin soft
[root@localhost data]# rm soft
Kiểm tra nội dung tập tin softlink. Ta nhận thấy rằng nội dung của softlink không hiển thị
được, đơn giản là vì softlink trỏ đến một tập tin khác, mà tập tin này không tồn tại.

Chú ý: softlink có thể liên kết đến một thư mục và có thể liên kết đến hai file
thuộc hai phân vùng khác nhau.
8. Tìm hiểu về file system
8.1. Khái niệm về Ext2, ext3, ext4
 Ext2:








Ext2 là viết tắt của hệ thống tập tin mở rộng thứ hai.
Nó được giới thiệu vào năm 1993. Phát triển bởi Rémy Card.
Điều này đã được phát triển để vượt qua giới hạn của hệ thống tập tin gốc ext.
Ext2 không có tính năng nhật ký.
Trên ổ đĩa flash, ổ đĩa usb, ext2 được khuyến khích, vì nó không cần phải làm đầu
của nhật ký.
Kích thước tệp tối đa cá nhân có thể từ 16 GB đến 2 TB

Kích thước tệp tin ext2 tổng thể có thể từ 2 TB đến 32 TB

 Tạo một hệ thống tập tin ext2: Mke2fs / dev / sda1
 Ext3:










Ext3 là viết tắt của hệ thống tập tin mở rộng thứ ba.
Nó được giới thiệu vào năm 2001. Phát triển bởi Stephen Tweedie.
Bắt đầu từ Linux Kernel 2.4.15 ext3 đã có sẵn.
Lợi ích chính của ext3 là nó cho phép journaling.
Nhật ký có một khu vực chuyên dụng trong hệ thống tập tin, nơi tất cả các thay đổi
được theo dõi. Khi hệ thống gặp sự cố, khả năng tham nhũng hệ thống tập tin ít
hơn do nhật ký.
Kích thước tệp tối đa cá nhân có thể từ 16 GB đến 2 TB
Tổng thể kích thước tệp tin ext3 có thể từ 2 TB đến 32 TB
Có ba loại nhật ký có sẵn trong hệ thống tệp ext3.
 Tạp chí - Siêu dữ liệu và nội dung được lưu trong tạp chí.
25


×