Cách khởi chạy ứng dụng GUI từ Terminal
Tất cả chúng ta đều biết cách khởi chạy ứng dụng từ GUI bằng cách nhấp đúp vào biểu tượng hoặc nhấp vào ứng dụng trong Dock và có rất nhiều cách để thực hiện việc này và tất cả chúng đều tương đối nhanh. Tuy nhiên, nếu bạn dành nhiều thời gian cho dòng lệnh, thì thật tuyệt khi có thể khởi chạy các ứng dụng Mac trực tiếp từ đó. Ngoài ra, Terminal có khá nhiều ứng dụng chạy ở chế độ dựa trên văn bản, nhưng có thể bạn muốn chỉnh sửa tệp văn bản trong ứng dụng GUI của Mac OS X TextWrangler thay vì nano hoặc vim dựa trên văn bản.
Chúng tôi sẽ trình bày cách khởi chạy bất kỳ ứng dụng đồ họa nào của Mac từ dòng lệnh của MacOS X, bao gồm cách mở các tệp cụ thể từ dòng lệnh bằng ứng dụng GUI cũng như cách chỉnh sửa và mở những tệp có quyền truy cập root nếu cần.
Mở Ứng dụng Mac OS X từ Dòng lệnh
Lệnh Terminal để khởi chạy các ứng dụng gui MacOS được gọi một cách thích hợp là 'mở' và đây là cách nó hoạt động đơn giản nhất:
open -a Tên ứng dụng
Điều đó sẽ mở ứng dụng được xác định tên là “Tên ứng dụng”.
Nhưng mở mạnh hơn thế nhiều. Nếu bạn chỉ nhập 'open' tại dấu nhắc lệnh, thì bạn sẽ trả về tệp trợ giúp cơ bản với thông tin chi tiết về cách sử dụng lệnh đúng cách với nhiều cờ và cú pháp khác nhau.
Mặc dù lệnh mở tồn tại trong tất cả các phiên bản của Mac OS X, nhưng các khả năng có phần khác nhau tùy thuộc vào phiên bản MacOS / Mac OS X mà máy Mac đang chạy. Tuy nhiên, trong các bản phát hành hiện đại, đây là những gì bạn sẽ thấy:
$ open Cách sử dụng: mở Trợ giúp: Mở mở tệp từ trình bao. Theo mặc định, mở từng tệp bằng ứng dụng mặc định cho tệp đó. Nếu tệp ở dạng URL, tệp sẽ được mở dưới dạng URL. Tùy chọn: -a Mở bằng ứng dụng đã chỉ định. -b Mở với mã định danh gói ứng dụng được chỉ định. -e Mở bằng TextEdit. -t Mở với trình soạn thảo văn bản mặc định. -f Đọc đầu vào từ đầu vào tiêu chuẩn và mở bằng TextEdit. -F --fresh Khởi chạy ứng dụng mới, tức là không cần khôi phục cửa sổ. Trạng thái liên tục đã lưu bị mất, ngoại trừ các tài liệu không có tiêu đề. -R, --reveal Chọn trong Finder thay vì mở. -W, --wait-apps Chặn cho đến khi đóng các ứng dụng đã sử dụng (ngay cả khi chúng đang chạy). --args Tất cả các đối số còn lại được truyền trong argv tới hàm main() của ứng dụng thay vì được mở. -n, --new Mở một phiên bản mới của ứng dụng ngay cả khi một phiên bản đang chạy. -j, --hide Khởi chạy ứng dụng ẩn. -g, --background Không đưa ứng dụng lên nền trước.-h, --header Tìm kiếm các vị trí tệp tiêu đề cho các tiêu đề khớp với tên tệp đã cho và mở chúng.
Nói cách khác, cú pháp lệnh đơn giản ví dụ có thể giống như sau, mở “ApplicationName” với tệp nằm ở đường dẫn ‘/file/to/open’:
open -a Tên ứng dụng /file/to/open
Bạn sẽ lưu ý rằng bạn không cần đường dẫn đầy đủ tới tên ứng dụng, nhưng bạn sẽ cần đường dẫn đầy đủ tới tên tệp.
Cách sử dụng có thể tự giải thích cho những người có kinh nghiệm trong môi trường dòng lệnh, nhưng đối với những người mới sử dụng Terminal, đừng quá bối rối, nó rất dễ sử dụng và chúng tôi' sẽ giải thích. Ví dụ: nếu bạn muốn chỉnh sửa /etc/motd bằng TextWrangler để thay đổi Thông báo trong ngày của mình, nhưng bạn ghét các trình chỉnh sửa dòng lệnh nano và vi, đây là nội dung bạn sẽ nhập:
$ open -a TextWrangler /etc/motd
Bây giờ bạn có thể chỉnh sửa các tệp này trong GUI quen thuộc. open đủ thông minh để biết rằng khi bạn áp dụng cờ -a, bạn đang khởi chạy một ứng dụng nên bạn không cần nhập đường dẫn đầy đủ của nó. Rõ ràng là nó vẫn cần đường dẫn đầy đủ đến tệp bạn đang chỉnh sửa.
Có nhiều cách sử dụng khác cho lệnh mở thay vì chỉ chỉnh sửa tệp văn bản, vì vậy hãy sử dụng trí tưởng tượng của bạn và sáng tạo. open có thể đặc biệt hữu ích đối với các quản trị viên hệ thống sử dụng nó trong tập lệnh shell, có lẽ để khởi chạy một ứng dụng GUI cụ thể vào thời gian đã lên lịch.
Cũng đáng lưu ý là nếu bạn khởi chạy một ứng dụng có khoảng trắng trong tên của nó, bạn sẽ muốn thêm dấu gạch chéo ngược sau mỗi từ, mở Adobe Photoshop CS sẽ trông như thế này:
$ open -a Adobe\ Photoshop\ CS
Khởi chạy Ứng dụng GUI với quyền root từ Dòng lệnh
Bạn thậm chí có thể mở tệp bằng sudo bằng cách sử dụng lệnh open nếu bạn cần chỉnh sửa tệp với quyền root, ví dụ:
sudo open -a TextEdit /tmp/magicfile
Thao tác này sẽ khởi chạy tệp đích vào ứng dụng mong muốn với tư cách là người dùng root, cung cấp đầy đủ quyền root để chỉnh sửa và sửa đổi tệp, điều này khá hữu ích để chỉnh sửa nhiều tệp hệ thống. Tất nhiên, không sửa đổi bất kỳ tệp hệ thống nào nếu bạn không biết mình đang làm gì.
Tạo bí danh Shell cho các ứng dụng GUI được khởi chạy thường xuyên
Vì vậy, việc gõ đi gõ lại một lệnh đầy đủ hoặc gõ đi gõ lại tất cả các lệnh đó thật khó chịu phải không? Chà, hãy làm cho nó dễ dàng hơn bằng cách gán một bí danh cho một ứng dụng thường xuyên được khởi chạy. Chúng tôi sẽ lấy ứng dụng Adobe Photoshop đã nói ở trên làm ví dụ vì tên tệp dài, vì vậy đây là cách chúng tôi sẽ thực hiện việc này với trình bao Bash mặc định của Mac OS X:
Đầu tiên khởi chạy hồ sơ hoặc .bash_profile vào trình soạn thảo văn bản:
$ nano .profile
hoặc
$ open -e .profile
Bỏ qua bất kỳ thứ gì khác có thể có trong tệp này (nó cũng có thể trống), hãy thêm phần sau vào một dòng mới:
"alias photoshop=open -a Adobe\ Photoshop\ CS"
Điều này tạo ra một bí danh, để lệnh “open -a Adobe\ Photoshop CS” hiện được rút ngắn thành 'photoshop'. Lưu .profile và bạn đã sẵn sàng! Bạn có thể sử dụng lệnh bí danh kết hợp với mở cho hầu như mọi thứ, chỉ cần đảm bảo chọn một bí danh cho lệnh chưa tồn tại.
Lệnh open thực sự tiện dụng như bạn có thể thấy, nếu bạn có bất kỳ cách sử dụng tuyệt vời nào khác cho nó trong Mac OS X, hãy nhớ cho chúng tôi biết trong phần nhận xét.