ผู้เขียน หัวข้อ: คำสั่ง พื้นฐานใน ลินุกซ์ ( Basic Linux Command )  (อ่าน 20620 ครั้ง)

ออฟไลน์ webmaster

  • Administrator
  • ผู้ช่วยสอน
  • *****
  • กระทู้: 727
  • กำลังใจ 50
  • เว็บไทยดีดี เพื่อคนไทย
    • เว็บไทยดีดี
คำสั่ง พื้นฐานใน ลินุกซ์ ( Basic Linux Command )
« เมื่อ: มีนาคม 05, 2010, 11:22:44 pm »
หลังจากทำการติดตั้งลินุกซ์เสร็จเรียบร้อยแล้ว ลองดูตัวอย่างการใช้งานคำสั่งต่างๆ บนระบบปฏิบัติการลินุกซ์ ที่จะได้ใช้อยู่บ่อยๆ ครับ ลองศึกษาดู แล้วจะรู้ว่าไม่ยากเลยนะ

คำสั่ง ls (list) ใช้ในการดูข้อมูลในไดเรคเทอรี รูปแบบการใช้งาน

ls -l => ดูข้อมูลในไดเรคเทอรีแบบละเอียด

ls -a => ดูข้อมูลในไดเรคเทอรีรวมทั้งไฟล์ที่มีการซ่อนไว้ด้วย

ตัวอย่างการใช้งาน

$ ls

Desktop
 
$ ls /home

cp lost+found
 
$ ls -l

total 4

drwxr-xr-x 4 cp cp 4096 May 15 21:56 Desktop
 
$ ls -a

. .beagle .gconf .gstreamer-0.10 .nautilus

.. Desktop .gconfd .gtkrc-1.2-gnome2 .redhat

.bash_logout .dmrc .gnome .ICEauthority .Trash

...
 

คำสั่ง man (Manual) ใช้สำหรับดูวิธีการใช้งานคำสั่งต่างๆ ในการใช้งาน เราจะพิมพ์ man แล้วตามด้วยคำสั่งที่ต้องการดูรายละเอียดเพิ่มเติม ซึ่งจะมีหน้าต่างขึ้นมาแสดงขึ้นมา เมื่อจะออกจากคำสั่ง man ให้กดปุ่ม q

ตัวอย่างการใช้งาน

$ man ls
 
LS(1) User Commands LS(1)

NAME

ls - list directory contents

SYNOPSIS

ls [OPTION]... [FILE]...

DESCRIPTION

List information about the FILEs (the current directory by default). Sort

...
 
คำสั่ง mkdir (Make Directory) ใช้ในการสร้างไดเรคเทอรี ตัวอย่างการใช้งาน

$ mkdir linux-command
 
$ ls

Desktop linux-command
 

คำสั่ง cd (Change Directory) ใช้ในการเปลี่ยนไดเรคเทอรีที่ทำงาน ตัวอย่างการใช้งาน

$ cd linux-command
 

แบบทดสอบ

ให้สร้างไดเรคเทอรีชื่อว่า backups ภายใต้ไดเรคเทอรี linux-command

ไดเรคเทอรี   .  และ  ..จากที่ได้ใช้คำสั่ง ls -a จะเห็นว่ามีไดเรคเทอรี . และ .. ขึ้นมาด้วย ซึ่งทั้งสองไดเรคเทอรี มีความสำคัญดังนี้

(.) เป็นไดเรคเทอรีปัจจุบัน การใช้คำสั่ง cd . จะหมายถึงการไปยังไดเรคเทอรีปัจจุบัน

(..) เป็นไดเรคเทอรีที่อยู่สูงกว่าไดเรคเทอรีปัจจุบัน (Parent Directory) การใช้คำสั่ง cd .. จะหมายถึง การไปยังไดเรคเทอรีที่อยู่สูงกว่าไดเรคเทอรีปัจจุบัน


คำสั่ง pwd (Print Working Directory) ใช้ในการแสดงพาธที่อยู่ ณ ปัจจุบัน ตัวอย่างการใช้งาน

$ pwd

/home/cp
 

