วันอาทิตย์ที่ 21 พฤษภาคม พ.ศ. 2560

บทที่ 2 : คำสั่งสำหรับผู้ใช้ระดับกลาง (Intermediate user command) เพื่อต้องการตรวจสอบระบบ

บทที่ 2 : คำสั่งสำหรับผู้ใช้ระดับกลาง (Intermediate user command) เพื่อต้องการตรวจสอบระบบ

    2.1 คำสั่ง df : : : แสดง partition ของ linux พร้อมขนาดที่ใช้ไป 
    : แสดงเนื้อที่ใช้งานทั้งหมดของ Harddisk ว่าเหลือเท่าใด
ช่วยให้ผู้ดูแลระบบรู้ว่าตอนนี้เนื้อที่ใน 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
    : report filesystem disk space usage

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

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

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

     
    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 
: ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด ซึ่งมีสกุล .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

    ตัวอย่างคำสั่ง และการใช้งาน
    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, hwclock : : : ใช้กำหนด หรือแสดงเวลาปัจจุบัน 
: ใช้ดูวันที่ หรือเปลี่ยนวันที่ และเวลาได้ 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 : : : แสดง process ที่ทำงานในปัจจุบัน พร้อม refresh ตลอดเวลา 
: ใช้แสดงสถานะการใช้ทรัพยากร ภายในเครื่อง

    ตัวอย่างคำสั่ง และการใช้งาน
    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 : : : กำหนดบริการที่ต้องการเปิด หรือปิด เช่น httpd หรือ vsftp เป็นต้น 
                 : ใช้เปิด-ปิด บริการของเครื่องที่สะดวกรวดเร็ว

    ตัวอย่างคำสั่ง และการใช้งาน
    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 
    : คู่กับแฟ้ม /etc/inittab เพื่อบอกว่าปัจจุบันอยู่ใน level ใด
: ถ้าต้องการเปลี่ยน level ต้องใช้คำสั่ง chkconfig ให้ดูเพิ่มเติมจาก 2.18

    ตัวอย่างคำสั่ง และการใช้งาน
    #/sbin/runlevel :: แสดง level ปัจจุบัน
    #cat /etc/inittab :: แสดงตาราง กำหนดการสั่งเครื่อง ว่าใช้ level ใด
     
    2.16 คำสั่ง fsck : : : ซ่อมแซมระบบแฟ้มใน linux 
: ซ่อมแซมระบบแฟ้มใน 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 ต่าง ๆ ขณะเปิดเครื่อง

คำว่า 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 เป็นต้น 
    : สั่งเชื่อมต่ออุปกรณ์ หรือ 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 ตัวหนึ่ง
    /dev/hda5 on / type ext3 (rw)
    none on /proc type proc (rw)
    /dev/hda1 on /boot type ext3 (rw)
    none on /dev/pts type devpts (rw,gid=5,mode=620)
    /dev/hda3 on /home type ext3 (rw)
    none on /dev/shm type tmpfs (rw)
    /dev/hda2 on /usr type ext3 (rw)
    /dev/hda6 on /var type ext3 (rw)
     
    2.20 คำสั่ง mkbootdisk : : : สร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง 
    : สร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง และมีการทำงานแบบ stand alone

คำสั่งนี้ผมเคยใช้ตอนคัดลอก harddisk ที่เป็น linux 2 ตัว แต่ตัวลูกเมื่อนำไปเสียบเข้าเครื่องใหม่ พบว่า boot ด้วยตนเองไม่ได้ จึงต้องหาแผ่น boot จนเข้าไปใน harddisk ได้ จากนั้นก็สั่ง #lilo เพื่อให้การ boot ครั้งต่อไปสามารถทำงานตาม /etc/lilo.conf ได้ตามปกติ ส่วนตัวเลข 2.4.18-14 เป็นเลขรุ่นของ kernel ใน Redhat 8.0 สังเกตเลขนี้ได้ตอน boot เครื่อง
    ตัวอย่างคำสั่ง และการใช้งาน
    mkbootdisk --device /dev/fd0 2.4.18-14 :: สร้างแผ่น disk เพื่อใช้ boot เข้า linux ในกรณีที่ระบบ boot ของเครื่องมีปัญหา
     
    2.21 คำสั่ง traceroute : : : แสดงเลข ip ของเครื่องที่ถูกเชื่อมต่อ ไปยังปลายทางที่ต้องการ 
    : แสดงเลข ip ของเครื่องที่ถูกเชื่อมต่อทั้งหมด ไปยังปลายทางที่ต้องการ

