thaiall logomy background

ลีนุกซ์ (Linux)

my town
หน้าหลัก | ลีนุกซ์คืออะไร | แนะนำหนังสือ | superuser | บันทึกปัญหา | เนื้อหาทั้งหมด
ลีนุกซ์ (Linux)
ลีนุกซ์ (Linux) คือ ระบบปฏิบัติการแบบเปิด (Open Operating System) ที่ถูกนำไปต่อยอดเป็นระบบปฏิบัติการอีกมากมาย อาทิ ios, android, desktop os และ server os ซึ่งลีนุกซ์เป็นระบบปฏิบัติการที่เป็นยูนิกซ์โคลนสำหรับเครื่องพีซี และแจกจ่ายให้ใช้ฟรี สนับสนุนการใช้งานแบบหลายงาน หลายผู้ใช้ มีระบบ X วินโดวส์ ซึ่งเป็นระบบการติดต่อผู้ใช้แบบกราฟิก ที่ไม่ขึ้นกับโอเอสหรือฮาร์ดแวร์ใด ๆ และ โฮมเพจนี้มีเป้าหมาย คือ เพื่อส่งเสริมการเรียนรู้เกี่ยวกับลีนุกซ์ (LINUX Introduction)
บทเรียนที่แนะนำ Super User :: BusyBox :: ปัญหาที่พบในอดีต :: Linux SIS
Linux Sim* ( bellard | cocalc | masswerk | linuxcontainers | copy.sh | tutorialspoint )
Win. Subsystem for Linux(Ubuntu) :: คลิปการใช้ Term. Emu. ใน Tab10.1 :: การใช้คำสั่งพื้นฐาน :: คู่มือ :: archive.org
สารบัญ
บทที่ 1 : คำสั่งพื้นฐานของลีนุกซ์ (android)
คำสั่ง id
คำสั่ง pwd
คำสั่ง ls
คำสั่ง ping
คำสั่ง netstat
คำสั่ง df
คำสั่ง du
คำสั่ง ps
คำสั่ง kill
คำสั่ง top
คำสั่ง date
คำสั่ง set (env)
คำสั่ง service
คำสั่ง mount, umount
คำสั่ง cd, mkdir, rmdir
คำสั่ง cp, rm, mv
คำสั่ง cat
คำสั่ง chmod
คำสั่ง chown
คำสั่ง grep
ม้ linux จะถูกริเริ่มโดย Linus Benedict Torvalds จาก University of Helsinki ที่พัฒนาในส่วนของ Linux Kernel แต่ปัจจุบันได้มีนักพัฒนาจากทั่วโลกเข้ามาร่วมเติมเต็มเขี้ยวเล็บ และยกระดับเป็นซอฟท์แวร์เชิงพาณิชย์ด้วยชื่อทางการค้าของตน แต่ก็มีอีกกลุ่มที่มุ่งมั่นพัฒนาสนับสนุนให้เป็น Open Source Operating System ที่เปิดให้ Download ไปติดตั้ง และใช้งานได้ฟรี รวมถึงการปรับปรุงเพิ่มประสิทธิภาพ และประยุกต์ใช้งานได้ โดยไม่หวังผลกำไร
ดังนั้น การใช้คำสั่งบน Bash Shell เพื่อสั่งงานระบบปฏิบัติการ จึงมีคำสั่งใหม่เพิ่มขึ้น คำสั่งเก่าหายไป หรือเปลี่ยนแปลงอยู่เสมอ ในหัวข้อนี้เป็นคำสั่งที่มักพบได้ใน Linux ทั่วไป โดยเฉพาะบน Android OS ที่เผยแพร่โดย Google ให้เป็นระบบปฏิบัติการสำหรับสมาร์ทโฟน (Smart Phone) มีส่วนแบ่งตลาดถึง 70% ใน Q4 ของปี 2013 ขณะที่ iOS มีส่วนแบ่ง 21.7% หากอุปกรณ์จะใช้คำสั่งบน Bash Shell หรือ Linux command line ก็เพียงแต่ Download Application เช่น Android Terminal Emulator
os/ebook FundaOfUnix.pdf
บทที่ 2 : คำสั่งเกี่ยวกับระบบ
คำสั่ง man
คำสั่ง tail
คำสั่ง su sudo
คำสั่ง fsck
คำสั่ง lspci
คำสั่ง whereis
คำสั่ง find
คำสั่ง vi
คำสั่ง pico
คำสั่ง gzip
คำสั่ง tar
คำสั่ง last
คำสั่ง useradd
คำสั่ง userdel
คำสั่ง usermod
คำสั่ง chgrp
คำสั่ง crontab
คำสั่ง reboot, shutdown
ถ้าทำ root เครื่องสำเร็จ หมายถึง การทำให้อุปกรณ์ใช้คำสั่งข้ามข้อจำกัดที่ระบบปฏิบัติการออกแบบไว้ ก็จะสามารถติดตั้งโปรแกรมพิเศษได้ อาทิ busybox เป็นการเพิ่มคำสั่งให้เรียกใช้บน command line ได้อีกมาก
คำสั่งในหัวข้อนี้ มีให้ใช้ในอุปกรณ์ที่ root แล้ว และติดตั้ง busybox แต่ถ้าเป็นระบบปฏิบัติการอื่น อาทิ Fedora หรือ CentOS หรือ Debian หรือ Mint ก็จะใช้คำสั่งเหล่านี้ได้ ไม่จำเป็นต้องทำ root เหมือนบน Android
บทที่ 3 : คำสั่งเกี่ยวกับเครือข่าย
คำสั่ง nslookup
คำสั่ง telnet
คำสั่ง ifconfig
คำสั่ง route
คำสั่ง traceroute, tracert

Screen: JSLinux ที่เห็นก็คล้ายกับที่เราใช้ Terminal Emulator App
ที่พบใน Android ซึ่งใช้งานผ่าน Command Line ได้เหมือนกัน
ใช้คำสั่ง Whoami เพื่อให้รู้ตัวว่า "เราคือใคร" เหมือนชื่อหนังของเยอรมัน
บทที่ 4 : คำสั่งอื่น ๆ
คำสั่ง lynx
คำสั่ง emacs
คำสั่ง mkbootdisk
คำสั่ง rpm
คำสั่ง ntsysv
คำสั่ง chkconfig
คำสั่ง netcfg
คำสั่ง xinetd
คำสั่ง runlevel
คำสั่ง nmap
-
บทที่ 5 : Shell Script
5.1 สคริปท์ ใช้ค่าระบบ และรับค่า
5.2 สคริปท์ การเลือกแบบ if
5.3 สคริปท์ การเลือกแบบ case
5.4 สคริปท์ ทำซ้ำแบบ while
5.5 สคริปท์ ทำซ้ำแบบ for
5.6 สคริปท์ ทำซ้ำแบบ until
5.7 สคริปท์ ฟังก์ชันที่สร้างเอง
บทที่ 6 : แนะนำเครื่องบริการ
6.1 slowaris.labs.pulltheplug.com (u:guest p:guest)
6.2 academic.cmri.ac.th
6.71 se-ed.net (จดหมายแจ้งปรับปรุงระบบ)
6.72 thcity.com (เปลี่ยน Linux เป็น Windows)
-
บทที่ 7 : การใช้ application
7.1 วิธีใช้โปรแกรม FTP ส่งแฟ้มเข้าเครื่อง isinthai.com
7.2 การติดตั้งโปรแกรม .rpm ใน Redhat เพิ่มเติม
7.3 การติดตั้ง Secure Shell
-
บทที่ 8 : ระบบ file และ directory
8.1 การกำหนดค่าในแฟ้มต่าง ๆ
8.2 แฟ้มต่าง ๆ ที่ควรรู้จัก
8.98 การติดตั้ง Linux Redhat
8.99 การติดตั้ง Linux Redhat เมื่อแผ่น 2 ใช้ไม่ได้
-
บทเรียนการปรับจาก Redhat 9 เป็น Fedora core 4
  1. http://squirrelmail.org/download.php
    ใช้ #rpm -i squirrelmail-1.4.4-1.noarch.rpm
  2. imap ไม่พบใน core4 พบแต่ใน core1 สำหรับ core4 ใช้ dvecot-0.99.14 แทน และ setup เข้าไปเปิดบริการได้
  3. getsebool -a ใช้ดู SELinux Boolean ทั้งหมด
  4. ถ้าต้องการใช้บางโปรแกรม แต่ไม่พบใน setup ก็ต้องใช้ lynx download โปรแกรม
    #lynx ftp://ftp.nectec.or.th/pub/.3/Fedora/core/4/i386/os/Fedora/RPMS/vsftpd-2.0.3-1.i386.rpm
    #rpm -i vsftpd-2.0.3-1.i386.rpm
    #service vsftpd start
  5. พบปัญหาการเปิด ftp ใน xinetd และ vsftpd ชนกัน
    ต้องเข้าไปลบแฟ้ม vsftpd ใน /etc/xinetd.d
    เพื่อให้เหลือเฉพาะ vsftpd ใน /etc/init.d
    ถ้าชนกันจะพบคำว่า 500 OOPS: could not bind listening IPv4 socket จาก ftp ของ client
    ? มีเพื่อนชาวไทยโทรมาถาม แล้วผมก็ตอบอย่างที่เขียนไว้ด้านบนนี้
  6. แก้แฟ้ม /etc/vsftpd/vsftpd.conf
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
  7. คำสั่งตรวจสอบ server
    #rpm -qa|grep ftp
    #chkconfig --list
    #nmap -sT localhost
    #netstat -a|grep ftp
    #xinetd -d
  8. อ่านจาก http://www.itwizard.info/webboard/view.php?No=545
    ssl_disable = yes
    getsebool httpd_can_network_connect
    setsebool httpd_can_network_connect=1 (แต่ถ้า reboot ก็จะหาย)
    หรือ setsebool -P httpd_can_network_connect=1
    ถ้า set ค้าง ต้องเปิดแฟ้ม /etc/selinux/targeted/booleans.local มาแก้ไข
    ถ้า disable SELINUX จะพบปัญหาหลายอย่างน้อยลง เช่นปัญหาการเปิดบริการ DHCP ก็จะหาย
    โดยเปิดแฟ้ม /etc/selinux/config แล้วกำหนด SELINUX=disabled
  9. สำหรับ user ที่ต้องการใช้ ~user ให้กำหนด #chcon -R -t httpd_user_content_t public_html
  10. FC4 ใช้ dovecot แทน imap รายละเอียดใน 9.78
เรียบเรียงคำสั่ง ที่ใช้ทดสอบ LinuxSIS 5.0 (FC4)
  1. User: root Password: 123456
  2. ping www.thaiall.com
  3. ifconfig
  4. putty 192.168.1.3 Port 22 of SSH User:s01 Password:s01
  5. http://192.168.1.3 User: root Password: 123456
    + เว็บเมล, จัดการโฮมเพจ (Drupal), คลังรูปภาพ (Gallery2), บทเรียนออนไลน์ (Moodle), เปลี่ยนรหัสผ่าน
  6. pwd
  7. service --status-all
  8. top
  9. rpm -qa
  10. vi /etc/hosts เพิ่มคำว่า burin
  11. /etc/init.d/named restart
  12. ping burin
  13. cd /var/www/html/
  14. vi x.htm (for only root)
  15. http://192.168.1.3/x.htm
  16. cd /home/s01/public_html
  17. vi x.htm (for only root)
  18. cd /etc/httpd/conf and vi httpd.conf and Unmark #UserDir public_html
  19. /etc/init.d/httpd restart
  20. http://192.168.1.3/~s01/x.htm
  21. ftp 192.168.1.3 User:s01 Password:s01
  22. /etc/init.d/mysqld start (error)
  23. http://192.168.1.3/drupal/ (User: root Password: 123456 error)
  24. reboot
  25. เปิด firewall ด้วย setup และ enable ใน Firewall configuration
  26. เปิด Secure Shell ด้วย setup และ enable ใน System services
  27. tail -2000 /var/log/httpd/access_log | grep compose
  28. vi /etc/httpd/conf/httpd.conf
  29. ps -aux |grep nobody
  30. iptables -L แสดงนโยบายของ firewall ผ่านคำสั่งนี้
  31. iptables -A INPUT -p tcp -i eth0 --dport 25 -j REJECT (ปฏิเสธ port 25)
  32. host -t mx sanook.com
  33. iptables -L INPUT --line-numbers
  34. iptables -D INPUT 2
  35. vi /etc/dovecot.conf สำหรับเปิด protocols = imap imaps pop3 pop3s
