ลีนุกซ์ (Linux)
Linux #ok
คำสั่ง id (finger, who, w)

คำสั่ง id ย่อมาจาก identification คือ คำสั่งแสดงชื่อของผู้ใช้ปัจจุบัน และกลุ่ม ว่ากำลังใช้งานระบบใน user name ใด

id - print real and effective user and group IDs

คำสั่ง id จะแสดง uid, gid, group ของผู้ใช้ปัจจุบัน ส่วนคำสั่ง who และ w มีเพื่อให้ผู้ดูแลระบบ ตรวจสอบการใช้งานของ user แต่ finger นั่นถูกยกเลิกการให้บริการในหลายระบบไปแล้ว

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

คำสั่ง pwd ย่อมาจาก print working directory คือ คำสั่งแสดงชื่อไดเรกทรอรี่ปัจจุบัน ว่ากำลังทำงานอยู่ที่ไดเรกทรอรี่ใด เป็นคำสั่งที่มีใน shell พื้นฐาน จึงมีทั้งใน sh (Bourne shell 1977) และ bash (Basic Shell 1989)

pwd - print name of current/working directory
Print the full filename of the current working directory.

การแสดงชื่อไดเรกทรอรี่ปัจจุบัน มีความจำเป็นอย่างมาก ถ้าต้องเปิดพร้อมกันหลาย terminal เพราะคำสั่งที่จะเรียกใช้ได้ต้องอยู่ใน working directory จึงต้องมั่นใจว่าอยู่ในห้องที่ถูกต้อง เช่น ห้อง /var/log หรือ /etc หรือ /home หรือ /bin ล้วนมีแฟ้มที่ทำหน้าที่แตกต่างกันไป

นอกจากวิธีนี้แล้ว ยังสามารถใช้คำสั่ง PS1=.. เพื่อเปลี่ยน prompt string ของ shell เพื่อแสดง working directory หรือข้อมูลอื่นได้โดยสะดวก

คำสั่ง ls

คำสั่ง ls ย่อมาจาก List คือ คำสั่งสำหรับแสดงรายชื่อแฟ้ม ขนาดแฟ้ม และข้อมูลเบื้องต้นของแต่ละแฟ้ม ที่จัดเก็บในห้องเก็บข้อมูล (Directory หรือ Folder)

ls - list directory contents
List information about the FILEs (the current directory by default).

การแสดงรายชื่อแฟ้ม ทางจอภาพ หรือ console เป็นความสามารถปกติของคำสั่งนี้ ที่ใช้ประจำ แต่อีกการประยุกต์ใช้ที่ชอบ คือ การแสดงรายชื่อแฟ้มไปสร้างแฟ้มใหม่ เพื่อใช้ทดสอบเกี่ยวกับการจัดการแฟ้ม โดยสร้างแฟ้มขึ้นทันที เช่น คำสั่ง ls > a เพื่อให้ได้แฟ้มชื่อ a อย่างรวดเร็ว ถ้าต้องการเพิ่มขนาดหรือข้อมูลในแฟ้ม ก็จะใช้ ls >>a เพื่อเพิ่มต่อท้ายแฟ้มเดิม ซึ่งเป็นความรู้ที่ทราบมาจากระบบ DOS

การแสดงขนาดของแฟ้ม ด้วยคำสั่ง ls -l ซึ่งเป็นขนาดข้อมูลที่อยู่ในแฟ้ม เช่น แฟ้มที่มีตัวอักษร 3 ตัวก็จะใช้ 3 bytes แต่ระบบปฏิบัติการส่วนใหญ่ไม่ได้ใช้พื้นที่ในดิสก์ (disk) เพียง 3 bytes แต่ใช้เท่าขนาดกล่อง (block) ซึ่งอุปกรณ์แต่ละประเภทจะมีขนาดกล่อง (block) ไม่เท่ากัน

การแสดงการใช้พื้นที่ในดิสก์ สามารถใช้คำสั่ง ls -s ซึ่งแฟ้มจะใช้พื้นที่ในดิสก์เริ่มที่จำนวน 8 sectors ต่อกล่อง แม้แฟ้มเหล่านั้นจะมีขนาดเล็กกว่า แต่เป็นไปตามข้อกำหนดของระบบแฟ้มในแต่ละอุปกรณ์ บางอุปกรณ์ที่มี IO Block = 4096 bytes แต่บางอุปกรณ์อาจเป็น 2048 bytes หรือ 4 sectors สามารถใช้คำสั่ง $blockdev --getbsz /dev/sda หรือ $stat [file-name] ตรวจดูขนาดของ IO Block ได้ ซึ่ง 8 sectors = 8 * 512 bytes = 4096 bytes โดยแฟ้มที่มีขนาดไม่ถึง 4096 จะใช้พื้นที่ในดิสก์เป็น 4096 bytes หรือ 8 sectors ถ้าขนาดของแฟ้มเป็น 4100 bytes จะใช้พื้นที่ในดิสก์เป็น 16 sectors หรือ 8192 bytes หากต้องการทราบว่าระบบแฟ้มในเครื่องแบ่งระบบแฟ้มไว้อย่างไรให้ใช้คำสั่ง $df -a และ $df -i แล้วสามารถใช้คำสั่งแสดงจำนวน block หรือพื้นที่เก็บข้อมูลของแต่ละ device

เช่น $blockdev --getsz /dev/sda
208,782 sectors = 1 disk = 106,896,384 KB = 101.9 MB
71,132,000 sectors = 1 disk = 36,419,584,000 KB = 34,732.4 MB

ต.ย. ตัวเลือก (options)
-a, --all = show hidden and unhidden
-l = use a long listing format
-s, --size = print size of each file, in blocks
-S = sort by file size (not show size)

ตัวอย่างการใช้คำสั่ง
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 -alSR | grep Trash | moreแสดงข้อมูลแฟ้ม Trash จากทุก Sub directory
ls -alS | moreแสดงรายชื่อแบบจัดเรียงตามขนาดแบบ Descending ใช้ดูขนาด mail box ใน /var/mail ได้ดี
ถ้าสังเกตจะพบว่า แฟ้มที่มี . หน้าชื่อแฟ้ม หมายถึง แฟ้มที่ซ่อนไว้ ถ้าใช้คำสั่ง ls หรือ ls -l จะไม่เห็นแฟ้มเหล่านี้
ถ้ามีอักษร D ที่ Column แรก ในส่วนแสดงรายชื่อแฟ้ม ด้วยคำสั่ง ls -al จะหมายถึง directory
คำสั่ง man

คำสั่งที่ช่วยอธิบายหน้าที่ และความหมายของคำสั่งอื่น รวมทั้งรูปแบบ และตัวเลือกในการสั่งงาน

man it is the interface used to view the system's reference manuals.
เชื่อว่าทุกคนที่ใช้ unix หรือ linux ต้องเคยใช้คำสั่งนี้มาก่อน เพราะจะเป็นคำสั่งที่ช่วยอธิบายหน้าที่ของคำสั่ง พร้อมกับแสดง parameter ที่สามารถใช้ได้ทั้งหมดของคำสั่งนั้น และยังมีตัวอย่างการใช้ และคำสั่งที่เกี่ยวข้องอีก ทำให้ประหยัดเวลาในการค้นเอกสารได้อย่างมาก บางท่านอาจศึกษา linux ด้วยการอ่านจาก manual อย่างเดียว โดยไม่ต้องไปหาซื้อหนังสือที่ไหนมาอ่านก็ได้ ตัวอย่างการใช้คำสั่ง
man manเพื่ออธิบายคำสั่ง man เอง ว่าตัวคำสั่งนี้ใช้อย่างไร
man lsเพื่ออธิบายคำสั่ง ls ว่าใช้อย่างไร
man useraddเพื่ออธิบายคำสั่ง useradd ว่าใช้อย่างไร
คำสั่ง netstat

คำสั่งแสดงสถานะของเครือข่ายว่ามีโปรแกรมใดเปิดให้บริการ หรือพอร์ทใดเปิดอยู่บ้าง

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
คำสั่ง ping

โปรแกรมที่ใช้ตรวจสอบโฮสต์ปลายทางว่าได้เชื่อมต่อกับระบบไอพีหรือไม่ โดยการส่งข้อมูล ICMP (Internet Control Message Protocol) ประเภท "echo request" ไปยังโฮสต์เป้าหมาย และรอคอยการตอบรับเป็นข้อมูล "echo response" กลับมา ส่วนค่า TTL (Time to live) หรือ hop limit คือ กลไกจำกัดช่วงชีวิตของข้อมูลในเครื่องคอมพิวเตอร์หรือเครือข่าย โดย TTL อาจถูกติดตั้งเป็นตัวนับที่ฝังไปกับข้อมูล และป้องการหมุนเวียนในเครือข่ายไปเรื่อย ๆ

ping, ping6 - send ICMP ECHO_REQUEST to network hosts
ICMP = Internet Control Message Protocol
ICMP คือ โพรโทคอลที่ทำหน้าที่รายงานความผิดพลาดใน IP packet
ping www.thaiall.comตรวจสอบการมีอยู่ของ www.thaiall.com แล้วแสดงเลข IP
ping 161.20.192.248 -n 5แสดงผลการทดสอบจำนวน 5 ครั้ง
ping 161.20.192.248ถ้าตอบมา Request timed out อาจไม่พบ หรือไม่ตอบ
ping service on network-tools.com
คำสั่ง traceroute tracert

คำสั่งที่แสดงหมายเลข ip address ของเครื่องที่ถูกเชื่อมต่อทั้งหมด ก่อนถึงเครื่องปลายทาง

traceroute - print the route packets trace to network host
ตัวอย่างนี้ แสดงให้เห็นว่า เมื่อเปิดเว็บ 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
คำสั่ง df

คำสั่งแสดงเนื้อที่ใช้งาน Harddisk ว่าเหลือเท่าใด และส่วนใดใช้ไปเท่าใดบ้าง

df - report file system disk space usage
ช่วยให้ผู้ดูแลระบบรู้ว่าตอนนี้เนื้อที่ใน Harddisk เหลืออยู่เท่าใด และอาจใช้ตรวจสอบได้ว่า มีใครแอบมา upload แฟ้มขนาดใหญ่ไว้หรือไม่ จะได้ตรวจสอบในรายละเอียดของแต่ละ user ต่อไป (ผมเองก็ใช้บ่อย เพราะถ้า server เล็ก ๆ จะเต็มบ่อยครับ ต้องคอย clear เสมอ)
ตัวอย่างคำสั่ง และการใช้งาน
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
คำสั่ง du

คำสั่งแสดงเนื้อที่ใช้งาน ของแต่ละ directory ว่าใช้ไปเท่าใด โดยประมาณ

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