ตัวอย่างข้างล่างนี้แสดงให้เห็นว่า เมื่อในวิทยาลัยโยนกเปิดเว็บ www.thai.net จะต้องติดต่อผ่านเครื่องบริการ 8 ตัว ดังตัวอย่างล่างนี้ ถ้าเปิดเว็บไซต์ต่างประเทศ ก็จะมีจำนวนเครื่องในการติดต่อมากขึ้นไปด้วย เครื่องบริการในที่นี้ มักเป็นอุปกรณ์ที่เรียกว่า router และ router ทุกตัวจะมี ip และความสามารถเฉพาะตัวที่ต่างกันไป โดยหน้าที่หลักของ router ก็คือการกำหนดเส้นทางในการติดต่อนั่นเอง
    ตัวอย่างคำสั่ง และการใช้งาน
    /usr/sbin/traceroute www.thai.net
      traceroute to www.thai.net (203.150.13.2), 30 hops max, 38 byte packets
       1  door.yonok.ac.th (202.29.78.254)  2.046 ms  1.962 ms  2.532 ms
       2  202.28.29.41 (202.28.29.41)  3.703 ms  3.294 ms  3.760 ms
       3  UniNet-BKK2-ATM1-0-0.700.uni.net.th (202.28.28.129)  14.185 ms  13.226 ms  14.614 ms
       4  202.28.28.18 (202.28.28.18)  13.705 ms  13.227 ms  14.130 ms
       5  202.47.255.2 (202.47.255.2)  13.222 ms  13.890 ms  13.210 ms
       6  202.129.63.182 (202.129.63.182)  16.649 ms  14.960 ms  15.659 ms
       7  juliet-vlan-2.bkk.inet-th.net (203.150.14.22)  14.817 ms  15.573 ms  15.610 ms
       8  www.thai.net (203.150.13.2)  15.628 ms  14.775 ms  14.222 ms
      
     
    2.22 คำสั่ง rpm : : : ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด 
    : ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด

จากประสบการณ์ ไม่แน่ใจว่าเกิดจากอะไร เมื่อลง Redhat 7.2 แล้ว แต่ระบบไม่บริการ pop3 จึงได้ทำการ mount /dev/cdrom จากนั้นก็ทำการ install package pop เพิ่มเข้าไป ที่รู้เพราะลองใช้คำสั่ง telnet localhost 110 แล้ว error จึงต้องทำการเพิ่ม package pop เข้าไปใหม่ โดยใช้คำสั่ง rpm -i imap-4.7-5.i386.rpm ที่รู้เพราะได้ใช้ cd เข้าไปในห้อง /mnt/cdrom/RedHat/RPMS จึงพบแฟ้มมากมายที่สามารถ install เพิ่มได้
    ตัวอย่างคำสั่ง และการใช้งาน
    rpm -i imap-4.7-5.i386.rpm :: ใช้ install package pop เข้าไปใน linux ใหม่ เพราะไม่มี และให้ดูเพิ่มเติมจาก 8.99 เกี่ยวกับการติดตั้งโปรแกรมจาก CD-ROM
    rpm -qa|grep imap :: ใช้ดูว่ามี package อะไรบ้างที่ขึ้นต้นด้วย imap
    rpm -qa :: ใช้ดูรายชื่อ package ทุกตัวที่ install ไว้แล้ว
    rpm -q telnet :: ใช้ตรวจว่ามี package ชื่อ telnet อยู่หรือไม่
    rpm -qpl imap-4.7-5.i386.rpm :: แสดงชื่อแฟ้มใน package แต่ต้องเข้าไปที่ /mnt/cdrom/RedHat/RPMS ก่อนนะครับ
    rpm -qf /usr/sbin/vi :: จะแสดง vim-minimal-5.6-11 ซึ่งเป็นรุ่นของ vi นั้น
    rpm -qf /usr/sbin/httpd :: จะได้ apache-1.3.12-2 ซึ่งเป็นรุ่นที่ติดตั้งมาใน linux 6.2
    rpm -e apache-1.3.12-2 :: ลบ หรือ erase โปรแกรม apache-1.3.12-2 ออกจากเครื่อง
    rpm -Fvh openssl-0.9.5a-2.6.x.i386.rpm :: Upgrade โปรแกรม แต่ต้องลงโปรแกรมก่อนมิเช่นนั้น ไม่สำเร็จนะครับ
    rpm -qi vsftpd :: แสดงรายละเอียดของ Application เช่น ขนาด วันติดตั้ง รุ่น ผู้ผลิต เป็นต้น
    ในกรณีที่ท่านมีโปรแกรมตัวใหม่มา สามารถที่จะลบโปรแกรมเพิ่มโดยใช้คำสั่ง rpm ได้ หรือต้องการตรวจสอบว่า มี package บางตัว install อยู่หรือไม่ หรือจะยกเลิกโปรแกรมบางตัวออกจากระบบก็ทำได้ หรือจะแสดงรายชื่อ package ทั้งหมดในระบบก็ทำได้อีก รวมทั้งการตรวจ version ของ package แต่ละตัว
     
    2.23 คำสั่ง su : : : ขอเปลี่ยนตนเองเป็น Super user เพื่อใช้สิทธิสูงสุดในการบริหารระบบ ที่ผู้ใช้ปกติทำไม่ได้ 
    : ขอเปลี่ยนตนเองเป็น Super user หรือ root เพื่อใช้สิทธิสูงสุดในการบริหารระบบ ที่ผู้ใช้ปกติทำไม่ได้

shell_exec("echo $pass |sudo -u root -S /usr/bin/passwd $user --stdin"); ใช้กำหนดรหัสผ่าน หลังสร้างรหัสผู้ใช้แล้ว
    การจะใช้ su ได้จะต้องเป็นผู้ใช้ตามปกติ เมื่อพิมพ์ su แล้วระบบจะถามรหัสผ่านของ user root หากพิมพ์รหัสผ่านถูกต้อง ท่านก็จะสามารถกระทำการใด ๆ ก็ได้ ในฐานะ root เพราะ root หรือ super user คือผู้ที่มีอำนาจสูงสุดในระบบ เช่น เพิ่มผู้ใช้ท่านใหม่ ลบผู้ใช้คนเดิม เป็นต้น (เพียงแต่พิมพ์คำว่า su ท่านก็สามารถเปลี่ยนสิทธิได้แล้ว ถ้าท่านมีรหัสผ่านของ su) เดิมผมใช้แค่คำว่า su ต่อมาคุณประเสริฐ แนะนำว่าต้องใช้ su - จึงจะสมบูรณ์ พอทดสอบก็พบว่า $PATH ที่ได้แตกต่างกันจริง
      ตัวอย่างคำสั่ง และการใช้งาน
      #su - :: เปลี่ยนตนเองเป็น super user เพื่อกระทำการใด ๆ ก็ได้กับตัวระบบ
      #su prasert :: ไม่ว่าขณะที่ login เป็น user ใด เมื่อต้องการเปลี่ยนเป็น user prasert ก็ไม่ต้อง logout แล้ว login ใหม่ ใช้คำสั่งนี้ได้เลย
    คำสั่ง sudo คือ execute a command as another user เมื่อเรียกด้วยภาษา php
    shell_exec("sudo -u root -S /usr/sbin/useradd $user"); ใช้ความเป็นผู้ใช้ root เรียกใช้คำสั่ง useradd

     
    2.24 คำสั่ง useradd : : : เพิ่มผู้ใช้รายใหม่เข้าไปในระบบ 
                               : เพิ่มผู้ใช้รายใหม่เข้าไปในระบบ

    ตัวอย่างคำสั่ง และการใช้งาน
    #useradd theman :: เพิ่มผู้ใช้รายใหม่เข้าไปในระบบชื่อ theman ในกลุ่ม theman และมี home directory เป็น /home/theman
    #useradd -g users -d /home/theman -c "user name here" theman :: เพิ่มผู้ใช้รายใหม่เข้าไปในระบบชื่อ theman
     
    2.25 คำสั่ง userdel : : : ลบผู้ใช้รายเดิม ออกจากระบบ 
