Sơ lược lại 1 số lệnh!Part1: System information arch hiển thị cấu trúc của máy1 uname -m hiển thị cấu trúc của máy2 uname -r hiển thị phiên bản kernel đang sử dụng dmidecode -q Hiển thị
Trang 1Sơ lược lại 1 số lệnh!
Part1: System information
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
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
Part2: Shutdown (Restart of a system and Logout )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
Part3: Files and Directory
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
Trang 2cd ~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 symbolic link
ln file1 lnk1 tạo 1 đường dẫn vật lý đến 1 tập tin hoặc thư mục hard link
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
File search
find / -name file1 tìm tập tin và thư mục trong thư mục hệ thống root từ dấu "/"s
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
Trang 3find /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
Mounting a Filesystem
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
Disk Space
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)
Trang 4Users 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óa ngườ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.
Các lệnh thông dụng trên hệ thống Unix
Tôi chỉ đưa ra các lệnh kèm chưc năng, các tham số của nó thì bạn cần xem thêm.
1 Lệnh man, info và apropos : thông tin về lệnh
2 Lệnh cd : chuyển thư mục
3 Lệnh ls : liệt kê file thông thường hay dùng ls -al hoặc ls -l
4 Lệnh file : xem thông tin loại file của 1 file file <tên file>
5 Lệnh more và less : xem nội dung file more <tên file>
6 Lệnh cat và tail : xem nội dung file cat <tên file>
7 Lệnh cp : lệnh copy
8 Lệnh mv : lệnh di chuyển hoặc đổi tên file, thư mục
9 Lệnh mkdir : tạo thư mục mới
10 Lệnh rm và rmdir : xóa file và xóa thư mục rỗng
11 Lệnh dir : bằng với ls -l
12 Lệnh pwd : xem vị trí thư mục hiện thời
13 Lệnh date : xem ngày
14 Lệnh cal : xem lich, ví dụ cal 2006
15 Lệnh exit : thoát khỏi terminal
Còn sau đây là một số lệnh yêu thích :
1 Lệnh touch : tạo file
2 Lệnh find : tìm kiếm (sẽ có 1 bài viết riêng về lệnh này)
Trang 53 Lệnh grep : tìm kiếm nội dung file hỗ trợ regular expression
4 Lệnh who, whoami, whatis, whereis, which : đúng như nghĩa của các từ này
5 Lệnh echo : hiển thị nội dung 1 biến ,
Các lệnh dành cho quản trị hệ thống :
1 Lệnh last : hiển thị các user login gần đây
2 Lệnh df : xem thông tin ổ đĩa, thông thường hay dùng df -h
3 Lệnh du : xem thông tin dung lượng file, thư mục
4 Lệnh top : cái giống như taskmanager của windows, nó sẽ hiển thị thông tin về các processes
5 Lệnh free : xem tình hình bộ nhớ
6 Lệnh ps : xem thông tin processes
7 Lệnh kill : tắt process
8 Lệnh mount và unmount :
9 Lệnh chmod : thay đổi permissions đối với file
10 Lệnh chown : thay đổi người sở hữu đối với file
11 Lệnh chgrp : thay đổi group đối với file
Backup sao lưu giữ liệu với UNIX
Các lệnh cần dùng : tar, gzip, gunzip
Ví dụ với tar :
tar -czvf MyArchive Source_file
hoặc
tar create gzip verbose file=MyArchive Source_file
tar -xzvf MyArchive Source_file
hoặc
tar extract gunzip verbose file=MyArchive Source_file
gzip là một phần của tar, tuy nhiên gzip và gunzip vần dùng được độc lập.
Việc backup và sao lưu nên viết thành các job để hệ thống tự động làm.
Ví dụ tôi cần backup dữ liệu của mysql hàng tuần vào Chủ nhật.
#!/bin/bash
Trang 6Đoạn script bạn cho vào 1 file, ví dụ : db_backup.sh
Sau đó chmod +x cho file db_backup.sh có nghĩa là cho file này có quyền chạy sau
đó tạo schedule cho file này.
Cái này nó tương tự như schedule task của windows.
Để tạo schedule trên Linux bạn dùng crontab.
[root@duchai etc]# ls -l| grep cron
-rw-r r 1 root root 329 Feb 11 2006 anacrontab
drwxr-xr-x 2 root root 4096 Feb 16 2006 cron.d
drwxr-xr-x 2 root root 4096 Aug 3 13:43 cron.daily
-rw-r r 1 root root 0 Aug 3 13:21 cron.deny
drwxr-xr-x 2 root root 4096 Dec 11 2005 cron.hourly
drwxr-xr-x 2 root root 4096 Aug 3 13:18 cron.monthly
-rw-r r 1 root root 255 Dec 11 2005 crontab
drwxr-xr-x 2 root root 4096 Aug 3 13:21 cron.weekly
[root@duchai etc]# more crontab
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Các job này sẽ được đặt trong các file trên hoặc trong thư mục :
/var/spool/cron/crontabs
Trang 7Sử dụng crontab - l để biết các jobs của user hiện tại Nếu chưa có dùng lệnh crontab -e để tạo jobs.
Cú pháp 1 dòng trong crontab :
Minute(0-59) Hour (0-23) Day of Month (1-31) Month (1-12 or Jan-Dec) Day of Week (0-6 or Sun-Sat) Command
0 2 12 * 0,6 /usr/bin/find
Tham khảo : Cron and Crontab usage and examples.
Cài đặt và cập nhật phần mềm trong Linux
Trên windows các file cài đặt có định dạng exe, msi, vis, việc cài đặt rất dễ dàng bằng việc chạy các file này Trên unix cũng tương tự như thế Tuy nhiên trong các bài viết này tôi chỉ dùng terminal, không dùng chế độ giao diện.
Vậy việc cài đặt trên trên linux như thế nào ?
* RPM : Red Hat Package Manager
Các chương trình sẽ có đuôi rpm, cú pháp như sau :
rpm -i new_program.rpm
> cài đặt chương trình mới (-i là viết tắt của install)
rpm -q program_name > kiểm tra xem 1 chương trình đã được cài hay chưa ?
Trang 8Các lệnh cơ bản với yum:
Cài đặt : yum -y install <tên phần mềm(gói)>
Gỡ bỏ : yum -y remove <tên phần mềm>
Xem các gói đã cài : yum list <tên phần mềm>
Ví dụ : xem các gói đã cài của php :
[root@web ~]# yum list php*
Loading "installonlyn" plugin
Chi tiết các lệnh với yum : yum -h
Khi hết swap thì ta cần thêm swap file, ví dụ cần thêm 1G swap :
/usr/sbin/mkfile 1024m /swapfile > tạo swap file
/usr/sbin/swap -a /swapfile > cho hệ thống biết swap file mới nằm ở đâu
Đơn vị tính : kilobytes (k), blocks (b), or megabytes (m)
Kiểm tra swap file mới đã được thêm hay chưa ?
swap -l
Shells là gì ?
Bạn có thể hiểu nôm na shell là 1 cách để computer giao tiếp với người dùng hay nói cách khác là cách để computer nhận lệnh từ người dùng Thồn thường trên Linux dùng "bash" shell.
Shell là giúp người dùng làm việc với máy tính dễ dàng hơn với những câu lệnh
Trang 9"thân thiện" mang tính chất gợi nhớ.
Ví dụ : cần copy tất cả các file trong thư mục A vào thư mục B cậu lệnh là : cp /A/* /B
* File '.bashrc'
Mỗi một user khi được tạo ra sẽ có 1 shell cho nó như tôi đã nói phần trước, định nghĩa shell cho user nằm trong file bashrc trong thư mục /home/<tên user>, ví dụ ở đây là /home/kikicoco
[root@duchai /]# cd /home/
[root@duchai home]# cd kikicoco/
[root@duchai kikicoco]# ls -al
total 56
drwxr-xr-x 2 kikicoco kikicoco 4096 Nov 29 06:00
drwxr-xr-x 4 root root 4096 Nov 28 14:49
-rw-r r 1 kikicoco kikicoco 24 Nov 28 14:49 bash_logout
-rw-r r 1 kikicoco kikicoco 191 Nov 28 14:49 bash_profile
-rw-r r 1 kikicoco kikicoco 124 Nov 28 14:49 bashrc
-rw-r r 1 kikicoco kikicoco 120 Nov 28 14:49 gtkrc
-rw - 1 kikicoco kikicoco 35 Nov 29 06:00 lesshst
[root@duchai kikicoco]# more bashrc
# User specific aliases and functions
[root@duchai kikicoco]# more bash_profile
Trang 10Trong file bashrc có nói đến các alias do người dùng định nghĩa # User specific aliases and functions
Vì sao lại cần đến alias ?
Ở trên trong lệnh rm có tham số -i, i tức là interactive (prompt before any removal)
có nghĩa là khi có tham xóa -i thì bất cứ file nào bị xóa hệ điều hành sẽ hỏi xem ta có chắc chắn xóa không.
Nếu dùng tham số -f : force (ignore nonexistent files, never prompt) thì hệ điều hành
sẽ xóa mà không cần hỏi Khi bạn muốn xóa nhanh thì hãy dùng tham số này.
Việc dùng alias nhằm mục đích tạo 1 "route" cho người dùng Đặc biệt đối với những máy tính quan trọng như máy chủ chẳng hạn việc xóa file cần phải hết sức thận trọng, nếu như bạn dùng lệnh sau : rm -R -f * mà không tạo alias như trên sẽ khiến toàn bộ số file trong thư mục hiện tại của bạn biến mất ngay lập tức > mặt dài như cái bơm smile_confused
Bạn có thể tạo alias tạm thời bằng cách dùng lệnh alias hoặc xóa 1 alias bằng lệnh unalias:
SYNTAX
alias [-p] [name[=value] ]
unalias [-a] [name ]
Hệ thống thư mục trên * NIX, bài này lấy ví dụ cụ thể
Trang 11net opt proc root sbin selinux srv sys tmp usr var
Đó là các thư mục trên một hệ thống Unix.
Thư mục này chứa file và chương trình của các user trên hệ thống.
Một điều thú vị trên hệ thống Unix là tất cả đều là file, kể cả cái gọi là thư mục cũng
là file.smile_regular
*Thư mục /dev
Khi vào thư mục này đánh lệnh ls bạn sẽ thấy rất nhiều file màu vàng.
Đó chính là tất cả các thiết bị phần cứng mà hệ điều hành dùng, trên hệ thống Unix tất cả đều là file, như tôi đã nói ở trên.
Ví dụ : ổ cứng sẽ là /dev/hda, có thể có 2 loại ổ cứng IDE và SCSI, ổ ở nhà bạn dùng thông thường là IDE, ổ SCSI thường được dùng cho các máy chủ và dung lượng thường là 36GB, 72GB,
Trang 12Để biết thông tin về kernel bạn dùng lệnh : uname -an
[root@duchai /]# uname -an
Linux duchai 2.6.17-1.2157_FC5 #1 Tue Jul 11 22 46 EDT 2006 i686 i686 i386 GNU/Linux
* Thư mục root - thư mục của user root
Khi bạn dùng một user khác truy nhập vào thư mục này, bạn sẽ không có quyền gì với thư mục này, giống như user kikicoco ở phần trước.
Đây chính là "Users home directory" thư mục riêng của user Trên hệ thốnh Unix khi một user mới tạo ra nó sẽ tạo kèm theo 1 thư mục cho user đó Thông thường các thư mục này sẽ nằm trong thư mục /home Nhân tiện đây tôi nói luôn về thư mục /home.
Thư mục /home là thư mục chứa các thư mục của người dùng:
* Thư mục /sbin
Thư mục này là một thư mục giới hạn quyền hạn, nó chứa các chương trình kiểu như thư mục /bin Nhưng bạn không thể làm gì đến nó được Chỉ những user có quyền root mới có thể Shutdown các chương trình ở đây.
* Thư mục /tmp
Thư mục này đúng như tên của nó, nó chứa các file tạm do hệ thống sinh ra Vì để chia sẻ cho bất kỳ chương trình nào nên thư mục này được đặt quyền hạn rất thoải mái :
drwxrwxrwt 11 root root 4096 Nov 29 04:05 tmp
Chức năng của nó cũng giống như thư mục temp của windows.
Trang 13Phần này nói về cách : tắt máy như thế nào ? khởi động như thế nào ?
-c Cancel a shutdown that is in progress.
-f Reboot fast, by suppressing the normal call to fsck
when rebooting.
-h Halt the system when shutdown is complete.
-k Print the warning message, but suppress actual shutdown.
-n Perform shutdown without a call to init.
-r Reboot the system when shutdown is complete.
Trang 14shutdown -h +10
* Lệnh : halt, reboot, poweroff
Từ kernel 2.74 trờ về sau này, lệnh halt, reboot không được gọi trực tiếp mà nó đã được tích hợp vào trong lệnh shutdown như bạn thấy ở trên Nếu bạn dùng các kernel cũ thì vẫn dùng được các lệnh này.
Trình soạn thảo văn bản.
Trên windows có rất nhiều trình soạn thảo khác nhau như office, wordpad,
notepad Trên *nix cũng vậy, nhưng trình soạn thảo ưa thích có lẽ là vi.
Trình soạn thảo này có lẽ là phổ biến nhất và thông dụng nhất trên các hệ thống Unix cũng tương tự như notepad của windows.
Để truy nhập vi trong của sổ terminal bạn đánh : vi
[root@duchai /]# vi
Trình soạn thảo sẽ hiện ra Như bản Fedora tôi đang dùng thì nó đã thay thế vi bởi VIM :
VIM soạn thảo "thuận tay hơn" vi happy bạn dùng thử mà xem big grin
Để tạo 1 file mới bạn đánh : vi <tên file>
[root@duchai /]# vi hello
Bạn nhấn phím "i" để kích hoạt chế độ Insert, sau đó bạn đánh "Hello world!"
Để ghi lại file bạn bấm phím "ESC" để thoát khỏi chế độ Insert Sau đó đánh ":qw"
để lưu lại và thoát ra khỏi vi.
"hello" [New] 1L, 14C written
[root@duchai /]# more hello
Trang 15VI Editor Commands
Switch to Text or Insert mode:
Open line above cursor
Switch to Command mode:
Switch to command mode
<ESC>
Cursor Movement (command mode):
Scroll Backward 1 screen
Trang 17Join previous line
J
Search backward for string
?string
Search forward for string
/string Find next string occurrence n
% (entire file) s (search and replace) /old text with new/ c (confirm) g (global - all) :%s/oldstring/newstring/cg
Ignore case during search
Save and Quit (command mode):
Save changes to buffer
rlogin: dùng để điều khiển hoặc thao tác lệnh trên một máy khác
exit : thoát khỏi hệ thống (Bourne-Shell)
logout: thoát khỏi hệ thống C-Shell
id : chỉ danh của người sử dụng
logname: tên người sử dụng login
man : giúp đỡ
newgrp: chuyển người sử dụng sang một nhóm mới
psswd: thay đổi password của người sử dụng