เครื่องมือบรรทัดคำสั่งบน macOS ที่คุณอาจไม่เคยรู้จัก
(saurabhs.org)- ใช้แค่ Terminal ก็จัดการ ความสามารถเฉพาะของ macOS อย่างโหมดพัก, คลิปบอร์ด, Finder, Spotlight และการอัปเดตได้ จึงช่วยลดงานซ้ำ ๆ บน GUI
caffeinate,pmset,taskpolicyส่งผลโดยตรงต่อ การทำงานของระบบ เช่น ป้องกันการพักเครื่อง ตรวจสอบสถานะพลังงาน และปรับลำดับความสำคัญในการรันโปรเซส- ใช้
pbcopy,pbpaste,open,screencapture,sayเพื่อใส่งานประจำวันอย่างคลิปบอร์ด การเปิดไฟล์ การจับภาพหน้าจอ และการพูดข้อความ ลงในสคริปต์ได้ง่าย sips,textutil,mdfind,mdlsใช้เป็น เครื่องมือจัดการไฟล์ เพื่อทำงานอัตโนมัติ เช่น แปลงรูปภาพและเอกสาร ค้นหาด้วย Spotlight และตรวจสอบเมทาดาทาnetworkQuality,networksetup,softwareupdate,system_profilerช่วยตรวจสอบคุณภาพเครือข่าย, Wi‑Fi/DNS, การอัปเดต OS และข้อมูลฮาร์ดแวร์·ซอฟต์แวร์ได้อย่างรวดเร็ว
ขอบเขตของคำสั่งเฉพาะบน macOS
- นอกจากเครื่องมือ Unix มาตรฐานแล้ว macOS ยังมี เครื่องมือบรรทัดคำสั่งเฉพาะทาง สำหรับเข้าถึงความสามารถของระบบปฏิบัติการ
- ดูวิธีใช้แบบละเอียดของแต่ละคำสั่งได้ด้วย
man <command> - สภาพแวดล้อมอ้างอิงคือ macOS Sonoma
พลังงาน, โหมดพัก, การควบคุมโปรเซส
-
caffeinate- ป้องกัน Mac เข้าสู่โหมดพัก- หากรัน
caffeinateโดยไม่ใส่แฟล็กหรืออาร์กิวเมนต์ Mac จะไม่เข้าสู่โหมดพักตราบใดที่คำสั่งยังทำงานอยู่ caffeinate -u -t <seconds>ใช้ การป้องกันโหมดพัก ตามจำนวนวินาทีที่กำหนด- หากเพิ่มแฟล็ก
-dจะป้องกันไม่ให้หน้าจอพักด้วย - หากระบุโปรเซสที่มีอยู่แล้วด้วย
-w <pid>caffeinateจะจบการทำงานเมื่อโปรเซสนั้นสิ้นสุด caffeinate <command>จะเริ่มคำสั่งที่กำหนดเป็นโปรเซสใหม่ และป้องกันโหมดพักจนกว่าโปรเซสนั้นจะสิ้นสุด
- หากรัน
-
pmset- ตรวจสอบและควบคุมสถานะการจัดการพลังงานpmset -gแสดง ข้อมูลการตั้งค่าพลังงาน ที่ใช้งานได้pmset -g assertionsแสดง assertion ที่เกี่ยวกับพลังงานซึ่งถูกสร้างโดยโปรเซสอื่น จึงมีประโยชน์ในการหาโปรเซสที่ขัดขวางไม่ให้ Mac เข้าสู่โหมดพักpmset -g thermlogแสดงข้อมูลโปรเซสที่ถูก throttling ซึ่งใช้ประกอบการรันเบนช์มาร์กได้pmset displaysleepnowทำให้เฉพาะหน้าจอเข้าสู่โหมดพักทันที โดยไม่ทำให้ทั้งระบบพักpmset sleepnowทำให้ทั้งระบบเข้าสู่โหมดพักทันที
-
taskpolicy- ควบคุมการจัดตารางโปรเซสtaskpolicy -b <command>รันคำสั่งที่กำหนดใน โหมดเบื้องหลัง และบน Mac ที่ใช้ Apple silicon จะรันบน efficiency core เท่านั้นtaskpolicy -b -p <pid>ลดโปรเซสที่มีอยู่แล้วให้รันแบบเบื้องหลังtaskpolicy -B -p <pid>ยกเลิกสถานะรันแบบเบื้องหลังของโปรเซสที่กำหนด- บน Mac ที่ใช้ Apple silicon หลังจากนั้นโปรเซสอาจรันบน efficiency core หรือ performance core ก็ได้
- พฤติกรรมนี้ใช้ได้เฉพาะกับโปรเซสที่ถูกลดลงเป็นเบื้องหลังภายหลังเท่านั้น และใช้ไม่ได้กับโปรเซสที่เริ่มต้นมาในโหมดเบื้องหลังตั้งแต่แรก
taskpolicy -s <command>เริ่มคำสั่งที่กำหนดใน สถานะหยุดชั่วคราว เพื่อให้สามารถแนบดีบักเกอร์ตั้งแต่จังหวะเริ่มรันได้
คลิปบอร์ด, การเปิดแอป, การจับภาพหน้าจอ, การพูดข้อความ
-
pbcopy,pbpaste- ใช้คลิปบอร์ดของระบบ<command> | pbcopyคัดลอกผลลัพธ์ของคำสั่งไปยัง คลิปบอร์ดpbpasteส่งออกเนื้อหาในคลิปบอร์ดไปยัง standard output
-
open- เปิดไฟล์และแอปพลิเคชันopen -a <app> <file>เปิดไฟล์ที่กำหนดด้วยแอปพลิเคชันที่ระบุ- หากเพิ่มแฟล็ก
-gจะเปิดไฟล์ ในเบื้องหลัง โดยยังคงโฟกัสอยู่ที่แอปปัจจุบัน open .เปิดไดเรกทอรีปัจจุบันเป็นหน้าต่าง Finder ใหม่open -R <file>แสดงไฟล์ที่กำหนดในหน้าต่าง Finder ใหม่
-
screencapture- จับภาพหน้าจอscreencapture -cจับภาพหน้าจอแล้วคัดลอกไปยัง คลิปบอร์ดscreencapture <file>บันทึกภาพหน้าจอลงไฟล์ที่กำหนด- หากเพิ่มแฟล็ก
-T <seconds>จะรอตามจำนวนวินาทีที่กำหนดก่อนค่อยจับภาพ
-
say- แปลงข้อความเป็นเสียงพูดsay <message>อ่านข้อความที่กำหนดออกเสียงsay -f input.txt -o output.aiffสร้าง หนังสือเสียง จากไฟล์ข้อความที่ระบุ
รูปภาพ, เอกสาร, การค้นหาและเมทาดาทา
-
sips- จัดการรูปภาพsips -z <height> <width> <image>ปรับขนาดรูปภาพเป็นขนาดที่กำหนดโดยไม่สนอัตราส่วนเดิมsips -Z <size> <image>ปรับด้านที่ยาวที่สุดให้มีขนาดตามที่กำหนดโดยคงอัตราส่วนเดิมไว้sips -c <height> <width> <image>ครอป รูปภาพเป็นขนาดที่กำหนดโดยอิงจากกึ่งกลางของรูปต้นฉบับsips -r <degrees> <image>หมุนรูปภาพตามองศาที่กำหนด- พฤติกรรมเริ่มต้นคือ เขียนทับแบบทำลายข้อมูลเดิม บนรูปต้นฉบับ ดังนั้นหากต้องการพาธเอาต์พุตอื่นให้ใช้แฟล็ก
-o - ไฟล์เอาต์พุตต้องใช้นามสกุลไฟล์เดียวกับรูปต้นฉบับ
-
textutil- แปลงไฟล์เอกสารtextutilสามารถแปลงไฟล์ระหว่างฟอร์แมต Microsoft Word, plain text, rich text และ HTML ได้textutil -convert html journal.docแปลงjournal.docเป็นjournal.html- ค่าที่ใช้กับ
-convertได้คือtxt,html,rtf,rtfd,doc,docx
-
mdfind,mdls- ค้นหา Spotlight และเมทาดาทาmdfind <query>ทำ การค้นหาคีย์เวิร์ดด้วย Spotlight ตามคิวรีที่กำหนดmdfind kMDItemAppStoreHasReceipt=1ค้นหาแอปทั้งหมดที่ติดตั้งจาก Mac App Storemdfind -name <name>ค้นหาไฟล์ทั้งหมดที่ตรงกับชื่อที่กำหนด- สามารถจำกัดขอบเขตการค้นหาให้เฉพาะไดเรกทอรีได้ด้วยแฟล็ก
-onlyin <dir> mdls <file-path>แสดง Spotlight metadata ทั้งหมดที่เชื่อมโยงกับไฟล์ที่กำหนด
เครือข่าย, การอัปเดต, ข้อมูลระบบ
-
networkQuality- วัดความเร็วอินเทอร์เน็ตnetworkQualityรัน การทดสอบความเร็วอินเทอร์เน็ต บน Mac- หากเพิ่มแฟล็ก
-vจะดูข้อมูลแบบละเอียดมากขึ้นได้ - แฟล็ก
-Iใช้รันทดสอบบน network interface ที่กำหนด
-
networksetup- ตรวจสอบและตั้งค่าเครือข่ายnetworksetup -listnetworkserviceorderแสดงรายการ network service ที่ใช้งานได้networksetup -getinfo <networkservice>แสดงข้อมูลของ network service ที่กำหนดnetworksetup -getdnsservers <networkservice>แสดง DNS server ของ network service ที่กำหนดnetworksetup -setairportnetwork <device> <network> [password]เชื่อมต่อกับเครือข่าย Wi‑Fi ที่กำหนด- ในกรณีส่วนใหญ่ อาร์กิวเมนต์
<device>คือ"en0"
-
softwareupdate- จัดการการอัปเดต OSsoftwareupdate --listแสดง การอัปเดตซอฟต์แวร์ ที่พร้อมใช้งานsudo softwareupdate -iaติดตั้งการอัปเดตทั้งหมดที่พร้อมใช้งานsoftwareupdate --fetch-full-installer --full-installer-version <version>พยายามดาวน์โหลดตัวติดตั้ง macOS แบบเต็มของเวอร์ชันที่กำหนดไปยัง/Applications
-
system_profiler- ดูข้อมูลระบบsystem_profilerโดยค่าเริ่มต้นจะแสดงข้อมูลระบบทั้งหมดที่สามารถใช้งานได้ ซึ่งโดยมากมีปริมาณมากsystem_profiler <datatype>แสดงเฉพาะข้อมูลของระบบย่อยที่กำหนดsystem_profiler -listDataTypesแสดงรายการระบบย่อยทั้งหมดที่สามารถดึงข้อมูลได้- data type ที่มีประโยชน์มีดังนี้
system_profiler SPHardwareDataType: แสดงภาพรวมฮาร์ดแวร์ของ Mac ปัจจุบัน ชื่อรุ่น และหมายเลขซีเรียลsystem_profiler SPSoftwareDataType: แสดงภาพรวมซอฟต์แวร์ของ Mac ปัจจุบันและหมายเลขเวอร์ชัน macOS แบบละเอียดsystem_profiler SPPowerDataType: แสดงข้อมูลพลังงานและแบตเตอรี่ รวมถึงปริมาณไฟ AC ปัจจุบันและจำนวนรอบการชาร์จแบตเตอรี่system_profiler SPDeveloperToolsDataType: แสดงเครื่องมือพัฒนา Xcode ที่เปิดใช้งานอยู่ในปัจจุบันและเวอร์ชัน SDK
5 ความคิดเห็น
คำสั่ง Terminal ขั้นสูงบน MacBook ที่มีประโยชน์ในชีวิตประจำวัน (สำหรับผู้ใช้ทั่วไป)
https://www.youtube.com/watch?v=EhiqpFtmjig
คำสั่ง CLI ขั้นสูงของ macOS
ผมเคยสรุปบทความเดียวกันนี้แล้วโพสต์ไว้เมื่อ 7 เดือนก่อน แต่สรุปฝั่งนี้น่าอ่านกว่าจริง ๆ.. T_T
ย่อประมาณนี้ก็เข้าใจได้ไม่ยากอยู่แล้ว เลยรู้สึกว่าดีกว่าด้วยครับ ฮ่า
ไม่ใช่อย่างนั้นหรอก......ฮ่าๆ
ความเห็นจาก Hacker News
ถ้าใช้ sips กับ iconutil ร่วมกัน ก็สามารถสร้างไฟล์
.icnsสำหรับแอปจาก PNG ขนาด 1024×1024 เพียงไฟล์เดียวได้โดยไม่ต้องพึ่งเครื่องมือจากภายนอกสร้าง iconset ด้วย
mkdir MyIcon.iconsetจากนั้นใช้sips -zเพื่อสร้างไฟล์ขนาด 16/32/128/256/512 และไฟล์@2xแล้วรันiconutil -c icns MyIcon.iconsetเพิ่มเติมคือสามารถสร้าง
.icoได้ด้วยffmpeg -i MyIcon.iconset/icon_256x256.png icon.icoแต่ก็ยังสงสัยว่า ด้วยวิธีที่
sipsย่อ PNG นั้น การสร้างเวอร์ชัน 16px ตรงจาก 1024px จะดีกว่า หรือค่อย ๆ ย่อลงทีละขั้นจาก 32px จะดีกว่ากันcpได้qlmanage -t -s 1024x1024 -o MyIcon.iconset/Icon1024.png icon.svgแต่พอไปดูไอคอนระบบของ macOS แล้ว ดูเหมือนสมัยนี้จะไม่ได้ปรับด้วยมือกันอีกแล้ว
ชอบ pbcopy และ pbpaste ในรายการนี้เป็นพิเศษ
เวลาจัดการ JSON แบบบีบอัด แค่ไปที่ iTerm แล้วรัน
pbpaste | json_pp | pbcopyก็จะได้ผลลัพธ์ที่จัดรูปแบบเรียบร้อยกลับเข้าไปอยู่ในคลิปบอร์ด สะดวกมากpbpaste | something | pbcopyบ่อยจนคุ้มจะทำเป็น shell functionใช้ได้ประมาณ
pbfilter json_pp,pbfilter base64 -d,pbfilter sed 's/this/that/'ถ้ารันแค่
pbfilterโดยไม่ใส่อาร์กิวเมนต์ มันก็ทำงานเป็นตัวกรองที่ลบการจัดรูปแบบออกจากคลิปบอร์ดและเหลือไว้เฉพาะ plain text ได้ด้วยแต่จะใช้กับ alias, pipeline หรือ expression ที่ซับซ้อนไม่ได้ และคำสั่งฟิลเตอร์ต้องเป็นคำสั่งปกติหรือฟังก์ชันพร้อมอาร์กิวเมนต์เท่านั้น
ตัวอย่างเช่น บรรทัดว่างซ้อนที่เกิดจากการคัดลอก/วางแบบ Windows สามารถจัดการได้ด้วย
alias winlines="sed '/^$/{$!{N;s/\n//;};}'"และalias pbw="pbpaste | winlines | pbcopy"บน Linux ก็เลียนแบบ macOS ได้คล้าย ๆ กันด้วย
alias pbcopy='xsel --clipboard --input',alias pbpaste='xsel --clipboard --output'บน X11 มี
xclip[0] ส่วนบน Wayland มีwl-clipboard[1] และทั้งคู่รองรับไฟล์ไบนารีผ่านการพาร์ส header หรือการตั้งค่า MIME type แบบชัดเจนทำให้สามารถคัดลอกรูปภาพจากเทอร์มินัลไปวางในโปรแกรม GUI อย่างเบราว์เซอร์หรือแชตไคลเอนต์ได้ หรือจะทำกลับกันก็ได้ และยังมีประโยชน์กับ shell script สำหรับงาน desktop automation ด้วย
บน macOS จำเป็นต้องอ้อมไปเรียก AppleScript ผ่าน
osascriptแล้วใช้set the clipboard to...[0] https://github.com/astrand/xclip
[1] https://github.com/bugaevc/wl-clipboard
ถ้าคัดลอกข้อความบนโทรศัพท์ ก็สามารถดึงมาใช้ในบรรทัดคำสั่งของ Mac ได้ทันทีด้วย
pbpastepbpaste | vipe | pbcopyโดย vipe คือยูทิลิตีที่แทรกตัวแก้ไขข้อความ ซึ่งปกติก็คือ vim ไว้กลาง pipe และดูได้ที่ https://joeyh.name/code/moreutils/
แม้จะไม่ใช่เครื่องมือบรรทัดคำสั่ง แต่ Network Link Conditioner ก็ดีมากจริง ๆ
มันสามารถจำลองเครือข่ายที่แย่มากได้ โดยใส่ค่าหน่วงเวลา แบนด์วิดท์ การสูญหายของแพ็กเก็ต ฯลฯ จึงมีประโยชน์มากสำหรับการทดสอบ
แม้แต่ในการประชุมที่บังคับให้เปิดกล้อง ก็ยังสามารถจงใจทำให้การเชื่อมต่อแย่จนภาพแตกเป็นบล็อกและเสียงเป็นหุ่นยนต์ แล้วพอทุกคนบอกให้ปิดวิดีโอ ก็ทำให้กลับมาปกติได้แบบ “มหัศจรรย์”
https://developer.apple.com/download/all/
https://tldp.org/HOWTO/Traffic-Control-HOWTO/components.html
มันตั้งกฎเพื่อหน่วงแพ็กเก็ตหรือทิ้งแพ็กเก็ตตามสัดส่วนที่กำหนดไว้ในโปรไฟล์
บน macOS ถ้าใช้
dnctlและpfctlก็สามารถทำงานคล้ายกันได้ และยังทำได้มากกว่านั้นด้วยต้องพูดถึง afplay สำหรับเล่นเสียงด้วย
ใช้มันทำเครื่องเล่น MP3 บนบรรทัดคำสั่งแบบง่าย ๆ ได้
ยังมียูทิลิตี
sayสำหรับสังเคราะห์เสียงพูดด้วย ซึ่งรองรับรูปแบบ TUNE ทำให้ปรับเมโลดีกับจังหวะเวลาของการพูดทั้งประโยคได้ และทำให้ฟังดูเหมือนมีอารมณ์ร่วมApple's Speech Synthesis Programming Guide อยู่ที่ https://josh8.com/blog/img/speech-synthesis.pdf และมีบทความที่เกี่ยวข้องสรุปไว้ที่ https://josh8.com/blog/commandline-audio-mac.html
เสียงสังเคราะห์รุ่นสุดท้ายที่รองรับมันคือเสียง Alex ที่รวมมาในปี 2007 และดูแล้วแทบไม่มีโอกาสได้เห็นมันกลับมาอีก
การควบคุมการสังเคราะห์อย่างละเอียดกับความเป็นธรรมชาตินั้นมีความตึงเครียดกันโดยเนื้อแท้ และอย่างหลังมีคุณค่ามากกว่ามาก
say -v '?'ถ้าอยากเพิ่มสมาธิในการทำงานหรือใช้ตอนพรีเซนต์ ก็ซ่อนไอคอนและโฟลเดอร์ทั้งหมดบนเดสก์ท็อปได้
รัน
defaults write com.apple.finder CreateDesktop 0แล้วตามด้วยkillall Finderก็จะซ่อน และเปลี่ยนค่าเป็น1ก็จะแสดงกลับมามี bash alias สำหรับสลับค่านี้ไว้แล้ว และ gist อยู่ที่ https://gist.github.com/berndverst/6f58c0d6aedddb6c06c23e57d...
ถึงอย่างนั้นก็ยังใช้
~/Desktopบ่อยมาก จนเป็นหนึ่งในสองโฟลเดอร์ที่ปักไว้ใน Dock อีกอันคือ~/Downloadsอีกด้านหนึ่ง การที่ macOS ใส่ Stacks มาให้บนเดสก์ท็อปนั้นยอดเยี่ยมมาก และเป็นฟีเจอร์ที่ชอบแนะนำให้คนที่ปล่อยเดสก์ท็อปรกไปด้วยไฟล์ใช้เสมอ
เอาไปรวมกับการตั้งค่าอื่น ๆ ที่น่าจะต้องใช้ในสถานการณ์พรีเซนต์ก็ดีมาก
เป็นลิสต์ที่ดี และยังมี hidutil ด้วย
https://developer.apple.com/library/archive/technotes/tn2450...
ตัวอย่างเช่น บนคีย์บอร์ด PC สามารถเอาปุ่ม
Insที่แทบไม่มีประโยชน์อะไรบน macOS ไปเปลี่ยนเป็นคีย์อย่างPC Executeแล้วให้ Keyboard Maestro จับไป remap ต่อได้hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000035}]}'เพื่อเปลี่ยนปุ่มparagraphมุมซ้ายบนของคีย์บอร์ดแบบยุโรปให้เป็น backtick ที่ใช้งานได้มากกว่าhttps://hidutil-generator.netlify.app/
เช่น ใช้
hdiutil detach /Volumes/some-usb-driveเพื่อถอดไดรฟ์ USB หรือใช้hdiutil makehybrid -joliet -o foo.iso ./srcfolder/เพื่อสร้าง ISO ได้เมื่อหลายปีก่อน ตอนทำสคริปต์ไว้ค้นหาอะไรบางอย่างในก้อนข้อมูลขนาดใหญ่และให้แจ้งเมื่อเสร็จ ผมเคยใส่คำสั่ง say ไว้ท้ายสคริปต์
แล้วดันลืมเรื่องนั้นไปและเผลอหลับ พออีกไม่กี่ชั่วโมงต่อมาก็สะดุ้งตื่นเพราะได้ยินเสียงจากห้องทำงานที่บ้าน ฟังเหมือน “ผู้บุกรุก” กำลังพูดกับผู้สมรู้ร่วมคิด ก่อนจะโล่งอกมากเมื่อรู้ว่าเกิดอะไรขึ้น
pushที่รับหัวข้อและเนื้อหาเสริมแบบเลือกใส่ได้ใช้งานสะดวกมากในแบบ
./longRunningCommand && push "Task Done" "Here is a body"และยังใช้คู่กับสคริปต์beepที่มีไว้ส่งเสียงแจ้งเมื่อทำงานเสร็จตอนที่ผมนั่งอยู่หน้าคอมด้วยsayได้หลังจากเจาะเข้าเครื่องแล้วไม่เคยเห็นใครใช้จริง แต่ก็แอบหวังว่าสักวันจะได้เห็น Twitter thread ที่เปิดมาด้วยประโยคว่า “ผมใช้โมดูล msf ที่เรียก
sayบนโน้ตบุ๊กของลูกค้า”ผมเลยเพิ่มสคริปต์แจ้งเมื่อคำสั่ง fish ทำงานเสร็จ โดยให้
afplayส่งเสียงบี๊บถ้างานนั้นใช้เวลา เกิน 5 วินาทีมันช่วยดึงสมาธิกลับมาได้ดีกับงานที่ “นานพอจะลืมได้พอดี”
ยูทิลิตีบรรทัดคำสั่ง diskutil ของ macOS ก็ควรได้รับคำชมเหมือนกัน
วันนี้ผมมีปัญหากับบาง slice ของดิสก์ ซึ่ง Disk Utility แบบกราฟิกของ macOS แก้ไม่ได้ และมันเป็นเศษตกค้างจากตอนเคยลองเล่น Asahi Linux ไว้ก่อนหน้านี้
ผมคิดว่าน่าจะมีวิธีแก้ด้วย
diskutilCLI และก็ไปเจอคำตอบในเธรดนี้https://apple.stackexchange.com/questions/411544/cant-reclai...
ตอนนี้ก็เอาพื้นที่ทั้งดิสก์กลับมาใช้กับ macOS ได้อีกครั้งแล้ว
diskutilยอดเยี่ยมมาก แต่สภาพของ Disk Utility.app นี่น่าเศร้าจริง ๆหลังการเปลี่ยนไปใช้ APFS มันเหมือนไม่ได้รับการดูแลที่ดีพอ และมีกรณีที่
diskutilทำได้ แต่แอป GUI กลับล้มเหลวโดยสิ้นเชิงก่อนจะถูกออกแบบหน้าตาใหม่ มันเป็นเครื่องมือที่แข็งแรงและอย่างน้อยก็บอกเหตุผลได้เมื่อทำงานไม่สำเร็จ แต่ตอนนี้มันกลายเป็นอินเทอร์เฟซแบบ LEGO Duplo สำหรับเด็ก ที่พอทำได้แค่ฟอร์แมตแฟลชไดรฟ์เท่านั้น
ถ้าจำคำสั่งหรือพารามิเตอร์ไม่ได้ um ก็น่าลองใช้เช่นกัน
https://github.com/promptops/cli
ตัวอย่างเช่น ถ้าพิมพ์
um prevent my mac from sleeping for 30mก็จะได้ผลลัพธ์ประมาณcaffeinate -u -t 1800open เป็นคำสั่งที่เรียบง่ายและดี ซึ่งใช้อยู่ตลอด
ตั้งไว้เป็น
alias tab='open . -a iterm',alias phpstorm='open -a "PhpStorm"',alias smerge='open -a "Sublime Merge"'แล้วใช้งานบ่อยกว่ากล่องโต้ตอบ Open/Recents ของแต่ละแอปเสียอีกopen -a ...ให้ความรู้สึกแย่มาหลายปีแล้ว เพราะ Apple ไม่อัปเดต definition สำหรับการเติมคำสั่งมีเขียนวิธีเลี่ยงไว้ในคำตอบนี้บน Stack Overflow: https://stackoverflow.com/a/63097652
-nอยู่ด้วยมันช่วยให้รันแอปพลิเคชันเดียวกันได้ หลายอินสแตนซ์ ซึ่งเมื่อก่อนเป็นยูทิลิตีที่ใช้บ่อยที่สุดอย่างหนึ่งสำหรับผม
ทุกวันนี้ใช้ไม่บ่อยแล้ว เพราะแอปที่มีปัญหาด้านการออกแบบร้ายแรงระดับนั้นมีน้อยลง
ใช้
/Applications/Sublime Merge.app/Contents/SharedSupport/bin/smergeและ/Applications/Sublime Text.app/Contents/SharedSupport/bin/sublได้https://github.com/davatorium/rofi
หน้าตาเป็นแบบนี้: https://i.imgur.com/Hm9TGeV.jpg
ในเทอร์มินัลของ VS Code ถ้าใช้ alias
oก็จะเปิดจากตำแหน่งปัจจุบัน และจากตรงนั้นสามารถค้นหาไฟล์แล้วเปิดใน editor ได้alias finder='open .'