: ลบผู้ใช้รายเดิม ออกจากระบบ

    ตัวอย่างคำสั่ง และการใช้งาน
    #userdel -r theman :: ลบ theman และ home directory ของ theman ออกหมด
     
    2.26 คำสั่ง usermod : : : แก้ไขข้อมูลของผู้ใช้ได้ 
: แก้ไขข้อมูลของผู้ใช้ได้

    ตัวอย่างคำสั่ง และการใช้งาน
    #usermod -s /rbin/menu theman :: กำหนดให้ shell สำหรับ user ที่ชื่อ theman ใหม่ เพื่อจำกัดสิทธิในการเข้าใช้ shell
    #usermod -d /home/theman theman :: กำหนดให้ theman มี homedirectory อยู่ที่ /home/theman
    #usermod -c "Mr.Suwit Somsupabrungyod" theman :: กำหนดให้ comment หรือชื่อ เป็น Mr.Suwit Somsupabrungyod ซึ่ง comment จะไปแสดงผลให้เห็นชัดเจนตอนที่ใช้ pine เมื่อพิมพ์คำว่า theman ในช่อง to ขณะที่กำลัง compose จะแสดง comment หน้า email ให้ทันที
     
    2.27 คำสั่ง crontab : : : ตั้งเวลาสั่งงานคอมพิวเตอร์ 
: ตั้งเวลาสั่งงานคอมพิวเตอร์

    ตัวอย่างคำสั่ง และการใช้งาน
    #crontab -l :: แสดงกำหนดการของการสั่งให้คอมพิวเตอร์ทำงานอย่างอัตโนมัติ ตามเวลาที่กำหนด
    #cat /etc/crontab :: แสดงตาราง crontab ในเครื่อง
     
    2.28 คำสั่ง lspci : : : ตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง 
: ตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง

    ตัวอย่างคำสั่ง และการใช้งาน
    #lspci
      00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
      00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
      00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
      00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
      00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
      00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
      00:0f.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03)
      00:11.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 24)
      01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c)
      
     
    2.29 คำสั่ง nmap : : : ตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C
: ตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C
    ตัวอย่างคำสั่ง และการใช้งาน
      #nmap -sP 202.29.78.* 
      Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
      Host   (202.29.78.0) seems to be a subnet broadcast address (returned 1 extra pings). 
      Note -- the actual IP also responded.
      Host www.isinthai.com (202.29.78.1) appears to be up.
      Host course.yonok.ac.th (202.29.78.5) appears to be up.
      Host yonok.ac.th (202.29.78.12) appears to be up.
      Host w2kdhcp.yonok.ac.th (202.29.78.17) appears to be up.
      Host  (202.29.78.31) appears to be up.
      Host  (202.29.78.32) appears to be up.
      Host  (202.29.78.33) appears to be up.
      
      #nmap -sT www.yonok.ac.th (on TCP)
      Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
      Interesting ports on yonok.ac.th (202.29.78.12):
      (The 1590 ports scanned but not shown below are in state: closed)
      Port       State       Service
      21/tcp     open        ftp
      22/tcp     open        ssh
      25/tcp     open        smtp
      53/tcp     open        domain
      80/tcp     open        http
      109/tcp    open        pop-2
      110/tcp    open        pop-3
      
      #nmap www.yonok.ac.th -sU (on UDP)
      Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
      Interesting ports on yn1.yonok.ac.th (202.29.78.12):
      (The 1465 ports scanned but not shown below are in state: closed)
      Port       State       Service
      53/udp     open        domain
      111/udp    open        sunrpc
      867/udp    open        unknown
      
     

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...