Linux Server ระบบปฏิบัติการที่ Admin ควรรู้ - ศูนย์อบรมด้านระบบเครือข่ายคอมพิวเตอร์ ให้บริการอบรมด้านระบบเครือข่ายคอมพิวเตอร์

บจ.จีเนียสย์ ดีเวลลอป
ez-admin training center

02-5096715,082-5674413
contact@ez-admin.com

EZ-ADMIN

Linux Server ระบบปฏิบัติการที่ Admin ควรรู้

นำเสนอความรู้ดีๆ ที่ Admin ควรรู้เกี่ยวกับระบบ Linux Server แบบที่สามารถเข้าใจง่าย นำไปใช้งานได้จริง

          Linux ถือเป็นระบบปฏิบัติการตัวหนึ่งที่มีชื่อเสียงและเป็นที่รู้จักกันดีมานานพอสมควร แต่ถ้าเทียบ ความนิยมกับระบบปฏิบัติการ Windows ของ Microsoft แล้ว ยังถือว่าห่างไกลกันมาก แต่สถานะการณ์ ในปัจจุบันอาจไม่ใช่แบบเดิมอีกต่อไป นี่เป็นเหตุผลที่บทความนี้ถึงแนะนำว่าทำไม Admin หรือผู้ดูแลระบบ เครือข่ายต้องศึกษาหรือทำความรู้จักกับ Linux กันบ้างแล้ว

Linux Server สำหรับ Admin

โลกที่เปลี่ยนไป

          เป็นที่ทราบดีว่าระบบปฏิบัติการบนเครื่องคอมพิวเตอร์ส่วนบุคคลหรือ PC ที่นิยมใช้งานกันมากที่สุด เราคง ต้องยกให้กับ Windows เนื่องจากเป็นระบบที่ติดตั้งและใช้งานง่าย รวมถึงมีโปรแกรมต่างๆ ให้เลือกใช้มากมาย หรือเกือบทั้งหมดของโปรแกรมที่มีการพัฒนาขึ้นมา ส่วนใหญ่จะรองรับกับ Windows ทั้งหมด แต่นั่นเป็นเพียง ในฝั่งของ PC เท่านั้น

         ในยุคที่เราสามารถใช้งานโปรแกรมหรือเชื่อมต่ออินเทอร์เน็ตได้อย่างอิสระ ผ่านอุปกรณ์เคลื่อนที่ (Mobile Devices) ต่างๆ เช่น สมาร์ตโฟน แท็บเล็ต หรือสมาร์ตทีวี โดยไม่ต้องอาศัยเพียงแค่เครื่อง PC เท่านั้นถึงจะใช้งานได้ ทำให้มีผลกระทบต่อความนิยมของ Windows ที่เริ่มลดน้อยลงไป เพราะอุปกรณ์เคลื่อนที่เหล่านี้ส่วนใหญ่ ไม่ได้ใช้ ระบบปฏิบัติการของ Microsoft เลย รวมถึงอัตราส่วนในการใช้งานอินเทอร์เน็ตจากอุปกรณ์เหล่านี้ก็แซงหน้าเครื่อง PC ไปเรียบร้อยแล้ว ถึงแม้ Microsoft จะพยายามฮึดสู้อยู่บ้างก็ตาม แต่ก็ยังไม่สามารถเอาชนะ Android หรือ iOS ของทางฝั่ง Google และ Apple ได้เลย

คลิกอ่านบทความทั้งหมด

การใช้งานเบื้องต้น

        หลังจากติดตั้งเสร็จ Linux ในเนื้อหา "ทำไม Admin ต้องศึกษา Linux" ไปแล้ว มาหัวข้อนี้เราจะพามารู้จักพื้นฐานการทำงานเบื้องต้นต่างๆ ของ Linux RedHat กัน ซึ่งเป็นส่วนสำคัญที่จะช่วยให้เข้าใจการทำงานในระดับสูงต่อไป

