เคล็ดลับบรรทัดคำสั่ง OS X ที่จำเป็น 10 ประการสำหรับผู้ใช้ระดับสูง

สำหรับผู้ใช้ทั่วไปส่วนใหญ่บรรทัดคำสั่ง OS X ซึ่งเข้าถึงได้ผ่านแอป Terminal นั้นอย่างน้อยก็มืดมนและน่ากลัวพอ ๆ กับพรอมต์คำสั่งของ Windows ที่จะใช้ในช่วงเวลาที่มีความทุกข์ยากเท่านั้น สำหรับผู้ใช้เหล่านั้นมักเกิดขึ้นเมื่อมีบางอย่างผิดปกติอย่างลึกลับและการพิมพ์คำสั่งที่เป็นความลับในพรอมต์ดูเหมือนจะเป็นความหวังเดียวในการรักษา แน่นอนว่าเป็นไปได้มากว่าพวกเขากำลังรีสตาร์ทlaunchdบริการหรือลบplistไฟล์

สำหรับผู้ที่คุ้นเคยกับ Unix เชลล์บรรทัดคำสั่งหรือเทอร์มินัลเป็นเครื่องมือที่มีประสิทธิภาพที่จะใช้เพื่ออำนวยความสะดวกในการทำงานของระบบและการโต้ตอบต่างๆ เนื่องจาก OS X สร้างขึ้นจากแกน BSD คุณจึงสามารถนำ one-liners ที่หรูหราและข้ามเครื่องมือ GUI ที่ยุ่งยากไปทำสิ่งง่ายๆเช่นการเดินแผนผังไดเรกทอรีลบไฟล์ทุกไฟล์ที่เก่ากว่า 30 วันหรือดึงรายการไฟล์เข้ามา ไดเร็กทอรีปัจจุบันที่มีสตริงข้อความเฉพาะ แม้ว่าอินเทอร์เฟซแบบกราฟิกสามารถลดความซับซ้อนของงานต่างๆได้ แต่ก็สามารถทำให้งานอื่น ๆ ซับซ้อนได้ - และบรรทัดคำสั่งก็มาช่วย

OS X มีอัญมณีที่ซ่อนอยู่ซึ่งแม้แต่ผู้ใช้ระดับสูงก็อาจไม่รู้ นี่คือรายการยูทิลิตี้ที่มีประโยชน์ 10 รายการที่ช่วยให้คุณใช้งานฟังก์ชันต่างๆบน Mac ได้จากบรรทัดคำสั่ง คุณควรพบว่าสิ่งเหล่านี้มีประโยชน์และอย่างน้อยหนึ่งกรณีก็ให้ความบันเทิง

1. pbcopyและpbpaste: คัดลอกและวางไปยัง / จากคลิปบอร์ด

pbcopyและpbtasteสาธารณูปโภคทำงานในคอนเสิร์ตที่ช่วยให้การเข้าถึงและการออกจากระบบ clipboards / pasteboards จากบรรทัดคำสั่ง ตัวอย่างเช่นหากคุณต้องการแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีที่ขึ้นต้นด้วยตัวอักษร "f" และใส่รายการนั้นลงในคลิปบอร์ดคุณต้องพิมพ์สิ่งต่อไปนี้:

$ ls f* | pbcopy

Boom - จากนั้นสามารถวางเอาต์พุตนั้นลงในแอป GUI ใดก็ได้

Converse ทำงานได้ตามที่คุณคาดหวัง หากคุณมีรายการไฟล์ดังกล่าวในคลิปบอร์ดจากแอพอื่นคุณสามารถดำเนินการได้ในบรรทัดคำสั่งโดยใช้pbpaste:

$ pbpaste | grep foo

มันจะใช้คำสั่งที่จะดึงเฉพาะเส้นที่มีสตริงgrepfoo

หากงานของคุณนำคุณเข้าสู่บรรทัดคำสั่งร่วมกับแอป GUI คำสั่งทั้งสองนี้มีประโยชน์อย่างแน่นอน

2. rsync: ซิงโครไนซ์ไฟล์หรือไดเรกทอรี

rsyncยูทิลิตี้สามารถประสานต้นไม้ไดเรกทอรีระหว่างโฟลเดอร์บนระบบเดียวกันหรือระหว่างโฟลเดอร์ในท้องถิ่นและระบบระยะไกล มันมีประโยชน์อย่างมากและเป็นป้อมปราการของไอทีมาหลายปี มันรวมอยู่ใน OS X ด้วย

หากคุณจำเป็นต้องทำให้แผนผังไดเร็กทอรีสองต้นเหมือนกันการใช้rsyncระบบโลคัลเป็นเรื่องเล็กน้อย:

$ rsync -av /path/to/directory1/ /path/to/directory/2/

สิ่งนี้จะทำให้แน่ใจว่าไฟล์ใด ๆ และทั้งหมดใน / path / to / directory1 / มีอยู่ใน / path / to / directory2 / หากคุณต้องการทำให้ไดเร็กทอรีเหมือนกันทุกประการคุณจะต้องสั่งrsyncให้ลบไฟล์ใน / path / to / directory2 / ที่ไม่มีอยู่ใน / path / to / directory1 /:

$ rsync -av --delete /path/to/directory1/ /path/to/directory2/

หากคุณไม่ต้องการให้ไฟล์อยู่ในรายการระหว่างการซิงโครไนซ์ให้ลบvแฟล็ก:

$ rsync -a --delete /path/to/directory1/ /path/to/directory2/

หรือหากคุณต้องการดูว่าไฟล์ใดจะถูกคัดลอกหรือลบให้เพิ่มn:

$ rsync -avn --delete /path/to/directory1/ /path/to/directory2/

คุณยังสามารถใช้rsyncระหว่างระบบต่างๆได้ตราบเท่าที่ระบบรีโมตได้rsyncติดตั้งและใช้งาน SSH:

$ rsync -av --delete /path/to/directory1/ [email protected]:/path/to/directory1/

โปรดทราบว่าเครื่องหมายทับมีความสำคัญที่นี่ บ่งชี้ว่าrsyncเป็นการอ่านไฟล์ภายในไดเร็กทอรีต้นทางและซิงโครไนซ์ภายในไดเร็กทอรีปลายทาง ละเว้นเครื่องหมายทับและrsyncจะคัดลอก (ต่อท้าย) ไดเร็กทอรีต้นทางไปยังไดเร็กทอรีปลายทางสร้างระดับไดเร็กทอรีเพิ่มเติมที่คุณอาจไม่ได้ตั้งใจ

ในการเปิดใช้งานการเข้าถึง SSH บน Mac ให้เปิดการตั้งค่าระบบไปที่การแชร์และเลือกการเข้าสู่ระบบระยะไกล จากนั้นคุณจะสามารถrsyncใช้ Mac ผ่าน SSH หรือใช้ SSH เพื่อเชื่อมต่อกับเชลล์บนระบบ

3. ditto: คัดลอกหรือรวมไดเรกทอรีหรือที่เก็บถาวร

dittoคำสั่งเผิน ๆ คล้ายกับrsyncแต่ในความเป็นจริงมันเป็นเครื่องมือที่แตกต่างกันมาก มันรวมอยู่ใน OS X มาระยะหนึ่งแล้ว แต่ก็ยังไม่เป็นที่รู้จักนัก

เช่น rsync, dittoสามารถใช้ในการคัดลอกต้นไม้ไดเรกทอรีรักษาสิทธิ์ความเป็นเจ้าของและเมตาดาต้า ดังนั้น:

$ ditto /path/to/source /path/to/destination

หากไม่มีไดเร็กทอรีปลายทางdittoจะสร้างสำเนาของไดเร็กทอรีต้นทางที่นั่น หากมีไดเร็กทอรีปลายทางdittoจะรวมไดเร็กทอรีต้นทางกับปลายทางโดยเขียนทับชื่อไฟล์ที่ซ้ำกัน ตัวอย่างเช่นคุณสามารถใช้dittoเพื่อรวมเนื้อหาของไดเร็กทอรีรูปภาพขนาดใหญ่สองไดเร็กทอรีไว้ในโครงสร้างไดเร็กทอรีที่ซ้อนกัน

แต่dittoไปไกลกว่านั้นเนื่องจากสามารถสร้างแยกและจัดการ CPIO (คัดลอกเข้าคัดลอกออก) และไฟล์เก็บถาวร Zip คุณสามารถระบุเอกสารรายการวัสดุ (บอม) ที่dittoจะใช้คัดลอกหรือรวมแบบคัดสรรdittoละเว้นข้อมูลเมตาระหว่างการคัดลอกไฟล์หรือแม้กระทั่งสั่งdittoให้ลดไบนารีสากลเป็นสถาปัตยกรรมเฉพาะระหว่างการดำเนินการ

dittoยูทิลิตี้เป็นเครื่องมือที่ค่อนข้างซับซ้อนที่สามารถเป็นประโยชน์มากเมื่อใช้อย่างถูกต้อง แต่ก็ยังสามารถใช้การทดลองบางอย่างที่จะเข้าใจ