~ ( Home Directory ) ใช้ในการอ้างอิง Home Directory แทนพาธเต็ม ตัวอย่างการใช้งาน

$ cd ~
 
 
คำสั่ง cp  ( Copy ) ใช้ในการคัดลอกไฟล์รูปแบบคำสั่ง

cp file1 file2

ตัวอย่างการใช้งาน

$ cd ~/linux-command

$ cp /etc/services .
 

แบบทดสอบ

ให้คัดลอกไฟล์ services ไปเป็นไฟล์สำรองชื่อ services-org




คำสั่ง mv ( Move ) ใช้ในการย้ายที่อยู่ (Move) หรือเปลี่ยนชื่อ (Rename) ไฟล์หรือไดเรคเทอรี   รูปแบบการใช้งาน

mv source destinattion

ตัวอย่างการใช้งาน

$ mv services-org backups
 




คำสั่ง rm (Remove) ใช้ในการลบไฟล์ , rmdir (Remove Directory) ใช้ในการลบไดเรคเทอรี การใช้งานคำสั่ง rm และ rmdir จะคล้ายๆ กัน ซึ่ง rmdir จะไม่สามารถลบไดเรคเทอรี ที่มีข้อมูลอยู่ข้างในได้ ต้องใช้คำสั่ง rm -r แทน ถ้าต้องการลบข้อมูลข้างในด้วย

ตัวอย่างการใช้งาน

$ cd ~/linux-command

$ cp services services.tmp

$ ls

backups services services.tmp

$ rm services.tmp

$ ls

backups services
 




คำสั่ง cat (Concatenate) ใช้สำหรับดูข้อมูลในไฟล์ ตัวอย่างการใช้งาน

$ cd ~/linux-command

$ cat services

...

...

iqobject 48619/tcp # iqobject

iqobject 48619/udp # iqobject

# Local services
 




คำสั่ง less ใช้สำหรับดูข้อมูลในไฟล์ทีละหน้าจอ คำสั่ง less จะใช้สำหรับดูข้อมูลในไฟล์ทีละหน้าจอ สามารถใช้ปุ่ม space bar สำหรับการดูหน้าถัดไป และสามารถเลื่อนลูกศรขึ้น-ลง ได้ ถ้าต้องการออกจากหน้าจอของคำสั่ง less ให้กดปุ่ม q

ตัวอย่างการใช้งาน

$ cd ~/linux-command

$ less services

# /etc/services:

# $Id: services,v 1.42 2006/02/23 13:09:23 pknirsch Exp $

#

# Network services, Internet style

...

...
 




คำสั่ง tail ใช้สำหรับดูข้อมูล ที่บรรทัดล่างสุดของไฟล์   รูปแบบการใช้งาน

tail -n number-of-line filename => ดูข้อมูลที่บรรทัดล่างสุดของไฟล์แบบระบุจำนวนบรรทัด

tail -f filename => ดูข้อมูลของไฟล์นั้นๆ แบบเรียลไทม์

ตัวอย่างการใช้งาน

$ cd ~/linux-command

$ tail services

nimspooler 48001/udp # Nimbus Spooler

nimhub 48002/tcp # Nimbus Hub

nimhub 48002/udp # Nimbus Hub

nimgtw 48003/tcp # Nimbus Gateway

nimgtw 48003/udp # Nimbus Gateway

com-bardac-dw 48556/tcp # com-bardac-dw

com-bardac-dw 48556/udp # com-bardac-dw

iqobject 48619/tcp # iqobject

iqobject 48619/udp # iqobject

# Local services
 




คำสั่ง grep ใช้ในการค้นหาข้อความในไฟล์ รูปแบบการใช้งาน

grep 'keyword' filename

grep -i 'keyword' filename => ค้นหาแบบไม่สนใจตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ (Non-Case Sensitive)

ตัวอย่างการใช้งาน

$ cd ~/linux-command

$ grep ssh services

ssh 22/tcp # SSH Remote Login Protocol

ssh 22/udp # SSH Remote Login Protocol

x11-ssh-offset 6010/tcp # SSH X11 forwarding offset

sshell 614/tcp # SSLshell