จำลองสภาวะแวดล้อม Linux : Text mode ให้ทำงานบน Browser
ถ้าต้องการใช้งาน linux command แบบจำลอง (simulator)
มีให้บริการที่ bellard.org ผ่าน browser
มี url คือ http://bellard.org/jslinux/
ตัวอย่างการทดสอบ tcc และ shell script
1. เมื่อเข้าไปแล้ว ดูรายการแฟ้มด้วยคำสั่ง ls -al
2. เปิด 2 windows ในเครื่องเดียวกันได้ จะพบว่าการทำงานแยก Shell กัน
3. สร้างแฟ้มได้ เช่น ls > x
4. สั่งแปล hello.c ได้ hello ที่ประมวลผลได้ด้วย tcc -o hello hello.c
5. สั่งประมวลผลด้วย ./hello พบคำว่า hello world
6. สร้าง shell script ด้วย echo ls > y
7. เพิ่มคำสั่ง ใหม่ใน y ด้วย echo ifconfig -a >> y
8. ถ้าทำให้ y เป็น shell script ก็ใช้ chmod 744 x ได้
9. สั่งประมวลผลด้วย ./y
mingw64 บน git Mingw64 คือ โครงการพัฒนาระบบสนับสนุนการใช้ตัวแปลภาษา GCC Compiler บนระบบปฏิบัติการวินโดว์ ถูกแยกการพัฒนา (Fork) จากโครงการ MinGW (Minimalist GNU สำหรับ Windows เป็น Open source) ตั้งแต่ปี 2550 เพื่อให้ใช้งานบนระบบปฏิบัติการวินโดว์ 64 bit พบว่า Mingw64 ถูกติดตั้งมาพร้อมกับ Git 2.31.1 for windows [45.5 MB - git-scm.com] ทำให้เรียกใช้ Git Gui (Graphic User Interface) ผ่าน DOS> "C:\Program Files\Git\cmd\git-gui.exe" หรือเรียกใช้ Git Bash ผ่าน DOS> "C:\Program Files\Git\git-bash.exe" --cd-to-home ก็จะพบกับ Mingw64 เป็น Prompt รอรับคำสั่งเพื่อทำงาน สามารถใช้คำสั่ง Linux ได้ อาทิ id, pwd, ls, ping, netstat, df, du, ps, kill, date, set, env, mount, umount, cd, mkdir, rmdir, cp, rm, mv, cat, chmod, grep, tail, find, vi, gzip, tar ส่วนคำสั่งที่ทดสอบแล้ว พบว่า ใช้ไม่ได้ อาทิ top, man, service, su, sudo, fsck, lspci, whereis, pico, last, useradd, userdel, usermod, crontab, reboot ซึ่งคำสั่ง DOS แบบภายนอก เช่น shutdown, notepad ใช้ได้ แต่คำสั่งภายในจะใช้บน mingw64 ไม่ได้ อาทิ copy, cls, del, tree ตรวจสอบว่ามีคำสั่งอะไรที่ mingw64 สนับสนุน โดยดูรายชื่อคำสั่งได้จากห้อง C:\Program Files\Git\usr\bin
ารใช้คำสั่ง FTP เชื่อมต่อไปยัง Nectec server ด้วย anonymous สามารถคัดลอกแฟ้ม index.html ด้วย get จากเครื่อง Server มาไว้ในเครื่อง Local host ได้ แต่ในปัจจุบัน ftp.nectec.or.th ไม่สนับสนุนการใช้ ftp client ผ่าน active mode จะต้องใช้โปรแกรม ftp client ที่เปิด passive mode แต่ ftp.exe บน mingw64 หรือ windows ทุกรุ่น สนับสนุนเฉพาะ active mode จึงต้องใช้โปรแกรมที่สมบูรณ์กว่า อาทิ Filezilla , WS Ftp , WinSCP หรือ Windows explorer แทนการใช้ ftp.exe
เครื่องมือตรวจสอบประสิทธิภาพของ Linux ะบบปฏิบัติการ Linux ประกอบด้วยหลายส่วนแบ่งเป็นชั้นในสุด ถึงชั้นนอกสุด คำสั่งที่ใช้ดูการทำงานของแต่ละส่วนก็แตกต่างกันไป แผนภาพนี้ถูกพูดในงาน LinuxCon Europe 2014 โดย Brendan Gregg โดยแยกอธิบายเป็นส่วน และตัวอย่างผลการใช้เครื่องมือแต่ละชิ้น (ดูคลิปแล้ว เหมือนนั่งอยู่ในที่ประชุม 50 นาที)
youtube.com/watch?v=SN7Z0eCn0VY
วัตถุประสงค์ของเว็บไซต์ 1. เพื่อรวบรวมประสบการณ์ของผู้เกี่ยวข้องกับการใช้งานระบบปฏิบัติการลีนุกซ์ แล้วแบ่งปัน
2. เพื่อเป็นแหล่งอ้างอิงสำหรับนิสิต นักศึกษา เพื่อน และผู้สนใจ
3. เพื่อรับข้อซักถาม ข้อเสนอแนะ และข้อคิดเห็น แล้วนำมาปรับปรุง
แนะนำเว็บไซต์ (Website Guides)
  1. http://www.dd-wrt.com/wiki/index.php/Iptables_command
  2. http://www.tldp.org/LDP/intro-linux/html/ Introduction to linux
  3. http://linux.thai.net (Thai Linux Working Group หรือ LTN) มีเรื่องน่าอ่านเยอะ
  4. http://www.thaiall.com/webserver การติดตั้ง webserver ด้วยหลาย ๆ โปรแกรม และหลายบริการ
    บริการที่น่าสนใจ
  5. http://wq.apnic.net/apnic-bin/whois.pl?searchtext=161.202.192.248 (ตัวอย่างบริการของ apnic whois)
  6. http://www.maxmind.com/app/lookup (ดูชื่อประเทศ จากหมายเลข IP)
    งานเตรียมสอน Linux OS
  7. + สอน putty และ filezilla เพื่อ upload index.html เข้า web directory
  8. + Squid 2 จำกัด MAX_URL ที่ 4096 แต่ Squid 3 เป็น 8192
เอกสารอ้างอิง [1] สถิตย์ เรียนพิศ, "ติดตั้งและบริหารระบบ Web Hosting ด้วย ispCP Omega", บริษัทไอดีซี พรีเมียร์ จำกัด., นนททบุรี, 2553.
[2] ภัทระ เกียรติเสวี, "สร้างอินเทอร์เน็ตเซิร์ฟเวอร์ด้วยลีนุกซ์", บริษัท ซีเอ็ดยูเคชั่น จำกัด, กรุงเทพฯ, 2542.
เริ่มเรียบเรียงข้อมูล 4 ตุลาคม 2543 (มาตรฐาน xhtml และ css)
Thaiall.com