รู้จัก Shell

        RedHat ก็เหมือนกับ Linux ใน Distro อื่นๆ ที่ใช้เคอเนล (Kernel) ในการควบคุมการทำงานและจัดสรรทรัพยากรในส่วนของฮาร์ดแวร์บนเครื่องเซิร์ฟเวอร์ เช่น ควบคุมการทำงานของโพรเซส (Process) ต่างๆ, การจัดการไฟล์และอุปกรณ์ Input และ Output หรือการจัดการหน่วยความจำ เป็นต้น จึงถือว่าเคอเนลเป็นส่วนแกนกลางหรือหัวใจสำคัญของระบบ Linux Server ที่คอยควบคุมการทำงานของฮาร์ดแวร์

การทำงานเบื้องต้นของ Linux สอนการทำงานเบื้องต้นของ Linux

     โดย RedHat จะใช้ Shell Interface (มีทั้งแบบ Command Line และ Graphic User interface) เป็นส่วนที่คอยรับคำสั่งจากผู้ใช้แล้วแปลเป็นภาษาเครื่องเพื่อสั่งงานให้กับเคอเนลทำงาน เช่น สั่งให้เคลียร์หน่วยความจำในระบบ หรือควบคุมการทำงานของอุปกรณ์ต่างๆ ที่มาเชื่อมต่อ

     Shell มีอยู่หลายชนิดด้วยกัน เช่น เช่น Bourne shell (sh), Debian Almquist shell (dash), Bourne Again Shell (bash), C shell (csh), tcsh, zsh หรือ sash

     สำหรับ Shell ชนิดแรกถูกสร้างขึ้นในปี 1970 บนระบบปฎิบัติการ UNIX เรียกว่า Bourne shell ปัจจุบัน Shell ที่นิยมใช้มากที่สุดคือ Bash (ย่อจาก “Bourne Again Shell”)

     Bash shell ได้รับการพัฒนามาอย่างต่อเนื่อง จึงมีประสิทธิภาพที่ดีกว่า Shell อื่นๆ และยังสามารถทำงานร่วมกับ Bourne shell ได้อย่างสมบูรณ์ สำหรับ User root จะใช้ Bash shell เป็นค่าเริ่มต้นในการทำงาน

ดาวน์โหลดบทความทั้งหมด

     RedHat จะติดต่อกับเครื่องอื่นๆ ที่อยู่ภายในระบบเครือข่ายเดียวกันได้ จะขึ้นอยู่กับค่า Network Connection ที่ได้กำหนดไว้ในส่วนของ /etc/sysconfig/network-script ซึ่งในบทนี้เราจะได้เรียนรู้เกี่ยวกับการเข้าไปกำหนดค่าในไฟล์หรือไดเรคทอรีต่างๆ ที่เกี่ยวข้องกับค่า Network Connection กันอย่างละเอียด และในส่วนท้ายบท จะพูดถึงการรีโมทเข้ามาควบคุมเครื่อง RedHat โดยใช้โปรโตคอล SSH ด้วย

ใช้คำสั่ง ifconfig

     ifconfig เป็นคำสั่งที่ใช้ในการจัดการค่าต่างๆ ของการ์ด LAN (Network Interface Card) ถือว่าเป็นคำสั่งสำคัญและมีการใช้งานบ่อย หากเรียกใช้คำสั่ง ifconfig โดยไม่มีการพิมพ์ค่าพารามิเตอร์ใดๆ ลงไป จะเป็นการสั่งให้แสดงผลค่าการทำงานของของการ์ด LAN ขึ้นมา

คำสั่ง ifconfig จะแสดงผลคำสั่งและค่าสำคัญต่างๆ ที่เกี่ยวข้องกับการทำงานของการ์ด LAN ดังนี้

  • inet แสดงหมายเลข IP Address V4
  • netmask แสดงหมายเลข Subnet Mask
  • broadcast แสดงหมายเลข Broadcast Address
  • inet6 แสดงหมายเลข IP Address V6
  • ether แสดงหมายเลข MAC Address
  • RX packets และ TX packets แสดงจำนวนแพ็กเก็ต (Packet) และสถานะของการรับ (RX) และส่ง (TX)
  • RX bytes และ TX bytes แสดงขนาดรวมของแพ็กเก็ตที่ใช้ในการรับและส่ง