sshell 614/udp # SSLshell

sdo-ssh 3897/tcp # Simple Distributed Objects over SSH

sdo-ssh 3897/udp # Simple Distributed Objects over SSH

ssh-mgmt 17235/tcp # SSH Tectia Manager

ssh-mgmt 17235/udp # SSH Tectia Manager
 




การเปลี่ยนเส้นทางการแสดงผลของคำสั่ง (Redirection) โดยปกติแล้ว คำสั่งลินุกซ์หลายคำสั่ง จะให้ผลลัพธ์ของการใช้คำสั่งออกทางหน้าจอคอมพิวเตอร์ หรือที่เรียกกันว่า standard output และโดยปกติการรับข้อมูลก็จะมาจากการพิมพ์ผ่านแป้นคีย์บอร์ด หรือเรียกว่า standard input แต่บ่อยครั้งที่ผู้ดูแลระบบต้องการให้ผลลัพธ์ของการใช้คำสั่ง ไปเก็บไว้ที่ไฟล์บ้าง หรือให้ส่งเมลล์บ้าง หรือถ้าเป็นส่วนของการรับข้อมูล ก็สามารถเปลี่ยนจากการรับจากแป้นคีย์บอร์ด มาเป็นรับจากไฟล์บ้าง ซึ่งกระบวนการเหล่านี้เรียกว่า Redirection




การเปลี่ยนเส้นทางที่ฝั่งแสดงผล ( Output ) สัญลักษ์ที่ใช้แทนการส่งออกข้อมูลคือ >

ตัวอย่างการใช้งาน

คำสั่ง cat โดยปกติแล้ว จะแสดงข้อมูลในไฟล์ แล้วแสดงออกมาทางจอภาพ แต่ในบางครั้ง เราต้องการให้คำสั่ง cat เขียนข้อมูลลงบนไฟล์ ตัวอย่างเช่น สร้างไฟล์ชื่อว่า faculties ไว้เก็บชื่อคณะต่างๆ เมื่อใส่รายชื่อเสร็จแล้ว ให้กดปุ่ม ^d (Ctrl + d) เพื่อบันทึกและออกจากการเขียนไฟล์

$ cat > faculties

engineering

science

technology

กด ( Ctrl + d ) เพื่อบันทึกและออกจากการเขียนไฟล์
 

ถ้าหากต้องการเพิ่มข้อมูลลงในไฟล์เดิม โดยที่ข้อมูลไม่หายไป (Append) ให้เปลี่ยนเส้นทางจาก > ไปเป็น >> เพื่อเป็นการระบุว่า จะทำการเขียนไฟล์ต่อจากเดิม ดังนี้

$ cat >> faculties

management science

กด (Ctrl + d) เพื่อบันทึก และออกจากการเขียนไฟล์
 




การเปลี่ยนเส้นทางที่ฝั่งรับข้อมูล (Input)   สัญลักษ์ที่ใช้แทนการรับข้อมูลคือ <

ตัวอย่างการใช้งาน

การเรียงข้อมูลในไฟล์ใหม่ ด้วยใช้คำสั่ง sort โดยเรานำไฟล์ที่ยังไม่มีการจัดเรียง มาเป็นอินพุต (input) ของคำสั่ง sort ดังนี้

$ cat > number

2

3

9

7

4

กด ( Ctrl + d ) เพื่อบันทึกและออกจากการเขียนไฟล์
 
$ sort < number

2

3

4

7

9
 




ไปป์ (Pipe)   เป็นการเชื่อมต่อกันระหว่าง input กับ output โดย output ของคำสั่งหนึ่ง จะเป็น input ของอีกคำสั่งหนึ่ง จะใช้สัญลักษ์เป็น | (Vertical Bar)

ตัวอย่างการใช้งาน

ตัวอย่างนี้เป็นการหาข้อความ ftp ที่อยู่ในไฟล์ services แต่เนื่องจากว่า มีข้อมูลอยู่เป็นจำนวนมาก ทำให้ไม่สามารถดูได้ทั้งหมดในครั้งเดียว จึงต้องมีการสร้างไฟล์ขึ้นมาชื่อว่า temp.txt เพื่อใช้ในการเก็บผลลัพธ์ จากนั้นจึงใช้คำสั่ง less เพื่อไปอ่านข้อมูลจากไฟล์ temp.txt จึงจะได้ผลลัพธ์ที่ต้องการ

$ grep ftp services > temp.txt

$ less temp.txt
 

ถ้ามีการใช้ไปป์ (Pipe) จะทำให้ไม่จำเป็นต้องมีไฟล์ temp.txt เราสามารถเชื่อมผลลัพธ์ของคำสั่ง grep ftp services ให้ไปเป็นอินพุตของคำสั่ง less ได้ทันที ดังนี้

$ grep ftp services | less
 




คำสั่ง df ใช้ในการตรวจดูการใช้พื้นที่ของแต่ละพาร์ทิชันของฮาร์ดดิสก์   ตัวอย่างการใช้งาน

$ df
 
Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda2 5952284 1954800 3690244 35% /

/dev/sda1 124427 10175 107828 9% /boot

tmpfs 257580 0 257580 0% /dev/shm

/dev/sda6 30555364 180716 28797472 1% /home

/dev/sda3 2972268 116068 2702780 5% /var
 




คำสั่ง du ใช้ในการตรวจดูการใช้พื้นที่ฮาร์ดดิสก์ของไฟล์และไดเรคเทอรี ตัวอย่างการใช้งาน

$ du -s *
 
104 Desktop

740 linux-command
 

คำสั่ง find ใช้ในการค้นหาไฟล์หรือไดเรคเทอรีตัวอย่างการใช้งาน

ค้นหาไฟล์หรือไดเรคเทอรีที่ขึ้นต้นด้วยคำว่า ser โดยเริ่มค้นหาจากไดเรคเทอรีปัจจุบัน ( . )

$ cd ~/linux-command
 
$ find . -name "ser*" -print

./backups/services-org

./services
 

 

การจัดการกับบัญชีผู้ใช้ (Users)
Submitted by chatpong on Tue, 05/29/2007 - 23:38.
Basic
Linux
User Management
พื้นฐาน
ลินุกซ์
ระบบทุกระบบต่างออกแบบมาเพื่อสนับสนุนการทำงานของผู้ใช้ ผู้ใช้แต่ละคนก็มีบทบาทและหน้าที่ต่างกันไป ในลินุกซ์ก็เช่นเดียวกัน จะมีผู้ดูแลระบบที่ทำหน้าที่แบ่งหมวดหมู่ของการทำงาน ให้สอดคล้องกับความเป็นจริงของแต่ละคน หรือกลุ่มคน ในหัวข้อนี้เราจะได้รู้ถึงการกำหนดบทบาทและหน้าที่ของแต่ละคน

 

รู้จักกับซูเปอร์ยูสเซอร์ซูเปอร์ยูสเซอร์ คือผู้ใช้งานที่มีสิทธิ์ในการเข้าถึงทรัพยากรทุกอย่าง และไฟล์ทุกไฟล์ในลินุกซ์ ผู้ใช้นี้ก็คือผู้ใช้ root นั่นเอง หรืออีกนัยหนึ่งก็คือผู้ใช้ที่มีหมายเลข user id เป็น 0 นั่นเอง ในบางโปรแกรมต้องใช้สิทธิ์ของผู้ใช้ root ในการรันโปรแกรมนั้นๆ อย่างเช่นโปรแกรมสำหรับการเพิ่มผู้ใช้

การเพิ่มผู้ใช้งานเข้าสู่ระบบขั้นตอนที่ 1 : เพิ่มกลุ่มของผู้ใช้งาน

ในการเพิ่มผู้ใช้งานเข้าสู่ระบบนั้น ควรมีการวางแผนให้ดีก่อนว่า ผู้ใช้ที่จะเพิ่มเข้าไปนั้น เป็นผู้ใช้กลุ่มไหน ควรมีสิทธิ์ทำอะไรได้บ้าง หรือว่ามีหน้าที่ทำอะไร อย่างเช่น กลุ่ม webmaster มีหน้าที่ในการจัดการเว็บไซต์ , กลุ่ม admin ผู้ดูแลระบบ , กลุ่ม developer นักพัฒนาซอฟต์แวร์ ตัวอย่างการสร้างกลุ่มมีดังนี้

