เจาะลึกเครื่องมือบรรทัดคำสั่งของบุคคลที่สามในสภาพแวดล้อม Local ของ ServBay
ServBay ในฐานะสภาพแวดล้อมการพัฒนาเว็บแบบ Local ที่ทรงพลัง ไม่ได้รวมแค่เซิร์ฟเวอร์เว็บ ฐานข้อมูล และรันไทม์ภาษายอดนิยมเท่านั้น แต่ยังมีเครื่องมือบรรทัดคำสั่งของบุคคลที่สามอีกมากมายที่เป็นประโยชน์กับนักพัฒนาทุกวัน เครื่องมือเหล่านี้ครอบคลุมงานสำคัญหลากหลาย เช่น การจัดการภาพ การสื่อสารเครือข่าย การบีบอัด/แตกไฟล์ และการเข้ารหัสข้อมูล/ความปลอดภัย
บทความนี้จะอธิบายรายละเอียดของเครื่องมือบรรทัดคำสั่งใน ServBay แต่ละตัว พร้อมอธิบายการใช้งานเบื้องต้น เพื่อให้นักพัฒนาสามารถใช้ความสะดวกสบายที่ ServBay มอบให้ได้อย่างเต็มประสิทธิภาพ
เหตุผลที่ ServBay รวมเครื่องมือเหล่านี้ไว้
ในกระบวนการพัฒนาเว็บ นักพัฒนาไม่ได้มีหน้าที่แค่เขียนโค้ด แต่ยังต้องทำงานเสริมอื่น ๆ มากมาย เช่น
- การปรับแต่ง/จัดการไฟล์รูปภาพ
- ทดสอบ API หรือดีบักคำร้องขอทางเครือข่าย
- จัดการไฟล์บีบอัด/แตกไฟล์ชนิดต่าง ๆ
- สร้างหรือจัดการ SSL certificate และ key
ServBay รวมเครื่องมือบรรทัดคำสั่งเหล่านี้เข้าไว้ภายใน นักพัฒนาไม่จำเป็นต้องติดตั้ง/ตั้งค่าเอง สามารถใช้งานผ่าน terminal ของ ServBay ได้โดยตรง เพิ่มความสะดวกและประหยัดเวลาอย่างมาก
ข้อกำหนดเบื้องต้น
ก่อนใช้งานเครื่องมือบรรทัดคำสั่งต่อไปนี้ กรุณาตรวจสอบว่า:
- ได้ติดตั้งและเปิดใช้งาน ServBay บน macOS เรียบร้อยแล้ว
- ได้เข้าสู่สภาพแวดล้อมของ ServBay ผ่าน terminal ของ ServBay หรือ terminal ของระบบที่ตั้งค่า environment variables ของ ServBay ถูกต้อง จึงจะเรียกใช้เครื่องมือเหล่านี้ได้ทันที
หมวดเครื่องมือจัดการภาพ
ServBay มีเครื่องมือบรรทัดคำสั่งที่เกี่ยวกับงานจัดการภาพจำนวนมาก ทั้งสำหรับนักพัฒนา front-end และ back-end ที่ทำงานกับไฟล์สื่อ
ImageMagick
ImageMagick คือชุดเครื่องมือและไลบรารีสำหรับจัดการภาพผ่านบรรทัดคำสั่ง รองรับไฟล์มากกว่า 200 รูปแบบ ใช้สำหรับสร้าง แก้ไข ผสม หรือแปลงไฟล์บิตแม็พ
ตัวอย่างการใช้งานเบื้องต้น
แปลงรูปภาพเป็นไฟล์ฟอร์แมตอื่น:
bashmagick convert input.jpg output.png
1ปรับขนาดรูปภาพ:
bashmagick convert input.jpg -resize 300x300 output.jpg
1เพิ่มลายน้ำบนรูปภาพ:
bashmagick convert input.jpg -gravity southeast -draw "text 10,10 'ServBay'" output.jpg
1
cwebp
cwebp คือ encoder แบบบรรทัดคำสั่งจาก Google สำหรับแปลงรูปภาพเป็นฟอร์แมต WebP ซึ่งเป็นฟอร์แมตรูปภาพสมัยใหม่ที่บีบอัดได้ดีกว่า JPEG และ PNG ทั้งแบบสูญเสีย (lossy) และไม่สูญเสีย (lossless) โดยคุณภาพเทียบเท่า ช่วยให้เว็บโหลดภาพได้เร็วขึ้น
ตัวอย่างการใช้งานเบื้องต้น
แปลงภาพ JPEG เป็น WebP:
bashcwebp input.jpg -o output.webp
1แปลงภาพ PNG เป็น WebP:
bashcwebp input.png -o output.webp
1ตั้งค่าคุณภาพการบีบอัด (เช่น ตั้งค่า quality 80):
bashcwebp -q 80 input.jpg -o output.webp
1
jpegtran
jpegtran เป็นเครื่องมือแปลงไฟล์ JPEG แบบ lossless รองรับการหมุน, พลิก, สลับตำแหน่งโดยไม่ต้อง decode และ re-encode ไฟล์ ซึ่งจะไม่ทำให้เกิดอาการภาพแตกหรือเกิด compression artifact
ตัวอย่างการใช้งานเบื้องต้น
หมุนภาพ JPEG 90 องศาทวนเข็มนาฬิกา:
bashjpegtran -rotate 90 input.jpg > output.jpg
1พลิกภาพ JPEG ทางแนวนอน:
bashjpegtran -flip horizontal input.jpg > output.jpg
1
djpeg
djpeg เป็นเครื่องมือแปลงไฟล์ JPEG ให้คลายเป็นไฟล์ pixel รูปแบบต้นฉบับ (เช่น PPM, PGM, BMP หรือ Targa) เหมาะกับกรณีที่ต้องการอ่านค่าพิกเซลดิบจากไฟล์ JPEG
ตัวอย่างการใช้งานเบื้องต้น
- คลาย JPEG เป็นไฟล์ PPM:bash
djpeg input.jpg > output.ppm
1
cjpeg
cjpeg เป็นเครื่องมือทำงานย้อนกลับ djpeg สำหรับแปลงไฟล์รูปภาพฟอร์แมต PPM, PGM, BMP หรือ Targa ให้กลายเป็น JPEG
ตัวอย่างการใช้งานเบื้องต้น
- บีบอัดไฟล์ PPM เป็น JPEG:bash
cjpeg input.ppm > output.jpg
1
img2webp
img2webp เป็นเครื่องมือรวมภาพนิ่งหลายไฟล์ (เช่น PNG, JPEG) ให้กลายเป็นไฟล์ WebP แบบอนิเมชั่น
ตัวอย่างการใช้งานเบื้องต้น
- รวมภาพหลายไฟล์เป็น WebP แบบอนิเมชั่น:bash(โปรดแน่ใจว่าไฟล์
img2webp -o output.webp frame1.png frame2.png frame3.png
1frame*.png
เรียงลำดับถูกต้องตามเฟรม)
หมวดเครื่องมือสื่อสารเครือข่าย
cURL
cURL คือเครื่องมือบรรทัดคำสั่ง (และไลบรารี) สำหรับส่งข้อมูลผ่านโปรโตคอลเครือข่ายต่าง ๆ นิยมใช้อย่างยิ่งในการทดสอบ API, ดาวน์โหลดไฟล์ หรือสื่อสารกับ server ระยะไกล ServBay ติดตั้ง cURL พร้อมใช้งานสำหรับงานดีบักและรับส่งข้อมูลผ่านเครือข่าย
ตัวอย่างการใช้งานเบื้องต้น
ส่ง HTTP GET ไปยัง API ตัวอย่าง:
bashcurl -X GET https://api.servbay.demo/data
1ส่ง HTTP POST พร้อมข้อมูลใน payload:
bashcurl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data
1ดาวน์โหลดไฟล์โดยใช้ชื่อไฟล์เดิม:
bashcurl -O https://servbay.demo/file.zip
1ดู header ของ request และ response:
bashcurl -I https://servbay.demo
1
หมวดเครื่องมือบีบอัด/แตกไฟล์
ServBay มีเครื่องมือบีบอัดและแตกไฟล์ยอดนิยมหลายแบบ ช่วยให้จัดการไฟล์ฟอร์แมตต่าง ๆ ได้สะดวก
bzip2
bzip2 เป็นเครื่องมือบีบอัดไฟล์ประสิทธิภาพสูง โดยใช้ Burrows-Wheeler transform และ Huffman coding ไฟล์ที่ได้จะมีขนาดเล็กกว่า gzip แต่ความเร็วในการบีบอัด/แตกไฟล์อาจช้ากว่า
ตัวอย่างการใช้งานเบื้องต้น
บีบอัดไฟล์ (ไฟล์ต้นฉบับจะถูกแทนที่ด้วยไฟล์
.bz2
):bashbzip2 input.txt
1แตกไฟล์ (ไฟล์
.bz2
จะถูกแทนที่เป็นไฟล์ต้นฉบับ):bashbunzip2 input.txt.bz2
1แตกไฟล์และส่งผลลัพธ์ไปที่ stdout:
bashbzip2 -dc input.txt.bz2
1
gzip
gzip เป็นเครื่องมือบีบอัดไฟล์ที่แพร่หลายมากใน Unix/Linux อาศัย LZ77 algorithm สามารถบีบอัด/แตกไฟล์ได้อย่างรวดเร็ว
ตัวอย่างการใช้งานเบื้องต้น
บีบอัดไฟล์ (ต้นฉบับกลายเป็น
.gz
):bashgzip input.txt
1แตกไฟล์ (ไฟล์
.gz
จะกลายเป็นไฟล์ต้นทาง):bashgunzip input.txt.gz
1แตกไฟล์และ output ไป stdout:
bashgzip -dc input.txt.gz
1
xz
xz เป็นโปรแกรมบีบอัดไฟล์โดยใช้ LZMA2 algorithm ให้ compression ratio สูงกว่า gzip/bzip2 แม้จะบีบอัดช้ากว่าเล็กน้อย แต่แตกไฟล์ได้รวดเร็ว
ตัวอย่างการใช้งานเบื้องต้น
บีบอัดไฟล์ (ไฟล์ต้นฉบับกลายเป็น
.xz
):bashxz input.txt
1แตกไฟล์ (ไฟล์
.xz
ถูกแทนที่ด้วยไฟล์ต้นฉบับ):bashunxz input.txt.xz
1แตกไฟล์และ output ไป stdout:
bashxz -dc input.txt.xz
1
zstd
zstd (Zstandard) คือ algorithm แบบ lossless ที่พัฒนาโดย Facebook ให้สมดุลที่ดีระหว่างความเร็วกับอัตราการบีบอัด บีบอัด/แตกไฟล์เร็วกว่า gzip อย่างมาก พร้อมกับขนาดที่เล็กกว่าหรือใกล้เคียง
ตัวอย่างการใช้งานเบื้องต้น
บีบอัดไฟล์ (ต้นฉบับจะเป็น
.zst
):bashzstd input.txt
1แตกไฟล์ (ไฟล์
.zst
จะกลับมาเป็นต้นฉบับ):bashunzstd input.txt.zst
1แตกไฟล์และ output ไป stdout:
bashzstd -dc input.txt.zst
1
หมวดเครื่องมือเข้ารหัสและความปลอดภัย
OpenSSL
OpenSSL คือเครื่องมือโอเพ่นซอร์สสำหรับโปรโตคอล SSL/TLS และความสามารถทางคริปโตกราฟีที่หลากหลาย ใน ServBay ใช้งานได้หลากหลาย เช่น สร้าง key, certificate signing request (CSR), จัดการ certificate ไฟล์ เหมาะสำหรับงานทดสอบ HTTPS ในระบบ local หรือใช้กับ SSL ของ ServBay (เช่น ServBay User CA หรือ ACME)
ตัวอย่างการใช้งานเบื้องต้น
สร้าง RSA private key (2048 บิต):
bashopenssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
1สร้าง public key จาก private key:
bashopenssl rsa -pubout -in private_key.pem -out public_key.pem
1สร้าง Certificate Signing Request (CSR):
bashopenssl req -new -key private_key.pem -out request.csr
1(เมื่อสั่งรันคำสั่งนี้ ระบบจะถามข้อมูลเกี่ยวกับใบรับรอง เช่น ประเทศ องค์กร ชื่อโดเมน ฯลฯ)
สร้าง self-signed certificate (สำหรับทดสอบ local):
bashopenssl req -x509 -days 365 -key private_key.pem -in request.csr -out certificate.crt
1(หมายเหตุ:
-in request.csr
ต้องสร้าง CSR ก่อน หากต้องการสร้าง private key และ certificate แบบ self-signed ในขั้นตอนเดียวก็ทำได้เช่นกัน เหมาะในการทดสอบเบื้องต้น)ดูข้อมูล certificate:
bashopenssl x509 -in certificate.crt -text -noout
1
ข้อควรระวัง
- เวอร์ชันของเครื่องมือเหล่านี้ขึ้นกับเวอร์ชันที่รวมไว้ใน ServBay
- สามารถสั่งรันเครื่องมือเหล่านี้ได้จาก terminal ของระบบทันที หากใช้งานไม่ได้ให้ตรวจสอบว่า environment variables (โดยเฉพาะ PATH) ของ ServBay ตั้งถูกต้องแล้ว
สรุป
ServBay ไม่ใช่แค่สภาพแวดล้อมสำหรับพัฒนาเว็บ local เท่านั้น แต่ยังรวมเครื่องมือบรรทัดคำสั่งของบุคคลที่สามสุดคุ้มไว้หลากหลาย ช่วยเพิ่มขีดความสามารถสำหรับนักพัฒนา ไม่ว่าจะเป็นงานจัดการภาพ ดีบักเครือข่าย จัดการไฟล์ หรือความปลอดภัย การเรียนรู้และใช้งานเครื่องมือเหล่านี้จะช่วยยกระดับประสบการณ์และประสิทธิภาพในการพัฒนาของคุณอีกขั้น