Wednesday, November 23, 2011

คำสั่ง linux server

,

คำสั่ง linux server

คำสั่ง linux server
คำสั่ง linux server
1.1 คำสั่ง ls
: ใช้แสดงรายชื่อแฟ้มทั้งหมดใน home directory
: list directory contents
ทุก ท่านที่มี account ใน linux จะมี home directory ของตนเอง เพื่อใช้เก็บแฟ้มต่าง ๆ ภายใต้ระบบ linux เมื่อต้องการทราบว่ามีแฟ้มอะไร เก็บไว้บ้าง สามารถใช้คำสั่ง ls ได้ และสามารถกำหนด parameter ได้หลายตัว เช่น -al --sort เป็นต้น ถ้าต้องการทราบว่าปัจจุบันตนเองอยู่ใน Directory ใด ให้ใช้คำสั่ง pwd
    ตัวอย่างคำสั่ง และการใช้งาน ls -alt :: เพื่อแสดงรายชื่อแฟ้ม และจัดเรียงตามเวลา (a=all, l=long listing, t=sort by modification time) ls -alt | more :: เพื่อแสดงรายชื่อแฟ้มทั้งหมด แต่หยุดทีละหน้า ถ้ามีจำนวนแฟ้มเกินที่จะแสดงได้ ใน 1 หน้า ls -al --sort=time | more :: แสดงรายชื่อแฟ้มเรียงตามเวลา แยกทีละหน้า แบบ long listing ls -R | more :: แสดงรายชื่อในทุก directory ในห้องปัจจุบัน (R=Recursive) ถ้าสังเกตนะครับ แฟ้มที่มี . หน้าชื่อแฟ้ม หมายถึง แฟ้มที่ซ่อนไว้ ถ้าใช้คำสั่ง ls หรือ ls -l จะไม่เห็นแฟ้มเหล่านี้ ถ้ามีอักษร D ที่ Column แรก ในส่วนแสดงรายชื่อแฟ้ม ด้วยคำสั่ง ls -al จะหมายถึง directory

1.2 คำสั่ง chmod
: ใช้เปลี่ยนสิทธิของแฟ้ม เจ้าของ(Owner), คนในกลุ่ม(Group), คนอื่น(Other) สามารถทำอะไรได้บ้าง
: change file access permissions
เมื่อใช้คำสั่ง ls ท่านจะเห็นตัวอักษร RWXRWXRWX หรือทำนองนี้หน้าชื่อแฟ้ม ซึ่งเป็นการกำหนด สิทธิของแต่ละแฟ้ม ว่า อ่านได้ เขียนได้ และประมวลผลได้ โดยแยกเป็นส่วนของ เจ้าของ กลุ่ม คนอื่น ซึ่งเป็นคำสั่งที่จำเป็นมากสำหรับ webmaster ในการดูแลระบบ และท่านที่ต้องการเขียน CGI จะต้องรู้คำสั่งนี้ เพราะ เมื่อส่งแฟ้ม CGI เข้าไปใน server และต้องการให้คนทั่วไปเข้ามาใช้บริการ โปรแกรมของตนที่เขียนขึ้นด้วย Perl จะไม่สามารถใช้ได้ ถ้าไม่กำหนดให้คนอื่น สามารถประมวลผลได้ (x) จึงจำเป็นต้องใช้คำสั่ง เช่น chmod 755 hello.pl หรือ chmod 775 fileforyou.pl หรือ chmod +x test.pl เป็นต้น
ในแต่ละกลุ่มจะมีการกำหนดสิทธิได้ 3 แบบ
ตัวอักษร R มาจาก Read หมายถึง อ่าน
ตัวอักษร W มาจาก Write หมายถึง เขียน
ตัวอักษร X มาจาก Execute หมายถึง ประมวลผล
ตัวอย่างเช่น
--- : ไม่มีสิทธิอะไรเลย (เลขที่ใช้คือ 0)
--X : ประมวลผลได้อย่างเดียว (เลขที่ใช้คือ 1)
R-- : อ่านได้อย่างเดียว (เลขที่ใช้คือ 4)
RW- : อ่าน และเขียนได้ (เลขที่ใช้คือ 6)
R-X : อ่าน และประมวลผลได้ (เลขที่ใช้คือ 5)
RWX : อ่าน เขียน และประมวลผลได้ (เลขที่ใช้คือ 7)
ความหมายของ RWXRWXRWX จะเห็นว่ามีอักษร 9 ตัว
3 ตัวแรกหมายถึง เจ้าของ
3 ตัวที่สองหมายถึง กลุ่ม
3 ตัวที่สามหมายถึง คนอื่น
ตัวอย่างเช่น
RWX------ : เจ้าของเท่านั้นที่มีสิทธิทุกอย่าง (เลขที่ใช้คือ 700)
RWXRWX--- : เจ้าของ และสมาชิกกลุ่มเดียวกันมีสิทธิทุกอย่าง (เลขที่ใช้คือ 770)
RWXR-XR-X : เจ้าของทำได้หมด ส่วนกลุ่มและคนอื่นอ่านและประมวลผลได้ (เลขที่ใช้คือ 755)
R--R--R-- : ทุกคนอ่านได้อย่างเดียว (เลขที่ใช้คือ 444)
    ตัวอย่างคำสั่ง และการใช้งาน chmod 777 index.php :: ทำให้แฟ้มนี้ อ่าน เขียน และประมวลผล โดยทั้ง 3 กลุ่ม chmod 755 * -Rf :: ทำให้ทุกแฟ้ม ทุก direcroty ในห้องปัจจุบัน เปลี่ยนตามที่กำหนด

1.3 คำสั่ง man
: เป็นคำสั่งที่สำคัญมาก เพราะจะช่วยให้อธิบายคำสั่งต่าง ๆ ให้ท่านได้ (Manual)
: format and display the on-line manual pages
ผม เชื่อว่าทุกคนที่ใช้ unix หรือ linux ต้องเคยใช้คำสั่งนี้มาก่อน เพราะจะเป็นคำสั่งที่ช่วยอธิบายหน้าที่ของคำสั่ง พร้อมกับแสดง parameter ที่สามารถใช้ได้ทั้งหมดของคำสั่งนั้น และยังมีตัวอย่างการใช้ และคำสั่งที่เกี่ยวข้องอีก ทำให้ประหยัดเวลาในการค้นเอกสารได้อย่างมาก บางท่านอาจศึกษา linux ด้วยการอ่านจาก man อย่างเดียวเลยก็มีนะครับ โดยไม่ต้องไปหาซื้อหนังสือที่ไหนมาอ่านก็ทำได้
    ตัวอย่างคำสั่ง และการใช้งาน man man :: เพื่ออธิบายคำสั่ง man เอง ว่าตัวคำสั่งนี้ใช้อย่างไร man ls :: เพื่ออธิบายคำสั่ง ls ว่าใช้อย่างไร man useradd :: เพื่ออธิบายคำสั่ง useradd ว่าใช้อย่างไร

1.4 คำสั่ง mkdir, rmdir, cd
: งานต่าง ๆ เกี่ยวกับ directory
: make, remove empty, change working directory
ผู้ใช้คอมพิวเตอร์ที่ใช้ dos มาก่อนต้องคุ้นเคยกับ directory แน่นอน สำหรับคำสั่งเกี่ยวกับ directory ในที่นี้มี 3 คำสั่ง
mkdir หมายถึง สร้าง directory (make directories)
rm หมายถึง ลบ directory (remove files or directories) และคำสั่งนี้ยังใช้ลบแฟ้มตามปกติได้อีกด้วย
cd หมายถึงเปลี่ยน directory (change working directory)
    ตัวอย่างคำสั่ง และการใช้งาน mkdir hello :: สร้าง directory ชื่อ hello ในห้องปัจจุบัน rmdir hello.htm :: จะลบแฟ้มชื่อ hello.htm cd / :: ย้าย directory ไปยัง root หรือห้องนอกสุด cd .. :: ย้าย directory ออกไปข้างบน 1 ระดับ cd ~/x :: เข้าไปยังห้อง x ของ home directory เช่น /home/thaiall/x ถ้า home directory คือ /home/thaiall