4. tmutil: สำรองและกู้คืนด้วย Time Machine

คุณสมบัติ Time Machine ของ Apple มีประโยชน์อย่างมากในการจัดหาวิธีการสำรองข้อมูลคอมพิวเตอร์ไปยังไดรฟ์ภายนอกเช่น NAS หรือไดรฟ์ USB กล่าวได้ว่าอินเทอร์เฟซ“ Star Wars” อาจยุ่งยากเมื่อผู้ใช้ระดับสูงพยายามนำทางข้อมูลสำรองและการควบคุมใน System Preferences ค่อนข้างเป็นแบบ Spartan

โชคดีที่tmutilมีไว้เพื่อเติมเต็มช่องว่างเมื่อคุณต้องการ

ตัวอย่างเช่นในขณะที่ Time Machine GUI จะแสดงข้อมูลสำรองล่าสุดหากคุณต้องการแสดงการสำรองข้อมูลทั้งหมดที่มีให้เรียกใช้สิ่งต่อไปนี้:

$ tmutil listbackups

คุณจะเห็นรายการข้อมูลสำรองที่สามารถเข้าถึงได้ทั้งหมดของระบบปัจจุบัน หากต้องการดูข้อมูลสำรองล่าสุดให้ป้อนข้อมูลต่อไปนี้:

$ tmutil latestbackup

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

โดยทั่วไปทั้งหมดของงานที่เกี่ยวข้องกับการสำรองข้อมูลที่ผู้ใช้ไฟฟ้าจะหายไปใน GUI tmutilที่อยู่ใน หากคุณตกอยู่ในความคับแค้นและต้องการเจาะลึกการสำรองข้อมูลเพื่อแก้ไขบางสิ่งบางอย่างอาจช่วยชีวิตได้

5. fs_usage: แสดงกิจกรรมระบบไฟล์

หากคุณเคยอยู่ในตำแหน่งที่ดิสก์ของคุณกำลังกระแทกและคุณต้องการดูบรรทัดคำสั่งอย่างรวดเร็วว่ากระบวนการของระบบใดที่ทำให้เกิดความวุ่นวายfs_usageคุณต้องถอยกลับ เครื่องมือนี้ให้สตรีมข้อมูลแบบเรียลไทม์อย่างต่อเนื่องว่ากระบวนการใดกำลังเข้าถึงระบบไฟล์

โดยค่าเริ่มต้นจะfs_usageยกเว้นกระบวนการบางอย่างจากเอาต์พุตรวมถึง Terminal และ Secure Shell ( sshd) คุณสามารถเรียกใช้fs_usageใน Terminal ดังนี้:

$ sudo fs_usage

หากคุณใช้แอปพลิเคชันเทอร์มินัลอื่นคุณจะต้องยกเว้นจากเอาต์พุตด้วย-eสวิตช์:

$ sudo fs_usage -e iTerm

ข้างต้นจะยกเว้นทั้งสองfs_usageและแอป iTerm จากผลลัพธ์

นอกเหนือจากการให้มุมมองทั้งระบบแล้วfs_usageยังสามารถกำหนดโปรไฟล์กระบวนการแต่ละกระบวนการเช่น Google Chrome:

$ sudo fs_usage "Google Chrome"

6.  drutilและhdiutil: เบิร์นซีดีและดีวีดีและจัดการกับดิสก์อิมเมจ

หากคุณเคยต้องการเขียนดีวีดีข้อมูลหรือซีดีเพลงอย่างรวดเร็วและง่ายดายdrutilเหมาะสำหรับคุณ ด้วยวิธีนี้คุณสามารถเบิร์นแผนผังไดเรกทอรีลงในซีดีด้วยบรรทัดเดียว:

$ drutil burn /path/to/folder

หากคุณต้องการเบิร์นซีดีเพลงเพียงแค่อ้างอิงไดเร็กทอรีที่เต็มไปด้วยไฟล์เสียง:

$ drutil burn -audio /path/to/folder

ยูทิลิตี้นี้ยังมีประโยชน์สำหรับการลบสื่อ CD-RW ด้วยeraseคำสั่ง ( drutil erase /path/to/folder) ด้วยbulkeraseคำสั่งนี้จะลบดิสก์ CD-RW นำออกและรอให้ใส่แผ่นอื่นจากนั้นล้างและทำซ้ำ

hdiutilยูทิลิตี้ที่เกี่ยวข้องบ้างในการที่hdiutilจะใช้ในการจัดการภาพดิสก์ คุณสามารถใช้hdiutilสร้างอิมเมจดิสก์ของ Apple (นั่นคือไฟล์ DMG) จากเส้นทางไดเร็กทอรี:

