Intermediate Command Line

Key Concept

  • ภาษาหลักที่เราใช้ในการเขียนเว็บไซต์คือ HTML หรือ hypertext markup language
  • เราใช้ command curl เพื่อดึงข้อมูลจากเว็บไซต์ได้ รวมถึงการดาวน์โหลดไฟล์
  • taskmgr, tasklist, taskkill คือ 3 commands ที่เราใช้จัดการ process ต่างๆของ Windows
  • ping ใช้ตรวจสอบ connection ระหว่างคอมพิวเตอร์ (หรือเซอร์เวอร์) ถ้าอยากรู้ว่าเว็บไซต์ของเรายังใช้งานได้ดีหรือเปล่า พิมพ์ ping website_name
  • เราเขียน batch script (นามสกุล .bat) เพื่อรันโปรแกรม command line หรือ automate งานพื้นฐานได้

Review

อ่านบทความรีวิวด้านล่าง เพื่อทบทวนความรู้ที่เราเรียนใน module นี้

HTML

HTML คือภาษาที่ใช้ใส่ content ในเว็บไซต์และกำหนด structure เบื้องต้น เช่น ข้อความ รูปภาพ วีดีโอ ไฟล์เสียง เป็นต้น เว็บไซต์ที่เราเห็นทั้งหมดจริงๆก็เป็นแค่ text file นามสกุล .html

HTML ใช้ <tag> ในการใส่ content

  • <tag> เรียกว่า open tag ส่วน </tag> เรียกว่า closing tag
  • <title> ชื่อ title ที่แสดงบนบาร์ด้านบนของ browser
  • <h1> คือ heading tag ขนาดใหญ่ที่สุด สามารถไล่ระดับฟ้อนท์ได้ถึง h6
  • <p> คือ paragraph tag ใส่ข้อความหรือประโยคยาวๆได้
  • <img> ใช้ใส่รูปภาพ กำหนดค่า attribute src="image.jpg" โดยไฟล์รูปภาพต้องอยู่ใน working directory เดียวกันกับไฟล์ .html
  • <img> เป็น self-closing tag ไม่จำเป็นต้องมี </img> ปิดท้าย
<html>
  <title>My Cool Website</title>
  <h1>Hello World</h1>
  <p>I am learning command line in Windows</p>
  <p>This is my first website ever</p>
  <img src="image.jpg">
</html>

HTML จะทำงานเหมือนเป็น tree structure โค้ดทั้งหมดจะถูก wrap อยู่ใน <html> tag และ content จะแบ่งเป็น <head> กับ <body>

  • ข้อมูลที่อยู่ใน <head> นอกจากชื่อ title จะเป็นพวก metadata อื่นๆ
  • ข้อมูลที่อยู่ใน <body> จะเป็น visible content ที่ถูกเรนเดอร์แสดงผลด้วย browser
<html>
  <head>
    <title>My Cool Website</title>
  </head>
  <body>
    <h1>Hello World</h1>
    <p>I am learning command line in Windows</p>
    <p>This is my first website ever</p>
    <img src="image.jpg">
  </body>
</html>

วิธีการเปิดไฟล์ .html แค่พิมพ์ชื่อไฟล์ใน command prompt ได้เลย โปรแกรมที่เราใช้เปิดและเรนเดอร์ไฟล์ html เรียกว่า “web browser” ตัวที่คนนิยมใช้มากที่สุดในโลกตอนนี้คือ Google Chrome

Note – web browser ที่แอดใช้ประจำตอนนี้คือ Microsoft Edge (Chromium) เพิ่งออกมาใหม่ของ Microsoft แอดว่ามันเร็วกว่า Chrome กับ more secure กว่า

homepage.html

อีกสองภาษาที่เรานิยมใช้กับ HTML ในการทำ website development คือ CSS สำหรับ styling ให้เว็บไซต์สวยงามขึ้นและ JavaScript เพื่อเพิ่มลูกเล่นแบบ interactive กับ users

curl website content

เราใช้ curl เพื่อดึงข้อมูลจากเว็บไซต์ เทคนิคที่เราใช้บ่อยๆคือการ redirect output ไปที่ text file และใช้ findstr เพื่อค้นหา pattern ที่เราต้องการ