Note

# nmcli  dev  status              (ตรวจสอบสถานะของการ์ดแลน)

# nmcli  dev  show  ens33   (ตรวจสอบค่าคอนฟิก (IP Address) ของการ์ดแลนชื่อ ens33)

ดาวน์โหลดบทความ

     ถึงแม้ว่า RedHat จะติดตั้งโปรแกรมพื้นฐานที่จำเป็นต่อการใช้งานมาให้บางส่วนแล้ว แต่บางครั้งก็อาจไม่เพียงพอ ในบทนี้จะแนะวิธีการติดตั้งและการอัปเดตโปรแกรมต่างๆ ของ RedHat ว่ามีวิธีใดบ้างและแต่ละแบบมีความแตกต่างกันอย่างไร

รู้จักการติดตั้งโปรแกรมบน RedHat

     RedHat จะเรียกชุดโปรแกรมสำหรับการติดตั้งว่า “แพ็กเกจ” (Package) สร้างขึ้นมาเพื่อให้ผู้ใช้สามารถติดตั้งโปรแกรมต่างๆ ได้ง่าย โดยการนำเอาไฟล์สำคัญต่างๆ ที่จำเป็นสำหรับการติดตั้งมาคอมไพล์ (Complie)  เป็นไฟล์แพ็กเกจที่มีนามสกุลเป็น .rpm ทำให้เราไม่จำเป็นต้องคอมไพล์ซอร์สโค้ดของโปรแกรมนั้นเอง ซึ่งช่วยลดขั้นตอนและความยุ่งยากของการคอมไพล์ซอร์สโค้ดลงไปได้มาก

     การติดตั้งแพ็กเกจบน RedHat จะคล้ายกับ Redhat หรือ Fedora โดยมี 3 รูปแบบให้เลือก คือ

  • ติดตั้งผ่านคำสั่ง RPM (Redhat Package Manager)
  • ติดตั้งผ่านคำสั่ง YUM (Yellow dog updater Modified)
  • ติดตั้งโดยการคอมไพล์ซอร์สโค้ดเองด้วยคำสั่ง ./configure หรือ make เป็นต้น

คลิกอ่านเพิ่มเติม

     การทำความเข้าใจโครงสร้างของไฟล์และไดเรคทอรีของ RedHat ถือเป็นเรื่องสำคัญ เพราะจะช่วยให้เรามองภาพเส้นทางการเชื่อมโยงและสามารถใช้คำสั่งเพื่อเข้าไปจัดการไฟล์และโฟลเดอร์ต่างๆ ได้อย่างถูกต้องและรวดเร็ว

โครงสร้างไฟล์และไดเรคทอรีบน Linux            

     โครงสร้างไฟล์และไดเรคทอรีบน Linux จะมีลักษณะเป็นแบบ “ต้นไม้ (Tree)” ส่วนบนสุดจะเรียกว่า “Root ไดเรคทอรี” แทนด้วยเครื่องหมาย / (Back Slash) ในระดับล่างลงมาจะประกอบด้วย ไดเรคทอรี ย่อยต่างๆ ตามระดับ (Level) ดังรูปด้านล่าง

ความรู้เกี่ยวกับโครงสร้าง File และ Directory บน Linux