$ hdiutil create -srcfolder /path/to/files/ myfiles.dmg

ใน El Capitan คุณสามารถเบิร์นอิมเมจ ISO ลงซีดีด้วยคำสั่งต่อไปนี้:

$ hdiutil burn /path/to/file.iso

hdiutilยูทิลิตี้ที่มีฟังก์ชั่นอื่น ๆ อีกมากมายเช่นกันเช่นการติดตั้งและ unmounting ภาพการแปลงรูปแบบภาพการสร้างภาพการเข้ารหัสและการตรวจสอบภาพ

7. system_profiler: รายงานข้อมูลระบบ

เมื่อแก้ไขปัญหาหรือตรวจสอบระบบคุณสามารถรับรายงานข้อมูลที่เกี่ยวข้องทั้งหมดเกี่ยวกับฮาร์ดแวร์และซอฟต์แวร์ที่ใช้งานได้ นั่นคือสิ่งที่system_profilerทำและส่งออกรายงานเป็นไฟล์ข้อความเพื่อให้อ่านง่าย

สำหรับวัตถุประสงค์ส่วนใหญ่รายงานพื้นฐานเพียงพอแล้ว:

$ system_profiler -detailLevel basic > report.txt

สิ่งนี้จะให้ข้อมูลมากมายในระบบตั้งแต่พื้นฐานเช่น CPU, RAM, กราฟิกและที่เก็บข้อมูลไปจนถึงหมายเลขซีเรียล, UUID ของฮาร์ดแวร์, ข้อมูลเครือข่าย, ประชากรสล็อต RAM, รายละเอียดเครือข่าย, ข้อมูลพลังงาน, ซอฟต์แวร์เครื่องพิมพ์, USB, Thunderbolt และ ข้อมูลสำรองของ Time Machine

เป็นร้านค้าครบวงจรสำหรับข้อมูลทั้งหมดที่คุณอาจต้องการบน Mac เครื่องใดเครื่องหนึ่ง สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อพยายามแก้ไขปัญหาเกี่ยวกับระบบระยะไกลที่คุณไม่สามารถเข้าถึงได้เช่นเมื่อแม่หรือพ่อโทรหาด้วยปัญหาที่อธิบายไม่ได้

8. tar, gzip, bzip2และzip: สร้างและเปิดบีบอัดที่เก็บ

ในโลก Unix tar(ย่อมาจาก "tape archive") เดิมใช้เพื่อคัดลอกไฟล์ไปยังเทปสำรองข้อมูลในรูปแบบมาตรฐาน

วันนี้เราไม่ได้ใช้tarในลักษณะเดียวกันอีกต่อไป เราใช้เพื่อสร้างที่เก็บถาวรของไฟล์หรือไดเรกทอรีแต่ละรายการ การจ้างงานควบคู่ไปกับเครื่องมือการบีบอัดgzipและbzip2, tarช่วยให้เราสร้างคลังบีบอัดไฟล์ ผลลัพธ์จะคล้ายกับไฟล์เก็บถาวร Zip ซึ่งใช้กับ Mac, Windows และแพลตฟอร์มอื่น ๆ

ในการสร้างไฟล์ gzipped tarของไดเร็กทอรีเราอาจเรียกใช้:

$ tar zcpf myfiles.tgz /path/to/files

สิ่งนี้จะสร้าง myfile.tgz ซึ่งเป็นไฟล์เก็บถาวร tar gzipped ของไฟล์ทั้งหมดในพา ธ ที่อ้างอิง หากต้องการใช้bzip2เราอาจได้รับไฟล์เก็บถาวรขนาดเล็กลง แต่อาจใช้เวลาบีบอัดและคลายการบีบอัดนานขึ้น:

$ tar jcpf myfiles.tbz /path/to/files

และเราสามารถใช้ Zip ปกติได้ตลอดเวลา:

$ zip –r myfiles.zip /path/to/files

ในการเปิดไฟล์ tar gzipped เราเรียกใช้คำสั่งนี้:

$ tar zxf myfiles.tgz

ในการเปิดbzip2ไฟล์เก็บถาวรbzipped ( ) คำสั่งมีดังต่อไปนี้:

$ tar jxf myfiles.tbz

และสำหรับไฟล์เก็บถาวร Zip คำสั่งคือunzip:

$ unzip myfiles.zip