คำสั่งแสดง Process หรือโปรแกรมที่ประมวลผลอยู่ในระบบขณะนั้น

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

คำสั่งแสดงสถานะการใช้ทรัพยากร ภายในเครื่อง

top - display Linux processes
ตัวอย่างผลลัพธ์ของคำสั่ง
แสดงการใช้ทรัพยากรของเครื่อง จากแต่ละ 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
คำสั่ง mount, umount

คำสั่งเชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive หรือ Harddisk

mount - mount a filesystem
การใช้ 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
#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แสดงข้อมูลที่เคย mount ไว้ทั้งหมด
#mount --bind /var/www /home/yourname/www

วิธีเรียกใช้แฟ้มใน 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 หรือออกจากห้องก่อนนะ
คำสั่ง env

คำสั่งแสดงค่า environment ปัจจุบัน

env - run a program in a modified environment
ตัวอย่างคำสั่ง และการใช้งาน
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
คำสั่ง cd, mkdir, rmdir

คำสั่ง cd เปลี่ยนไดเรกทรอรี่ คำสั่ง mkdir สร้างไดเรกทรอรี่ คำสั่ง rmdir ลบไดเรกทรอรี่

cd - Change the shell working directory.
The default DIR is the value of the HOME shell variable.
It is the command to make, remove empty, change working directory
ผู้ใช้คอมพิวเตอร์ที่ใช้ dos มาก่อนต้องคุ้นเคยกับห้องเก็บข้อมูลแน่นอน สำหรับคำสั่งเกี่ยวกับห้องเก็บข้อมูล ในที่นี้มี 3 คำสั่ง
mkdir หมายถึง สร้างห้องเก็บข้อมูล (make directories)
rm หมายถึง ลบแฟ้ม หรือห้องเก็บข้อมูล (remove files or directories) และคำสั่งนี้ยังใช้ลบแฟ้มตามปกติได้อีกด้วย
cd หมายถึงเปลี่ยนห้องเก็บข้อมูล (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
คำสั่ง cp, rm, mv

คำสั่งจัดการแฟ้มเช่น คัดลอก ลบ และย้าย

cp-The cp command is used to make copies of files and directories.
ตัวอย่างคำสั่ง และการใช้งาน
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
โปรแกรม vi

เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text

vim - Vi IMproved, 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
สามารถทดสอบใช้โปรแกรม vi ที่ http://bellard.org/jslinux/
คำสั่ง cat

คำสั่งแสดงข้อมูลในแฟ้ม คล้ายคำสั่ง type ในระบบ DOS

cat - concatenate files and print on the standard output
ตัวอย่างคำสั่ง และการใช้งาน
 /etc/passwd ::  แสดงข้อมูลในแฟ้ม /etc/passwd
 /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
คำสั่ง tail

คำสั่งแสดงส่วนท้ายของแฟ้มที่มีขนาดใหญ่ ตรงข้ามกับ cat ที่ดูตั้งแต่เริ่มแฟ้ม

tail - 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 ย้ายไปทับแฟ้มเดิม
คำสั่ง grep

คำสั่งใช้สำหรับเลือกข้อมูลเฉพาะบรรทัดที่ต้องการ

grep - print lines matching a pattern
ตัวอย่างคำสั่ง และการใช้งาน
more /etc/passwd|grep thaiallใช้แสดงข้อมูลในแฟ้ม /etc/passwd แต่เลือกเฉพาะบรรทัดที่มีคำว่า thaiall
rpm -qa|grep ftpใช้ดูว่าระบบลงโปรแกรม ftp หรือยัง เวอร์ชั่นใดบ้าง
last |grep rebootใช้ดูระบบถูก reboot เมื่อใดบ้าง
ls -al | grep .rcแสดงรายชื่อแฟ้มที่มีคำว่า .rc
คำสั่ง reboot, shutdown

คำสั่งใช้ปิดเครื่อง หรือ ปิดและเปิดเครื่องใหม่อย่างถูกวิธี

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

คำสั่งขอเปลี่ยนตนเองเป็น Super user หรือ root เพื่อใช้สิทธิสูงสุดในการบริหารระบบ

su - run a shell with substitute user and group IDs
การจะใช้ 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
shell_exec("echo $pass |sudo -u root -S /usr/bin/passwd $user --stdin");
ใช้กำหนดรหัสผ่าน หลังสร้างรหัสผู้ใช้แล้ว
คำสั่ง date

คำสั่งใช้ดูวันที่ หรือเปลี่ยนวันที่ และเวลาได้ date [OPTION] [MMDDhhmm[[CC]YY][.ss]]

date - print or set the system date and time
ตัวอย่างคำสั่ง และการใช้งาน
date +%xดูวันที่ปัจจุบัน เช่นการแสดงเลข 04/27/01 ออกมา
date +%dดูวันที่ปัจจุบัน เช่นการแสดงเลข 27 ออกมา
date 04271340กำหนดวันที่ใหม่ให้เป็น วันที่ 27 เดือน 4 เวลา 13.40 น. (mmddhhmmccyy)
hwclock --systohcเมื่อเปลี่ยนเวลาด้วย date หาก restart เครื่องเวลาจะผิดเหมือนเดิมต้องใช้คำสั่งนี้ เพื่อเขียนเวลาลงไปใน hardware clock จึงจะเปลี่ยนเวลา hardware ได้
คำสั่ง fsck

คำสั่งซ่อมแซมระบบแฟ้มใน linux

fsck - check and repair a Linux file system
ตัวอย่างคำสั่ง และการใช้งาน
#fsck /ใช้ซ่อม harddisk ในห้อง / เมื่อ harddisk เกิดปัญหา
#fsck /dev/hdcใช้ซ่อม harddisk ที่ชื่อ /dev/hdc ถ้าต่อ harddisk ไว้หลายตัว
คำสั่ง lspci

คำสั่งตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง

lspci - list all PCI devices
ตัวอย่างคำสั่ง และการใช้งาน
#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)
คำสั่ง whereis

คำสั่งค้นหาแฟ้มที่ต้องการว่าอยู่ที่ห้องใด แต่ค้นได้เฉพาะที่กำหนดไว้ใน PATH เท่านั้น หากต้องการค้นทั้งเครื่องต้องใช้คำสั่ง find

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

คำสั่งค้นหาแฟ้มที่ต้องการว่าอยู่ที่ใดในเครื่องเรา

find - search for files in a directory hierarchy
ตัวอย่างคำสั่ง และการใช้งาน
find / -name hello.plใช้ค้นหาแฟ้ม hello.pl ในทุก directory
find / -name hello*ใช้ค้นหาแฟ้มที่ขึ้นต้นด้วยคำว่า hello
find /bin -size 626188cใช้ค้นหาแฟ้มที่มีขนาด 626188 ถ้าเป็น RH8 จะพบแฟ้ม bash
โปรแกรม pico

โปรแกรม editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก

pico - simple text editor in the style of the Alpine Composer
เพียงแต่พิมพ์คำว่า pico แล้ว enter ก็ใช้งานได้เลย การจะจัดเก็บ หรืองานต่าง ๆ ที่มีบริการไว้มากมาย ท่านสามารถอ่านได้จากเมนูด้านล่าง ซึ่งเครือ่งหมาย ^ หมายถึงการกดปุ่ม Ctrl ประกอบอักษรต่าง ๆ นั่นเอง ผมคิดว่าท่านน่าจะพออ่านรู้เรื่อง หรือจะพิมพ์ว่า pico xx ก็จะเป็นการสร้างแฟ้มชื่อ xx ให้ทันที แต่หากมีแล้ว ก็จะเปิดแฟ้ม xx มาให้แก้ไขในโปรแกรม xx เมื่อท่านต้องการเลิกก็ทำได้โดยกดปุ่ม Ctrl-X เป็นอันเรียบร้อย หากท่านใดเคยใช้ vi เมื่อลองใช้โปรแกรมนี้จะติดใจอย่างแน่นอน เพราะใช้งานได้ง่ายกว่า หลายเท่านัก หลายครั้ง ที่พิมพ์คำว่า pico แล้วไม่มีในเครื่อง ก็เพราะไม่ได้ลงโปรแกรม pine เมื่อต้องการใช้ pico ก็ต้องติดตั้งโปรแกรม pine เข้าไปในเครื่อง จากแผ่น CD ด้วยคำสั่ง rpm -i pine*
คำสั่ง chmod

คำสั่งใช้เปลี่ยนสิทธิของแฟ้ม เจ้าของ(Owner), คนในกลุ่ม(Group), คนอื่น(Other) สามารถทำอะไรได้บ้าง

chmod - change file mode bits or 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 :: ทำให้ทุกแฟ้ม ทุกห้องเก็บข้อมูล ในห้องปัจจุบัน เปลี่ยนตามที่กำหนด
คำสั่ง chown

คำสั่งเปลี่ยนเจ้าของ

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

คำสั่งเปลี่ยนกลุ่ม

chown - change file owner and group
ตามหัวข้อ chmod ทำให้ทราบว่า แฟ้มแต่ละแฟ้มมี 3 ส่วน คือเจ้าของ กลุ่ม และทั่วไป เมื่อต้องการเปลี่ยนความเป็นเจ้าของ หรือกลุ่ม ก็สามารถทำได้ ซึ่งเป็นหลักการง่าย ๆ ไม่ยุ่งยาก
ตัวอย่างคำสั่ง และการใช้งาน
#chgrp users y.txt :: เปลี่ยนกลุ่มของแฟ้ม y.txt ให้เป็นของกลุ่มชื่อ users
#chgrp admingroup y.txt :: เปลี่ยนกลุ่มของแฟ้ม y.txt ให้เป็นของกลุ่มชื่อ admingroup
คำสั่ง gzip

คำสั่งใช้สำหรับแตกแฟ้มที่ถูกบีบอัด ซึ่งมีสกุล .gz .z แต่อาจใช้ tar แทนได้สำหรับ .tar.gz

gunzip, gzip - compress or expand files
ตัวอย่างคำสั่ง และการใช้งาน
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 ได้ตามลำดับ
คำสั่ง tar

คำสั่งใช้สำหรับแตกแฟ้มที่ถูกบีบอัด แล้วนามสกุล tar

tar - The GNU version of the tar archiving utility
ตัวอย่างคำสั่ง และการใช้งาน
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 ออกมาทั้งหมด
คำสั่ง last

คำสั่งใช้แสดงรายชื่อผู้ login เข้ามาล่าสุด

last, lastb - show listing of last logged in users
ตัวอย่างคำสั่ง และการใช้งาน
last |grep rebootใช้ดูระบบถูก reboot เมื่อใดบ้าง
last |moreใช้รายชื่อผู้ login เข้ามาในระบบล่าสุดทีละหน้า
คำสั่ง useradd

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

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

คำสั่งลบผู้ใช้รายเดิม ออกจากระบบ

userdel - delete a user account and related files
ตัวอย่างคำสั่ง และการใช้งาน
#userdel -r themanลบ theman และ home directory ของ theman ออกหมด
คำสั่ง usermod

คำสั่งแก้ไขข้อมูลของผู้ใช้ได้

usermod - modify a user account
ตัวอย่างคำสั่ง และการใช้งาน
#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 ให้ทันที
คำสั่ง crontab

คำสั่งตั้งเวลาสั่งงานคอมพิวเตอร์

crontab - maintain crontab files for individual users
ตัวอย่างคำสั่ง และการใช้งาน
#crontab -lแสดงกำหนดการของการสั่งให้คอมพิวเตอร์ทำงานอย่างอัตโนมัติ ตามเวลาที่กำหนด
#cat /etc/crontabแสดงตาราง crontab ในเครื่อง
#ls /etc/cron.dailyแสดงรายชื่อแฟ้มที่จะส่งให้ crontab ดำเนินการ
คำสั่ง kill

เมื่อทราบว่า process ใดที่มีปัญหา สามารถลบ process ตามเลข process ออกจากระบบได้

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

คำสั่งแสดงข้อมูลเกี่ยวกับ name server จาก ip หรือ domain name

nslookup - 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
คำสั่ง telnet

คำสั่งใช้ติดต่อเข้า server ต่าง ๆ ตาม port ที่ต้องการ แต่ปัจจุบัน server ต่าง ๆ ปิดบริการ telnet แต่เปิด SSH แทน

telnet - 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
GET /index.html
<frameset>
<frame src=index.php>
</frameset>

Connection to host lost.
C:\>
คำสั่ง ifconfig

คำสั่งแสดงข้อมูลเกี่ยวกับ Network interface และแสดง ip ต่าง ๆ ที่มีการเพิ่มเข้าไปใน server ได้

ifconfig - 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
คำสั่ง service

คำสั่งดูสถานะการเปิดปิดของบริการในเครื่อง (Internet network services list)

service - run a System V init script
services - 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...
คำสั่ง route

คำสั่งใช้เส้นทางการเชื่อมเครือข่าย

route - show / manipulate the IP routing table
ตัวอย่างคำสั่ง และการใช้งาน
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
โปรแกรม lynx

โปรแกรม Text browser ที่ใช้งานง่าย ใช้ดู source หรือ download ได้ (ในเครื่องผมไม่ได้ลงไว้)

lynx - a general purpose distributed information browser for the World Wide Web
ตัวอย่างคำสั่ง และการใช้งาน
lynx www.thaiall.com เพื่อเปิดเว็บ www.thaiall.com แบบ text mode
lynx http://www.nation.ac.th  เพื่อเปิดเว็บ www.nation.ac.th แบบ text mode
lynx -dump http://www.nation.ac.th  เพื่อแสดงผลลัพธ์แบบไม่ interactive คือการ view ผลแล้วหยุดทันที
โปรแกรม emacs

โปรแกรม editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก

emacs - GNU project Emacs
โปรแกรมแก้ไขแฟ้มตัวอักษรที่ทำงานได้คล้ายกับ 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.)
คำสั่ง mkbootdisk