1.5 โปรแกรม pico
: เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก
เพียงแต่พิมพ์คำว่า pico แล้ว enter ก็ใช้งานได้เลย การจะจัดเก็บ หรืองานต่าง ๆ ที่มีบริการไว้มากมาย ท่านสามารถอ่านได้จากเมนูด้านล่าง ซึ่งเครือ่งหมาย ^ หมายถึงการกดปุ่ม Ctrl ประกอบอักษรต่าง ๆ นั่นเอง ผมคิดว่าท่านน่าจะพออ่านรู้เรื่อง หรือจะพิมพ์ว่า pico xx ก็จะเป็นการสร้างแฟ้มชื่อ xx ให้ทันที แต่หากมีแล้ว ก็จะเปิดแฟ้ม xx มาให้แก้ไขในโปรแกรม xx เมื่อท่านต้องการเลิกก็ทำได้โดยกดปุ่ม Ctrl-X เป็นอันเรียบร้อย หากท่านใดเคยใช้ vi เมื่อลองใช้โปรแกรมนี้จะติดใจอย่างแน่นอน เพราะใช้งานได้ง่ายกว่า หลายเท่านัก
หลาย ครั้ง ที่พิมพ์คำว่า pico แล้วไม่มีในเครื่อง ก็เพราะไม่ได้ลงโปรแกรม pine เมื่อต้องการใช้ pico ก็ต้องติดตั้งโปรแกรม pine เข้าไปในเครื่อง จากแผ่น CD ด้วยคำสั่ง rpm -i pine*
1.6 โปรแกรม emacs
: เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก
ทำ งานได้คล้าย ๆ กับ pico แต่หลายคนบอกว่า ตัวนี้ทำงานได้ดีกว่า แต่ผมว่า pico ใช้งานได้ง่ายกว่ากันเยอะเลย เพราะเห็นเมนูด้านล่าง แต่ของ emacs จะใช้ ctrl-h ดูส่วนช่วยเหลือ และกด ctrl-x + ctrl-c จึงจะออกจากโปรแกรม อาจเป็นเพราะผมใช้ไม่ชำนาญมังครับ ในเมื่อผมใช้ pico เป็น editor ผมคงไม่จำเป็นต้องศึกษา emacs เพิ่มเติมแล้ว ยกเว้นว่าสักวันอาจมีเหตุจำเป็นที่ความสามารถของ pico ให้ไม่ได้ แต่ emacs ให้ได้ก็เป็นได้
    Welcome to GNU Emacs, one component of a Linux-based GNU system. Get help           C-h  (Hold down CTRL and press h) Undo changes       C-x u       Exit Emacs               C-x C-c Get a tutorial     C-h t       Use Info to read docs    C-h i Ordering manuals   C-h RET Activate menubar   F10  or  ESC `  or   M-` (`C-' means use the CTRL key.  `M-' means use the Meta (or Alt) key. If you have no Meta key, you may instead type ESC followed by the character.) 

1.7 โปรแกรม vi
: เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text
: a programmers text editor
Text editor ที่ใช้งานได้ยาก แต่มีใน linux ทุกรุ่น ในบางเครื่องไม่มี pico เพราะไม่ได้ติดตั้ง mail หรือ pine จึงจำเป็นต้องใช้โปรแกรม vi สำหรับแก้ไขข้อมูลในแฟ้มต่าง ๆ ของ linux เช่นการใช้คำสั่ง man ก็คือการใช้ความสามารถของ vi ในการนำข้อมูลมาแสดงผลนั่นเอง
    ตัวอย่างคำสั่ง และการใช้งาน esc     กลับไปยังโหมดคำสั่ง enter   ย้ายไปยังต้นบรรทัดของบรรทัดถัดไป i       ใส่ข้อความก่อนเคอร์เซอร์ a       ใส่ข้อความหลังเคอร์เซอร์ A       ใส่ข้อความที่ท้ายบรรทัดปัจจุบัน dd      ลบบรรทัดปัจจุบันทั้งบรรทัด x       ลบอักษร 1 ตัวอักษร cw      เปลี่ยนข้อความ :w      บันทึกแฟ้ม :q!     ออกโดยไม่ เปลี่ยนแปลงใด ๆ :wq     บันทึกแฟ้ม และออกจากโปรแกรม vi 

1.8 คำสั่ง id, finger, who, w
: ทุกคำสั่งข้างต้นใช้สำหรับตรวจสอบผู้ใช้ แต่จะให้รายละเอียดต่างกันไป
: print real and effective UIDs and GIDs
    ตัวอย่างคำสั่ง และการใช้งาน id uname :: ใช้ตรวจดูว่ามี account ในระบบหรือไม่ (ผลแสดงรหัสผลู้ใช้ และชื่อกลุ่ม) finger uname :: ใช้ตรวจดูว่ามี account uname นี้ในระบบหรือไม่ ให้ผลละเอียด ทั้ง last login หรือ email ฉบับล่าสุด finger :: ใช้แสดงรายชื่อทุกคนในระบบที่กำลัง login อยู่ finger @www.isinthai.com :: ใช้แสดงรายชื่อทุกคนในระบบที่กำลัง login อยู่ ตรวจ server นอกระบบได้ ถ้าเขาไม่ปิด who |grep thai :: ใช้แสดงรายชื่อทุกคนในระบบ แต่ใช้นอกระบบตนเองไม่ได้ และเลือกเฉพาะบรรทัดที่มีอักษร thai w :: ใช้แสดงรายชื่อทุกคนในระบบ แต่ใช้นอกระบบตนเองไม่ได้

1.9 คำสั่ง cat
: แสดงข้อมูลในแฟ้ม คล้ายคำสั่ง type ในระบบ DOS
: concatenate files and print on the standard output
    ตัวอย่างคำสั่ง และการใช้งาน cat /etc/passwd :: แสดงข้อมูลในแฟ้ม /etc/passwd cat /etc/passwd | more :: แสดงข้อมูลในแฟ้ม /etc/passwd ทีละหน้า ตัวอย่างข้อมูลในแฟ้ม passwd
    suwit:x:500:500:Suwit:/home/suwit:/bin/bash
    prasert:x:501:501::/home/prasert:/bin/bash
    bcom101:x:502:502::/home/bcom302:/bin/bash

1.10 คำสั่ง ifconfig
: แสดงข้อมูลเกี่ยวกับ Network interface และแสดง ip ต่าง ๆ ที่มีการเพิ่มเข้าไปใน server ได้
: configure a network interface
    ดูผลการทำงานของคำสั่งifconfig
    eth0      Link encap:Ethernet  HWaddr 00:20:18:C0:06:C4           inet addr:202.29.78.12  Bcast:202.29.78.255  Mask:255.255.255.0           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:673054 errors:0 dropped:0 overruns:0 frame:0           TX packets:666268 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:100           RX bytes:74892865 (71.4 Mb)  TX bytes:680121131 (648.6 Mb)           Interrupt:9 Base address:0xcf00 eth0:1    Link encap:Ethernet  HWaddr 00:20:18:C0:06:C4           inet addr:202.29.78.1  Bcast:202.29.78.255  Mask:255.255.255.0           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           Interrupt:9 Base address:0xcf00
    เพิ่ม ip ใหม่อีก 1 ip เช่น #/sbin/ifconfig eth0:1 202.29.78.1 สามารถดูวิธีเพิ่มหลาย IP ในคอมพิวเตอร์เครื่องเดียว ได้จากหัวข้อ 9.10 ด้วยการแก้ไขแฟ้ม /etc/rc.d/rc.local

1.11 คำสั่ง netstat
: แสดงสถานะของเครือข่ายว่ามีโปรแกรมใดเปิดให้บริการ
: Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
    ดูผลการทำงานของคำสั่ง netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address           Foreign Address         State tcp        0      0 *:mysql                 *:*                     LISTEN tcp        0      0 *:http                  *:*                     LISTEN tcp        0      0 *:ftp                   *:*                     LISTEN tcp        0      0 *:ssh                   *:*                     LISTEN tcp        0      0 *:smtp                  *:*                     LISTEN tcp        0      0 *:https                 *:*                     LISTEN tcp        0      0 www.isinthai.com:ssh    202.29.78.200:1225      ESTABLISHED Active UNIX domain sockets (servers and established) Proto RefCnt Flags       Type       State         I-Node Path unix  2      [ ACC ]     STREAM     LISTENING     855    /var/lib/mysql/mysql.sock unix  2      [ ACC ]     STREAM     LISTENING     119    /dev/log unix  2      [ ]         STREAM     CONNECTED     3007 unix  2      [ ]         STREAM     CONNECTED     859 

1.12 คำสั่ง service
: ดูสถานะของบริการต่าง ๆ ว่าถูกเปิดหรือ running อยู่หรือไม่
: Internet network services list
    ดูผลการทำงานของคำสั่ง service --status-all httpd (pid 2160 2159 2158 2155 2114 583 579 578 577 576 575 573) is running... mysqld (pid 446 429 427 414) is running... sendmail (pid 1700 1690) is running... sshd (pid 2970 358) is running... xinetd (pid 3923 369) is running... 

1.13 คำสั่ง xinetd
: ดูบริการภายใน xinetd ว่าอะไรเปิดอยู่บ้าง ทำให้เข้าไปเปิดที่ห้อง /etc/xinetd.d แล้วเลือกเปิดบริการเฉพาะที่ต้องการ เช่นแก้แฟ้ม talk เพื่อให้เปิดบริการ talk ใน server เป็นต้น แต่ใน Fedora ที่ผมติดตั้งไม่มีคำสั่งนี้ครับ
    ดูผลบางส่วนจากการทำงานของคำสั่ง xinetd -d Service configuration: ftp         id = ftp         flags = IPv4         socket_type = stream         Protocol (name,number) = (tcp,6)         Nice = 10         Groups = no         Bind = All addresses.         Server = /usr/sbin/vsftpd         Server argv = vsftpd         Only from: All sites         No access: No blocked sites         Logging to syslog. Facility = authpriv, level = info         Log_on_success flags = HOST PID         Log_on_failure flags = HOST 

1.14 คำสั่ง whereis
: ค้นหาแฟ้มที่ต้องการว่าอยู่ที่ห้องใด แต่ค้นได้เฉพาะที่กำหนดไว้ใน PATH เท่านั้น หากต้องการค้นทั้งเครื่องต้องใช้คำสั่ง find
: locate the binary, source, and manual page files for a command
    ตัวอย่างคำสั่ง และการใช้งาน whereis usermod :: แสดงห้องที่เก็บคำสั่ง usermod ทำให้สามารถสั่ง run จากห้องที่เก็บคำสั่งโดยตรงได้ whereis ifconfig :: แสดงห้องที่เก็บคำสั่ง ifconfig ทำให้ใช้คำสั่งเช่น /sbin/ifconfig ได้โดยตรง

1.15 คำสั่ง cp, rm, mv
: จัดการแฟ้มเช่น คัดลอก ลบ และย้าย
    ตัวอย่างคำสั่ง และการใช้งาน cp x y :: เดิมมีแฟ้มชื่อ x ต้องการแฟ้ม y ที่เหมือน x ขึ้นมาใหม่ สามารถใช้คำสั่ง cp rm y :: ลบแฟ้ม y ออกจากเครื่อง ซึ่งอยู่ใน directory ปัจจุบัน rm -r directoryname :: จะลบ directory ในเครื่อง sun และแฟ้มทั้งหมดใน directory นั้น และการลบแฟ้ม จะมีการถาม confirm ทุกแฟ้มเสมอ rm -rf directoryname :: จะลบ directory ใช้ใน Redhat และแฟ้มทั้งหมดใน directory นั้น และการลบแฟ้ม จะมีการถาม confirm ทุกแฟ้มเสมอ rm -f * :: ลบแฟ้มทั้งหมดโดยไม่ถาม yes mv x /root :: ย้ายแฟ้ม x จากห้องปัจจุบันไปไว้ในห้อง /root

1.16 คำสั่ง ping
: ตรวจสอบ ip ของเครื่องเป้าหมาย และการเชื่อมต่อ internet
: send ICMP ECHO_REQUEST to network hosts
    ตัวอย่างคำสั่ง และการใช้งาน ping www.thaiall.com :: ตัวสอบการมีอยู่ของ www.thaiall.com และแสดงเลข IP ของเว็บนี้ ping 202.29.78.100 -c 5 :: แสดงผลการทดสอบเพียง 5 บรรทัด ping 202.29.78.2 :: ผลดังข้างล่างนี้ แสดงว่าไม่พบเครื่องที่มีเลข ip ดังกล่าว
    PING 202.29.78.2 (202.29.78.2) from 202.29.78.12 : 56(84) bytes of data.
    From 202.29.78.12 icmp_seq=1 Destination Host Unreachable
    From 202.29.78.12 icmp_seq=2 Destination Host Unreachable
    From 202.29.78.12 icmp_seq=3 Destination Host Unreachable

1.17 คำสั่ง env
: แสดงค่า environment ปัจจุบัน
: run a program in a modified environment
    ตัวอย่างคำสั่ง และการใช้งาน env
      HISTSIZE=1000 SSH_CLIENT=202.29.78.100 1091 22 OLDPWD=/usr/sbin QTDIR=/usr/lib/qt3-gcc3.2 SSH_TTY=/dev/pts/0 USER=burin LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;.... : PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin MAIL=/var/spool/mail/burin PWD=/etc INPUTRC=/etc/inputrc LANG=en_US.UTF-8 HOME=/root SHLVL=2 LOGNAME=burin LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env

1.18 คำสั่ง lynx
: Text browser ที่ใช้งานง่าย ใช้ดู source หรือ download ได้ (ในเครื่องผมไม่ได้ลงไว้)

1.19 คำสั่ง nslookup
: แสดงข้อมูลเกี่ยวกับ name server จาก ip หรือ domain name
: query Internet name servers interactively
    คำสั่งนี้ ถูกประกาศว่าต่อไปอาจไม่พบใน Redhat รุ่นใหม่ ถ้าต้องการใช้คำสั่งแบบนี้สามารถใช้ dig หรือ host แทนได้ เช่น host yn1.yonok.ac.th หรือ dig yn1.yonok.ac.th เมื่อเข้าไปใน nslookup สามารถออกมาได้ด้วยการพิมพ์คำสั่ง exit หลังเครื่องหมาย > ตัวอย่างคำสั่ง และการใช้งาน nslookup 202.28.18.65
      Non-authoritative answer: 65.18.28.202.in-addr.arpa name = mars.uni.net.th. Authoritative answers can be found from: 18.28.202.in-addr.arpa nameserver = mars.uni.net.th. 18.28.202.in-addr.arpa nameserver = ns.netserv.chula.ac.th. mars.uni.net.th internet address = 202.28.18.65
    nslookup www.thaiall.com

1.20 คำสั่ง tail
: แสดงส่วนท้ายของแฟ้มที่มีขนาดใหญ่ ต้องข้ามกับ cat ที่ดูตั้งแต่เริ่มแฟ้ม
: output the last part of files
    ตัวอย่างคำสั่ง และการใช้งาน tail index.html :: ดูส่วนท้ายของแฟ้ม index.html ใน Current directory tail --lines=5 /var/log/messages :: ดูส่วนท้ายของแฟ้ม /var/log/messages แต่ต้องเป็น root จึงจะดูได้ tail /var/log/html/access.log :: ดูส่วนท้ายเพียง 10 บรรทัด ซึ่งเป็นค่า default ที่ไม่ได้กำหนดจำนวนบรรทัด tail --lines=100 /var/log/html/access_log > access_bak :: เป็นการ backup ในขั้นแรก ก่อนใช้ mv ย้ายไปทับแฟ้มเดิม

1.21 คำสั่ง telnet
: ใช้ติดต่อเข้า server ต่าง ๆ ตาม port ที่ต้องการ แต่ปัจจุบัน server ต่าง ๆ ปิดบริการ telnet แต่เปิด SSH แทน
: user interface to the TELNET protocol
    ตัวอย่างคำสั่ง และการใช้งาน telnet 202.202.202.202 :: ขอติดต่อเข้าเครื่อง 202.202.202.202 การไม่กำหนด port คือเข้า port 23 telnet www.school.net.th 21 :: ขอติดต่อผ่าน port 21 ซึ่งเป็น FTP port telnet mail.loxinfo.co.th 25 :: ตรวจ smtp ว่าตอบสนองกลับมา หรือไม่ telnet class.yonok.ac.th 110 :: ทดสอบ pop service ของ windows server 2003
    Microsoft Windows POP3 Service Version 1.0 ready.
    USER aa@class.yonok.ac.th
    +OK
    PASS xxxxxxx
    +OK User successfully logged on telnet 202.29.78.13 80 :: ให้พิมพ์คำสั่ง GET แม้มองไม่เห็นหลังกดปุ่ม enter (ใช้ทดสอบการตอบสนองของ server)
    GET /index.html
    <frameset>
    <frame src=index.php>
    </frameset>
    Connection to host lost.
C:\>
100 : Continue 101 : Switching Protocols 200 : OK 201 : Created 202 : Accepted 203 : Non-Authoritative Information 204 : No Content 205 : Reset Content 206 : Partial Content 300 : Multiple Choices 301 : Moved Permanently 302 : Moved Temporarily 303 : See Other 304 : Not Modified 305 : Use Proxy 400 : Bad Request 401 : Unauthorized 402 : Payment Required 403 : Forbidden
404 : Not Found 405 : Method Not Allowed 406 : Not Acceptable 407 : Proxy Authentication Required 408 : Request Time-out 409 : Conflict 410 : Gone 411 : Length Required 412 : Precondition Failed 413 : Request Entity Too Large 414 : Request-URI Too Large 415 : Unsupported Media Type 500 : Internal Server Error 501 : Not Implemented 502 : Bad Gateway 503 : Service Unavailable 504 : Gateway Time-out 505 : HTTP Version not supported

2.1 คำสั่ง df
: แสดงการเนื้อที่ใช้งานทั้งหมดของ Harddisk ว่าเหลือเท่าใด
: report filesystem disk space usage
ช่วย ให้ผู้ดูแลระบบรู้ว่าตอนนี้เนื้อที่ใน Harddisk เหลืออยู่เท่าใด และอาจใช้ตรวจสอบได้ว่า มีใครแอบมา upload แฟ้มขนาดใหญ่ไว้หรือไม่ จะได้ตรวจสอบในรายละเอียดของแต่ละ user ต่อไป (ผมเองก็ใช้บ่อย เพราะถ้า server เล็ก ๆ จะเต็มบ่อยครับ ต้องคอย clear เสมอ)
    ตัวอย่างคำสั่ง และการใช้งาน df :: เพื่อแสดงรายงานสรุปการใช้ในแต่ละส่วน
      Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda5 505605 82764 396737 18% / /dev/hda1 101089 9180 86690 10% /boot /dev/hda3 1423096 41956 1308848 4% /home none 30740 0 30740 0% /dev/shm /dev/hda2 3889924 1551872 2140456 43% /usr /dev/hda6 1027768 952876 22684 98% /var

2.2 คำสั่ง du
: แสดงการเนื้อที่ใช้งาน ของแต่ละ directory โดยละเอียด
: estimate file space usage
ช่วย ให้ผู้ดูแลระบบรู้ว่า directory ใด ใช้เนื้อที่ใด หรือใช้ดูรวม ๆ ว่า ผู้ใช้แต่ละคนใช้เนื้อที่เก็บข้อมูลกันเท่าใด เพราะผู้ใช้ปกติจะใช้กันไม่เยอะ แต่ถ้าตรวจสอบแล้วเยอะผิดปกติ ก็จะเข้าไปดูว่า เยอะเพราะอะไร จะได้แก้ไขได้
    ตัวอย่างคำสั่ง และการใช้งาน du :: เพื่อแสดงรายชื่อ directory และเนื้อที่ที่ใช้ไป du -all :: เพื่อแสดงโดยละเอียดว่าแต่ละแฟ้มมีขนาดเท่าใด ใน directory ปัจจุบัน du | sort -g :: แสดงการใช้พื้นที่ของแต่ละ directory พร้อม sort จากน้อยไปมาก มีหน่วยเป็น Kb du -b :: แสดงหน่วยเป็น byte ของแต่ละ directory

2.3 คำสั่ง ps
: แสดง Process หรือโปรแกรมที่ประมวลผลอยู่ในระบบขณะนั้น
: report a snapshot of the current processes.
ช่วย ให้ผู้ดูแลระบบ ติดตามได้ว่ามีโปรแกรมอะไรที่ไม่ถูกต้อง run อยู่ หรือโปรแกรมอะไร ที่ผู้ศึกษาลองประมวลผลแล้วค้างอยู่ จะได้ทำการแก้ไง มิฉนั้นระบบก็จะทำงานค้าง เพราะโปรแกรมที่ไม่ควรอยู่ในระบบ กำลังประมวลผลโดยไม่จำเป็น โดยเฉพาะพวก bot จะทำให้ server ล่มง่ายมาก
    ตัวอย่างคำสั่ง และการใช้งาน ps :: แสดงชื่อ process ต่าง ๆ ที่ทำงานอยู่อย่างสั้น ps -ef :: แสดงข้อมูลของ process โดยละเอียด ps -ax :: แสดงข้อมูลของ process พร้อมชื่อโปรแกรมได้ละเอียด ps -aux :: แสดงข้อมูลของ process พร้อมชื่อโปรแกรม และชื่อผู้สั่งได้ละเอียดมาก

2.4 คำสั่ง kill
: เมื่อทราบว่า process ใดที่มีปัญหา ก็จะเห็นเลขประจำ process คำสั่ง kill จะสามารถ process ออกจากระบบได้
: terminate a process
ช่วย ยกเลิก process ที่ไม่ถูกต้องออกจากระบบ ถ้าขณะนั้นผู้ใช้คนหนึ่งกำลังใช้งานอยู่ หาก process หลักของเขาถูก kill จะทำให้ผู้ใช้ท่านนั้น หลุดออกจากระบบทันที (สำหรับคำสั่งนี้จะถูกใช้โดย super user เท่านั้น ผู้ใช้ธรรมดาไม่มีสิทธิ)
    ตัวอย่างคำสั่ง และการใช้งาน kill -9 เลขประจำprocess :: เลขประจำ process ท่านจะได้จากการใช้ ps -ef อยู่แล้ว kill -9 1255 :: ลบ process ที่ 1255 ออกจากระบบไป

2.5 คำสั่ง find
: เมื่อไฟล์ที่ต้องการว่าอยู่ใน directory ของเครื่องเราหรือไม่
    ตัวอย่างคำสั่ง และการใช้งาน find / -name hello.pl :: ใช้ค้นหาแฟ้ม hello.pl ในทุก directory find / -name hello* :: ใช้ค้นหาแฟ้มที่ขึ้นต้นด้วยคำว่า hello find /bin -size 626188c :: ใช้ค้นหาแฟ้มที่มีขนาด 626188 ถ้าเป็น RH8 จะพบแฟ้ม bash

2.6 คำสั่ง gzip
: ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด แล้วนามสกุล gz หรือ z แต่ทั่วไปเขาแนะนำให้ใช้ tar สำหรับสกุล .tar.gz
    ตัวอย่างคำสั่ง และการใช้งาน gzip -d x.tar.gz :: ใช้แตกแฟ้มที่นามสกุล gz man gzip :: ใช้ดูว่า gzip ใช้งานอะไรได้บ้าง gzip -d radius-1.16.1.tar.Z :: ได้แฟ้มนี้จาก ftp.livingston.com/pub/le/radius/ เป็นระบบรับโทรศัพท์เข้าเครือข่าย gzip -dc x.tar.Z|tar xvf - :: ประหยัดขั้นตอนในการใช้คำสั่ง 2 ครั้ง เพราะคำสั่งชุดนี้จะใช้ทั้ง gzip และ tar กับ x.tar.z ได้ตามลำดับ

2.7 คำสั่ง tar
: ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด แล้วนามสกุล tar
    ตัวอย่างคำสั่ง และการใช้งาน tar xvf x.tar :: ใช้สำหรับแตกแฟ้มที่นามสกุล tar ปกติแล้วจะมีการสร้าง directory ของแฟ้มพร้อมโปรแกรมอีกเพียบ tar xvfz squid-2.3-200103110000-src.tar.gz :: จะคลาย gz พร้อมกับใช้คำสั่ง tar ได้พร้อม ๆ กัน ไม่ต้องใช้ gzip และมาใช้ tar man tar :: ใช้ดูว่า tar ใช้งานอะไรได้บ้าง tar zcvf abc.tar.gz /etc :: ใช้ copy /etc เก็บเป็นแฟ้ม abc.tar.gz แบบบีบอัด tar zxvf abc.tar.gz :: ใช้คลายแฟ้ม abc.tar.gz ซึ่งจะได้ directory /etc ออกมาทั้งหมด

2.8 คำสั่ง last
: ใช้แสดงรายชื่อผู้ login เข้ามาล่าสุด
    ตัวอย่างคำสั่ง และการใช้งาน last |grep reboot :: ใช้ดูระบบถูก reboot เมื่อใดบ้าง last |more :: ใช้รายชื่อผู้ login เข้ามาในระบบล่าสุดทีละหน้า

2.9 คำสั่ง grep
: ใช้สำหรับเลือกข้อมูลเฉพาะบรรทัดที่ต้องการ
    ตัวอย่างคำสั่ง และการใช้งาน more /etc/passwd|grep thaiall :: ใช้แสดงข้อมูลในแฟ้ม /etc/passwd แต่เลือกเฉพาะบรรทัดที่มีคำว่า thaiall rpm -qa|grep ftp :: ใช้ดูว่าระบบลงโปรแกรม ftp หรือยัง เวอร์ชั่นใดบ้าง last |grep reboot :: ใช้ดูระบบถูก reboot เมื่อใดบ้าง

2.10 คำสั่ง date
: ใช้ดูวันที่ หรือเปลี่ยนวันที่ และเวลาได้ date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
    ตัวอย่างคำสั่ง และการใช้งาน date +%x :: ดูวันที่ปัจจุบัน เช่นการแสดงเลข 04/27/01 ออกมา date +%d :: ดูวันที่ปัจจุบัน เช่นการแสดงเลข 27 ออกมา date 04271340 :: กำหนดวันที่ใหม่ให้เป็น วันที่ 27 เดือน 4 เวลา 13.40 น. (mmddhhmmccyy) hwclock --systohc :: เมื่อเปลี่ยนเวลาด้วย date หาก restart เครื่องเวลาจะผิดเหมือนเดิมต้องใช้คำสั่งนี้ เพื่อเขียนเวลาลงไปใน hardware clock จึงจะเปลี่ยนเวลา hardware ได้

2.11 คำสั่ง top
: ใช้แสดงสถานะการใช้ทรัพยากร ภายในเครื่อง
    ตัวอย่างคำสั่ง และการใช้งาน top :: แสดงการใช้ทรัพยากรของเครื่อง จากแต่ละ process ทดสอบคำสั่งนี้ใน Redhat 8.0
    ตัวอย่างผลของการใช้คำสั่ง CPU states:  0.5% user,  1.3% system,  0.0% nice, 98.0% idle Mem:    31328K av,   28872K used,    2456K free,       0K shrd,    1032K buff Swap: 1718912K av,    2608K used, 1716304K free                   16528K cached    PID USER     PRI  NI  SIZE  RSS SHARE STAT  LIB %CPU %MEM   TIME COMMAND 18306 root      14   0   852  852   672 R       0  1.5  2.7   0:00 top 18229 root       1   0  1684 1536  1240 S       0  0.3  4.9   0:00 sshd     1 root       0   0   160  116    92 S       0  0.0  0.3   0:08 init     2 root       0   0     0    0     0 SW      0  0.0  0.0   0:01 kflushd 

2.12 คำสั่ง ntsysv หรือ setup
: ใช้เปิด-ปิด บริการของเครื่องที่สะดวกรวดเร็ว
    ตัวอย่างคำสั่ง และการใช้งาน setup :: แสดงการตัวเลือกให้กำหนดบริการต่าง ๆ ปกติจะเลือก system services
    บริการ ที่เปิดใน server ของผมประกอบด้วย httpd, imap, ipop3, iptables, named, network, sendmail, servers, services, vsftpd, xinetd เพื่อให้บริการ web, mail, ftp และ dns ntsysv :: ใช้เปิด-ปิดบริการ ให้ผลเหมือน setup, services (แต่คำสั่งนี้ถูกยกเลิกใน RH รุ่นใหม่ ลองใน Fedora พบว่าใช้ได้ครับ)

2.13 คำสั่ง route
: ใช้เส้นทางการเชื่อมเครือข่าย
    ตัวอย่างคำสั่ง และการใช้งาน # route
     Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 202.29.78.0     *               255.255.255.0   U     0      0        0 eth0 127.0.0.0       *               255.0.0.0       U     0      0        0 lo default         202.29.78.254   0.0.0.0         UG    0      0        0 eth0 

2.14 คำสั่ง shutdown, reboot
: ใช้ปิดเครื่อง หรือ ปิดและเปิดเครื่องใหม่อย่างถูกวิธี
    ตัวอย่างคำสั่ง และการใช้งาน shutdown -h now หรือ halt :: สั่งปิดเครื่องทันที (แต่ใช้เวลาประมาณ 1 นาทีเพื่อปิดบริการต่าง ๆ) reboot หรือ shutdown -r now :: ปิด และเปิดเครื่องใหม่ หากติดตั้งโปรแกรมบางตัว และ clear ค่าต่าง ๆ หากไม่แน่ใจ

2.15 คำสั่ง runlevel
: คู่กับแฟ้ม /etc/inittab เพื่อบอกว่าปัจจุบันอยู่ใน level ใด
: ถ้าต้องการเปลี่ยน level ต้องใช้คำสั่ง chkconfig ให้ดูเพิ่มเติมจาก 2.18
    ตัวอย่างคำสั่ง และการใช้งาน #/sbin/runlevel :: แสดง level ปัจจุบัน #cat /etc/inittab :: แสดงตาราง กำหนดการสั่งเครื่อง ว่าใช้ level ใด

2.16 คำสั่ง fsck
: ซ่อมแซมระบบแฟ้มใน linux
    ตัวอย่างคำสั่ง และการใช้งาน #fsck / :: ใช้ซ่อม harddisk ในห้อง / เมื่อการ harddisk เกิดปัญหาเกี่ยวกับการปิดเปิด #fsck /dev/hdc :: ใช้ซ่อม harddisk ที่ชื่อ /dev/hdc ถ้าต่อ harddisk ไว้หลายตัว

2.17 คำสั่ง chown, chgrp
: เปลี่ยนเจ้าของ หรือเปลี่ยนกลุ่ม
ตาม หัวข้อ 1.2 เรื่องคำสั่ง chmod ทำให้ทราบว่า แฟ้มแต่ละแฟ้มมี 3 ส่วน คือเจ้าของ กลุ่ม และทั่วไป เมื่อต้องการเปลี่ยนความเป็นเจ้าของ หรือกลุ่ม ก็สามารถทำได้ ซึ่งเป็นหลักการง่าย ๆ ไม่ยุ่งยาก
    ตัวอย่างคำสั่ง และการใช้งาน #chown burin:users x :: เปลี่ยนเจ้าของของแฟ้ม x ให้เป็น burin และอยู่ในกลุ่มของ users #chgrp users y :: เปลี่ยนกลุ่มของแฟ้ม x ให้เป็น users

2.18 คำสั่ง chkconfig
: กำหนด หรือแสดง บริการที่สั่งประมวลผลใน level ต่าง ๆ ขณะเปิดเครื่อง
คำ ว่า level คือระดับในการเปิดเครื่อง ดูได้จากแฟ้ม /etc/inittab โดยโปรแกรมต่าง ๆ ที่สั่งให้ประมวลผล สามารถเลือกให้ทำงานใน level ใดได้ หากสั่งให้ประมวลผลปิด level เมื่อมีการ start linux ใน level หนึ่ง โปรแกรมที่คิดว่าสั่งให้ทำงานขณะเปิดเครื่อง ก็จะไม่ทำงาน
    # /etc/inittab # Default runlevel. The runlevels used by RHS are: #   0 - halt (Do NOT set initdefault to this) #   1 - Single user mode #   2 - Multiuser, without NFS (The same as 3, if you do not have networking) #   3 - Full multiuser mode #   4 - unused #   5 - X11 #   6 - reboot (Do NOT set initdefault to this) #id:5:initdefault: id:3:initdefault: 
    ตัวอย่างคำสั่ง และการใช้งาน #/sbin/chkconfig --add mysql :: สั่งให้เพิ่ม mysql เข้าไปในระบบ system services #/sbin/chkconfig --list :: แสดงรายการโปรแกรมทั้งหมด ที่สั่งให้ทำงานใน level ต่าง ๆ #/sbin/chkconfig --level 3 sendmail on :: สั่งโปรแกรม sendmail ทำงานใน level 3 (Text mode) #/sbin/chkconfig --level 5 sendmail on :: สั่งโปรแกรม sendmail ทำงานใน level 5 (X Windows)

2.19 คำสั่ง mount, umount
: สั่งเชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive เป็นต้น
การ ใช้ mount เป็นสิ่งที่ผู้ดูแลระบบต้องเข้าใจหลักการให้ได้ เพราะเป็นช่องทางในการติดต่อกับอุปกรณ์ต่าง ๆ ล่าสุด ผมต่อ harddisk เข้าไปในเครื่อง server เพิ่มอีก 1 ตัว ซึ่งระบบมอง harddisk ตัวที่เพิ่มเข้าไปเป็น hdc ด้วยคำสั่ง fdisk -l เมื่อต้องการ partition ที่ 1 ของ hdc มาเป็นห้อง /x ก็เพียงแต่ใช้คำสั่งสร้างห้องคือ #mkdir /x สำหรับครั้งแรก แล้วใช้คำสั่ง #mount /dev/hdc1 /x ก็จะใช้ห้อง /x ซึ่งอยู่ใน harddisk อีกตัวหนึ่งได้ทันที
    คำสั่งที่เกี่ยวข้องกับคำสั่ง mount
      #cat /etc/fstab : ดู file system table เพื่อบอกว่ามีอะไร mount ไว้แล้วบ้าง #cat /etc/mtab : ดูรายละเอียดการ mount ในอีกรูปแบบหนึ่ง #cat /proc/mounts : บอกว่ามีอะไร mount ไว้แล้วบ้าง #cat /proc/partitions : บอกชื่อ และขนาดของแต่ละ partitions #cat /proc/filesystems : บอกประเภทของ filesystems ที่มีการสนับสนุน #/sbin/fdisk -l : แสดง partition จาก harddisk ทุกตัวที่เชื่อมต่อในเครื่องนั้น
    ตัวอย่างคำสั่ง และการใช้งาน #mount --bind /var/www /home/yourname/www #mount แสดงข้อมูลที่เคย mount ไว้ทั้งหมด วิธีใช้แผ่น Floppy Disk ใน linux
      #mkdir /floppy #mkfs -t ext3 /dev/fd0 1440 #mount -t ext3 /dev/fd0 /floppy - or - #mkdir /floppy #mkfs -t msdos /dev/fd0 1440 #mount -t msdos /dev/fd0 /floppy ต่อไปในห้อง /floppy ก็คือแผ่น disk ใน drive A ส่วน /dev/fd1 ก็คือ drive B แต่ต้องเริ่มทำใหม่นะครับ
    วิธีใช้ Handy Drive เช่น Apacer (ต้อง umount ก่อนดึง apacer ออกก่อนเสมอ)
      #mkdir /mnt/apacer (Just first time) #mount /dev/sda1 /mnt/apacer ... #cd / #umount /dev/sda1 - and - #pico /etc/fstab Add: /dev/sda1 /mnt/apacer auto noauto,user 0 0
    วิธีเรียกใช้แฟ้มใน Partition อื่น เช่น WindowsXP cd / :: ย้ายตัวเองไปยัง root directory mkdir hd :: สร้างห้องชื่อ hd ซึ่งเป็นห้องเปล่าไม่มีอะไร fdisk -l :: ดูว่ามี partition อะไรในเครื่องบ้าง ที่ต้องการ mount เข้ากับ /hd mount /dev/hdb2 /hd :: ทำให้เรียกใช้ /dev/hdb2 จาก /hd ได้ เช่น cd /hd/etc ถ้าใน hdb2 มีห้องชื่อ etc umount /hd :: ยกเลิกการ mount /hd วิธีใช้ CDROM mount :: แสดงรายการอุปกรณ์ หรือห้องต่าง ๆ ที่ถูก mount ไว้แล้ว mount -t ext3 :: แสดงให้เห็นว่า partition แบบ ext3 มีอะไรถูก mount ไว้บ้าง mount -t vfat :: แสดงให้เห็นว่า partition แบบ vfat มีอะไรถูก mount ไว้บ้าง mount /dev/cdrom :: ใช้ติดต่อ CD ROM เมื่อเข้าไปใช้เช่น #cd /mnt/cdrom และใช้ #ls umount /dev/cdrom :: เพื่อเลิกใช้ CD ROM หรือต้องการดึงแผ่นออก แต่ท่านต้องออกมาก่อนด้วยคำสั่ง #cd / เป็นต้น eject :: ถ้าไม่ umount ด้านล่าง ก็สั่ง eject เพื่อดีด CD-ROM ออกได้เลยครับ และไม่ต้องสั่ง umount หรือออกจากห้องก่อนนะ ตัวอย่างผลการใช้คำสั่ง #mount ใน server ตัวหนึ
คำสำคัญ (keywords): คำสั่ง linux server

0 comments to “คำสั่ง linux server”

Post a Comment

 

At Command Linux Copyright © 2012 | Design by I Love Linux