ตัวอย่างด้านล่าง เราดึง html content จากเว็บไซต์ wikipedia และค้นหาชื่อ “title” ของเว็บไซต์นั้นๆ

curl https://en.wikipedia.org/wiki/Itaewon_Class

curl https://en.wikipedia.org/wiki/Itaewon_Class > itaewon.txt
findstr "<title>" itaewon.txt

สำหรับนักเรียนที่ไม่มีคอมมานด์ curl ใน cmd ลองเปิด PowerShell ขึ้นมาแล้วรันคอมมานด์ด้านล่างนะครับ ได้ผลเหมือนกัน PowerShell คือ cmd เวอร์ชันใหม่ที่ทาง Microsoft พัฒนาขึ้นมาจะมีฟีเจอร์เยอะกว่ามาก

วิธีการเปิด PowerShell ให้คลิกที่ปุ่ม Windows และค้นหาโปรแกรมชื่อว่า Windows PowerShell

curl -Uri https://en.wikipedia.org/wiki/Itaewon_Class

pipe operator

เราใช้ pipe operator หรือสัญลักษณ์ | เพื่อ redirect output ของ command ที่หนึ่งไปยัง command ที่สองได้ ตัวอย่างด้านล่างเราส่งผลลัพธ์ของ type ไปที่ more

command more ใช้สำหรับแสดงผล text file ที่มีข้อมูลหลายบรรทัด โดย more จะแสดงผลข้อมูลให้เหมาะสมกับขนาดหน้าจอของเรา เราสามารถกดปุ่ม enter เพื่อดูข้อมูลทีละบรรทัด หรือกด space เพื่อแสดงทีละหน้า (เหมือนการกดปุ่ม PgDn บนคีย์บอร์ด)

ลองรันสอง commands ด้านล่างใน cmd และดูผลลัพธ์

type itaewon.txt | more

help dir | more

Tip – ถ้าไฟล์ text มีขนาดใหญ่และข้อมูลหลายพันบรรทัด เราสามารถ terminate ออกจาก command more แค่กด CTRL+C บนคีย์บอร์ดพร้อมกัน

ping website

ping ใช้ในการตรวจสอบการเชื่อมต่อระหว่างคอมพิวเตอร์ เช่น แล๊บท๊อปของเรากับเซอร์เวอร์ในอินเตอร์เน็ต วิธีการใช้งานแค่พิมพ์ ping ตามด้วยชื่อเว็บไซต์ (domain name) หรือ IP address ก็ได้

  • Domain Name คือชื่อเว็บไซต์ ออกแบบมาให้ users ค้นหาเว็บไซต์ได้ง่ายๆ เช่น google.com, facebook.com, wikipedia.org เราสามารถจองและซื้อชื่อโดเมนที่ต้องการได้ จ่ายเงินเป็นรายปี ราคาเริ่มต้นประมาณ 200-300 บาท ลองดูรายชื่อ available domains ได้ที่เว็บไซต์ domains.google
  • IP address เปรียบเสมือนเลขทะเบียนบ้านของเว็บไซต์ ออกแบบมาสำหรับการสื่อสารระหว่างคอมพิวเตอร์ด้วยกันเอง IP มีอยู่สองแบบคือ public external และ internal สำหรับใช้ภายในองค์กร

ping จะส่ง echo request ไปที่เว็บไซต์หรือเซอร์เวอร์นั้นๆ เราใช้พารามิเตอร์ /n เพื่อกำหนดจำนวน echo request ที่เราส่งไปได้

ping www.google.co.th
ping 216.58.221.195

ping /n 10 www.google.co.th

task manager

โปรแกรม task manager

เราใช้ 3 commands ด้านล่างเพื่อ monitor tasks/ processes ใน Windows ของเรา

  • taskmgr เปิดโปรแกรม task manager
  • tasklist ใช้ list รายชื่อ running process ใน Windows
  • taskkill ใช้ kill process ด้วยเลข PID (process ID)
taskmgr
tasklist | findstr "notepad"
taskkill /PID 12345

batch script