คำสั่งสร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง และมีการทำงานแบบ stand alone

mkbootdisk - creates a stand-alone boot floppy for the running system
คำสั่งนี้ผมเคยใช้ตอนคัดลอก 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 ของเครื่องมีปัญหา
คำสั่ง rpm

ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด

rpm - RPM Package Manager

ในกรณีที่ท่านมีโปรแกรมตัวใหม่มา สามารถที่จะลบโปรแกรมเพิ่มโดยใช้คำสั่ง rpm ได้ หรือต้องการตรวจสอบว่า มี package บางตัว install อยู่หรือไม่ หรือจะยกเลิกโปรแกรมบางตัวออกจากระบบก็ทำได้ หรือจะแสดงรายชื่อ package ทั้งหมดในระบบก็ทำได้อีก รวมทั้งการตรวจ version ของ package แต่ละตัว

จากประสบการณ์ ไม่แน่ใจว่าเกิดจากอะไร เมื่อลง 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.rpmUpgrade โปรแกรม แต่ต้องลงโปรแกรมก่อนมิเช่นนั้น ไม่สำเร็จนะครับ
rpm -qi vsftpdแสดงรายละเอียดของ Application เช่น ขนาด วันติดตั้ง รุ่น ผู้ผลิต เป็นต้น
คำสั่ง ntsysv หรือ setup

คำสั่งใช้เปิด-ปิด บริการของเครื่องที่สะดวกรวดเร็ว

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

คำสั่งกำหนด หรือแสดง บริการที่สั่งประมวลผลใน level ต่าง ๆ ขณะเปิดเครื่อง

chkconfig - updates and queries run level information for system services
คำว่า 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)
คำสั่ง netcfg

คำสั่งแสดงข้อมูลว่าในอุปกรณ์ใช้ ip หมายเลขใด

netcfg - start/stop/control network profiles
ดูผลการทำงานของคำสั่ง 
#netcfg
lo  UP  127.0.0.1/8 0x00001049 00:00:00:00:00:00
rmnet0 UP  10.37.1.28/24 0x000010d1 00:00:00:00:00:00
คำสั่ง xinetd

คำสั่งดูบริการภายใน xinetd ว่าอะไรเปิดอยู่บ้าง ทำให้เข้าไปเปิดที่ห้อง /etc/xinetd.d แล้วเลือกเปิดบริการเฉพาะที่ต้องการ เช่นแก้แฟ้ม talk เพื่อให้เปิดบริการ talk ใน server เป็นต้น แต่ใน Fedora ที่ผมติดตั้งไม่มีคำสั่งนี้ครับ

xinetd - the extended Internet services daemon
ดูผลบางส่วนจากการทำงานของคำสั่ง 
#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
คำสั่ง runlevel

คำสั่ง

runlevel -- find the current and previous system runlevel.
คำสั่งนี้ใช้คู่กับแฟ้ม /etc/inittab เพื่อบอกว่าปัจจุบันอยู่ใน level ใด ถ้าต้องการเปลี่ยน level ต้องใช้คำสั่ง chkconfig ตัวอย่างคำสั่ง และการใช้งาน
#/sbin/runlevelแสดง level ปัจจุบัน
#cat /etc/inittabแสดงตาราง กำหนดการสั่งเครื่อง ว่าใช้ level ใด
คำสั่ง nmap

คำสั่งตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C

nmap - Network exploration tool and security / port scanner
เป็นคำสั่งที่ใช้ตรวจสอบเครือข่ายอย่างมีประสิทธิภาพสำหรับผู้ดูแลระบบ
5.1 สคริปท์บน Android การเลือกแบบ if
http://www.thaiall.com/blog/burin/8474/
เคยมีนักศึกษาสายไอที ถามมา
เพราะสายอื่นเค้าคงไม่ถามแบบนี้หลอก
คำถาม "มีสมาร์ทโฟน เอามาทำอะไรได้บ้าง"
แล้วก็คิดได้ว่า โทรศัพท์ที่เค้ามีเป็น android os
สามารถติดตั้ง app เพิ่ม จาก Google play store ได้
งั้นตอบว่า "ใช้เขียน shell script ได้ ลองดูนะ"
ไม่ต้องกังวลเรื่อง root ด้วย เพราะไม่จำเป็นต้องทำ
แนะนำว่าต้องโหลดแอพดังต่อไปนี้
1. Terminal Emulator 
2. Droidedit Free
3. ES File Explorer File Manager
4. Palapa Web Server
อันที่จริง ใช้แอพในข้อ 1 เป็นหลัก
ที่เหลือแนะนำว่า Developer ควรมีไว้ในเครื่อง
---
ขั้นตอนการเขียน shell script 
บน Android แบบไม่ต้องใช้ chmod
1. โหลดแอพ Terminal Emulator 
เพื่อเข้าไปจัดการกับ Script ผ่าน Shell บน Android
2. โหลดแอพ Droidedit Free
เพื่อเป็นอีดิเตอร์สำหรับเขียน Script บน Android
เพราะโหลดมาแก้ไข และ Save as ได้
3. สำรวจห้องที่จะเก็บ shell script
โดยใช้เครื่องมือ คือ Terminal Emulator 
หรือ ES File Explorer File Manager ก็ได้
เข้าไปดูห้อง /mnt/sdcard
พบว่ามีห้องเก็บข้อมูลมากมาย
อาทิ ห้อง /mnt/sdcard/pws 
ที่สร้างจากแอพ Palapa Web Server
4. เขียน Shell script บนแอพ Droidedit Free
แล้ว Save as ชื่อ test1 วางไว้ในห้อง /mnt/sdcard
#!/system/bin/sh
read x
echo $x
5. ใช้ Terminal Emulator สั่ง execute shell script
โดยไม่ต้องใช้คำสั่ง chmod 
เพราะใช้ไม่ได้และไม่จำเป็นต้องใช้
หากต้องการใช้ shell script ให้มีคำว่า sh นำหน้า
เช่น $sh test1
6. ตัวอย่าง รับค่าจากแป้นพิมพ์มาทดสอบ
#!/system/bin/sh
read x
echo $x
if [ "$x" == "1" ]
then
echo "one"
elif [ "$x" == "2" ]
then
echo "two"
else
echo "-"
fi
---
อธิบาย script ว่า
ถ้า execute แล้วเค้าหยุดถาม
หากกรอกเลข 1 จะพิมพคำว่า one ออกมา
หากกรอกเลข 2 จะพิมพคำว่า two ออกมา
หากกรอกอย่างอื่น จะพิมพคำว่า - ออกมา
6.2 สคริปท์ การเลือกแบบ case
แชร์เรื่องนี้ใน facebook.com
#!/system/bin/sh
read x
echo $x
case $x in
"one") echo "1";;
[1]) echo "one";;
[Yy]) echo "yes";;
*) echo "-";;
esac
6.3 สคริปท์ ทำซ้ำแบบ while
แชร์เรื่องนี้ใน facebook.com
#!/system/bin/sh
# echo $# $1 $2
n=2
i=1
while [ $(($i)) -le 12 ]
do
echo "$n * $i = " $(($i * $n));
i=$(($i + 1));
done
6.4 สคริปท์ ทำซ้ำแบบ for
แชร์เรื่องนี้ใน facebook.com
#!/system/bin/sh 
# expr and seq : not found
for i in 1 2 3
do 
echo $i; 
done 
for i in 1 2 3; do echo $i; done
for i in one two three
do
echo $i
done
6.5 สคริปท์ ทำซ้ำแบบ until
แชร์เรื่องนี้ใน facebook.com
#!/system/bin/sh
i=0
until [ $(($i)) -eq 12 ]
do
i=$(($i + 1))
echo "2 * $i = " $(($i * 2))
done
6.6 สคริปท์ ฟังก์ชันที่สร้างเอง
แชร์เรื่องนี้ใน facebook.com
#!/system/bin/sh
function myfunc {
i=0
until [ $(($i)) -eq 12 ]
do
i=$(($i + 1))
echo "2 * $i = " $(($i * 2))
done
}
myfunc
6.1 slowaris.labs.pulltheplug.com
: Server ที่แข็ง และมี user:guest password:guest ให้เข้าไปลอง telnet ได้