webmaster admin developer
manee chujai sawasdee
mana somsak piti

หลังจากที่ได้วางแผนเรียบร้อยแล้ว ทำการเพิ่มกลุ่มด้วยคำสั่ง groupadd ดังนี้

# groupadd webmaster

# groupadd admin

# groupadd developer
 

 

ขั้นตอนที่ 2 : เพิ่มผู้ใช้งานเข้ากลุ่ม

ในการเพิ่มผู้ใช้งานเข้ากลุ่มนั้น เพิ่มด้วยคำสั่ง useradd โดยเพิ่มพารามิเตอร์ -g เข้าไปด้วย เพื่อระบุว่า ผู้ใช้ที่สร้างขึ้นมานี้ อยู่ในกลุ่มใด หากไม่ใส่พารามิเตอร์ -g เข้าไป จะทำให้ระบบเพิ่มกลุ่มเป็นชื่อเดียวกับผู้ใช้ที่จะสร้างขึ้นมา การใช้คำสั่งมีดังนี้

# useradd -g webmaster manee

# useradd -g webmaster mana

# useradd -g admin chujai

# useradd -g admin somsak

# useradd -g developer sawasdee

# useradd -g developer piti
 


หลังจากที่ได้มีการสร้างผู้ใช้งานเรียบร้อยแล้ว ผู้ใช้งานแต่ละคน ก็จะมีโฮมไดเรคเทอรีของตัวเอง อยู่ที่ /home/ชื่อผู้ใช้ สามารถตรวจสอบดูได้จากคำสั่ง ls -l /home/ ซึ่งมีผลลัพธ์ดังนี้

# ls -l /home/

total 48
drwx------ 2 chujai admin 4096 May 15 00:43 chujai
drwx------ 2 root root 16384 May 1 02:09 lost+found
drwx------ 2 mana webmaster 4096 May 15 00:42 mana
drwx------ 2 manee webmaster 4096 May 15 00:42 manee
drwx------ 2 piti developer 4096 May 15 00:43 piti
drwx------ 2 sawasdee developer 4096 May 15 00:43 sawasdee
drwx------ 2 somsak admin 4096 May 15 00:43 somsak
 


การตั้งรหัสผ่านให้กับผู้ใช้หลังจากที่ได้มีการสร้างผู้ใช้งานเรียบร้อยแล้ว ต้องมีการตั้งรหัสผ่านให้กับผู้ใช้ก่อน ผู้ใช้จึงจะสามารถล็อกอินเข้าสู่ระบบได้ ในการตั้งรหัสผ่านให้กับผู้ใช้ จะใช้คำสั่ง passwd แล้วตามด้วยชื่อผู้ใช้ ดังนี้

# passwd manee
Changing password for user manee.
New UNIX password: ใส่รหัสผ่านให้กับผู้ใช้
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new UNIX password: ใส่รหัสผ่านให้กับผู้ใช้อีกครั้ง
passwd: all authentication tokens updated successfully.
 


เมื่อผู้ใช้งานล็อกอินเข้ามาแล้ว สามารถเปลี่ยนรหัสผ่านของตนเองได้ โดยใช้คำสั่ง passwd ดังนี้

$ passwd
Changing password for user manee.
Changing password for manee
(current) UNIX password: ใส่รหัสผ่านเดิมของผู้ใช้
New UNIX password: ใส่รหัสผ่านใหม่
Retype new UNIX password: ใส่รหัสผ่านใหม่อีกครั้ง
passwd: all authentication tokens updated successfully.
 

การลบผู้ใช้งานออกจากระบบในการลบผู้ใช้งานออกจากระบบ จะใช้คำสั่ง userdel แล้วตามด้วยชื่อผู้ใช้งานที่ต้องการจะลบ ซึ่งถ้าไม่มีพารามิเตอร์ -r จะทำให้โฮมไดเรคเทอรีของผู้ใช้นั้นยังคงอยู่ ซึ่งผู้ดูแลระบบต้องให้ความสำคัญกับการลบข้อมูลเป็นอย่างมาก ตัวอย่างของการลบผู้ใช้งานมีดังนี้