เราสามารถเขียน batch script ไฟล์นามสกุล .bat ได้ตามตัวอย่าง template ด้านล่าง

  • บรรทัดแรก เราตั้งค่า @ECHO OFF เพื่อการแสดงผลที่สวยงามขึ้น
  • พิมพ์ command line ที่เราต้องการทีละบรรทัด ตัว batch จะรันจากบนลงล่างเสมอ (นอกจากเรามีการใช้ control flow เช่น if หรือ for loop) เราจะเรียนวิธีการเขียน control flow ด้วย Python ใน module 6
  • PAUSE ใช้หยุดโปรแกรมของเรา user ต้องกด any key เพื่อปิดโปรแกรมเองหลังจากโปรแกรมรันเสร็จแล้ว
  • %DATE% และ %TIME% คือตัวแปรที่ถูกสร้างไว้แล้วใน Windows สามารถเรียกใช้งานได้เลย
@ECHO OFF
echo Tell me date and time now
echo date: %DATE%
echo time: %TIME%
PAUSE

วิธีการรันไฟล์ .bat แค่พิมพ์ชื่อไฟล์ใน command prompt ได้เลย

script.bat

system information

เราสามารถเรียกดูรายละเอียดของ Windows OS ที่เราใช้งานด้วยคอมมานด์ systeminfo ใน command prompt เสร็จแล้วระบบจะแสดงผลข้อมูล OS ที่เราใช้ เช่น ชื่อระบบปฏิบัติการ รุ่นของ Windows จำนวน RAM ที่เรามี และแบรนด์ของแล๊บท๊อปที่เราใช้งาน เป็นต้น

ถ้าต้องการดูว่าแล๊บท๊อปของเราเป็นแบบ 32-bit หรือ 64-bit ให้เราหาคำว่า “System Type” คอมพิวเตอร์รุ่นใหม่ที่วางขายในตลาดจะเป็นแบบ 64-bit เกือบหมดแล้ว ความแตกต่างหลักๆคือ 64-bit จะรองรับและจัดการทรัพยากร e.g. RAM ของ Windows OS ได้ดีกว่า

systeminfo
systeminfo | findstr "System Type"

References

  • ดูตัวอย่าง html tag ทั้งหมดได้ที่เว็บไซต์นี้
  • วิธีใช้งาน ping command
  • stackoverflow การเขียน curl command ใน Windows
  • ตัวอย่างการสร้าง batch file ใน Windows 10

PowerShell

Windows มี shell อีกตัวนึงที่มีความสามารถเพิ่มขึ้นกว่า cmd ที่เราเรียนในคอร์สนี้เรียกว่า “PowerShell” เนื้อหาของ PS จะอยู่นอกเหนือ scope ของคอร์สเรา คลิกที่รูปด้านล่างเพื่ออ่านวิธีการใช้งาน PS เบื้องต้น

.ugb-e4729f2 .ugb-notification__item{border-color:#9b51e0 !important}

ทดลองใช้งาน PowerShell
คลิกที่ปุ่ม Start > พิมพ์ PowerShell เมื่อเข้าสู่ shell ลองพิมพ์ command dir เพื่อดูไฟล์และโฟลเดอร์ใน working directory


Formative Quiz

บทนี้เราเรียนเทคนิคการเขียน command line สำหรับ Windows เพิ่มขึ้นอีกเยอะเลย ยิ่งเรารู้จัก commands มากขึ้นเท่าไหร่ เรายิ่งทำงานได้สะดวกมากขึ้นเท่านั้น สำหรับคอร์สเรียนของเรา commands ตัวหลักๆที่นักเรียนต้องใช้ให้เป็นคือ dir, cd, mkdir, echo, type, notepad

🏆 คลิกเพื่อเริ่มทำแบบทดสอบ เสร็จแล้วแอดรบกวนช่วยตอบแบบสอบถามความพอใจ module นี้ด้วยนะครับ -/\- ขอบคุณทุกคนมากๆครับ แล้วพบกันในบทต่อไปนะ


Keep Learning

Module ต่อไปเราจะเรียนวิธีเรียกใช้งาน SQLite ใน command prompt และเริ่มสร้างฐานข้อมูลง่ายๆเป็นไฟล์นามสกุล .db พักเบรค 10-15 นาที เมื่อพร้อมแล้วคลิกเพื่อเริ่มเรียนบทต่อไป