ระบบนี้เป็น Solaris 5.8 ของ Sun ลองเข้าไปแล้วใช้อะไรได้หลายอย่าง ผมว่า ว่าง ๆ hacker ลองเข้าไปดูก็ได้นะครับ เป็น server ที่แนะนำโดย Mr.RobiUz Miora (robiuz@yahoo.com)

จดหมายด้านล่างนี้เขาแนะนำผมหลายอย่างเช่น ให้ใช้ OpenBSD ดีกว่า .. อ่านแล้วก็ได้ข้อคิดหลายอย่าง

    Date: Wed, 13 Jun 2001 06:10:30 -0700 (PDT)
    From: Mr RobiUz Miora [robiuz@yahoo.com]
    Dear Webmaster.
    As I see www.isinthai.com.. I know you install SSH in your server and restrict user behavior.In my opinion, you miss in 2 point....First as in my previous e-mail, restrict shell isn't good idea.You want to make "Open host" not "Restrict host", Right. But now I see your host like a seller machine,choose the drink and get it. Not doing anything much more. If you don't want any user or hacker I suggest you to disable and Close it.And second , SSH is good for every host but it's duty is ENCRYPT , AUTHENTICATION and AUTHORIZATION... it's not protect your system directly.
    If you go to hacking website that provice Exploit Code you'll see very very hole in REDHAT , Slackware and others software. I know it's difficult to patch all.... So..LET'S TRY TO CHANGE OS TO SAFER ONE... As I know OpenBSD has less bug than REDHAT or Slackware...You can Change to..
    It's my opinion.Decider is YOU....
    FYI.
    RobiUz
    คุณ robiuz mail มาอีกครั้ง และแนะนำว่าสามารถเปลี่ยน shell ของตนเองด้วยคำสั่ง chsh ผมลองแล้วก็เป็นตามนั้นจริง แต่การใช้คำสั่งนี้ ก็ต้องออกไปที่ shell ปกติ ซึ่งผมก็ยังหาจุดออกไปไม่เจอ เพราะปัจจุบันจำกัด account ด้วย Restrict shell

    Date: Thu, 26 Jul 2001 01:26:07 -0700 (PDT)
    From: Mr RobiUz Miora
    To: webmaster@isinthai.com
    Subject: change shell

    Dear webmaster,
    All users can change his/her shell by chsh command so demo user change his shell himself.Don't worry he doesn't gain root.

    regard,
    RobiUz
    คนแบบนี้สิครับ ที่โลกต้องการ
6.2 academic.cmri.ac.th
: Server ที่แข็งมากอีกตัว เป็นของคนไทย ได้รับการแนะนำจาก apples@chek.com

ที่นี่เขียนบทความการลง Server ไว้น่าอ่าน และละเอียดดีครับ และคุณ apples@chek.com ยังให้คำแนะนำผมมากมาย เช่นเรื่องของ restricted shell ที่หาอ่านที่ไหนก็ไม่รู้เรื่อง มาได้ code และวิธีของท่านนี่หละครับ จึงสำเร็จเรื่อง restrict ได้ด้วยดี
ผมรู้จักคุณ apples@chek.com เพราะเขาเป็นผู้คอยให้คำแนะนำ และช่วยเหลือ ผู้คนใน wwwboard ของหลายที่ เช่น linux.thai.net เป็นต้น

