Đây là tài liệu tổng hợp gồm các câu lệnh, các ví dụ khi quản trị trên hệ điều hành linux. Tài liệu là sự kết hợp của LPI 12, đầy đủ các kiến thức cho những ai mới sử dụng, và muốn trở thành system administrator hệ điều hành linux.
Trang 1MỤC LỤC
Trang 2
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG
Trang 3TỔ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
Trang 4Bướ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
Trang 5Bướ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”
Trang 6Bướ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
Trang 72 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ảntrị và được dùng để bảo trì hệ thống
Trang 8Ví 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ácchươ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ìnhmứ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ôngthể 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ấytrong /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ụ, khicài Apache từ mã nguồn, nó được đưa vào thư mục /usr/local/apache2
Trang 92.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à /sbinTê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 Bootvà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ụngnhiều hệ điều hành trên cùng một ổ đĩa cứng
Trang 10Hì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ốngLinux)
Chain Loading: GRUB sẽ load một Boot Loader khác (ví dụ NTLDR củaMicrosoft 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
Trang 11GRUB_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ìnhnetwork 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ằngcá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ỉ MAC52: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
Trang 12IPADDR=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 để thiết lập
IP/subnetmask/default gateway (ví dụ với eth0):
iface eth0 inet static
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
ls List ls - liệt kê nội dung (file và thư mục) trong thư mục
hiện hành
mkdir Make Directory mkdir <tên thư mục mới> - tạo một thư mục
mới
pwd Print Working
Directory pwd - in ra đường dẫn đầy đủ đến thư mục hiện hành.
Cd 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
Rmdir Remove directory rmdir <thư mục> - xóa một thư mục.
Rm Remove 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 đó
Trang 13Cp Copy 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> <thư mục đích> để sao chép thư mục và toàn bộ dữ liệu bên
trong
Mv Move 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
Cat Concatenate and
print files cat <tên file> - đọc và in ra nội dung của file ramàn hình.Tail Print TAIL 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 Print LESS 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 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
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
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 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 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ác tùy chỉnh của câu lệnh
Trang 14Whatis What is this
command whatis <tên câu lệnh> - hiển thị mô tả về câulệnh.Man Manual man <tên câu lệnh> - hiển thị trang hướng dẫn
cho câu lệnh
Ping 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 who - hiển thị danh sách các tài khoản đang đăng nhập
vào hệ thống
bằng một tài khoản khác Tài khoản root có thể chuyểnsang đăng nhập bằng các tài khoản khác mà không cầnnhập mật khẩu
Uname 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.
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 Disk space free 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 humanreadable (hiển thị với đơn vị KBs, GBs cho dễ đọc)
Ps Processes ps - hiển thị thông tin về các tiến trình đang chạy.
Top Top processes 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
Trang 15Ví 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
-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ộidung 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
Trang 16-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],
in-place[=SUFFIX]
Chỉnh sửa các tệp ở vị trí (tạo bản sao lưu nếu SUFFIXđược cung cấp)
-l N, line-length=N 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 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
-u, unbuffered 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
help 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
Đị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òngtrong tệp tin đầu ra "output.txt" Biến '$ 4' đề cập đến cột thứ tư Tương tự, có thể truy cậpvà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
Trang 17Khi 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ảichuyể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