Các lệnh thường dùng trong linux
I. Xem thông tin hệ thống
top xem performent hệ thống
arch hiển thị cấu trúc của máy(1)
uname -m hiển thị cấu trúc của máy(2)
uname -r hiển thị phiên bản kernel đang sử dụng
dmidecode -q Hiển thị hệ thống phần cứng - (SMBIOS / DMI)
hdparm -i /dev/hda trình bày những đặc trưng của 1 ổ cứng ( lưu ý, hard disk cap ATA là hda còn SATA là sda )
hdparm -tT /dev/sda test thử ổ cứng
cat /proc/cpu hiển thị thông tin CPU
cat /proc/interrupts hiển thị sự ngắt của các tiến trình
cat /proc/meminfo hiển thị bộ nhớ đang sử dụng
cat /proc/swaps hiển thị file ở phân vùng swap
cat /proc/version hiển thị phiên bản kernel
cat /proc/net/dev cho thấy card mạng và thông tin thống kê
cat /proc/mounts hiển thị file hệ thống được sử dụng cho mounts
lspci -tv hiển thị thiết bị PCIdisplay PCI devices
lsusb -tv hiển thị thiết bị USB
date hiển thị ngày hệ thống (phat tat’ het ud truoc khi doi)
cal 2007 hiển thị lịch năm 2007
date 041217002007.00 thiết lập ngày và giờ - MonthDayhoursMinutesYear.Seconds
clock -w lưu thay đổi ngày trên BIOS
Thao tác ổ đĩa:
df -h hiện danh sách phân vùng được mount
ls -lSr |more hiện kích cỡ của tâptin và thư mục và sắp xếp theo dung lượng
du -sh dir1 estimate space used by directory 'dir1'
du -sk * | sort -rn hiện dung lượng của tập tin và thư mục và sắp sếp theo dung lượng
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n hiện dung lượng được sử dụng bởi gói được cài đặt và sắp xếp theo dung lượng (fedora, redhat and like)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n hiện dung lượng được cài đặt bởi gói deb và sắp xếp theo dung lượng (ubuntu, debian and like)
II. Thao tác với OS
shutdown -h now tắt máy
init 0 tắt máy(2)
telinit 0 tắt máy(3)
shutdown -h hours:minutes & tắt máy sau theo thời gian đợi
shutdown -c hủy lện tắt máy theo thời gian
shutdown -r now khởi đọng lại(1)
reboot khởi động lại(2)
logout rời khỏi phiên làm việc
III. Hệ thống File
cd /home đến thư mục '/ home'
cd .. quay ngược lại 1 bậc
cd ../.. quay ngược lại 2 bậc
cd đến thư mục home
cd ~user1 đến thư mục home
cd - trở lại thư mục trước đây
pwd hiển thị đường dẫn thư mục hiện hành
ls hiển thị tập tin và thư mục
ls -F hiển thị tập tin trong thư mục
ls -l hiển thị chi tiết tập tin và thư mục
ls -a hiển thị tập tin ẩn
ls *[0-9]* hiển thị tập tin và thư mục có chứa số
tree hiển thị tập tin và thư mục theo cấu trúc cây
lstree hiển thị tập tin và thư mục theo cấu trúc cây(2)
mkdir dir1 tạo 1 thư mục có tên 'dir1'
mkdir dir1 dir2 tạo cùng lúc 2 thư mục
mkdir -p /tmp/dir1/dir2 tạo ra 1 cây thư mục
rm -f file1 xóa tập tin có tên 'file1'
rmdir dir1 xóa thư mục có tên 'dir1'
rm -rf dir1 xóa thư mục 'dir1' và tất cả các tập tin trong thư mục đó
rm -rf dir1 dir2 xóa cùng lúc 2 thư thư mục và tất cả các tập tin trong hai thư mục đó
mv dir1 new_dir đổi tên/ di chuyển 1 tập tin hoặc thư mục
cp file1 file2 sao chép 1 tập tin
cp dir/* . sao chép tất cả các tập tin trong thư mục
cp -a /tmp/dir1 . sao chép thư mục đang làm việc
cp -a dir1 dir2 sao chép một thư mục
ln -s file1 lnk1 tạo một đường dẫn đến 1 tập tin hoặc thư mục
ln file1 lnk1 tạo 1 đường dẫn vật lý đến 1 tập tin hoặc thư mục
touch -t 0712250000 file1 thay đổi thời gian tạo file hoặc thư mục- (YYMMDDhhmm)
file file1 hiển thị kiểu tập tin ở chế độ văn bản
iconv -l hiện danh sách mã hóa
iconv -f fromEncoding -t toEncoding inputFile > outputFile tạo mới từ hồ sơ được nhập vào đã cho bởi việc giả thiết nó được mã hóa trong fromEncoding và chuyển đổi đến toEncoding.
find . -maxdepth 1 -name \*.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; thay đổi kích thước tập tin trong thư mục hiện hành và gởi chúng đến thư mục thumbnails (cái này ko biết dịch sao) được iu cầu chuyển đổi từ Imagemagick
Du –cs dir1 Xem dung lượng thư mục dir1
Copy 1 file từ máy 10.15.96.22 sang máy 10.15.96.27, đang đứng trong máy 22 gõ lệnh sau, giả sử data là tên dữ liệu cần gửi đến thư mục /home trên máy 27 với user root thì : scp data
[You must be registered and logged in to see this link.]:/home
sau đó nó sẽ hỏi pass root của máy 10.15.96.27, làm tương tự nếu đó là các user khác
Khi nào thì không nên dùng scp:
1. Khi bạn copy nhiều file, scp sẽ tạo một tiến trình mới cho mỗi file và có thể khá chậm khi copy
2. khi sử dụng tuỳ chọn -r, scp không biết về symbolic link và sẽ mù quáng làm theo, thậm chí nếu nó đã tạo một bản copy của file đó rồi.
tar -jxf file_name.tar.bz2 giải nén file tar dạng bz2, tar -zxf file_name.tar.gz giải nén file tar dạng gz
tar -jcf file_name.tar.bz2 file_to_archive nén file dạng bz2, tar -zcf file_name.tar.gz file_to_archive nén file dạng gz
find / -name file1 tìm tập tin và thư mục trong thư mục hệ thống root từ dấu "/"s (-name: để hiện đường dẫn đến file1)
find / -user user1 tìm tập tin và thư mục thuộc về 'user1'
find /home/user1 -name \*.bin tìm tập tin với phần mở rộng '. bin' từ thư mục '/ home/user1'
find /usr/bin -type f -atime +100 tìm tập tin nhị phần và ko được sử dụng hơn 100 ngày
find /usr/bin -type f -mtime -10 tìm tập tin được tạo ra hoặc thay đổi trong vòng 10 ngày gần nhất
find / -name \*.rpm -exec chmod 755 '{}' \; tìm tập tin với phần mở rộng '.rpm' và phân quyền
find / -xdev -name \*.rpm tìm tập tin với phân mở rộng '.rpm' bỏ qua các phân vùng cdrom, pen-drive, etc.…
locate \*.ps tìm tập tin với phần mở rộng '.ps' trước khi chạy lệnh 'updatedb'
whereis halt xuất hiện vị trí tập tin nhị phân, nguồn hoặc hướng dẫn o
which halt xuất hiện đầy đủ đường dẫn nhị phân / phân ứng dụng
IV. Lệnh Mount
mount /dev/hda2 /mnt/hda2 mount ổ đĩa tên là hda2 - xác minh tồn tại của thư mục '/ mnt/hda2'
umount /dev/hda2 ngừng mount ổ đĩa có tên hda2 -
fuser -km /mnt/hda2 ép ngừng mount khi thiết bị đang bận
umount -n /mnt/hda2 ngừng mount và ko ghi lên tập tin /etc/mtab - có tác dụng khi tập tin có thuốc tính readonly hoặc bị full ổ cứng
mount /dev/fd0 /mnt/floppy mount một đĩa mềm
mount /dev/cdrom /mnt/cdrom mount a cdrom / dvdrom
mount /dev/hdc /mnt/cdrecorder mount a cdrw / dvdrom
mount /dev/hdb /mnt/cdrecorder mount a cdrw / dvdrom
mount -o loop file.iso /mnt/cdrom mount một tập tin hoặc iso image
mount -t vfat /dev/hda5 /mnt/hda5 mount a Windows FAT32 file system
mount /dev/sda1 /mnt/usbdisk mount a usb pen-drive or flash-drive
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share
Mount thư mục để copy qua 2 máy:
Trên máy nguồn edit lại /etc/exports : thêm đường dẫn thư mục cần Share
/u01/test *(rw,sync,no_root_squash)
Máy đích lập 1 thư mục bất kỳ để mount, rồi dùng lệnh:
mount -t nfs 10.15.96.22:/u01/test /etc/1mount
V. Users and Groups
groupadd group_name tạo một nhóm mới
groupdel group_name xóa một nhóm
groupmod -n new_group_name old_group_name đổi tên nhóm
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 tạo một người dùng mới trong nhóm admin
useradd user1 tạo một người dùng mới
userdel -r user1 xóười dùng ( '-r' loại trừ thư mục gốc)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 thay đổi thuộc tính người dùng
passwd đổi mật mã
passwd user1 đổi mật mã người dùng (chỉ dành cho root)
chage -E 2005-12-31 user1 thiết lập độ dài của mật khẩu người dùng
pwck kiểm tra cú pháp đúng và tập tin định dạng trong '/etc/passwd' và sự tồn tại của người dùng
grpck kiểm tra cú pháp đúng và tập tin định dạng trong '/etc/group' và sự tồn tại của nhóm
newgrp group_name đăng nhập tới một nhóm mới để thay đổi nhóm mặc định (của) những tập tin mới được tạo ra.
---------------------------
1. Các lệnh cơ bản
# ls // giống như dir của windows
# vi // mở trình soạn thảo văn bản text
# passwd // đổi password user hiện tại
# chmod // cấp quyền cho thư mục và tập tin (chmod 777) là toàn quyề
# chgrp // thay đổi group cho thư mục và tập tin
# chown // thay đổi owner thư mục và tập tin
# cp a b // copy file a vào thư mục b
# reboot // khởi động lại hệ thống
# shutdown -h now // shutdown hệ thống (tắt máy)
2. Networking (hạn chế sử dụng khi đang ở chế độ remote):
# ifconfig // xem và config ip của server
# setup // chọn Network Configuration để set IP cho server
# vi /etc/resolv.conf // cấu hình dns cho server
# ifdown eht0 // down card mạng eth0
# ifup eht0 // up card mạng eth0
# service network restart // khởi động lại service mạng
3. Kiểm tra hệ thống
# top // xem tình trạng sử dụng tài nguyên RAM, CPU của hệ thống
# uptime // xem tình trạng trung bình của hệ thống và thời gian hệ thống đã online
# fdisk -l // xem các ổ cứng HDD có trên server
# df -h // kiểm tra mức độ sử dụng ổ cứng HDD
# cat /proc/cpuinfo // kiểm tra CPU
# cat /proc/meminfo // kiểm tra mức độ sử dụng bộ nhớ
# du -hs // kiểm tra dung lượng thư mục
4. Webserver và MySQL
# service httpd status // xem tình trạng webserver
# service httpd restart // khởi động lại webserver
# service mysqld restart // khởi động lại mysql
# mysqlcheck -Aao -auto-repair -u[MySqlAdmin] -p[Password] // kiểm tra sửa và optimize mysql database
5. Nén và giải nén
# tar -cvzpf archive.tgz /home/example/public_html/folder // nén một thư mục
# tar -tzf backup.tar.gz // liệt kê file nén gz
# tar -xvf archive.tar // giải nén một file tar
Liệnh Vi
Linux là một hệ điều hành được điều khiển đa phần qua môi trường dòng lệnh ( console ), thêm vào đó, các file cấu hình dịch vụ trên Linux thường được chỉnh sửa bởi trình editor là vi ( hay vim, bản cải thiện của vi ). Nếu bạn là người thường xuyên quản trị server linux qua console, thì vi là trình tiện ích hay sử dụng . Do vậy, học cách sử dụng vi là một yêu cầu tối thiểu và cần thiết cho một người sử dụng linux.
1. Cơ bản
- Sử dụng vi kèm theo tên file(s) muốn edit: vi one.txt two.txt etc.txt
- Có 2 mode: command mode và insert mode. Khi bắt đầu sử dụng lệnh vi, vi mặc định ở command mode. Hoặc ấn Esc để chuyển sang command mode khi người dùng đang ở insert mode.
2. Các lệnh edit cơ bản
- Ấn phím lệnh i hoặc a từ chế độ command mode để chuyển sang insert mode. i để thêm ký tự trước con trỏ, a để thêm ký tự sau con trỏ.
- Sử dụng lệnh h j k l hoặc các phím mũi tên tương ứng để di chuyển con trỏ sang trái, xuống, lên, sang phải.
- Sử dụng x xóa 1 ký tự, dw xóa 1 từ, dd xóa cả 1 dòng.
- Sử dụng số N đi trước phím lệnh để lặp lại N lần tác dụng của lệnh. Ví dụ, 3dw sẽ xóa 3 từ tính từ vị trí con trỏ.
- Sử dụng u ( = undo )để khôi phục lại những thay đổi trước đó.
- Sử dụng ZZ hay hay :wq lưu lại tất cả thay đổi và thoát.
- Sử dụng :q! thoát ra không lưu lại bất kỳ thay đổi nào.
3. Cắt và dán
- yy sao chép dòng hiện tại vào buffer, Nyy sao chép N dòng.
- p ( P ) dán nội dung từ buffer vào dưới ( trên ) dòng hiện tại
4. Nhảy đến hàng hay cột
- Gõ một số N trước ký tự G để đi đến dòng thứ N, vd 23G sẽ nhảy đến dòng 23.
- Gõ một số N trước ký tự | (pipe) để nhảy đến cột thứ N.
5. Sử dụng . để lặp lại action gần . Ví dụ người dùng gõ i để insert dòng chữ “hello world”, sau đó chuyển sang chế độ command mode bằng phím Esc, nhảy xuống dòng và gõ . , dòng chữ “hello world” sẽ hiện ra.
6. Tìm kiếm
- Sử dụng / (?) đi theo sau là từ muốn tìm để tìm kiếm từ trong phần văn bản sau ( trước ) con trỏ. ví dụ /foobar hay ?foobar.
- Sau khi kết quả tìm kiếm đầu tiên hiện ra, sử dụng n để tìm kiếm tiếp trong phần văn bản còn lại sau con trỏ, N để tìm kiếm ngược trở lại đầu văn bản trước con trỏ.
7. Các lệnh colon ( đi sau dấu : )
- :%s/foo/bar/g tìm sự xuất hiện của “foo” trong toàn bộ file và thay thế bằng “bar”, /foo/bar/g chỉ thay thế ở dòng hiện tại.
- et nu hiển thị số dòng trước mỗi dòng, et nonu để bỏ hiển thị số dòng.
- :1,8d xóa từ dòng 1 cho đến dòng 8 trong file.
- Sử dụng ma để đánh dấu dòng hiện tại là a ( có thể là bất cứ ký tự nào từ a-z ). Sau đó dùng ‘a để nhảy đến dòng đã được dánh dấu là a từ bất cứ đâu. Có thể sử dụng với colon, :’a,’b d xóa tất cả các dòng bắt đầu từ dòng được đánh dấu là a cho đến dòng được đánh dấu là b, hoặc ngược lại.
- :w newfile.txt để save nội dung của file hiện tại vào một file mới là newfile.txt ( tựa “save as” bên Win Word ).
- :8,16 co 32 để copy dòng 8 đến 16 đến điểm sau dòng 32.
- :3,16 m 32 để chuyển rời dòng 8 đến 16 đến điểm sau dòng 32.
- Nếu dùng vi để mở nhiều file ( vi file1 file2 file3 ), có thể sử dụng :n để nhảy đến file tiếp theo và :rew để nhảy quay ngược lại đến file đầu tiên, :args để hiện thị tất cả các file đang được mở.
8. Vi for Smarties
- Sử dụng G để nhảy đến dòng cuối cùng của file.
- Khi xóa nhiều dòng, di chuyển con chuột đến dòng đầu tiên, gõ ma để đánh dấu, sau di đến dòng cuối cùng và gõ d’a để xóa những dòng đó.
- $ để nhảy xuống cuối dòng, :$ để nhảy đến dòng cuối của file.
- 0 để nhảy đến đầu dòng,
để nhảy tới dòng đầu tiên của file.
- d$ xóa từ vị trí con trỏ hiện tại đến cuối dòng.
- :10,$ d xóa từ dòng 10 cho đến dòng cuối cùng của file, hoặc ngược lại.
- :10,20 m 0 chuyển rời dòng 10 đến 20 lên trên dòng đầu tiên của file.