welcome tinhocK1 website

Tuesday, 31/03/2020, 7:26 PM

Chào Guest

Login form

Đăng nhập:
mật khẩu:

Ẩn

Tán Gẫu

500

Bạn thấy web tinhoc K1 thế nào?

Rate my site
Total of answers: 108
[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Forum » cộng nghệ thông tin » Lập trình » Các câu lệnh Linux căn bản
Các câu lệnh Linux căn bản
admin Date: Saturday, 15/08/2009, 3:40 PM | Message # 1
bạn sắp được nâng cấp
Nhóm: Administrators
Số bài đăng: 146
Reputation: 0
Trang thái: Offline
Chào các bạn đây là một số lệnh cơ bản trong họ hệ điều hành LINUX. Khi nào chúng ta dùng những lệnh này? Đó là khi chúng ta thực hiện Remote config, làm việc trên máy nhưng mà qua giao diện Command line qua cửa sổ Terminal, hay đơn giản là những ai thích làm việc qua CLI. Các lệnh này là các lệnh phổ biến nhưng mà tùy vào OS mà chúng sẽ có đôi chỗ khác nhau. Chúng ta sẽ điểm qua một số lệnh sau:

Các Lệnh Về Khởi Tạo

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

set : xác định các biến môi trường

tty : đặt các thông số terminal

uname: tên của hệ thống (host)

who : cho biết những ai đang thâm nhập hệ thống

Lệnh Về Trình Báo Màn Hình

echo: hiển thị dòng ký tự hay biến

setcolor: đặt màu nền và chữ của màn hình

Lệnh Về Desktop bc: tính biểu thức số học

cal : máy tính cá nhân

date: hiển thị và đặt ngày

mail: gửi - nhận thư tín điện tử

mesg : cấm/cho phép hiển thị thông báo trên màn hình (bởi write/ hello)

spell : kiểm tra lỗi chính tả

vi : soạn thảo văn bản

write/hello: cho phép gửi dòng thông báo đến những người sử dụng trong hệ thống

Lệnh Về Thư Mục cd : đổi thư mục

cp : sao chép 2 thư mục

mkdir: tạo thư mục

rm : loại bỏ thư mục

pwd: trình bày thư mục hiện hành

Lệnh về tập tin more: trình bày nội dung tập tin

cp : sao chép một hay nhiều tập tin

find: tìm vị trí của tập tin

grep : tìm vị trí của chuỗi ký tự trong tập tin

ls: trình bày tên và thuộc tính của các tập tin trong thư mục

mv : di chuyển/đổi tên một tập tin

sort: sắp thứ tự nội dung tập tin

wc : đếm số từ trong tập tin

cat: hiển thị nội dung moat tập tin

vi: soạn thảo hoặc sửa đổi nội dung tập tin

Lệnh về quản lý quá trình: kill: hủy bỏ một quá trình

ps : trình bày tình trạng của các quá trình

sleep: ngưng hoạt động một thời gian

Các Lệnh Về Phân Quyền chgrp: chuyển chủ quyền tập tin, thư mục từ một nhóm sang một nhóm khác

chmod : thay đổi quyền sở hữu của tập tin hay thư mục

chown : thay đổi người sở hữu tập tin hay thư mục

Lệnh Về Kiểm Soát In cancel : ngưng in

lp : in tài liệu ra máy in

Lệnh về hệ thống:
top: Xem trạng thái về hệ thống và các process đang chạy tương tự như Task Manager trong Windows.
shutdown -h now tắt máy tính
shutdown -r now : khởi động lại
Riêng cho RedHat Theo tôi được biết thì ở Việt Nam hiện nay HDH Linux phổ biến nhất là Redhat nên ở đây chúng xin trình bày thêm về rpm

Để install một package:
rpm -ivh

Để upgrade một package:
rpm -Uvh

Để uninstall một package:
rpm -e

Để biết một package đã được install hay chưa
rpm -q

filename ở đây có thể là 1 file hoặc nhiều file với format rpm

Các lệnh thường có thêm rất nhiều các thông số đi theo. Để biết thêm và chi tiết về chúng các bạn có thể dùng lệnh
man command hoặc command --help với command là lệnh cần xem.

 
admin Date: Saturday, 15/08/2009, 3:42 PM | Message # 2
bạn sắp được nâng cấp
Nhóm: Administrators
Số bài đăng: 146
Reputation: 0
Trang thái: Offline
Để xử dụng dòng lệnh đầu tiên bạn cần bật command shell lên, cái này tương tự như MS DOS của windows.Tùy theo hệ điều hành mà bạn đang dùng là gì mà nó sẽ là Konsole hay Terminal ... Sau đó bạn cần có quyền root bằng lệnh su (hay sudo trong Ubuntu). Khi bạn đã có quyền root dấu nhắc trong cửa sổ command shell thường là:
[root@duchai ~]#
Lệnh thống kê dung lượng thư mục Linux
[root@unix1 webhostings]# du -sh *
Bạn xem thông tin về user mình đang login bằng lệnh: id

[root@duchai ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(di sk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Các chỉ số uid và gid sẽ cho biết quyền hạn của bạn trên hệ thống. 0 là quyền cao nhất rồi.Bây giờ bạn muốn login với user mới bạn sử dụng lệnh : useradd

[root@duchai ~]# useradd kikicoco

vậy là bạn đã có user mới là kikicoco trong hệ thống.Lệnh useradd có rất nhiều tham số khác nhau, để xem chi tiết bạn dùng lệnh man

[kikicoco@duchai root]$ man useradd

Lúc trước khi tạo user kikicoco chúng ta chưa tạo mật khẩu, bây giờ tạo mật khẩu cho user này, bằng lệnh passwd.

[root@duchai ~]# passwd kikicoco

Changing password for user kikicoco.

New UNIX password:

Sau đó nhập mật khẩu vào.Để chuyển sang user này bạn dùng lệnh : su

[root@duchai ~]# su kikicoco

bạn kiểm tra lại bằng cách đánh lệnh : id

[kikicoco@duchai root]$ id
uid=501(kikicoco) gid=501(kikicoco) groups=501(kikicoco) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Tiếp theo là các lệnh cơ bản với thư mục :Bạn cần biết hiện tại đang ở thư mục nào bạn dùng : pwd

[kikicoco@duchai root]$ pwd
/root

Vậy là user kikicoco đang ở thư mục /root.Các lệnh về thư mục ở trên unix tương tự như trên MS DOS của windows, chỉ có một số điểm khác biệt.Lệnh ls sẽ tương đương với dir.

Thực hành :

[kikicoco@duchai root]$ ls
ls: .: Permission denied

Vậy là lỗi rồi, user kikicoco không có quyền sử dụng lệnh ls. Lúc trước khi tạo user tôi chưa thêm shell cho user nên user sẽ không có quyền sử dụng lệnh này. Bây giờ tôi sẽ thêm shell cho user.Trước tiên cần chuyển về user root bằng lệnh : su root, nó sẽ hỏi mật khẩu --> nhập mật khẩu của root vào.Bạn dùng lệnh : usermod để thay đổi thông tin người dùng, cú pháp như sau:

SYNTAX
usermod [options] [user]

Bạn chưa biết shell nằm ở đâu, nên cần dùng lệnh whereis để xem vị trí của shell

[root@duchai ~]# whereis bash
bash: /bin/bash /usr/share/man/man1/bash.1.gz

[root@duchai ~]# usermod -s /bin/bash kikicoco

Tiếp theo lại su về user kikicoco

[kikicoco@duchai root]$ ls
ls: .: Permission denied

a ah, vẫn bị lỗi. Vậy là không phải rồi, lúc này ta đã hiểu sai. Không phải user kikicoco không có quyền dùng shell,vì vẫn dùng được lệnh pwd,... Mà là user kikicoco không có quyền đối với thư mục /root

Đây là điểm rất khác biệt với windows, ở Unix phân quyền rất chặt chẽ dựa theo các quyền :

Read - Write - Execute (Đọc - Ghi - Thực thi)

Các quyền này được thể hiện bằng ký hiệu : r - w - x hoặc 4 - 2 -1

Và với một thư mục quyền sẽ được phân cho : Owner - Group - others (người sử hữu - nhóm - người khác)

Để xem quyền của thư mục root ta dùng lệnh ls với tham số al:

[root@duchai /]# ls -al...drwxr-x--- 20 root root 4096 Nov 28 14:35 root...

Nhìn vào dòng trên ta sẽ nhận được thông tin như sau :

Owner là root

Group là root

drwxr-x--- : quyền đối với người dùng, chữ d ở đầu có nghĩa đây là thư mục, tiếp theo là quyền của owner :

rwx :--> owner có toàn quyền trên thư mục này, owner là root nên user root có toàn quyền trên thư mục này.

r-x :--> group có quyền đọc và chạy file, không có quyền ghi vào thư mục này.

--- :--> others không có quyền gì đối với thư mục này.

kikicoco không thuộc group root nên không có quyền gì.

Nói thêm về cách thể hiện quyền đối với thư mục, như ở trên cói nói về cách thể hiện các quyền.drwxr-x--- sẽ tương đương 740, khi thư mục để quyền tự do nhất là rwxrwxrwx - 777 tức là bất kỳ ai cũng có đầy đủ các quyền với thư mục đó.Để thay đổi quyền bạn dùng lệnh CHMOD, để thay đổi owner bạn dùng lệnh chown, để thay đổi group bạn dùng lệnh chgroup.Việc đặt quyền hạn đúng sẽ là cực kỳ quan trọng đối với một hệ thống, không chỉ UNIX.

 
admin Date: Saturday, 15/08/2009, 3:43 PM | Message # 3
bạn sắp được nâng cấp
Nhóm: Administrators
Số bài đăng: 146
Reputation: 0
Trang thái: Offline
Hệ thống thư mục trên * NIX, bài này lấy ví dụ cụ thể là Fedora 6.

Khi ở thư mục gốc / bạn đánh ls sẽ nhận được:

[root@duchai ~]# cd /
[root@duchai /]# ls
bin boot dev etc home lib lost+found media misc mnt
net 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 /bin

Đây là thực mục cực kỳ quan trong của 1 hệ thống unix, thư mục này chứa gần như tất cả các lệnh của hệ thống.

* Thư mục /etc

Thư mục này chứa các các file con file của hệ thống, cũng như chứa thông tin về các service cần khỏi động khi hệ điều hành chạy.

Đối với hệ điều hành Linux thì các service chạy lúc khởi động sẽ được đặt trong thư mục init.d.

Đối với hệ điều hành SUN Solaris thì các service chạy lúc khởi động sẽ được đặt trong thư mục rc2.d.

Các thư mục trên sẽ thay đổi tùy hệ thống.

*Thư mục /usr

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,...

*Thư mục /boot

Thư mục này chứa "lõi" của hệ điều hành hay còn gọi là kernel. Ví dụ đây là kernel máy của tôi :

Trên hệ điều hành SUN nó sẽ không phải là thư mục /boot, nó là thư mục /platform

Để 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:55: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.

* Thư mục /var

Thư mục này để chứa các file có thể thay đổi kích thước (variable size), nên thông thường trong thư mục này sẽ chứa các database như : mysql,.. hay mail server,...

* Thư mục /lib

Lib là viết tắt của library. Thư mục /lib chứa các file thư viện chương trình. Mỗi một chương trình sẽ có thư viện riêng của mình.

* Các thư mục khác :

- /mnt

- /cdrom

- /floppy

Ban đầu tất cả các thư mục này đều rỗng. Khi bạn cắm USB vào nó sẽ nằm trong /mnt hoặc bạn cần mount nó vào trong /mnt (cái này nói sau happy). Khi cho đĩa CDROM vào thì dữ liệu sẽ được tự động mount vào thư mục /cdrom. Tương tự đối với floppy.
Phần này nói về cách : tắt máy như thế nào ? khởi động như thế nào ?

* Lệnh : shutdown

Sử dụng lệnh : man shutdown để xem thông tin về lệnh này

SYNTAX
shutdown [options] when [message]

OPTIONS
-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.

-t sec

Ví dụ :
Tắt ngay lập tức :
shutdown -h now

Khởi động lại ngay lập tức:
shutdown -r now
Tắt máy vào lúc 8 tối (pm):
shutdown -h 20:00

Sau 10 phút thì tắt máy:

shutdown -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.

 
admin Date: Saturday, 15/08/2009, 3:46 PM | Message # 4
bạn sắp được nâng cấp
Nhóm: Administrators
Số bài đăng: 146
Reputation: 0
Trang thái: Offline
surprised 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
5. Lệnh more và less : xem nội dung file more
6. Lệnh cat và tail : xem nội dung file cat
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)
3. 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
12. Lệnh chroot

Ngoài các lệnh trên còn có rất nhiều lệnh khác, có thể tham khảo tại đây :

http://www.ss64.com/bash/

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
Date=`date '+%a'`
Day=`date '+%m%d'`
if [ $Date == 'Sun' ]
then
cd /mysqldata
for ix in *
do
if [ -d $ix ]
then
tar -czvf /kikicoco/backup/database_$Day.$ix.tar $ix
fi
done
fi

Đ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
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
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

Sử 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 ?

Ví dụ với Fedora 5/6:

[root@duchai sysconfig]# rpm -q mysql
mysql-5.0.18-2.1
[root@duchai sysconfig]# rpm -q firefox
firefox-1.5.0.1-9

Bây giờ cần nâng cấp nên Firefox 2.0

Tham khảo : http://fedoraproject.org/wiki/Firefox2

Chạy lệnh :

yum -y install firefox

Các lệnh cơ bản với yum:

Cài đặt : yum -y install
Gỡ bỏ : yum -y remove
Xem các gói đã cài : yum list

Ví dụ : xem các gói đã cài của php :

[root@web ~]# yum list php*
Loading "installonlyn" plugin
Setting up repositories
core 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 1.2 kB 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 306 kB 00:01
################################################## 1072/1072
Installed Packages
php.i386 5.1.6-3.1.fc6 installed
php-Smarty.noarch 2.6.13-1.fc6 installed
php-bcmath.i386 5.1.6-3.1.fc6 installed
php-cli.i386 5.1.6-3.1.fc6 installed
php-common.i386 5.1.6-3.1.fc6 installed
php-gd.i386 5.1.6-3.1.fc6 installed
php-mbstring.i386 5.1.6-3.1.fc6 installed

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

(Sưu tầm từ nhiều nguồn)

 
Forum » cộng nghệ thông tin » Lập trình » Các câu lệnh Linux căn bản
  • Page 1 of 1
  • 1
Search: