Các lệnh cơ bản trong Linux system 1. Dùng lệnh su (switch user) để chuyển người dùng : su username_cần_chuyển Lệnh này dùng chuyển đổi từ username hiện tại sang username muốn chuyển #su cutynhangheo hoặc $su cutynhangheo Muốn trở lại với username hiện thời : #exit hoặc $exit hoặc Ctrl + D Lưu ý với các bạn cho dễ hiểu, khỏi mắc công thắc mắc : dấu nhắc # cho biết username hiện thời là người quản trị hoặc có quyền ngang quản trị dấu nhắc $ cho biết username hiện thời là user nên quyền bị hạn chế
Trang 1Các lệnh cơ bản trong Linux system
1 Dùng lệnh su (switch user) để chuyển người dùng :
su username_cần_chuyển
Lệnh này dùng chuyển đổi từ username hiện tại sang username muốn chuyển
#su cutynhangheo
hoặc $su cutynhangheo
Muốn trở lại với username hiện thời :
#exit
hoặc $exit
hoặc Ctrl + D
Lưu ý với các bạn cho dễ hiểu, khỏi mắc công thắc mắc :
dấu nhắc # cho biết username hiện thời là người quản trị hoặc có quyền ngang quản trị
dấu nhắc $ cho biết username hiện thời là user nên quyền bị hạn chế
2 Các lệnh quản lý thư mục và tập tin :
2.1 Lệnh pwd (print working diectory) : Dùng xem thư mục đang làm việc
#pwd
hoặc $pwd
2.2 Lệnh cd (change diectory) : Dùng thay đổi, chuyển đến thư mục nào đó (giống như cd trong ms-dos của pác Bill)
#cd _path
hoặc $cd _path
2.3 Sử dụng trình soạn thảo vi : Đây là trình soạn thảo văn bản ở chế độ commandline (Gần giống với trình soạn thảo vietrex thời tiền sử của công nghệ thông tin Việt Nam )
#vi file_name
hoặc $vi file_name
Trong chế độ soạn thảo vi nhấn Insert để chuyển sang chế độ nhập data
Một vài chú ý trong trình soạn thảo vi :
:q! Thoát không lưu lại những gì đã nhập
:w Lưu lại
:wq Lưu lại và thoát khỏi trình soạn thảo
Lưu ý : Trình soạn thảo gedit cũng làm chức năng nhi vi (Gần giống với notepad của pác Bill)
#gedit file_name
Trang 2hoặc $gedit file_name
2.4 Lệnh cp : Dùng để sao chép tập tin và thư mục (Gần giống với lệnh copy bằng GUI mode hoặc trong commandline của pác Bill)
#cp filename_copy _path/filename_copy
hoặc $cp filename_copy _path/filename_copy
2.5 Lệnh mv : Dùng để di chuyển tập tin và thư mục (Cái này của pác Bill thì cuty wên mất là lệnh gì trong commandline :()
#mv _pathold/file_name _pathnew
$mv _pathold/file_name _pathnew
2.6 Lệnh rm : dùng xóa tập tin và thư mục
Xóa tập tin :
#rm -i file_name Xóa có cảnh báo
#rm -f file_name Xóa không cần cảnh báo
Xóa thư mục :
#rmdir _path/folder_name
2.7 Lệnh mkdir : dùng tạo thư mục
#mkdir _path/folder_name
2.8 Lệnh ls : Dùng liệt kê thư mục (Giống với lệnh dir của pác Bill)
#ls _path/folder_muốn_liệt_kê
2.9 Lệnh cat : Dùng để đọc nội dung của một file nào đó và tạo một file mới
Đọc nội dung file chứa passwd
#cat /etc/passwd
Tạo 1 file newfile.txt
#cat /home/newfile.txt
seatek
05-12-2008, 02:59 PM
3 Một số ký hiệu và lệnh trong shell :
3.1 Sử dụng Pipe : Ta thêm ký hiệu | thì output của lệnh command1 sẽ là input của lệnh command2
Trang 3#command1 | command2
3.2 Sử dụng redirection :
Out put ra file :
#ls /home > /tmp/home.txt
Dòng này để xem file home.txt
#cat /tmp/home.txt
Thêm data vào tập tin :
#echo "everything" >> /tmp/home.txt
3.3 Sử dụng history : Dùng để liệt kê tất cả các lệnh ta đã thực hiện trước đó (Cái hay của Linux
là trong terminal của nó khi đóng lại nó không xóa tất cả các lệnh mà ta đã thực thi trước đó Pác Bill thi chắc không nhỉ )
#history
Và khi history đã liệt kê ra rồi ta muốn chạy lệnh nào lại thì cứ đếm số dòng của lệnh đó và bỏ vào dấu "!".Ví dụ cuty chạy lại lệnh thứ 5
#! 5
4 Các lệnh điều khiển quyền truy cập thư mục và tập tin :
Trong Linux quyền truy cập được chia thành 3 nhóm Owner, Group và Others ,Với 3 quyền read (r), write (w), execute (x)
rwx Sẽ là Owner - Group - Others Trong đó Owner được đọc, Group được ghi , Others được thực thi
4.1 Lệnh chmod : Dùng thay đổi quyền truy cập
#chmod [quyền truy cập] [tên tập tin hoặc thư mục]
Ví dụ cuty có file home.txt
#chmod 777 /tmp/home.txt
4.2 Lệnh chown : Dùng thay đổi quyền sở hửu tập tin hoặc thư mục
#chown [-R] [user:group] [file_name hoặc thư mục]
Trong đó -R áp dụng trong trường hợp muốn chuyển quyền sở hữu đối với thư mục chỉ định và toàn bộ những gì bên trong thư mực đó
Ví dụ cuty có thư mục tmp
#chown -R cutynhangheo /tmp
4.3 Lệnh chgrp : Dùng thay đổi nhóm sở hữu tập tin hoặc thư mục
#chgrp [-R] [groupname] [file hoặc thư mục]
Trang 45 Sử dụng lệnh mount và unmount :
5.1 Lệnh mount : Dùng gắn kết ổ đĩa và thư mục truy xuất qua mạng
#mount -t vfstype devicefile mkdir
Trong đó :
-t : gắn kết theo kiểu hệ thống do vfstype quy định
vfstype bao gồm các kiểu hệ thống file cơ bản như sau :
_ Auto : Tự động xác định hệ thống tập tin
_ Msdos : Hệ thống tập tin trên Dos
_ ext3 : Hệ thống tập tin chuẩn của Linux
_ vfat : Hệ thống tập tin hỗ trợ Windows 95, 98, Me
_ ntfs : Định dạng hệ thống file cho NTFS của Windows
_ Nfs : Định dạng hệ thống file truy xuất qua mạng (Network File System) _ Iso9660 : Định dạng hệ thống file cho CD-ROM
divicefile : Đường dẫn đến file thiết bị
mkdir : Đường dẫn gắn kết ổ đĩa vào
Ví dụ cuty muốn mount ổ đĩa CD-ROM vào hệ thống để sử dụng
#mount -t iso9660 /dev/cdrom /mnt/cdrom
5.2 Lệnh unmount : Dùng để gỡ bỏ gắn kết nối ổ đĩa
#unmount device
Ví dụ cuty muốn unmount ổ đĩa CD-ROM
#unmount /mnt/cdrom
seatek
05-12-2008, 03:02 PM
6 Quản lý người dùng :
6.1 Lệnh useradd : Để thêm người dùng
#useradd option user_name
Trong đó option bao gồm các giá trị sau :
-d : Thiết lập thư mục home của người dùng
-e : Thiết lập ngày hết hạn cho người dùng
-f : Thiết lập số ngày password hết hạn sử dụng
-g : Thiết lập tên group mà người dùng là thành viên
-G : Thêm người dùng vào các group
-m : Tạo thư mục home cho người dùng nếu nó không có
-M : Không tạo thư mục home cho người dùng
-s : Thiết lập shell cho người dùng, mặc định là bin/bash
-u : Mặc định sẽ lấy số ID tiếp theo để gán cho user
C/y : root có uid = 0
Trang 56.2 Lệnh passwd : Thiết lập password cho user
#passwd user_name
6.3 Lệnh userdel : Dùng để xóa người dùng
#userdel [-r] user_name
-r : Xóa luôn thư mục home của người dùng
6.4 Lệnh usermod : Thay đổi người dùng trong hệ thống
#usermod [option] user_name
[option] : tương tự như option của useradd
6.5 Lệnh groupadd : Tạo thêm nhóm
#groupadd [option] group_name
-g : Thiết lập gid mới Mặc định sẽ chọn gid có giá trị
-r : Mặc định sẽ gán gid > 499 Khi thêm option này gid thường được gán < 499
-f : Khi sử dụng option này hệ thống sẽ không báo lỗi nếu như tên nhóm chỉ định đã có trong hệ thống
6.6 Lệnh groupdel : Dùng xóa group
#groupdel group_name
6.7 Lệnh groupmod : Dùng thay đổi nhóm
#groupmod [option] group_name
-g : cho phép thay đổi gid
-n : cho phép đặt tên mới cho nhóm
6.8 Lệnh sudo (superuser do) : Cho phép người dùng cấu hình giới hạn những tham số chạy chương trình
#sudo command_muốn_thực_thi
7 Sử dụng rpm (Redhat Package Manager) :
Chức năng của rpm cho phép người quản trị hệ thống install, upgrade, remove, quered gói phần mềm :
#rpm [option] rpm_package_name
-v : Cung cấp một số thông tin
-vv : Cung cấp đầy đủ thông tin
-h : Thỉnh thoảng in ra dấu # trong khi cài đặt
Trang 6-percent : Thay vì in ra dấu # sẽ hiện tỷ lệ % lượng công việc đã thực hiện trong quá trình cài đặt -force : Lệnh cho RPM không quan tâm đến lỗi do xung đột và tiếp tục trong quá trình cài đặt -replacefiles : Thay thế tập tin từ những gói khác
-nodeps : Bò qua những gói phụ thuộc
7.1 Install :
#rpm -ivh rpm_package_name
7.2 Upgrade :
#rpm -Uvh rpm_package_name
7.3 Query một gói phần phềm :
Liệt kê các gói phần mềm đã cài đặt trong hệ thống :
#rpm -qa
Tìm kiếm một gói phần mềm nhất định :
#rpm -qa | grep rpm_package_name
Liệt kê tất cả các file tài liệu liên quan đến gói phần mềm nhất định :
#rpm -qd rpm_package_name
Liệt kê tất cả thông tin liên quan đến gói phần mềm nhất định :
#rpm -qi rpm_package_name
Liệt kê các tập tin config của gói phần mềm nhất định :
#rpm -qc rpm_package_name
7.4 Uninstall :
#rpm -e rpm_package_name
seatek
05-12-2008, 03:06 PM
8 Cấu hình dịch vụ mạng :
8.1 Kiểm tra địa chỉ hiện tại của hệ thống :
#iconfig -a
8.2 Cấu hình địa chỉ ip :
#ifconfig [network_card] [ip] netmask [subnetmask] [up/down]
[network_card] : Card mạng muốn gán ip
[ip] : Địa chỉ ip muốn gán cho card mạng đó
[subnetmask] : Subnet cua ip đó
[up/down] : Trạng thái cho card mạng sau khi gán ip
Trang 78.3 Kiểm tra bảng định tuyến của card mạng :
#route
8.4 Cấu hình gateway cho card mạng :
#route add default gw [ip_gate] [network_card]
[ip_gate] : Địa chỉ gateway hoặc router
Chú ý : Nếu các bạn ngại cấu hình địa chỉ ip cho card mạng bằng commandline, bạn có thề sử dụng trình soạn thảo vi hoặc gedit sửa file sau
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0 có thể thay đổi theo từng hệ thống
9 Quản lý dịch vụ :
9.1 Lệnh chkconfig :
#chkconfig [option]
[option] : Bao gồm như sau
level runlevel : Chỉ định dịch vụ runlevel sẽ on, off hoặc reset
list service : Liệt kê tất cả các dịch vụ trên hệ thống
add service : Thêm một dịch vụ mới vào hệ thống
del service : Xóa một dịch vụ
Service on/off/rerset : bật/tắt/reset một dịch vụ
seatek
05-12-2008, 03:10 PM
10 Hệ thống tập tin Network File System (NFS) :
NFS là một dịch vụ dùng để chia sẽ tập tin giữa các hệ thống Linux và Unix với nhau
_ Kiểm tra gói phần mềm NFS đã được cài đặt chưa ?
#rpm -qa | grep nfs
nfs-untils-1.0.6-65.EL4
system-cònig-nfs-1.2.8-1
_ Nếu hiện ra thông báo như trên thì đã được cài đặt (đối với hệ thống mới các thông báo trên sẽ không giống như tren ), nếu chưa ta tiến hành cài đặt thêm
_ Ngoài 2 gói trên ta cần kiểm tra thêm gói portmap :
#rpm -qa | grep portmap
portmap-4.0-63
_ Khởi động dịch vụ :
#service nfs start
_ Khởi động dịch vụ nfs mỗi khi boot hệ thống :
Trang 8#chkconfig nfs on
_ Kiểm tra nfs có thực sự chạy chưa ?
#rpcinfo -p
_ Cấu hình NFS trên máy server :
#vi /etc/exports
Thêm vào nội dung sau :
/home [ip_range]/[netmask](permitsion,sync)
Trong đó :
* /home : là tên thư mục ta chia sẽ cho client truy cập đến
* permitsion : là các quyền ta cấp phát cho client được phép thực hiện trên thư mục ta chia sẽ _ Cấu hình NFS trên máy client :
Tạo một thư mục để mount thư mục chia sẽ của server về máy client :
#mkdir /mnt/nfs
Tiến hành mount thư mục chia sẽ của server về client :
#mount -t nfs [ip_server_chia_sẽ]:[folder_name_chia_sẽ] /mnt/nfs
Trong đó :
* [ip_server_chia_sẽ] : địa chỉ ip máy server chia sẽ
* [folder_name_chia_sẽ] : thư mục chia sẽ trên server (ví dụ đây là : /home)
Như vậy mỗi khi ta muốn truy xuất thư mục chia sẽ trên server ta phải sử dụng lệnh mount Vậy
có cách nào cho quá trình này được tự động hay không ? Trả lời là có, ta thực hiện tiếp các bước sau :
_ Chỉnh sửa file fstab như sau :
#vi /etc/fstab
Thêm vào nội dung sau :
#Diectory Mount Point Type Options Dumnp FSCK
[ip_server_chia_sẽ]:[thư_mục_chia_sẽ] /mnt/nfs nfs soft,nfsvers=2 0 0
_ Thực hiện tạo thư mục và lệnh mount trên client như phần trên
Kết thúc , ta sẽ truy xuất thư mục chia sẽ trên server một cách tự động mỗi khi cần đến
11 Cấu hình Samba server :
Trong một mạng LAN không chỉ có các hệ thống Linux, Unix mà còn có các hệ thống khác như Windows, SUN, MAC Để các hệ thống khác ngoài Linux, Unix có thể truy xuất và thấy được hệ thống Linux, Unix ta cần có thêm gói dịch vụ Samba Có thể download gói phần mềm này tại http://www.samba.org
_ Kiểm tra gói SAMBA có tồn tại trên hệ thống chưa ? Nếu chưa thì tự tìm cách setup vào
Trang 9#rpm -qa samba
Cấu hình dịch vụ Samba :
_ Tạo 2 thư mục có tên (cutynhangheo1 , cutynhangheo2) nằm tại thư mục / :
#mkdir /cutynhangheo1
#mkdir /cutynhangheo2
_ Cần soạn thảo tập tin smb.conf có cấu hình như sau :
#vi /etc/samba/smb.conf
Thêm vào nội dung sau :
[global]
netbios name = linux <~~~ tên máy
workgroup = WORKGROUP <~~~ cái này như windows
server string = Linux-Samba-Server <~~~ tên đầy đủ
hosts allow = 192.168.1.0 127 <~~~ range ip cho phép truy xuất
log file = /var/log/samba/%m.log <~~~ lưu trữ log
# Log files can be at most 50KB
security = user
smb paswd file = /etc/samba/smbpasswd
encrypt passwords = yes
dns proxy = no
[homes]
comment = Home Diectories
browseable = yes
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
writable = no
printable = yes
[cutynhangheo1] <~~~ quy định khai báo
comment = cutynhangheo1
path = /cutynhangheo1 <~~~ đường dẫn thư mục chia sẽ
browseable = yes
writable = yes
printable = no
availabe = yes
[cutynhangheo2] <~~~ như trên
comment = cutynhangheo2
Trang 10path = /cutynhangheo2 <~~~ như trên
browseable = yes
writable = no
printable = no
availabe = yes
_ Tạo group mới có tên (cutynhangheo10) :
#groupadd cutynhangheo10
_ Tạo user mới có tên (cutynhangheo) :
#useradd cutynhangheo -g cutynhangheo10
_ Tạo password cho user mới trên :
#passwd cutynhangheo
_ Tạo password cho smb :
#smbpasswd -a cutynhangheo
_ Chuyển quyền sở hửu 2 thư mục chia sẽ (cutynhangheo1 , cutynhangheo2) cho group
(cutynhangheo10) :
#chgrp cutynhangheo10 /cutynhangheo1
#chgrp cutynhangheo10 /cutynhangheo2
_ Thay đổi quyền trên 2 thư mục chia sẽ (cutynhangheo1 , cutynhangheo2) :
#chmod 777 /cutynhangheo1
#chmod 775 /cutynhangheo2
_ Khởi động dịch vụ Samba
#service samba start
_ Kiểm tra cấu hình dịch vụ Samba đã được thực thi chưa ?
#testparm
_ Kiểm tra các kết nối tới thư mục chia sẽ :
#smbclient -L [ip_host]
seatek
05-12-2008, 03:12 PM
12 Cấu hình dịch vụ DHCP :
Cũng như trong hệ thống Windows, hệ thống Linux hoặc Unix đều có chức năng làm DHCP server
_ Kiểm tra gói DHCPD có tồn tại trên hệ thống chưa ? Nếu chưa thì tự tìm cách setup vào
#rpm -qa dhcpd
_ Để cấu hình dịch vụ này cần cấu hình ip tĩnh cho hệ thống Linux (Cấu hình thế nào coi phần trên
Trang 11_ Tạo file dhcp.conf
#cat /etc/dhcp.conf
_ Thêm nội dung sau vào file dhcp.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.100.0 netmask 255.255.255.0 ( <~~~ địa chỉ lớp mạng
option routers 192.168.100.254; <~~~ địa chỉ của router
option subnet-mask 255.255.255.0;
option domain-name "test.com"; <~~~ tên tùy thích (bạn đặt tên gì tùy ý )
option domain-name-servers 192.168.100.1; <~~~ địa chỉ ip tĩnh của máy DHCP Linux
option time-offset-1800; <~~~ thời gian gì đó không nhớ
range 192.168.100.2 192.168.100.253; <~~~ dãy ip cấp pháp cho các client
)
_ Khởi động dịch vụ DHCP :
#service dhcpd start
13 Cấu hình dịch vụ SSH (Secure Shell) :
Dùng cho cái gì đó
_ Kiểm tra gói SSHD có tồn tại trên hệ thống chưa ? Nếu chưa thì tự tìm cách setup vào
#rpm -qa sshd
_ Mở file sshd_config bằng vi hoặc gedit cũng được :
#vi /etc/ssh/sshd_config
_ Edit lại vài dòng sau trong file sshd_config
Port 22
Protocol 2,1
PermitRootLogin yes
_ Chú ý những dòng trên nếu có dấu # đằng trước thì bạn xóa bỏ dấu đó đi để câu lệnh được thực hiện
_ Khởi động dịch vụ :
#service sshd start
_ Dùng tool gì để kết nối tới dịch vụ SSH trên hệ thống Linux, Unix ấy nhỉ:o
seatek
05-12-2008, 03:16 PM
Trang 1214 Cấu hình dịch vụ FTP :
Cũng như hệ thống Windows, hệ thống Linux, Unix cũng có dịch vụ FTP Server để chia sẽ cho các client
_ Kiểm tra gói VSFTPD có tồn tại trên hệ thống chưa ? Nếu chưa thì tự tìm cách setup vào
#rpm -qa vsftpd
_ Mở file vsftpd.conf :
#vi /etc/vsftpd/vsftpd.conf
_ Kiểm tra những dòng sau đã có chưa ?
local_enable=YES
write_enable=YES
_ Tạo thư mục chia sẽ : tốt nhất nên tạo ngoài /
#mkdir /cutynhangheo_share
_ Tạo thêm thư mục con trong cutynhangheo_share :
#mkdir /cutynhangheo_share/cutynhangheo_ftp
_ Tạo thêm group GFTP :
#groupadd gftp
_ Tạo thêm user (cutynhangheo_ftp) vào group (gftp) :
#useradd -g gftp -d /home/cutynhangheo_ftp cutynhangheo_ftp
_ Thay đổi thư mục (home) của user (cutynhangheo_ftp) trên thư mục (cutynhangheo_ftp) trong thư mục (cutynhangheo_share) :
#usermod -d /cutynhangheo_share/cutynhangheo_ftp cutynhangheo_ftp
_ Thay đổi quyền truy xuất trên thư mục (cutynhangheo_ftp) trong thư mục
(cutynhangheo_share) :
#chmod 777 /cutynhangheo_share/cutynhangheo_ftp
_ Chuyển quyền cho group (gftp) :
#chown root:gftp /cutynhangheo_share
_ Chuyển quyền cho user (cutynhangheo_ftp) :
#chown cutynhangheo_ftp /cutynhangheo_share/cutynhangheo_ftp
_ Set password chu user (cutynhangheo_ftp) :
#passwd cutynhangheo_ftp
_ Khởi động dịch vụ FTP Server :
#service vsftp start