Như chúng ta đã biết,
Linux là một hệ điều hành mã nguồn mở (open-source OS) với nhiều tính năng không thua kém các hệ điều hành hiện nay và đặc biệt Linux là miễn phí. Đây là hệ điều hành đáng tin cậy, an toàn, ngày càng thân thiện với người dùng và được hàng ngàn lập trình viên trên thế giới tiếp tục phát triển.
Cơ chế dòng lệnh (
Command Line) là cách đơn giản nhất để tương tác với hệ thống. Ưu điểm của nó là thực hiện tác vụ nhanh hơn so với việc chúng ta sử dụng giao diện đồ họa.
Dưới đây là một số câu lệnh thông dụng mà chúng tôi giới thiệu đến các bạn tham khảo:
1. Lệnh xem thông tin server
1.1. Xem thông tin nhà sản xuất
1.2. Xem thông tin thông tin main
1.3. Xem thông tin CPU
1.4. Xem thông tin RAM
1.5. Xem thông tin HDD
1.6. Xem thông tin PCI Bus
1.7. Xem thông tin hệ điều hành
1.8. Xem phiên bản bộ biên dịch C/C++
1.9. Xem phiên địa chỉ IP
1.10. Xem thông tin kết nối
1.11. Xem log đăng nhập hệ thống
1.12. Xem log các lệnh đã thực thi trên hệ thống
1.13. Xem không gian ổ đĩa
1.14. Xem dung lượng bộ nhớ
2. Lệnh quản trị hệ thống
2.1. Kiểm tra, cài đặt, gỡ bỏ các gói cài đặt
2.2. Kiểm tra các tiến trình đang chạy
2.3. Dừng các tiến trình bị treo
2.4. Xem tài nguyên hệ thống
2.5. Hiển thị tiến trình đang chạy dưới dạng cây
2.6. Xem cú pháp dòng lệnh
3. Lệnh thao tác người dùng
3.1. Lệnh tạo người dùng mới
3.2. Lệnh tạo nhóm người dùng mới
3.3. Thay đổi mật khẩu người dùng
3.4. Xóa người dùng
4. Lệnh thao tác với thư mục, tệp tin
4.1. Lệnh thao tác tệp trên FTP Server
4. Lệnh khi làm việc trên terminal
5. Lệnh quản lý hệ thống
1. Lệnh xem thông tin server
Ghi chú: Hầu hết các lệnh trên xem thông tin cấu hình server đều phải sử dụng quyền root.
1.1. Xem thông tin nhà sản xuất
dmidecode | grep "System Information" –A 9
Lệnh này cho phép xem thông tin về nhà sản xuất server.
1.2. Xem thông tin thông tin main
dmidecode | grep "Base Board" – A 10
Lệnh này sẽ xuất ra màn hình thông tin Mainboard của server, tuy nhiên không phải tất cả server đều có thông tin này.
1.3. Xem thông tin CPU
cat /proc/cpuinfo | head –n 25
Lệnh này sẽ trả về thông tin của CPU trong server, tuy nhiên sẽ chỉ trả về thông tin của từng Core.
Để lấy thông tin về tổng số core của CPU, bạn sử dụng lệnh sau:
cat /proc/cpuinfo | grep processor | wc -l
Bạn lấy thông tin chi tiết chỉ cần đánh lệnh:
cat /proc/cpuinfo
1.4. Xem thông tin RAM
cat /pro/meminfo
Lệnh này sẽ trả về các thông tin về bộ nhớ RAM, trong đó MemTotal chính là tổng dung lượng bộ nhớ RAM đang có trong server.
1.5. Xem thông tin HDD
cat /proc/scsi/scsi
Lệnh này sẽ trả về thông tin những HDD vật lý đang được lắp trong server tuy nhiên chỉ bao gồm model HDD chứ không bao gồm dung lượng.
Để liệt kê dung lượng các HDD đang được lắp, bạn sử dụng lệnh sau:
1.6. Xem thông tin PCI Bus
lspci
Lệnh này sẽ hiển thị thông tin về tất cả PCI Bus và các thiết bị kết nối tới nó. Lệnh này có thể gộp của "ls" + "pci".
# lspci
00:00.0 Host bridge: Intel Corporation 5500 I/O Hub to ESI Port (rev 13)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 13)
00:09.0 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub PCI Express Root Port 9 (rev 13)
00:14.0 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub System Management Registers (rev 13)
00:14.1 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 13)
00:14.2 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 13)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller [IDE mode] (rev 02)
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
06:03.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)
Ngoài ra bạn có thể sử dụng thêm các tham số tùy theo mục đích sử dụng. Ví dụ:
Bạn muốn xem thông tin SubSystem sử dụng lệnh sau:
lspci -m
Bạn muốn hiển thị dưới dạng cây để xem các thiết bị nào kết nối tới nó, hãy sử dụng lệnh sau:
lspci -t
Còn nếu bạn muốn xem thông tin chi tiết, hãy sử dụng lệnh sau:
lspci -v
1.7. Xem thông tin hệ điều hành
Để xem đầy đủ thông tin hệ điều hành, bạn sử dụng lệnh sau:
uname -a
Linux TEST-APP01 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
Ngoài ra bạn có thể sử dụng tham số sau để lấy thông tin từng loại:
- -s: Tên nhân hệ điều hành (Kernel name)
- -r: Phiên bản nhân release hệ điều hành sử dụng (Kernel release)
- -v: Phiên bản nhân (Kernel version)
- -n: Tên node (Nodename)
- -m: Tên phần cứng (Hardware name)
- -i: Platform phần cứng (Hardware platform)
- -p: Kiểu bộ vi xử lý (Processor type)
- -o: Hệ điều hành (Operating system)
1.8. Xem phiên bản bộ biên dịch C/C++
gcc -v
Lệnh này để xem phiên bản bộ biên dịch C/C++ đã được cài đặt.
1.9. Xem phiên địa chỉ IP
/sbin/ifconfig
Lệnh này để xem tất cả các địa chỉ IP trên máy.
1.10. Xem thông tin kết nối
netstat
Lệnh này để xem tất cả các kết nối. Bạn có thể sử dụng thêm với lệnh grep để lấy chi tiết thông tin. Ví dụ:
Liệt kê kết nối tới cổng 8080:
netstat -an | grep :8080
Hay đếm số kết nối tới cổng 8080:
netstat -an | grep :8080 | wc -l
1.11. Xem log đăng nhập hệ thống
last
Lệnh này để xem tất cả các log đăng nhập hệ thống.
1.12. Xem log các lệnh đã thực thi trên hệ thống
history
Lệnh này để xem tất cả các lệnh mà đã được thực thi trên server trước đó.
1.13. Xem không gian ổ đĩa
df
Lệnh này để xem thông tin ổ đĩa (Tổng dung lượng, dung lượng đã sử dụng, dung lượng chưa sử dụng).
1.14. Xem dung lượng bộ nhớ
free -m
Lệnh này để xem dung lượng bộ nhớ (Tổng dung lượng, dung lượng đã sử dụng, dung lượng chưa sử dụng).
2. Lệnh quản trị hệ thống
2.1. Kiểm tra, cài đặt, gỡ bỏ các gói cài đặt
Lệnh sau thực hiện cài đặt gói RPM:
rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm
Trong đó:
-i là cài đặt;
-v để hiển thị đẹp hơn và
-h để hiển thị dấu # cho các gói đã giải nén. Trong trường hợp bạn thấy tất cả các thành cần thiết đều đã được cài đặt thì hệ thống vẫn báo thiếu, bạn có thể sử dụng tham số
–nodeps để bỏ qua không yêu cầu phải cài đặt các thành phần phụ thuộc trước:
rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm
Lệnh sau kiểm tra các thành phần phụ thuộc:
rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm
Trong đó, tham số -q nghĩa là truy vấn, -p là liệt kê danh sách các thành phần mà gói hỗ trợ, -R là liệt kê danh sách các thành phần mà gói này phụ thuộc.
Để kiểm tra một gói RPM đã được cài đặt hay chưa, bạn hãy sử dụng tham số -q:
rpm -q BitTorrent
Để hiển thị chi tiết các tệp trong gói RPM đã được cài đặt, bạn hãy sử dụng tham số -ql (query list):
rpm -ql BitTorrent
Ngoài ra còn nhiều cách sử dụng khác nữa, chi tiết xem địa chỉ: 20 Practical Examples of RPM Commands in Linux.
2.2. Kiểm tra các tiến trình đang chạy
ps là lệnh sử dụng để kiểm tra tiến trình đang chạy. Cú pháp của lệnh hỗ trợ cả hai hai kiểu cú pháp là BSD và UNIX.
Để hiển thị danh sách các tiến trình và thông tin chi tiết tiến trình, bạn sử dụng một trong hai lệnh sau:
ps aux
ps -ef -f
Để hiển thị các tiến trình của một người dùng nào đó, bạn sử dụng tham số -u:
ps -f -u test_user
Để tìm kiếm tiến trình theo tên, bạn sử dụng tham số -C:
ps -C apache2
Để tìm kiếm tiến trình theo Process ID, bạn sử dụng tham số -p:
ps -f -p 3150,7298,6544
Để hiển thị tiến trình sắp xếp theo thứ tự sử dụng CPU, RAM, bạn hãy sử dụng lệnh sau:
ps aux --sort=-pcpu,+pmem
Để hiển thị tiến trình theo cấu trúc cây, bạn sử dụng tham số --forest:
ps -f --forest -C apache2
Ngoài ra bạn kết hợp với lệnh
grep để tìm đúng tiến trình mình mong muốn:
ps -ef | grep process_test
Chi tiết bạn xem thêm tại địa chỉ:
10 basic examples of Linux ps command
2.3. Dừng các tiến trình bị treo
kill là lệnh dừng các tiến trình khi tiến trình đó bị treo. Chỉ có super-user mới có thể dừng tất cả các tiến trình còn user khác chỉ có thể dừng tiến trình mà user đó tạo ra.
Trước khi kill một tiến trình, bạn cần xác định pid của tiến trình đó, sau đó sử dụng một trong các lệnh sau:
kill -TERM pid
kill -SIGTERM pid
kill -9 pid
Ví dụ kill tiến trình firefox:
$ ps -ef | grep firefox
1986 ? Sl 7:22 /usr/lib/firefox-3.5.3/firefox
$ kill -9 1986
Với lệnh
killall, bạn có thể kill tiến trình theo tên:
killall -9 firefox
Lệnh
pkill sẽ kill tất cả các tiến trình có tên chứa xâu truyền vào:
pkill sample
Chi tiết hơn, bạn có thể xem tại địa chỉ:
4 Ways to Kill a Process – kill, killall, pkill, xkill
2.4. Xem tài nguyên hệ thống
top là lệnh hiển thị sự hoạt động của các tiến trình, đặc biệt là thông tin về tài nguyên hệ thống và việc sử dụng các tài nguyên đó của từng tiến trình.
Lệnh sau sẽ hiển thị thông tin các Task, thông tin bộ nhớ, CPU và vùng Swap. Nhấn phím 'q' để thoát khỏi cửa sổ:
top
Sử dụng tham số -O (Không phải số 0 mà là chữ O viết hoa) để sắp xếp tiến trình:
top -O
Tiếp đó bạn nhấn (Shift + O) để hiển thị danh sách kí tự tương ứng với trường thông tin, sau đó bạn nhấn kí tự tương ứng với trường để sắp xếp theo trường đó. Ví dụ nhấn phím 'a' để sắp xếp theo PID, nhấn (Shift+P) để sắp xếp theo % sử dụng CPU.
Sử dụng tham số -u để hiển thị thông tin các tiến trình theo user:
top -u tecmint
Để lưu kết quả vào tệp "/root/.toprc", bạn nhấn phím: (Shift+W).
Chi tiết bạn xem tại địa chỉ: 12 TOP Command Examples in Linux
2.5. Hiển thị tiến trình đang chạy dưới dạng cây
pstree là lệnh hiển thị các tiến trình đang chạy dưới dạng cây. Bạn có thể sử dụng một trong các cú pháp sau:
pstree
pstree pid
pstree user
Chi tiết xem tại địa chỉ:
pstree Command Examples: See A Tree Of Processes
2.6. Xem cú pháp dòng lệnh
man là lệnh xem hướng dẫn về dòng lệnh như cú pháp, các tham số... Ví dụ:
man man
Chi tiết xem tại địa chỉ:
Linux and Unix man command
3. Lệnh thao tác người dùng
3.1. Lệnh tạo người dùng mới
useradd: là lệnh tạo một người dùng mới. Cú pháp của lệnh như sau:
useradd [options] username
Đơn giản nhất để tạo user mới bạn sử dụng lệnh sau:
useradd tecmint
Lệnh này tạo user mới nhưng user này ở trạng thái khóa, để mớ khóa user này bạn cần phải thiết lập mật khẩu bằng lệnh passwd:
passwd tecmint
Hệ thống hiển thị giao diện để bạn nhập mật khẩu. Khi người dùng mới được tạo, hệ thống sẽ tự động thêm vào tệp ‘/etc/passwd‘. Tệp này được sử dụng để lưu trữ thông tin các người dùng. Nội dung thêm dạng như dưới:
tecmint:x:504:504:tecmint:/home/tecmint:/bin/bash
(Thư mục home mặc định hệ thống để là: /home/
)
Để tạo user với thư mục home được xác định trước, bạn dùng lệnh sau:
useradd -d /data/projects anusha
Để tạo user trong một nhóm xác định, bạn sử dụng tham số -g theo sau là GID (Group ID). Nếu bạn muốn xác định User ID (UID) bạn sử dụng tham số -u theo sau là UID:
useradd -u 1000 -g 500 tarunika
Để thêm user vào nhiều group, bạn dùng tham số -G theo sau là danh sách tên các group:
useradd -G admins,webadmin,developers tecmint
Mặc định khi tạo tài khoản người dùng mới, tài khoản sẽ không bao giờ bị hết hạn. Nếu bạn muốn tạo tài khoản có thời gian sử dụng bạn sử dụng tham số -e:
useradd -e 2014-03-27 aparna
Nếu muốn thiết lập thời gian hết hạn của mật khẩu, bạn sử dụng tham số -f theo sau số ngày:
useradd -e 2014-04-27 -f 45 tecmint
Còn nếu bạn muốn kiểm tra thời gian hết hạn của tài khoản, bạn sử dụng lệnh change với tham số -l:
chage -l aparna
Chi tiết hơn về lệnh useradd, bạn có thể xem tại địa chỉ: The Complete Guide to “useradd” Command in Linux – 15 Practical Examples
3.2. Lệnh tạo nhóm người dùng mới
groupadd: là lệnh tạo một nhóm người dùng mới. Khi dùng lệnh này, thông tin sẽ được cập nhật vào tệp "/etc/group". Cú pháp lệnh như sau:
groupadd [options] group
Để tạo nhóm người dùng mới, bạn dùng lệnh sau:
groupadd apache
Để kiểm tra chắc chắn bạn đã tạo thành công chưa, bạn sử dụng lệnh sau:
grep apache /etc/group
Nếu thấy có dòng có tên nhóm là apache là okie.
Chi tiết hơn bạn có thể xem tại địa chỉ: 3 UNIX / Linux groupadd Command Examples
3.3. Thay đổi mật khẩu người dùng
passwd là lệnh thay đổi mật khẩu người dùng. Cú pháp của lệnh như sau:
passwd {options} {user_name}
Nếu bạn đăng nhập với người dùng thông thường, lệnh sau sẽ thay đổi mật khẩu của người dùng hiện tại:
passwd
Nếu bạn đăng nhập dưới người dùng root, bạn sẽ có thể thay đổi mật khẩu các các người dùng khác:
passwd linuxtechi
Để hiển thông tin trạng thái mật khẩu, bạn sử dụng tham số -S:
passwd -S linuxtechi
Để hiển thị thông tin trạng thái mật khẩu của tất cả người dùng, bạn sử dụng tham số -Sa:
passwd -Sa
Để xóa mật khẩu của người dùng, bạn sử dụng tham số -d:
passwd -d linuxtechi
Để thiết lập mật khẩu của người dùng hết hạn ngay lập tức, bạn sử dụng tham số -e:
passwd -e linuxtechi
Để khóa mật khẩu người dùng, bạn sử dụng tham số -l:
passwd -l linuxtechi
Để mở khóa mật khẩu người dùng, bạn sử dụng tham số -u:
passwd -u linuxtechi
Để thiết lập sau bao nhiêu ngày phải đổi mật khẩu, bạn sử dụng tham số -n:
passwd -n 90 linuxtechi
Chi tiết hơn bạn xem tại địa chỉ: 10 passwd command examples in Linux
3.4. Xóa người dùng
userdel là lệnh xóa người dùng. Cú pháp của lệnh như sau:
userdel [options] username
Lệnh sau xóa người dùng linuxtechi:
userdel -r linuxtechi
Chi tiết bạn xem tại địa chỉ: Linux and Unix userdel command
3.5. Thao tác nhóm người dùng
groupdel là lệnh xóa người nhóm dùng. Cú pháp của lệnh như sau:
groupdel group
Lệnh sau xóa nhóm test:
groupdel test
gpasswd là lệnh giúp quản trị nhóm người dùng, bạn có thể sử dụng lệnh này để đổi mật khẩu, thêm hay loại bỏ người dùng khỏi nhóm. Cú pháp của lệnh như sau:
gpasswd [option] group
Sử dụng tham số -r để xóa mật khẩu:
gpasswd -r test
Sử dụng tham số -a để thêm người dùng vào nhóm:
gpasswd -a daothang test
Sử dụng tham số -d để xóa người dùng khỏi nhóm:
gpasswd -d daothang test
Chi tiết bạn xem tại địa chỉ: Linux and Unix gpasswd command
groups giúp hiển thị danh sách người dùng trong một nhóm. Cú pháp của lệnh như sau:
groups [user]
Lệnh sau hiển thị danh sách người dùng trong trong nhóm chứa người dùng hiện tại:
groups
Lệnh sau hiển thị danh sách người dùng trong trong nhóm chứa người dùng daothang:
groups daothang
4. Lệnh thao tác với thư mục, tệp tin
4.1. Lệnh thao tác tệp trên FTP Server
Sử dụng lệnh ftp để kết nối tới server FTP:
ftp 192.168.0.1
ftp domain.com
ftp user@ftpdomain.com
Sử dụng lệnh cd để chuyển thư mục, lệnh ls để xem danh sách tệp. Ví dụ:
cd test
ls
Để chuyển tệp giữa các thư mục trên FTP, bạn sử dụng lệnh rename:
mkdir bk
rename my_file.txt bk/my_file.txt
Để lấy tệp từ server, trước hết bạn phải dùng lệnh lcd để thiết lập thư mục sẽ tải tệp về, sau đó dùng lệnh get để tải tệp:
lcd /u01/test
get my_file.txt
Để lấy nhiều tệp, bạn sử dụng lệnh mget:
mget *.txt
Lệnh này sẽ hỏi bạn có thực hiện từng tệp không, để hệ thống không hỏi lại khi kết nối tới FTP bạn phải thêm tham số -i:
ftp -i 192.168.0.1
Để đẩy tệp lên FTP Server bạn sử dụng lệnh put:
put test_file.xls
Để đẩy nhiều tệp, bạn sử dụng lệnh mput:
mput *.xls
Để đóng kết nối, bạn có thể sử dụng một trong các lệnh sau:
bye
exit
quit
1. Quản lý hệ thống
: xoá nhóm người dùng đã tạo.
su: cho phép đăng nhập với tư cách người dùng khác.
groups: hiển thị nhóm của user hiện tại.
who: cho biết ai đang đăng nhập hệ thống.
w: tương tự như lệnh who.
2. Trên terminal¶
clear: xoá trắng cửa sổ dòng lệnh.
date: xem ngày, giờ hệ thống.
find /usr/share/zoneinfo/ | grep -i pst: xem Timezone.
ln -f -s /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime: Đổi Server Time về Timezone Việt Nam.
date -s "1 Oct 2009 18:00:00" : thay đổi thời gian hệ thống.
cal: xem lịch hệ thống.
4. Liên quan đến vận hành hệ thống ¶
exit: thoát khỏi terminal.
logout: tương tự exit.
reboot: khởi động lại hệ thống.
mount: gắn hệ thống tập tin từ một thiết bị lưu trữ vào cây thư mục chính.
umount: ngược với lệnh mount.
5. Trên File - Folder ¶
ls: lấy danh sách tất cả các file và folder trong folder hiện hành.
pwd: xuất đường dẫn của folder làm việc.
cd: thay đổi folder làm việc đến một folder mới.
mkdir: tạo folder mới.
rmdir: xoá folder rỗng.
cp: copy một hay nhiều file đến folder mới.
mv: đổi tên hay di chuyển file, folder.
rm: xóa file.
wc: đếm số dòng, số kí tự... trong file.
touch: tạo file.
cat: xem nội dung file.
vi: khởi động trình soạn thảo văn bản vi.
df: kiểm tra disk space.
du: xem disk space đã dùng cho một số file nhất định.
tar -cvzpf archive.tgz /home/example/public_html/folder: nén một folder
tar -tzf backup.tar.gz: liệt kê file nén gz.
tar -xvf archive.tar: giải nén một file tar.
unzip file.zip: giải nén file .zip
wget: download file.
chown -hR user:user folder/ : Đổi owner cho folder hay file.
tail 100 matbao.log: Xem 100 dòng cuối cùng của file matbao.log.
Tham khảo:
http://wiki.matbao.net/Cac-command-huu-ich-tren-he-thong-Linux.ashx
http://wiki.matbao.net/Cac-cau-lenh-command-co-ban-tren-Server-Linux.ashx