คุณอาจได้รับระยะทางที่ดีขึ้นtarและgzipหรือbzip2มากกว่าzipสำหรับไฟล์บางประเภท แต่ขอเตือนว่าผู้ใช้ Windows จะไม่สามารถเปิดไฟล์เก็บถาวรได้หากไม่มีซอฟต์แวร์เฉพาะในขณะที่ไฟล์ Zip จะเปิดโดยอัตโนมัติใน Windows เวอร์ชันใหม่

9. mdfind: ทำการค้นหา Spotlight ที่มีประสิทธิภาพ

OS X มีการค้นหา Spotlight มาหลายปีแล้ว Spotlight ทำดัชนีไฟล์บนดิสก์ของคุณและช่วยให้สามารถค้นหาขั้นสูงโดยใช้ข้อมูลเมตาประเภทไฟล์เนื้อหาไฟล์และอื่น ๆ โชคดีที่การค้นหา Spotlight มีอยู่ในบรรทัดคำสั่งผ่านmdfind.

วิธีนี้ทำงานเหมือนกับเครื่องมือ Spotlight ใน Finder แต่มีความยืดหยุ่นมากกว่าในประเภทการค้นหาและจะส่งคืนข้อมูลทั้งหมดที่พบ ตัวอย่างเช่นคำสั่งต่อไปนี้จะส่งคืนทุกอย่างที่จัดทำดัชนีโดย Spotlight ที่มีคีย์เวิร์ดfoobar:

$ mdfind "foobar"

คุณสามารถค้นหาข้อมูลเมตาทั้งหมดได้เช่นกันเช่นประเภทไฟล์:

$ mdfind "kMDItemContentType == 'com.microsoft.word.doc'"

คุณสามารถค้นหาตามประเภทไฟล์ด้วยคีย์เวิร์ด:

$ mdfind "kind:pdf Bread cheese salami"

คุณยังสามารถค้นหาตามกรอบเวลา:

$ mdfind -onlyin ./tmp/ 'kMDItemFSContentChangeDate >= $time.today(-2)'

GUI การค้นหา Spotlight นั้นมีประโยชน์อย่างแน่นอนสำหรับการค้นหาแบบง่ายๆ แต่ถ้าคุณพยายามที่จะกำจัดพื้นที่เก็บข้อมูลของคุณจริงๆmdfindอาจเป็นทางออกที่ดีกว่า

10. say: ให้ Mac ของคุณอ่านไฟล์ให้คุณ

sayคำสั่งจะมีประโยชน์สำหรับผู้ที่ต้องการความช่วยเหลือเสียงเนื่องจากความพิการ แต่ก็ยังสามารถเป็นจำนวนมากสนุก เครื่องมือนี้ทำในสิ่งที่คุณคาดหวัง: แปลข้อความเป็นคำพูด พื้นฐานที่สุดมันใช้งานง่ายมาก:

$ say "Hello world"

คุณจะได้รับเสียงของหุ่นยนต์ที่พูดว่า“ สวัสดีชาวโลก” อย่างไรก็ตามมันไม่ได้หยุดเพียงแค่นั้น มีเสียงให้เลือก 64 เสียงในหลากหลายภาษา ในบางเสียงต่างประเทศข้อความภาษาอังกฤษจะถูกเปล่งออกมาโดยประมาณว่าผู้พูดสำเนียงภาษาอังกฤษของภาษานั้น ๆ คุณสามารถดูรายการเสียงทั้งหมดได้ด้วยคำสั่งนี้:

$ say -v ‘?’

เมื่อคุณตัดสินใจด้วยเสียงที่เหมาะสมแล้วคุณสามารถsayพูดอะไรก็ได้ในบรรทัดคำสั่งหรือในไฟล์ข้อความปกติ รวม--interactiveค่าสถานะและsayจะเน้นคำที่อ่านออกเสียง:

$ say -v Vicki -f myfile.txt --interactive

คุณยังสามารถกำหนดอัตราการอ่านข้อความและหากระบบปลายทางได้รับการกำหนดค่าอย่างเหมาะสมคุณสามารถsayอ่านข้อความย้อนกลับบนระบบระยะไกลได้

GUI ของ Mac ช่วยให้ทุกอย่างง่ายขึ้นและเป็นสถานที่ที่น่าใช้เวลาของคุณ แต่ Mac มีอะไรมากกว่าหน้าตาที่น่ารัก เมื่อ GUI ดูเหมือน จำกัด หรือช้าเกินไปคุณอาจพบว่าการเปิด Terminal ขึ้นมาง่ายขึ้นและแตะพลังของบรรทัดคำสั่ง นอกเหนือจากข้อมูลสำคัญ 10 ประการนี้แล้วโปรดดูความลับบรรทัดคำสั่ง 20 OS X ในบทความก่อนหน้านี้