http://academic.cmri.ac.th/downloads.php/howto/
http://academic.cmri.ac.th/downloads.php/howto/Apache%20Module.txt
ภาพนี้จากจอที่ telnet login ของ academic.cmri.ac.th (ผมเองก็ไม่มี account)

       Welcome to Academic Services Machine
                     ,
                  ,  ;:._.-`''.
                ;.;'.;`      _ `.
                 ',;`       ( \ ,`-.
              `:.`,         (_/ ;\  `-.
               ';:              / `.   `-._
             `;.;'              `-,/ .     `-.
             ';;'              _    `^`       `.
            ';;            ,'-' `--._          ;
   ':      `;;        ,;     `.    ':`,,.__,,_ /
    `;`:;`;:`       ,;  '.    ;,      ';';':';;`
                 .,; '    '-._ `':.;
               .:; `          '._ `';;,
             ;:` `    :'`'       ',__.)
           `;:;:.,...;'`'
         ';. '`'::'`''  .'`'
       ,'   `';;:,..::;`'`'
   , .;`      `'::''`
   ,`;`.


academic login:
6.71 จดหมายแจ้งปรับปรุงระบบ ของ se-ed.net
: มีรายละเอียดหลายอย่างเขียนได้ดีมาก น่าอ่านเป็นกรณีศึกษา

Date: 2 สิงหาคม 2544
From: webmaster@se-ed.com (Sanyapong Kridakarn)

เรียนสมาชิกทุกท่าน
 
    หลังจากที่ทางซีเอ็ดให้บริการฟรีอีเมล์ และฟรีโฮมเพจมา 1 ปี ขณะนี้ก็ถึงเวลาที่ทางทีมงานขอแจ้งให้ทราบว่า จะมีการปรับปรุงเปลี่ยนแปลง
เซิร์ฟเวอร์เพื่อให้สามารถให้บริการทุกท่านได้มากขึ้น และเพิ่มเติมความสามารถให้รองรับการใช้งานของทุกท่านได้มากกว่าเดิมในทุกๆ ด้าน
    ทุกท่านคงพอจะทราบว่า ช่วงสองเดือนที่ผ่านมา เซิร์ฟเวอร์เกิดปัญหาหลายครั้ง โดยเกิดขึ้นจากหลายสาเหตุ เช่น
- พื้นที่ฮาร์ดดิสก์ 60 GB ของเซิร์ฟเวอร์เหลืออยู่ประมาณ 2 GB เท่านั้น
- การถูกถล่มด้วยเมล์จำนวนมาก (mail bomb) จากสมาชิก SE-ED.net ของเราท่านหนึ่ง
- ข้อจำกัดของ Linux ที่โฟลเดอร์หนึ่งจะมีไฟล์และโฟลเดอร์ได้เพียงประมาณ 32,000 โฟลเดอร์เท่านั้น ทำให้ไม่สามารถรองรับสมาชิกเพิ่มเติมได้
- ข้อจำกัดเว็บเซิร์ฟเวอร์ Apache ที่รองรับผู้ใช้พร้อมกันได้เพียง 256 ราย และทำให้เซิร์ฟเวอร์ทำงานช้ามากสำหรับผู้ใช้รายที่ 257 ขึ้นไป 
เมื่อคอมไพล์โปรแกรม Apache ใหม่เพื่อให้รองรับผู้ใช้ได้มากขึ้นจนกระทั่งเกิด Error โดยไม่คาดหมาย ทำให้ไม่สามารถอ่านเมล์ผ่านเว็บ
และเปิดเว็บเพจของสมาชิกได้ประมาณ 2 วัน
- การระบาดของไวรัส Sircam
- ล่าสุด ระบบไฟล์บนฮาร์ดดิสก์ของลินุกซ์เกิดขัดข้อง จนเซิร์ฟเวอร์หยุดทำงาน ต้องไปแก้ไขเครื่องถึงอินเทอร์เน็ตประเทศไทย
ระบบทุกอย่างหยุดทำงาน~ 24 ชั่วโมง

    ต้องขออภัยทุกท่านที่เกิดปัญหาและข้อติดขัดเหล่านี้ ทีมงานจะทุ่มเทอย่างเต็มที่เพื่อให้เกิดเหตุการณ์เหล่านี้น้อยที่สุด และในกรณีที่เกิดเหตุสุดวิสัย
ก็จะรีบแก้ไขให้บริการทุกอย่างกลับมาเป็นปกติอีกครั้งในเวลารวดเร็วที่สุดเท่าที่จะทำได้
     ขณะนี้ทางทีมงานกำลังอัปเกรดเครื่องใหม่ และเปลี่ยนแปลงระบบปฏิบัติการที่ใช้ดังนี้
 ตารางเปรียบเทียบเซิร์ฟเวอร์ใหม่และเก่า
New ServerCurrent Server
CPUDual Pentium III 933 MHzPentium III 650 MHz
MotherboardIntel Server Board STL2Intel Server Board L440GX
Memory1 GB512 MB
Harddisk300 GB60 GB
OSWindows 2000 Advanced ServerRedhat Linux 6.2
Web serverApache 1.3.20 for WindowsApache 1.3.20
นอกจากนี้จะยังมีระบบไฟร์วอลล์เพื่อป้องกันระบบให้ปลอดภัยจากการโจมตีและการแฮกได้มากขึ้น
    เนื่องจากเราต้องเปลี่ยนระบบปฏิบัติการ ทำให้ต้องเปลี่ยนระบบรับส่งอีเมล์ใหม่ทั้งหมด
 *  ท่านที่ใช้ Outlook หรือ Eudora ไม่ต้องปรับเปลี่ยนใดๆ ทั้งสิ้น เนื่องจากเมล์เดิมจะได้รับการจัดเก็บไว้ในเครื่องของสมาชิกอยู่แล้ว
 *  ท่านที่ใช้การอ่านเมล์ผ่านเว็บเบราเซอร์ จะไม่สามารถอ่านเมล์เดิมได้ เพราะระบบใหม่จะเสมือนการสร้างตู้จดหมายขึ้นมาใหม่ทั้งหมด
    (ทีมงานจะจัดระบบให้สามารถตรวจสอบเมล์ในระบบเดิมได้ โดยจะเก็บเมล์เหล่านี้อีกระยะหนึ่ง เพื่อให้ท่านสามารถ Forward เมล์เหล่านั้นไป
เก็บไว้ในระบบใหม่ได้) สำหรับวันเวลาที่จะดำเนินการเปลี่ยนแปลงระบบจริงๆ นั้น จะแจ้งให้ทุกท่านทราบในโอกาสต่อไป (คาดว่าจะอยู่ในช่วงสัปดาห์นี้)
ในช่วงที่ดำเนินการเปลี่ยนระบบจริงนั้น อาจเกิดข้อขัดข้องอยู่บ้าง ทีมงานจึงขออภัยล่วงหน้าถ้าเกิดกรณีดังกล่าวขึ้น และหวังว่าทั้งหมดนี้ 
เพื่อให้บริการที่ดีที่สุดสำหรับสมาชิกทุกท่าน
6.72 thcity.com (เปลี่ยน Linux เป็น Windows)
: Free hosting ที่ถือได้ว่าเร็วที่สุดแห่งหนึ่งของเมืองไทย ผมเองก็ใช้บริการ เพราะประทับใจในความเร็ว และ datatransfer ปีละ 900 บาท

    ข้อมูลจากเว็บหน้าแรกของ thcity.com เมื่อ 1 ตุลาคม 2545
    ศูนย์ พิษณุโลก.com เราได้เปิด Free Hosting ขึ้นมาครั้งแรกในปี 2542 ความตั้งใจคือหวังแค่เพียงว่า ให้นักเรียนนักศึกษา ในจังหวัดพิษณุโลกเราได้มีที่ฝึกฝนฝีมือในการทำโฮมเพจเพื่อพัฒนาบุคลากรภายในจังหวัด ให้เที่ยบเท่ากับเมืองใหญ่ๆ จากที่เราเป็นเพียงศูนย์เล็กๆ การดูแล Server และข้อมูลจึงยังไม่ดีเท่าที่ควร จึงทำ ให้ข้อมูล ศูนย์หายไปบ้าง ปิดไปบ้าง แต่ วันหนึ่งเราจะโตเที่ยบเท่ากับ Hosting ทั่วๆ ไป (ความหวังสูงสุด)
    หลังจากได้เปิด Thcity ขึ้นมาเป็น Free Hosting แล้ว ก็มีสมาชิกทั่วประเทศเข้ามาขอกันเป็นจำนวนมาก User ของเราเคยมากถึง 20,000 กว่า ในต้นปี 2544 แต่ ข้อมูลได้ศูนย์หายหมดเนื่องจาก เปิดเครื่องขึ้นมา ติดที่ Scan Disk เราปล่อยให้ Scan ไป 3 วัน ก็ได้แค่ 21 %เราจึงจัดสินใจทำใหม่ แต่การทำใหม่ในครั้งนั้น ไม่สมบูรณ์ เหมือน ครั้งแรก เนื่องจาก ทีมงานเรามีงานมากกว่าเดิม จึงมิได้ให้ความสำคัญกับ Free Hosting เท่าที่ควร จนมาถึง กลางปี 2545 ที่ผ่านมา เริ่มทำขึ้นมาใหม่เป็น Server Linux เราตั้งความหวังไว้ว่าจะทำ ให้ดีเหมือนเดิม เปิดได้เพียง 6 เดือน เท่านั้นก็ต้องปิดไปเนื่องจาก ทีมงานเราไปเก่ง Linux เท่าที่ควร ทำให้ Security ไม่ดีพอ
    เปิดใหม่ครั้งนี้ ด้วยความสามารถของ NTFS และ IIS 5 ทำให้ทีมงานพิษณุโลก.com เรามั่นใจเท่าที่ควร ที่เราจะบริการ Free Hosting ให้ดีกว่าครั้งที่ผ่านมา ขอประกาศเปิด Free Hosting ครั้งใหม่ ณ วันที่ 1 ตุลาคม 2545 อย่างเป็นทางการ ถึงแม้ว่าระบบจะยังไม่สมบูรณ์ เท่าที่ควร แต่เราจะพัฒนาจน เต็มความสามารถ เลยทีเดียว (ข้อมูลเก่าท่านยังอยู่ครบ แต่อยู่ใน Linux อยู่ จะเปิดให้เข้ามา Load กลับคืนไป เร็วๆ นี้ )
7.1 วิธีใช้โปรแกรม FTP ส่งแฟ้มเข้าเครื่อง isinthai.com
: file transfer protocal สำหรับนำแฟ้มใน Pc ส่งเข้าเครื่อง server isinthai.com ซึ่ง server ตั้งอยู่ที่วิทยาลัยโยนก เมื่อส่งเข้าแล้ว จะทำให้คนทั่วโลกสามารถเปิดข้อมูลที่ท่านส่งเข้ามาได้ แต่ถ้าไม่ส่ง ท่านจะเป็นผู้เดียวที่เห็นข้อมูลของท่าน และวิธีที่ผมใช้เป็นวิธีพื้นฐานที่ windows ทุกเครื่องทำได้ แต่ถ้าเป็นมืออาชีพ เขาจะไปใช้ ws_ftp หรือ cute_ftp เพราะทำงานแบบ graphic ซึ่งผมไม่แนะนำสำหรับมือสมัครเล่น เพราะจะต้องไป download โปรแกรมมายุ่งยาก วิธีที่ผมจะเสนอ ปกติใช้ได้กับทุกเครื่อง ท่านสามารถพิมพ์ตามนี้ได้เลย

การใช้คำสั่ง ftp -i www.hypermart.net จะทำให้ใช้ mput หรือ mget โดยไม่ขึ้น prompt ถามแต่ละแฟ้ม ทำให้ upload หรือ download รวดเดียวได้แฟ้มทั้งหมด
    รูปแบบคำสั่งของ FTP ใน DOS
    FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [-A] [host]
      -v             Suppresses display of remote server responses.
      -n             Suppresses auto-login upon initial connection.
      -i             Turns off interactive prompting during multiple file transfers.
      -d             Enables debugging.
      -g             Disables filename globbing (see GLOB command).
      -s:filename    Specifies a text file containing FTP commands
      -a             Use any local interface when binding data connection.
      -A             login as anonymous.
      -w:buffersize  Overrides the default transfer buffer size of 4096.
      host           Specifies the host name or IP address of the remote host to connect to.
    
      สิ่งที่ต้องเตรียมการก่อนปฏิบัติ
    1. มี host name ที่อนุญาต และไปสมัครไว้แล้ว ทราบชื่อ host ที่ยอมให้ upload เช่น www.isinthai.com
    2. มี username ในตัวอย่างนี้ใช้ demo
    3. มี password ในตัวอย่างนี้ใช้ istest
    4. มีแฟ้มข้อมูลที่เป็น text เช่น index.html, friend.htm
    5. มีแฟ้มข้อมูลที่ไม่เป็น text เช่น face.jpg, hello.gif, wow.doc
    6. มีข้อมูลทั้งหมดเตรียมไว้ในแผ่น diskette เช่น drive A
    7. ถ้างง ไปอ่านเพิ่มที่ http://www.thaiall.com/learn/useftp.htm
    เปิด msdos และ cd c:\windows (ถ้ามีแฟ้มใน server ต้องการ copy ออกมาก็ให้ใช้ get)
    C:\WINDOWS>ftp.exe
    ftp> open www.isinthai.com
    Connected to www.isinthai.com.
    220 www.isinthai.com FTP server (Version wu-2.6.0(1) Fri Jun 23 09:17:44 EDT 2000
    0) ready.
    User (www.isinthai.com:(none)): demo
    331 Password required for demo.
    Password:
    230 User demo logged in.
    ftp> lcd c:\isinthai
    Local directory now C:\isinthai
    ftp> ascii
    200 Type set to A.
    ftp> hash
    Hash mark printing On (2048 bytes/hash mark).
    ftp> put index.html
    200 PORT command successful.
    150 Opening ASCII mode data connection for index.html.
    ########################################
    226 Transfer complete.
    162886 bytes sent in 0.39 seconds (417.66 Kbytes/sec)
    ftp> lcd a:\
    ftp> ascii
    ftp> put index.html
    ftp> put friend.htm
    ftp> bin
    ftp> put face.jpg
    ftp> put hello.gif
    ftp> put wow.doc
    ftp> bye
    221-You have transferred 1601416xx bytes in 6 files.
    221-Total traffic for this session was 160563xx bytes in 6 transfers.
    
7.2 การติดตั้งโปรแกรม .rpm ใน Redhat เพิ่มเติม
: เมื่อมีโปรแกรมใหม่ ๆ ที่ต้องการติดตั้งเพิ่ม และเป็นโปรแกรมสกุล rpm

    ตัวอย่างการติดตั้ง rblcheck
    download จาก http://prdownloads.sourceforge.net/rblcheck/rblcheck-1.5-1.i386.rpm?download ซึ่งมี mirror site หลายแห่งให้เลือก
    เมื่อได้โปรแกรมนี้มา ก็ติดตั้ง และทดสอบใช้ แต่โปรแกรมนี้เป็นเพียงโปรแกรมใช้ตรวจสอบ ip อย่างง่าย ๆ ว่า ip นั้นอยู่ใน list ของ server ที่เราต้องการตรวจสอบ หรือไม่ ถ้ายอมรับ server ตัวนั้น และเพิ่มชื่อ server ในแฟ้ม /etc/mail/sendmail.mc เพื่อทุกครั้งที่มีคนส่ง e-mail เข้ามา ตัว server ของเราจะตรวจสอบ หากไม่เป็น blacklist ก็จะส่งให้กับสมาชิกในระบบได้

    1. download โปรแกรม เช่น #lynx http://umn.dl.sourceforge.net/sourceforge/rblcheck/rblcheck-1.5-1.i386.rpm
    2. ติดตั้ง #rpm -i rblcheck-1.5-1.i386.rpm
    3. จะมีโปรแกรมไปเก็บใน /usr/bin โปรแกรมที่เราได้คือ rblcheck
    4. ตัวอย่างการใช้
      #rblcheck -s orbs.dorkslayers.com 127.0.0.1 (จะพบว่าไม่มีปัญหา)
      #rblcheck -s orbs.dorkslayers.com 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)
      #rblcheck -s dev.null.dk 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)
      #rblcheck -s bl.spamcop.net 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)
      #rblcheck -s relays.osirusoft.com 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)
      #rblcheck -s relays.visi.com 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)
      #rblcheck -s list.dsbl.org 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)
      #rblcheck -s relays.ordb.org 127.0.0.2 (จะพบว่ามีปัญหา และอยู่ใน black list)

    5. การใช้โปรแกรมนี้ต้องทดสอบทีละบรรทัด จึงสร้าง shell script เพื่อช่วยให้พิมพ์ครั้งเดียวแต่ ตรวจสอบจาก list ได้ ด้วยการเขียน script ด้วย pico ชื่อ rblcheckx ตัวอย่างคำสั่งสร้างคือ #pico /usr/bin/rblcheckx
    6. สิ่งที่เขียนใน /usr/bin/rblcheckx
      rblcheck -s orbs.dorkslayers.com $1
      rblcheck -s dev.null.dk $1
      rblcheck -s bl.spamcop.net $1
      rblcheck -s relays.osirusoft.com $1
      rblcheck -s relays.visi.com $1
      rblcheck -s list.dsbl.org $1
      rblcheck -s relays.ordb.org $1

    7. ให้ใช้ chmod 755 rblcheckx จึงจะทำให้แฟ้มนี้สามารถทำงานได้
    8. ทดสอบด้วย #rblcheckx 202.28.18.65 และแสดงผลดังข้างล่าง ว่า ip นี้ไม่อยู่ใน black list
      202.28.18.65 not RBL filtered by orbs.dorkslayers.com
      202.28.18.65 not RBL filtered by dev.null.dk
      202.28.18.65 not RBL filtered by bl.spamcop.net
      202.28.18.65 not RBL filtered by relays.osirusoft.com
      202.28.18.65 not RBL filtered by relays.visi.com
      202.28.18.65 not RBL filtered by list.dsbl.org
      202.28.18.65 not RBL filtered by relays.ordb.org
      
    พบในเอกสาร http://www.redhat.com/support/resources/faqs/RH-sendmail-FAQ/book1.html หัวข้อ 3.13 ว่าบางเว็บที่ถูก blocked โดย RBL หากต้องการยกเลิกการ blocked เฉพาะบางเว็บ ให้เพิ่มบรรทัดที่เขียนว่า yourwebsitename OK เพิ่มเข้าไปในแฟ้ม /etc/mail/access แล้วปรับ config ใหม่ตามหัวข้อ 9.78


    บริการตรวจสอบว่า server ถูก blacklist หรือไม่
    1. http://openrbl.org
    2. http://www.moensted.dk/spam/
    3. http://www.spamhaus.org/sbl/index.lasso (Spam black listing)
    4. http://member.se-ed.net/modules.php?op=modload&name=News&file=article&sid=9&mode=thread&order=0&thold=0 (มีรายละเอียด blacklist)
7.3 การติดตั้ง Secure Shell
: เพื่อให้เครื่องเปิดรับการเชื่อมต่อ เข้าไปดูแลปรับปรุงระบบทางไกลได้
: โปรแกรมที่นิยมใช้ติดต่อเข้าไปคือ putty ผ่าน port 22

    คำสั่งที่สำคัญ
    #service sshd status
    #service sshd start
    #chkconfig --level 3 sshd on
    #chkconfig --level 5 sshd on
    #chkconfig --list
8.1 การกำหนดค่าในแฟ้มต่าง ๆ
: เนื่องจาก linux ทำงานแบบ text mode ถึงจะมี graphic ช่วย แต่พื้นฐานก็ยังเป็น text mode

ท่านสามารถใช้โปรแกรม vi หรือ pico ในการแก้ไขตามที่ต้องการได้ ซึ่งในแต่ละแฟ้มจะมีการกำหนดไม่เหมือนกัน และรูปแบบแต่ละแฟ้มก็ต่างกันด้วย สำหรับทีมงานของเราไม่ใช้ผู้ชำนาญ ในหัวข้อนี้จึงนำข้อมูลที่ทดสอบ แล้วใช้งานได้ แต่อาจผิดในทาง Theory ซึ่งอาจก่อผลที่ผิดพลาดในอีกมุมมองหนึ่ง ที่ใด ทราบว่าเรากำหนดอะไรผิดไป ขอได้ชี้แนะด้วย
    
    8.1.1 :: /etc/login.defs
      - ใช้กำหนดว่าเครื่องจะมี account สูงสุดได้เท่าใด - เพราะเลขที่กำหนดประจำตัวผู้ใช้ เริ่มต้นที่ 500 UID_MIN 500 UID_MAX 60000

    8.1.2 :: /etc/security/limits.conf
      # ใช้จำกัดสิทธิของผู้ใช้ # คำสั่งจริงมี 2 บรรทัดล่างสุด # ส่วนที่มี # เป็นคำอธิบายทั้งสิ้น #<domain> <type> <item> <value> # #Where: #<domain> can be: # - an user name # - a group name, with @group syntax # - the wildcard *, for default entry # #<type> can have the two values: # - "soft" for enforcing the soft limits # - "hard" for enforcing hard limits # #<item> can be one of the following: # - core - limits the core file size (KB) # - data - max data size (KB) # - fsize - maximum filesize (KB) # - memlock - max locked-in-memory address space (KB) # - nofile - max number of open files # - rss - max resident set size (KB) # - stack - max stack size (KB) # - cpu - max CPU time (MIN) # - nproc - max number of processes # - as - address space limit # - maxlogins - max number of logins for this user # #<domain> <type> <item> <value> #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 # # ผู้ใช้ในกลุ่ม users มีเนื้อที่ใน home directory ได้เพียง 1 Mb @users hard rss 1000 * soft core 0

    8.1.3 :: /etc/lilo.conf
      # คู่แข่งของ /etc/grub.conf # เมื่อแก้แฟ้มนี้แล้ว ให้สั่งประมวลผล /sbin/lilo # เพื่อให้การ update แฟ้มข้างล่างนี้เป็นผล สำหรับการ boot ครั้งใหม่ # และครั้งต่อไปที่บูตเครื่องจะ default ไปที่ linux boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 default=linux image=/boot/vmlinuz-2.2.14-5.0 label=linux read-only root=/dev/hda5 other=/dev/hda1 label=window

    8.1.5 :: /etc/crontab
      - ตารางเวลาการสั่งประมวลผลโปรแกรม - หากต้องการสั่งงานต้องสร้างแฟ้มในห้อง /etc/cron.daily - แฟ้มที่สร้างให้ใส่คำสั่งได้เลยเช่น /home/radius/runacct - อย่าลืมกำหนด 755 ให้แฟ้มนั้นเช่น chmod 755 runradius SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly # minute (0-59), # hour (0-23), # day of the month (1-31), # month of the year (1-12), # day of the week (0-6 with 0=Sunday)

    8.1.6 :: /etc/default/useradd
      - ในบางเครื่องอาจกำหนดเป็นดังข้างล่างนี้จะสะดวก - และสิทธิของห้องเป็น 700 จึงต้องใช้ script _crt กำหนดสิทธิเป็น 705 - อีกครั้งหนึ่ง จึงจะทำให้เปิดห้องผ่าน www ได้ปลอดภัย # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= #SHELL=/bin/bash SHELL=/rbin/menu SKEL=/etc/skel

    8.1.7 :: /etc/inittab
      - ทำให้ Boot ไม่เข้า xwindows โดยแก้บรรทัดหนึ่ง - ที่อยู่ในแฟ้ม 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:
8.2 แฟ้มต่าง ๆ ที่ควรรู้จัก
: แฟ้มต่าง ๆ ในระบบมีมากมาย ขอนำมา list ให้เฉพาะที่ทีมงานรู้จัก ท่านสามารถเรียนรู้ได้มากกว่านี้อีกมาก .. ขอเอาใจช่วยครับ

    Group 1: ควร config ได้
    /etc/rc.d/rc.local :: คล้าย autoexec.bat สำหรับผม จะเพิ่มคำสั่ง ifconfig เพิ่ม ip (9.10)
    /etc/named.conf :: กำหนดเงื่อนไขเพิ่มเติมเรื่อง named
    /etc/rndc.conf :: กำหนดเงื่อนไขเพิ่มเติมเรื่อง NS control utility 
    /etc/resolv.conf :: กำหนดว่า nameserver ตัวใดที่จะตีความ ip หรือ domain name ให้
    /etc/httpd/conf/httpd.conf :: กำหนดค่าเกี่ยวกับการบริการ http เช่นกัน
    /etc/sysconfig/network-scripts/ifcfg-eth0 :: กำหนดค่าประกอบ card LAN
    /etc/security/limits.conf :: กำหนดข้อจำกัดให้กับผู้ใช้ ถ้าไม่แก้ ก็ไม่จำกัด
    /etc/php.ini :: กำหนดเกี่ยวกับภาษา PHP เช่น เดิม post_max_size = 8M พอไหมครับ
    /var/run/named :: ใน RH9 ผมต้องเปลี่ยนสิทธิห้องนี้เป็น 777 จึงจะ start named สำเร็จ
    /etc/procmailrc :: กำหนดเงื่อนไขการกรอง e-mail เป็นด่านแรก
    Group 2 : ควรรู้จักไว้
    /etc/crontab :: กำหนดโปรแกรมให้ประมวลผลตามช่วงเวลา แฟ้มนี้เก็บ config หลักของ crontab
    /etc/inittab :: กำหนดการเริ่มต้น ที่จะเข้าสู่ text mode หรือ graphic mode เป็นต้น
    /etc/rc.d/init.d :: ภายในห้องนี้เก็บ shell script ที่ใช้สั่ง ให้มีการทำงานเมื่อเปิดเครื่องไว้มาก
    /etc/named.custom :: ระบุว่า directory ที่เก็บแฟ้มเกี่ยวกับ named เก็บไว้ที่ใด
    /etc/login.defs :: กำหนดจำนวนเลข uid สูงสุด หรือค่าเริ่มต้นของผู้ใช้อีกหลายเรื่อง
    /etc/default/useradd :: กำหนดค่าเกี่ยวกับสมาชิกใหม่เมื่อใช้คำสั่ง useradd
    /etc/syslog.conf :: เก็บข้อกำหนดของบริการ syslog เพื่อใช้ตรวจร่องรอยของบริการต่าง ๆ แต่ใน ntsysv ต้องเปิดบริการ syslog ไว้
    /etc/services :: แสดงเลข socket ทั้งหมดที่เปิดให้บริการ เลขใดมี # หมายถึงปิดบริการ
    /etc/protocols :: แสดงเลข protocol ทั้งหมดที่เปิดให้บริการได้
    /etc/login.defs :: กำหนดหมายเลขสูงสุด และต่ำสุด สำหรับการ assign acccount ใหม่ให้กับ user
    /etc/skel/.bash_profile :: แฟ้มนี้ถูกคัดลอกไปให้ผู้ใช้ เพื่อเป็นค่าเริ่มต้นในการทำงาน
    /etc/sysconfig/hwconf :: เก็บรายละเอียด และข้อกำหนดเกี่ยวกับ hardware มักถูก update โดย kudzu
    /var/log :: เก็บ log ต่าง ๆ 
    Group 3 : ไม่พบในเครื่องที่ผมลง
    /etc/inetd.conf :: ใช้กำหนดการเปิดปิดบริการเช่น finger หรือ telnet เป็นต้น
    /etc/httpd/conf/srm.conf :: กำหนดค่าเกี่ยวกับการบริการ http เช่นกัน
    /etc/httpd/conf/access.conf :: กำหนดค่าเกี่ยวกับการบริการ http เช่นกัน
    /usr/X11R6/bin/startx ::  สั่ง start x windows จาก text mode
    
8.98 การติดตั้ง Linux Redhat
: การติดตั้ง Linux Redhat 2 วิธี คือติดตั้งทั้ง Windows และ Linux หรือติดตั้ง Linux อย่างเดียว เป็นกรณีศึกษาจาก Redhat Linux 7.1

เรียบเรียงโดย :: สุวิทย์ สมสุภาพรุ่งยศ(suwit@yonok.ac.th) ประเสริฐ ประสารยา(prasert@cat.net.th) พงศ์สนิท เดชะบุญ(namagnitman@hotmail.com) สุพจน์ ทูลมาก(supot.toon@chaiyo.com)
การติดตั้ง Redhat Linux สามารถติดตั้งได้ 2 กรณี
    1. กรณีที่ต้องการติดตั้งทั้ง Windows และ Linux ในเครื่องเดียวกัน
    2. กรณีที่ต้องการติดตั้ง Linux อย่างเดียว

    1. ข้อควรทราบก่อนการติดตั้ง Redhat Linux ในกรณีที่ต้องการใช้ระบบปฏิบัติการ 2 ระบบในเครื่องเดียว
    1. ในตัวอย่างต่อไปนี้จะเป็น Harddisk ที่ค่าความจุ อยู่ที่ 40 GB ผมแบ่งเป็น 4 Partition สำหรับใช้ใน Windows จำนวน 2 Partition ( คือ C:,D:) กำหนด FAT 32 และสำหรับติดตั้ง Linux จำนวน 2 Partition (ตอนที่ยังไม่ติดตั้ง Linux อาจจะมองเห็นเป็น Drive E:,F:)
    2. วิธีการแบ่ง Partition ผมใช้วิธี Fdisk จาก Dos (จะใช้วิธีการแบ่ง Partition วิธีไหนก็ได้ตามสะดวก ชนิดของ Partition กำหนดให้เป็น FAT 32 ก่อนก็ได้ แล้วค่อยไปเปลี่ยนชนิดที่จะใช้สำหรับ Linux ในตอนที่เราติดตั้ง)
    3. หลังจากที่ทำการแบ่ง Partition ได้ตามความต้องการแล้วทำการ Format Drive C:,D: ตามลำดับ ส่วน Drive E:,F: สำหรับติดตั้ง Linux ยังไม่ต้อง Format เมื่อทำการ Format เสร็จแล้วก็ให้ทำการติดตั้ง Windows ตามวิธีการติดตั้งจนแล้วเสร็จ
    4. กรณีที่ได้ทำการติดตั้ง Windows ไปแล้ว ก่อนอื่นต้องทำการตรวจสอบว่าเมื่อทำการติดตั้ง Windows ไปแล้วนั้นใช้งานได้ปกติดีไม่มีปัญหาในด้านต่างๆ เช่น การใช้งานในระบบเครือข่าย ค่าสีต่างๆ ของจอภาพ หลังจากนั้นดูว่าใน Harddisk ได้ทำการแบ่ง Partition เป็นกี่ Drive (กรณีที่ไม่ได้แบ่ง Partition ไว้รองรับการติดตั้ง Linux "อาจจะใช้โปรแกรม PartitionMagic จัดการกับการแบ่ง Partition " !!! Windows ต้องการแค่ Partition หรือที่เรียกว่า Drive เพียง Drive เดียว(คือ C: ) แต่ถ้าต้องการเป็น drive สำรองเราอาจแบ่งเพิ่มอีก 1 Partition (คือ D:) ส่วน" Linux" ต้องการ 2 Partition คือ Drive ที่เป็น Linux native และ Linux swap) อันนี้ขึ้นอยู่กับความต้องการของผู้ใช้เอง และความจุของ Harddisk ว่ามีมากน้อยเพียงใด !!!ทางที่ดี ควรแบ่ง Partition ก่อนการติดตั้ง Windows เพราะว่ามันง่ายกว่าการที่จะมาแบ่ง Partition หลังจากที่เราทำการติดตั้ง Windows แล้ว
    5. หน่วยความจำ (RAM)ควรจะมีขนาด สูงกว่า 16 MB ขึ้นไป
    2. การสร้างแผ่น Boot สำหรับติดตั้ง Redhat Linux
    1. ใส่แผ่นซีดีรอมโปรแกรมติดตั้งในไดรฟ์ขณะใช้ระบบปฏิบัติการ DOS แล้วเปลี่ยนไดรฟ์ไปยังไดรฟ์ซีดีรอม เช่น C:\> d:
    2. เรียกใช้โปรแกรม Rawrite สำหรับสร้างแผ่นติดตั้งใน Floppy disk พิมพ์ดังนี้ D:\>dosuntils\rawrite
    3. โปรแกรมจะให้ป้อนชื่อแฟ้มที่ต้องการเขียนลงแผ่น ให้ป้อนดังนี้ D:\Images\boot.img
    4. ใส่แผ่นฟลอบบี้ที่ฟอร์แมตแล้วใส่ในไดรฟ์ A: แล้วกด ENTER
    5. ถ้าเครื่องที่จะทำการติดตั้ง Redhat Linux สามารถทำการบูตจากแผ่นซีดีรอมได้ยิ่งง่ายเลย เพราะปกติผม ติดตั้ง Redhat 7.3 หรือ Redhat 6.0 ก็ตาม ผมจะใช้วิธีการบูตจากแผ่นซีดีรอมซึ่งสะดวกกว่าการบูตโดยการใช้แผ่นฟลอปบี้ดิสก์ (เรื่องการสั่งให้ BOOT จาก CD-ROM เป็น Option ของ CMOS )
    3. การติดตั้ง Redhat Linux (การติดตั้งแบบ None Graphic สำหรับเครื่องที่มีความเร็วต่ำกว่า 400 MHz) เมื่อทำการสร้างแผ่นบูตและทำการบูตแล้ว หรือจะให้บูตจากแผ่นซีดีรอม จะเข้าสู่การกระบวนการติดตั้ง ให้ดำเนินต่อไปดังนี้
    1. เมื่อโปรแกรมติดตั้งทำงาน จะแสดงหน้าจอให้เลือกภาษาที่จะใช้ในการติดตั้งให้เลือก English
    2. เลือกภาษาสำหรับคีย์บอร์ด ให้เลือก US
    3. กรอบแสดงการยินดีต้อนรับ ให้ยืนยันการติดตั้งเลือก OK
    4. เลือกชนิดของการติดตั้งให้เลือก Custom System ซึ่งคุณสามารถกำหนดได้เองว่าจะมี Partitionใดบ้างรวมถึงการเลือกโปรแกรม
    5. ต่อไปเป็นขั้นตอนของการแบ่งPartition สำหรับเครื่องที่ได้ทำการแบ่ง Partition มาดีแล้วแต่ยังไม่ได้กำหนดชนิดของ Partition ก็ให้เลือก fdisk แล้วเลือก Edit เพื่อเข้าไปกำหนดชนิดของPartition ถึงตรงนี้จะเป็นคำสั่งที่ใช้ในการทำงาน ดังตัวอย่าง
        a :: ถ้าเราพิมพ์ m จะเป็น Menu ให้เราเลือกทำงาน
        b :: ผมจะเลือก p เพราะผมรู้ว่า p คือการแสดงรายละเอียดPartitionต่าง ๆที่มีอยู่ จะเห็นว่า
          dev/hda1 คือ Partition ที่ 1 ที่เราแบ่งไว้สำหรับติดตั้ง Windows ค่าของ System=FAT32
          dev/hda2 คือ Partition ที่เป็น Extended ภายในก็จะมี Partition Logic ดังนี้
            dev/hda5 คือ Partition ที่ 2 ที่เราแบ่งไว้สำหรับติดตั้ง Windows ค่าของ System=FAT32
            dev/hda6 คือ Partition ที่ 3 ที่เราแบ่งไว้สำหรับติดตั้ง Linux ค่าของ System=FAT32
            dev/hda7 คือ Partition ที่ 4 ที่เราแบ่งไว้สำหรับติดตั้ง Linux ค่าของ System=FAT32
            ส่วนที่เราต้องเข้าไปแก้ไขก็คือ hda6,hda7 จะเป็นการเปลี่ยนชนิดของ system ให้เป็น linux system
        c :: ถ้าไม่รู้ว่าคำสั่งที่ใช้ในการทำงานให้ กด m เพื่อดูรายละเอียด
        d :: ผมจะเลือก t เพื่อเปลี่ยนชนิดของ System จากนั้นเป็นการเลือก Partition number เราจะเปลี่ยน hda6 จาก FAT32 ให้เป็น Linux native ผมเลือก 6 แล้วกด Enter
        e :: เลือก Hex code ถ้าไม่รู้ให้กด l เพื่อดูรายละเอียด ผมกด 83 เพื่อทำการเปลี่ยน System
        f :: ลองกด p เพื่อดูรายละเอียดของ System เปลี่ยนหรือยัง จะเห็นว่า System เปลี่ยนจาก FAT 32 เป็น Linux
        g :: ทำการเปลี่ยน System ของ hda7 ให้เป็น linux swap โดยกด t เลือก Hex code เป็น 82
        h :: ทำการ Save โดยการ กด W
    6. หน้าจอขึ้น Disk setup จะมี Menu ให้เลือก Done
    7. เลือก Mount Point เพื่อกำหนด Root directory สำหรับการติดตั้ง ให้เลือก hda 6 แล้วกด Enter ในช่องหลัง Mount Point ให้พิมพ์ " / " แล้วเลือก ok
    8. เมื่อทำการเลือกแล้วจะกลับมาที่หน้า Current Disk Partition อีกรอบหนึ่ง เพื่อให้เรายืนยันการกำหนด Mount point อีกครั้งหนึ่ง เลือก Ok
    9. ขั้นตอนต่อไปเป็นการ Format partition ที่กำหนดให้ Mount เป็น Root partition หรือ Root filesystem จะมี Option หนึ่งที่น่าสนใจคือ Check for bad blocks during format นั่นคือการตรวจหา Bad Block ด้วย โดยการ Tab มาที่หน้า Option และกด Space bar แล้วเลือก Ok เพื่อดำเนินการต่อไป
    10. เลือก LILO Configuration ที่ hda1 แล้ว OK ยืนยันอีกรอบหนึ่ง
    11. กำหนดชื่อ HostName เช่น suwit.yonok.ac.th หรือ thaiall.yonok.ac.th เป็นต้น
    12. กำหนด Firewall configuration ใน Security level เป็น Medium ต่อไปสามารถกำหนดใหม่ได้
    13. ใน Option customize เป็นการเลือกใช้ Firewall กับตัวให้บริการ
    14. เลือกชนิดของ Mouse
    15. เลือกภาษาในการ Install
    16. เลือก Time Zone ที่ Asia/Bangkok
    17. กำหนด Root password (อย่างน้อย 6 ตัวอักษร)
    18. Add User สำหรับผู้ใช้บริการ
    19. หน้า Authentication Configuration ให้เลื่อน Tab ไปที่ OK เลยแล้วกด Enter
    20. เลือก Packet ตามต้องการ (ถ้ามีเนื้อที่ Harddisk มากพอให้เลือกหมดเลย)
    21. เลือก Video Card
    22. เข้าสู่กระบวนการเริ่ม Install โดยการ Format
    23. การตั้งค่า Configuration ต่างดูในรายละเอียดต่อไป ใน http://www.isinthai.com
    4. การติดตั้ง Redhat Linux (การติดตั้งแบบ Graphic เหมาะกับเครื่องที่มีความเร็วสูงกว่า 400 MHz ขึ้นไป) เมื่อทำการสร้างแผ่นบูตและทำการบูตแล้ว หรือจะให้บูตจากแผ่นซีดีรอม จะเข้าสู่การกระบวนการติดตั้ง ให้ดำเนินการดังนี้
    1. เมื่อโปรแกรมติดตั้งทำงานจะแสดงหน้าจอให้เลือกภาษาที่จะใช้ในการติดตั้งให้เลือก English
    2. เลือกภาษา Mouse และเลือกภาษาสำหรับคีย์บอร์ด ให้เลือก US
    3. กรอบแสดงการยินดีต้อนรับ ให้ยืนยันการติดตั้งเลือก Next
    4. เลือกชนิดของการติดตั้งให้เลือก Custom System ซึ่งคุณสามารถกำหนดได้เองว่าจะมี Partitionใดบ้างรวมถึงการเลือกโปรแกรม
    5. ต่อไปเป็นขั้นตอนของการแบ่ง Partition สำหรับเครื่องที่ได้ทำการแบ่ง Partition มาดีแล้วแต่ยังไม่ได้กำหนดชนิดของ Partition ก็ให้เลือก Manually partition with fdisk (export only) แล้วเลือก hda เพื่อเข้าไปกำหนดชนิดของ Partition จะเป็นคำสั่งที่ใช้ในการทำงานดังตัวอย่าง

        a :: ถ้าเราพิมพ์ m จะเป็น Menu ให้เราเลือกทำงาน
        b :: ผมจะเลือก p เพราะผมรู้ว่า p คือการแสดงรายละเอียดPartitionต่าง ๆที่มีอยู่ จะเห็นว่า
          dev/hda1 คือ Partition ที่ 1 ที่เราแบ่งไว้สำหรับติดตั้ง Windows ค่าของ System=FAT32
          dev/hda2 คือ Partition ที่เป็น Extended ภายในก็จะมี Partition Logic ดังนี้
            dev/hda5 คือ Partition ที่ 2 ที่เราแบ่งไว้สำหรับติดตั้ง Windows ค่าของ System=FAT32
            dev/hda6 คือ Partition ที่ 3 ที่เราแบ่งไว้สำหรับติดตั้ง Linux ค่าของ System=FAT32
            dev/hda7 คือ Partition ที่ 4 ที่เราแบ่งไว้สำหรับติดตั้ง Linux ค่าของ System=FAT32
            ส่วนที่เราต้องเข้าไปแก้ไขก็คือ hda6,hda7 จะเป็นการเปลี่ยนชนิดของ system ให้เป็น linux system มีวิธีการดังนี้คือ
        c :: ถ้าไม่รู้ว่าคำสั่งที่ใช้ในการทำงานให้ กด m เพื่อดูรายละเอียด
        d :: ผมจะเลือก t เพื่อเปลี่ยนชนิดของ System จากนั้นเป็นการเลือก Partition number เราจะเปลี่ยน hda6 จาก FAT32 ให้เป็น Linux native ผมเลือก 6 แล้วกด Enter
        e :: เลือก Hex code ถ้าไม่รู้ให้กด l เพื่อดูรายละเอียด ผมกด 83 เพื่อทำการเปลี่ยน System
        f :: ลองกด p เพื่อดูรายละเอียดของ System เปลี่ยนหรือยัง จะเห็นว่า System เปลี่ยนจาก FAT 32 เป็น Linux
        g :: ทำการเปลี่ยน System ของ hda7 ให้เป็น linux Swap โดยการ t เลือก Hex code เป็น 82
        h :: ทำการ Save โดยการ กด W
    6. หน้าจอขึ้น Using fdisk อีกรอบ ให้เลือก Next
    7. เลือก Mount point เพื่อกำหนด Root directory สำหรับการติดตั้ง ให้ดับเบิ๊ลคลิกเลือก hda 6 แล้วในช่องหลัง Mount point ให้เลือก " / " แล้วเลือก OK
    8. เมื่อทำการเลือกแล้วจะกลับมาที่หน้า Partition อีกรอบหนึ่ง เพื่อให้เรายืนยันการกำหนด Mount point อีกครั้งหนึ่ง เลือก Next
    9. ขั้นตอนต่อไปเป็นการ Format partition ที่กำหนดให้ Mount เป็น Root partition หรือ Root filesystem ตรงนี้จะมี Option หนึ่งที่น่าสนใจคือ Check for bad blocks during format นั่นคือการตรวจหา Bad Block ด้วย โดยการคลิกที่หน้า Option แล้วเลือก Next เพื่อดำเนินการต่อไป
    10. เลือก LILO Configuration ให้เลือก Install LILO boot record on dev/had Master Boot record เลือก Default Boot Image ไปที่ Dos
    11. กำหนด IP Address ตั้งชื่อ HostName เช่น suwit.yonok.ac.th หรือ mis.yonok.ac.th
    12. กำหนด Firewall Configuration ใน Security Level เป็น Medium ใน Option Customize เป็นการเลือกใช้ Firewall กับตัวให้บริการ
    13. เลือกภาษาในการ Install
    14. เลือก Time Zone ที่ Asia/Bangkok
    15. กำหนด Root Password (อย่างน้อย 6 ตัวอักษร)
    16. Add User สำหรับผู้ใช้บริการ
    17. หน้า Authentication Configuration ให้ Next
    18. เลือก Packet ตามต้องการ (ถ้ามีเนื้อที่ Harddisk มากพอให้เลือกหมดเลย)
    19. เลือก Video Card /Monitor/color pepht/Screen Resolution/Default Desktop/Login Type
    20. เข้าสู่กระบวนการเริ่ม Install โดยการ Format
    21. การตั้งค่า Configuration ต่าง ๆ ดูรายละเอียดต่อไปใน http://www.isinthai.com
8.99 การติดตั้ง Linux Redhat เมื่อแผ่น 2 ใช้ไม่ได้
: นี่คือวิธีหนีปัญหา เพราะจะแก้ปัญหาก็คือหาแผ่น CD ที่ใช้ได้มาให้ได้

    วันหนึ่ง ผมตั้งใจลง Redhat 8.0 ทับไปใน 7.2 โดยไม่สนใจข้อมูลในส่วน Redhat เดิม ส่วนข้อมูล Windows ทั้งหมดต้องการใช้งานอยู่ ก็ลงไปตามปกติ เลือก Package ต่าง ๆ แบบสมบูรณ์ใช้เนื้อที่ประมาณ 1500 Mb เริ่มติดตั้งจากการ boot Redhat 8.0 เมื่อติดตั้งจนจบแผ่นที่ 1 เสร็จ ก็ถามหาแผ่นที่ 2 ปรากฏว่าเครื่องไม่รับแผ่นที่ 2 วิธีแก้ตอนนั้นมีทางเดียวคือปิดเครื่องด้วยการกดปุ่ม power ... หลังจากเปิดใหม่พบว่าเครื่องบูตไม่ได้ตามปกติ แล้วเครื่องผมก็ไม่มีช่องใส่ Drive A ด้วย ขณะนั้นก็ไม่มี CD Windows ที่เป็น Bootable ด้วย .. เสร็จล่ะสิงานนี้
    ถ้าท่านพบเหตุการแบบผม ก็แก้ไขด้วยการ ลง Redhat 8.0 เข้าไปใหม่ แต่ลงแบบไม่ต้องเลือก Package อะไรเข้าไปเลย ระบบจะติดตั้งได้ตามปกติ โดยใช้เนื้อที่ใน Harddisk ประมาณไม่ถึง 500 Mb เพียงเท่านี้ก็เข้าสู่ Text mode ของ linux ได้ตามปกติ
      คำสั่งที่ท่านอาจต้องการทราบเมื่อต้องทำงานใน Text mode กับ CDROM
      mount /dev/cdrom (ใช้หลังจากใส่แผ่น CD เข้าไปในเครื่องแล้ว)
      cd /mnt/cdrom (ใช้เข้าไปใน CD และใช้คำสั่งอื่น ๆ ได้ เช่น ls เป็นต้น)
      cd /mnt/cdrom/RedHat/RPMS (เป็นห้องที่เก็บโปรแกรมต่าง ๆ ใน CD-ROM)
      rpm -i xxx.2.2.1.rpm (ใช้สำหรับติดตั้ง package หรือ โปรแกรมที่ต้องการ)
      ปกติท่านจะดึง CD ออกจากเครื่องไม่ได้ถ้าไม่ใช้คำสั่ง umount
      cd / (เพื่อย้ายตัวเองออกจาก cd จึงจะใช้คำสั่ง umount ได้ มิเช่นนั้นจะบอกว่า busy อยู่)
      umount /dev/cdrom (ใช้เมื่อต้องการดึงแผ่น CD ออก แต่ท่านต้องใช้คำสั่ง)
      ข้อควรทราบเพิ่มเติม (/mnt/cdrom/RedHat/RPMS)
      ติดตั้ง httpd ก่อนจึงจะติดตั้ง php ได้
      ติดตั้ง pine จะทำให้ใช้คำสั่ง pico ได้ (CD#3)
      ติดตั้ง lynx(CD#3) ต้องติดตั้ง indexhtml และ perl-cgi(CD#2)
บทเรียนที่แนะนำ Super User :: BusyBox :: ปัญหาที่พบในอดีต :: Linux SIS by ภัทระ เกียรติเสวี :: Linux Sim. by bellard ::
คลิ๊ปใช้ Term. Emu. ใน Tab10.1 :: บทเรียนการใช้คำสั่งพื้นฐาน :: Manual :: 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 สคริปท์บน Android การเลือกแบบ if
5.2 สคริปท์ การเลือกแบบ case
5.3 สคริปท์ ทำซ้ำแบบ while
5.4 สคริปท์ ทำซ้ำแบบ for
5.5 สคริปท์ ทำซ้ำแบบ until
5.6 สคริปท์ ฟังก์ชันที่สร้างเอง
บทที่ 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 ใช้ไม่ได้

http://goo.gl/72BPC