# userdel manee
# ls -l /home
total 48
drwx------ 2 chujai admin 4096 May 15 00:43 chujai
drwx------ 2 root root 16384 May 1 02:09 lost+found
drwx------ 2 mana webmaster 4096 May 15 00:42 mana
drwx------ 2 501 webmaster 4096 May 15 00:55 manee
drwx------ 2 piti developer 4096 May 15 00:43 piti
drwx------ 2 sawasdee developer 4096 May 15 00:43 sawasdee
drwx------ 2 somsak admin 4096 May 15 00:43 somsak
 

หลังจากที่ทำการลบผู้ใช้งาน ซึ่งในตัวอย่างคือ maneeเรียบร้อยแล้ว ลองใช้คำสั่ง ls -l /home จะเห็นว่าตรงชื่อผู้ใช้งานระบบ manee เจ้าของไดเรคเทอรีนี้จะเป็น 501 ซึ่งก็คือ ผู้ใช้งานที่มี userid เป็น 501 นั่นเอง

การเปลี่ยนเจ้าของไฟล์หรือไดเรคเทอรีในการเปลี่ยนเจ้าของไฟล์หรือไดเรคเทอรี จะใช้คำสั่ง chown (มาจาก Change Owner) ซึ่งรูปแบบคำสั่งมีดังนี้

chown user:group file/directory
 

ตัวอย่างการใช้งานมีดังนี้

1. ทำการสร้างไฟล์ขึ้นมาเพื่อทดสอบ ซึ่งอาจใช้คำสั่ง touch เพื่อสร้างไฟล์เปล่าขึ้นมา ดังนี้

# touch /tmp/whoistheowner
 

หลังจากสร้างไฟล์ขึ้นมาแล้ว ให้ลองทำการตรวจดูสิทธิ์ของไฟล์นั้น ว่าใครเป็นเจ้าของไฟล์ดังนี้

# ls -l /tmp/whoistheowner

-rw-r--r-- 1 root root 0 May 15 23:36 /tmp/whoistheowner
 

2. ทำการเปลี่ยนเจ้าของไฟล์ ดังนี้

# chown mana:webmaster /tmp/whoistheowner
 

จากนั้นทำการตรวจดูสิทธิ์ของไฟล์ ดังนี้

# ls -l /tmp/whoistheowner

-rw-r--r-- 1 mana webmaster 0 May 15 23:36 /tmp/whoistheowner

ขอบคุณเว็บไซต์ http://www1.rbac.ac.th
« แก้ไขครั้งสุดท้าย: มีนาคม 05, 2010, 11:25:53 pm โดย webmaster »
สุสฺสูสํ ลภเต ปญฺญํ ผู้ตั้งใจศึกษา ย่อมได้ปัญญา

ออฟไลน์ tar.webmaster

  • <<Nakrain>> :: บุคคลสำคัญของเว็บไทยดีดี
  • ดอกเตอร์
  • *
  • กระทู้: 261
  • กำลังใจ 1
  • Love Error : ไม่จูบ line 80
Re: คำสั่ง พื้นฐานใน ลินุกซ์ ( Basic Linux Command )
« ตอบกลับ #1 เมื่อ: มีนาคม 26, 2010, 02:09:26 am »
 :o ว่าจะลองลง Linux เปลี่ยนใจดีกว่า คำสั่งมากมาย แต่จะศึกษาไว้ ขอบคุณมากครับ

ออฟไลน์ nattloveaom

  • แรกเกิด
  • *
  • กระทู้: 1
  • กำลังใจ 0
Re: คำสั่ง พื้นฐานใน ลินุกซ์ ( Basic Linux Command )
« ตอบกลับ #2 เมื่อ: เมษายน 08, 2010, 01:56:13 pm »
ขอบคุงมาก ครับ
มีประโยชน์มาก
งานที่ ทำ ก้อ ทามเกี่ยวกับ sever ใช้ linux อีก