โดยในแต่ละไดเรคทอรีก็จะมีหน้าที่ในการเก็บข้อมูลที่ต่างกัน โดยไดเรคทอรีสำคัญที่ควรรู้จัก มีดังนี้

  • / : เป็น Root ไดเรคทอรี (รูท ไดเร็คทอรี) ของ Linux จะอยู่ชั้นบนสุด และด้านล่างจะประกอบด้วยไดเรคทอรีย่อยต่างๆ
  • /bin : เก็บไฟล์โปรแกรมต่างๆ ที่ติดตั้งลงเครื่อง และคำสั่งที่ใช้ในการจัดการ (Utilities) ของระบบ เปรียบได้กับเป็นโฟลเดอร์ System32 ของ Windows นั่นเอง
  • /boot : เก็บเคอเนลและไฟล์สำคัญในการบู๊ตเครื่อง (Boot Loader) เช่น LILO หรือ GRUB
  • /dev : เก็บไฟล์ของอุปกรณ์ต่างๆ (Device File) ที่ใช้สำหรับการอ้างอิงตัวอุปกรณ์ เพราะบน Linux ทุกอย่างจะถูกเก็บค่าเป็นไฟล์ทั้งหมด เช่น ฮาร์ดดิสก์จะถูกเก็บที่ /dev/hda, พริ้นเตอร์เก็บที่ /dev/lp หรือพอร์ต COM1 เก็บที่ /dev/tty0
  • /etc : เป็นไดเรคทอรีสำคัญ เก็บไฟล์คอนฟิก (Configuration) ของโปรแกรมต่างๆ, ไดเรคทอรีที่ใช้ในการเซ็ตอัประบบ และค่าการทำงานของระบบเครือข่าย เช่น local, รหัสผ่านหรือไฟล์ที่เกี่ยวกับยูสเซอร์
  • /home : เก็บไดเรคทอรีของยูสเซอร์ทุกคนที่สร้างขึ้นมาในระบบ (ยกเว้นยูสเซอร์ Root)
  • /lib : เก็บค่าไลบราลี (Library) แบบไดนามิคที่สำคัญต่อการเรียกใช้โปรแกรมต่างๆ คล้ายกับการทำงานของไฟล์ .DLL ของ Windows
  • /lost+found : เก็บไฟล์ที่เสียหายจากการทำงานที่ผิดพลาด เช่น ปิดเครื่องไม่ดี หรือไฟดับในขณะที่เครื่องกำลังเรียกใช้ไฟล์นั้นๆ อยู่ โดยโปรแกรม fsck จะทำการตรวจสอบเมื่อบู๊ตเครื่องขึ้นมาใหม่ แล้วเขียนไฟล์ที่ผิดพลาดนั้นลงใน /lost+found
  • /mnt : ใช้สำหรับการเมาท์อุปกรณ์และระบบไฟล์ของพาร์ทิชั่นต่างๆ
  • /opt : เก็บไฟล์โปรแกรมที่ได้จากการคอมไพล์ด้วยตัวเอง
  • /proc : เก็บข้อมูลในขณะที่มีการโพรเซสและเป็นเพียงไฟล์เสมือน (Virtual File System) ที่ใช้ในการกำหนดค่าการทำงานของเคอเนล
  • /root : เป็นไดเรคทอรีของยูสเซอร์ Root
  • /sbin : เก็บไฟล์โปรแกรมที่ทำงานในขณะที่บู๊ตระบบ โดยมีเพียงยูสเซอร์ Root เท่านั้นที่มีสิทธิสั่งรันได้
  • /tmp : เก็บไฟล์ขยะหรือไฟล์ชั่วคราวของยูสเซอร์ทุกคน
  • /srv : เก็บไฟล์ข้อมูลของเครื่องเซิร์ฟเวอร์เพื่อให้บริการด้านต่างๆ
  • /usr : เก็บไฟล์ของโปรแกรมต่างๆ ที่ติดตั้งลงเครื่องรวมถึงไฟล์ข้อมูลของระบบด้วย เปรียบเสมือนกับโฟลเดอร์ Program Files ของ Windows
  • /var : เก็บ Log File ของเครื่องเซิร์ฟเวอร์ โดยข้อมูลในไดเรคทอรีจะถูกอ่านเขียนอยู่ตลอด

คลิกอ่านบทความทั้งหมด