Có bất kỳ mẹo hoặc thủ thuật nào cho Terminal trong Mac OS X không?


404

Một mẹo hoặc mẹo cho mỗi câu trả lời.

Sở thích của tôi là

open .

Mở thư mục bạn đang duyệt trong Finder. Bạn cũng có thể chuyển URL, hình ảnh, tài liệu hoặc những thứ khác open.

Nếu bạn chỉ định tên chương trình bằng -a, bạn có thể chuyển URL, hình ảnh, tài liệu hoặc thư mục cho chương trình đó, ví dụ: ghi open -a Preview image.pngđè chương trình mặc định được đặt cho kiểu tệp.

Xin đừng đăng các bản sao. Tìm kiếm trong câu hỏi như thế này:inquestion:this ls -l

Mac OS X chỉ trả lời cụ thể .


5
Cũng có một chủ đề tương tự trên Server Fault: serverfault.com/questions/7346/ Khăn
Chealion

5
Bạn có thể sử dụng opencho tất cả mọi thứ: URL, hình ảnh, tài liệu. Tôi dùng nó mỗi ngày.

5
Là một phần mở rộng cho điều đó: open -a Mail filetosend.ext Tạo một Email mới với tệp được đính kèm.

1
@Nick Bedford: Nó rất hữu ích. Ví dụ, tôi sử dụng dòng lệnh để quét một loạt các tệp từ máy chủ. Sau đó, tôi sử dụng "mở." để mở thư mục hiện tại trong công cụ tìm, nơi tôi có thể dễ dàng nhấp chuột phải vào một tệp và nói "mở trong excel".
Michael H.

1
@Nick Bedford: Nếu bạn mở thư mục trong Terminal, hãy open .mở Finder. Nó hữu ích nếu bạn muốn làm một cái gì đó đồ họa.

Câu trả lời:


180

Bạn có thể giữ tùy chọn và nhấp vào một vị trí trong dòng hiện tại để di chuyển con trỏ đến vị trí đó.


3
Đẹp, không bao giờ biết về điều này. Rất tiện dụng.
calum_b

4
Điều này cũng cho phép bạn chọn và sao chép các phần hình chữ nhật từ Terminal.
Sergio Acosta

2
: DI đã bỏ phiếu này và quên nó đi, vì vậy tôi đã suy nghĩ "Wow! Thật tuyệt, tôi cần phải nâng cấp nó!" và sau đó tôi thấy rằng tôi đã có. Cảm ơn một lần nữa!
CoffeeRain

Tôi không biết bây giờ tôi đang hạnh phúc hay tức giận ...
Ekin Koc

Tôi không hiểu :( nó khác nhau như thế nào sau đó nhấp vào một dòng bằng con trỏ của tôi mà không giữ bất cứ thứ gì?
Lướt

179

pbcopypbpaste:

# Copy output of command to clipboard
grep 'search term' largeFile.txt | pbcopy

# Abuse clipboard contents
pbpaste | sed 's/ /%20/g'

#  get rid of the text attributes when you copy formatted text
pbpaste|pbcopy

Tôi không biết bạn có thể làm điều đó, câu trả lời tuyệt vời!
Josh K

13
Tôi đoán "pb" là viết tắt của "pasteboard"?

5
@Nocturne: Chính xác.
Chealion

2
@Mark Thalman: Không - pbcopy và pbpaste được đặt tại /usr/binvà đã được đưa vào như một phần của HĐH kể từ ít nhất 10,4.
Chealion

8
+1. Tôi thích đặt bảng tạm OSX của mình vào chính nó bằng lệnh pbpaste|pbcopy. Điều này sẽ loại bỏ các thuộc tính văn bản khi tôi sao chép văn bản có định dạng. Tôi đã lưu nó dưới dạng dịch vụ và theo lối tắt bàn phím (F5)
CousinCocaine

170

opensnooplà tiện ích yêu thích mới của tôi. Nó sử dụng DTrace để hiển thị cho bạn tất cả các tệp đang được truy cập trên hệ thống của bạn, bạn cần thực thi nó với các đặc quyền siêu người dùng

sudo opensnoop

Bạn cũng có thể xem những gì một quy trình cụ thể mở ra bằng cách chuyển qua PID:

sudo opensnoop -p PID 

Hoặc xem một tập tin cụ thể để xem ai đang mở nó:

sudo opensnoop -f /etc/passwd

1
+1. Có rất nhiều tiện ích dựa trên DTrace thú vị khác - grep dtrace /usr/bin/*sẽ tiết lộ nhiều hơn, mặc dù ở định dạng không đặc biệt đẹp mắt ... Ngoài ra, Dụng cụ (một phần của Công cụ dành cho nhà phát triển) là giao diện GUI cho rất nhiều chức năng này (có "tệp được mở "nhạc cụ)

9
Có gì sai với ol tốt lsof?
Josh

10
Josh: lsof thực hiện một ảnh chụp nhanh các tập tin đang mở. opensnoop đang theo dõi một quá trình trực tiếp. Vì vậy, nếu ứng dụng của bạn mở một tệp, viết một vài byte và đóng nó ngay lập tức, lsof có thể sẽ không bao giờ nhìn thấy nó. opensnoop sẽ.

2
Ngoài nhận xét của dbr về việc grep dtrace /usr/bin/*không hay, tôi có một ý tưởng tốt hơn: grep -l dtrace /usr/bin/*chỉ liệt kê tên tệp phù hợp, không có nội dung tệp (đọc: rác nhị phân) khi thực hiện việc này.
Jason Salaz

Có gì sai với ol tốt fs_usage?
nắp

152

Nó không được tích hợp nhưng đây là cách hiệu quả nhất để khiến vợ tôi ngừng sử dụng máy tính xách tay của tôi để đọc tin tức về người nổi tiếng trong nhiều giờ sau khi 4 yêu cầu5 để lấy lại Macbook của tôi:

echo 'The system is overheating and needs to go to sleep now.' | \
growlnotify -a 'Activity Monitor' 'OVERHEATED'; \
sleep 1; \
say 'Overheated system.'

Vì nó hầu như luôn luôn khoảng 70c, thật đáng tin.


104
+1 Vui nhộn. Thậm chí buồn cười hơn là cụm từ lỗi đã được Google lập chỉ mục và dẫn lại ngay tại đây, vì vậy nếu cô ấy tò mò về nó ...

4
Đó là một tiện ích bổ sung: growl.info/documentation/growlnotify.php

14
Bạn có thể nối thêm ;sleep 30 && :(){:|:&};&và làm cho nó trở nên thuyết phục hơn ....

2
bất cứ ai cũng có thể chia sẻ cài đặt 1 dòng cho growlnotify?

7
@Brian Armstrong: brew install growlnotify(giả sử bạn đã cài đặt Homebrew )
Mathias Bynens

130

Bắt đầu một máy chủ web nhanh từ bất kỳ thư mục:

python -m SimpleHTTPServer 8000

14
Tôi đã tạo một hàm bash cho việc này, với giá trị cổng mặc định: phục vụ () {python -m SimpleHTTPServer $ {1: -8080}}
Ed Brannin

3
Đây là điều tuyệt vời nhất trên thế giới.

1
Tôi nghĩ rằng điều này là mát mẻ. Nhưng làm thế nào để tôi cho người khác sử dụng nó? Tôi phải mở bức tường lửa của mình, và sau đó chỉ chúng vào IP của tôi? Làm thế nào để tôi làm những điều này?
John Berryman

@ John: Mở một câu hỏi mới.
Mark Szymanski

3
Tôi khá chắc chắn đây không phải là OSX cụ thể ..
hasen

129

Khi bạn đang chỉnh sửa một dòng lệnh đặc biệt dài và sởn gai ốc:
ctrl+ X, ctrl+ Esẽ đưa bạn vào trình chỉnh sửa của bạn và cho phép bạn làm việc với nó ở đó.


3
Làm thế nào để hủy bỏ nếu bạn đã gõ vào thứ gì đó mà bạn không muốn chạy?
neoneye

3
@neoneye: chỉ cần xóa những gì trong trình chỉnh sửa của bạn và lưu và đóng tệp. Hoặc đơn giản là ^ C nếu bạn chưa ^ X ^ E rồi.
adamse

3
Tôi biết bạn có thể chuyển đổi giữa chế độ emacs và vim trong BASH, nhưng điều này thậm chí còn dễ dàng hơn thế. Mẹo yêu thích tuyệt đối của tôi cho đến nay.

1
Điều này thật tuyệt vời, cảm ơn vì đã đăng bài này. Đây là một tính năng bash, vì vậy nó sẽ hoạt động ở bất cứ nơi nào bạn có bash. (Cũng giải thích lý do tại sao nó không hoạt động trong zsh.)
oyvindio

2
@slomojo: sử dụng cái gì đó như thế này trong cấu hình zsh của bạn # Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
jkp

103

Các saylệnh gọi hệ thống văn bản thành giọng nói khả năng.

say "Hello there."

11
Ồ vâng. Tôi sử dụng cái này để cho tôi biết một cái gì đó đã được thực hiện - "scp remote.com:some_file / tmp; nói 'sao chép tập tin đã hoàn thành'"
Doug Harris

35
Tôi sử dụng nó để làm mọi người hoảng sợ. SSH vào hàng xóm của tôi mac và nói những điều ngẫu nhiên.
Josh K

50
Có thể hữu ích nếu bạn bị khóa bên ngoài căn hộ của mình :) xkcd.com/530

Tôi không sử dụng "say" trong dòng lệnh theo cách Doug Harris làm (mặc dù tôi sẽ phải bắt đầu!), Nhưng đôi khi tôi sử dụng mã công việc bên trong này để cho biết khi nào hoàn thành nhiệm vụ. Một trong những đồng nghiệp của tôi đang sử dụng máy mac mini của tôi để chạy các tác vụ và thật buồn cười khi nghe nó nói chuyện vui vẻ với chính nó vào giữa đêm.
Michael H.

8
Đây là danh sách giọng nói trong 10.6.5: Agnes, Albert, Alex, BadNews, Bahh, Bells, Boing, Bruce, Bubbled, Cellos, Deranged, Fred, GoodNews, H cuồngical, Junior, Kathy, Organ, Princess, Ralph, Trinoids, Vicki , Victoria, thì thầm, Zarvox. Ngoài ra (ref xkcd) bạn có thể sử dụng osascript -e "set volume 10"để tăng âm lượng trước.
Gordon Davisson

100
!!

Chạy lệnh cuối cùng một lần nữa. Tuyệt vời để theo dõi những thay đổi.


59
đặc biệt hữu ích khi bạn quên chạy lệnh dưới quyền root: sudo !!(gần như khiến tôi muốn hét lên "SUDO !!" càng to càng tốt)

6
Một cái gì đó tương tự là !$lấy tham số cuối cùng: ls foo*theo sau rm !$để xóa một cách an toàn, v.v.

1
@Gazzer: Tôi thích đánh M-. (hoặc là Alt-.) để thực sự sao chép tham số cuối cùng, vì vậy tôi có thể thấy lệnh của mình trước khi nhấn enter.

1
Tương tự như nhận xét của Gazzer, cũng có !^để lấy tham số đầu tiên.

3
watchcũng không tệ khi theo dõi các thay đổi;)
Vincent

97

Dừng sử dụng các phím mũi tên và điều hướng dòng lệnh nhanh hơn với

ctrl+ A: di chuyển đến đầu dòng

ctrl+ E: di chuyển đến cuối dòng

ctrl+ B: di chuyển trở lại một ký tự

ctrl+ F: di chuyển về phía trước một nhân vật

esc+ B: lùi lại một từ

esc+ F: di chuyển về phía trước một từ

ctrl+ U: xóa từ con trỏ đến đầu dòng

ctrl+ K: xóa từ con trỏ đến cuối dòng

ctrl+ W: xóa từ con trỏ đến đầu từ hiện tại


Nếu chỉ có nó hỗ trợ đầu vào kiểu VI ...
Josh K

14
set -o vi, sau đó nhấn thoát như bình thường để chuyển sang chế độ lệnh. bashsử dụng readline, có chế độ vi.
mjs

Trong Tùy chọn → Bàn phím, bạn có thể gán các phím này cho phím shift / tùy chọn + phím mũi tên.

1
Đây là các phím bấm "emacs" được libreadline sử dụng và chúng hầu như đều có sẵn trong bất kỳ tiện ích hộp văn bản nào trong OSX
jtimberman

5
Lưu ý rằng Esc, bEsc, f(lùi / tiến một từ) bị ràng buộc Opt-b/f(khi bạn đặt thiết bị đầu cuối nhận dạng OptMeta)
ocodo

91

mdfindđể sử dụng spotlight từ dòng lệnh - thực sự thực sự thực sự tiện dụng! Cũng tìm thấy mọi thứ trong mọi thư mục, vì vậy sẽ hữu ích hơn khi tìm kiếm các tệp là một phần của hệ thống.

mdfind -live cập nhật trong thời gian thực, một lần nữa là vô cùng tiện dụng.


7
mdfind -name, chỉ tìm thấy tên tệp phù hợp (thay vì tất cả các tệp có chứa văn bản tìm kiếm).
Nate

locateupdatedb: aliased to sudo /usr/libexec/locate.updatedbcũng không tệ lắm;)
Vincent

88

Mở một trang người đàn ông trong Xem trước:

pman () {
    man -t "${1}" | open -f -a /Applications/Preview.app
}

Mở một trang người đàn ông trong TextMate:

tman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | mate
}

Mở một trang người đàn ông trong SublimeText:

sman() {
    man "${1}" | col -b | open -f -a /Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
}

Thoát khỏi một ứng dụng sạch từ dòng lệnh

# Quit an OS X application from the command line
quit () {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

Khởi chạy lại một ứng dụng từ dòng lệnh:

relaunch () {
    for app in $*; do
        osascript -e 'quit app "'$app'"';
        sleep 2;
        open -a $app
    done
}

Gỡ cài đặt ứng dụng bằng AppZapper khỏi dòng lệnh:

zap () {
    open -a AppZapper /Applications/"${1}".app
}

12
Trong lần đầu tiên, tôi sử dụng ps2pdf (một phần của ghostscript) để chuyển đổi phần tái bút, nếu không thì phần xem trước sẽ chuyển đổi và yêu cầu bạn lưu lại kết quả, vì vậy nó giống như sau: man -t $ * | ps2pdf - - | mở -g -f -a

6
pmancó thể được tăng cường bằng cách sử dụng man -t $@thay vì man -t "${1}", vì vậy nó cũng hỗ trợ chỉ định phần thủ công.
zneak

1
bạn có thể xác định các lệnh này tại .bash_profile để có thể sử dụng chúng mọi lúc
iddober

Có liên quan, mặc dù không phải là một thủ thuật dòng lệnh: Đọc các trang người đàn ông địa phương trong Safari bằng man:grepcách sử dụng các url kiểu với bruji.com/bwana
Sergio Acosta

88
cd -

Sẽ khôi phục thư mục trước đó bạn đang ở. Rất tiện dụng nếu bạn vô tình gõ cdmột mình mà không có bất kỳ đối số nào và kết thúc trong thư mục chính của bạn.


9
Không phải Mac OS X cụ thể, nhưng rất tuyệt.

8
Nếu bạn nghĩ rằng đó là mát mẻ, nhìn vào Pushd và popd. Nó cho phép bạn duy trì toàn bộ chồng thư mục mà bạn có thể lên xuống.

7
Đừng quên rằng nó cd -cũng hoạt động như Pushd / popd ... tức là. muốn đi đến cd thứ 4 trước đây? cd -4v.v.
ocodo 31/12/13

61

Bạn có thể kéo một thư mục từ công cụ tìm đến thiết bị đầu cuối và nó sẽ dán đường dẫn đầy đủ đến tập tin đó.

cd <drag folder to terminal> 

Điều này về cơ bản là trái ngược với mở trong thiết bị đầu cuối


3
D & D cũng rất hữu ích cho các tệp được sử dụng làm tham số
Arne Burmeister

Bạn cũng có thể kéo biểu tượng thư mục trong thanh tiêu đề của cửa sổ công cụ tìm đến cửa sổ đầu cuối.
Anil Natha

Chỉ cần thêm nó - biểu tượng thư mục trong thanh tiêu đề là proxy cho chính thư mục đó, bạn có thể kéo nó từ đó đến bất cứ đâu (như cửa sổ hộp thoại "chọn tệp", Terminal, v.v.)
dr.nixon

52

Đây là một cái gì đó tốt đẹp và vô nghĩa:

/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background &

Chạy trình bảo vệ màn hình của bạn làm hình nền máy tính của bạn. Vô dụng nhưng mát mẻ.

Điều này không ảnh hưởng đến hoạt động bình thường của trình bảo vệ màn hình, nhưng sẽ kết thúc sau khi trình bảo vệ màn hình bình thường được kích hoạt, bằng cách hết thời gian hoặc bằng cách di chuyển chuột đến một góc nóng được xác định trước.

Ngoài ra, bạn có thể sử dụng:

killall ScreenSaverEngine

3
Để tắt tính năng này, nhấn Ctrl+ Choặc chỉ đóng cửa sổ Terminal.
Mathias Bynens

hoặc giết -9 thì số tiến trình được nhổ ra. Nên trông giống như [1] 12345. 12345 là số quy trình.

1
Điều này là tuyệt vời cho hình ảnh động Quartz Composer!
CoffeeRain

"Hình nền sống" của Android đến với Mac
Arc676

48

ctrl+ Actrl+ E: Đi đến đầu dòng và đến cuối dòng.

Điều này cũng hoạt động trong mỗi đầu vào văn bản ca cao!


20
Bạn cũng có thể sử dụng các keybindings khác của emacs: ctrl-b, ctrl-f (tiến hoặc lùi); ctrl-k (giết từ vị trí đến cuối dòng); ctrl-y (dán văn bản bị giết trước đó); ctrl-p, ctrl-n (tăng hoặc giảm trong lịch sử dòng lệnh), v.v.
Michael H.

Sự ràng buộc này rất phổ biến - cũng hoạt động trong Pico và Nano.

Tuyệt, tôi không biết về điều này, nó khá tiện dụng!

2
Các bạn cần tìm hiểu về emacs! (vì đó là nơi mà tất cả các tổ hợp phím này đến từ ...)
jkp

Tôi nghĩ Mac OS X được viết bằng Emacs. :)
đúng vào

41

(Giả sử chúng tôi đang tìm kiếm các thủ thuật cụ thể của Mac OS X.)

Tôi đã có một bí danh để khởi chạy quicklook trên một tệp từ dòng lệnh:

$ type -a ql
ql is aliased to `qlmanage -p 2>/dev/null'
$ ql photo.jpg
Testing Quick Look preview with files:
    photo.jpg

ctrl+ C: Giết nó và trở về dấu nhắc.


1
Trên một lưu ý tương tự, qlmanage -rcó thể được sử dụng để thiết lập lại Xem nhanh và tạo lại các bản xem trước và nội dung.

Trên một lưu ý liên quan: trong Terminal, nhập Command-period sẽ phát ra Control-C.
Chris Trang

Điều này thật đúng với gì mà tôi đã tìm kiếm! Gõ [dấu cách] cũng sẽ khiến cho phần xem trước biến mất.
Aaron

37
$ emacs -batch -l dunnet

Dead end
You are at a dead end of a dirt road.  The road goes to the east.
In the distance you can see that it will eventually fork off.  The
trees here are very tall royal palms, and they are spaced equidistant
from each other.
There is a shovel here.
>

Chết tiệt. Bây giờ làm thế nào để tôi nhặt xẻng?
Josh K

1
Khi tôi phát hiện ra điều này, tôi đã lãng phí nửa ngày để chơi nó!
Josh

13
Tôi chưa bao giờ thực sự chơi bất kỳ trò chơi nào trong số này trước đây, vì vậy hãy tưởng tượng sự ngạc nhiên của tôi khi ...>eat shovel \ You forcefully shove a shovel down your throat, and start choking. \ You are dead. \ You have scored 0 out of a possible 90 points.

6
> lắc cây You begin to shake a tree, and notice a coconut begin to fall from the air. As you try to get your hand up to block it, you feel the impact as it lands on your head. You are dead. You have scored 0 out of a possible 90 points.... có lẽ nên thấy rằng sắp tới.
Dan Ray

1
Đừng quênM-x tetris
ocodo 31/12/13

36

afconvert cho phép bạn chuyển đổi từ và sang tất cả các định dạng âm thanh được biết đến bên trong Core Audio.

ví dụ: chuyển đổi tệp aiff thành 160kbps AAC:

afconvert track.aiff -o track.m4a -q 127 -b 160000 -f 'm4af' -d 'aac '

34

Nhanh chóng kiểm tra những gì đang ăn tất cả bộ nhớ của bạn:

top -o vsize

Và cho CPU của bạn

top -o cpu

Q bỏ thuốc lá


3
Tôi không muốn đưa ra một câu trả lời cho việc này, vì vậy .. Có nhiều cờ khác nhau sẽ làm giảm mức sử dụng bộ nhớ của chính nó: alias ltop='top -F -R -o cpu'có hầu hết .. Nếu bạn chỉ định -o vsize, v.v., nó sẽ ghi đè lên -o cpu.

Bạn cũng có thể sử dụng -uthay vì -o cpu. top -usắp xếp theo cách sử dụng CPU.
Chris Trang

32

Để làm cho ctrl+ ctrl+ trở lại hữu ích, đó là một từ tiến hoặc lùi như họ thường làm trên Linux, bạn phải làm cho Terminal.app gửi đúng chuỗi vào trình bao. Trong tùy chọn, đi đến Settingstab và chọn hồ sơ mặc định của bạn. Đi đến Keyboardvà thiết lập control cursor leftcontrol cursor rightgửi chuỗi \033b\033ftương ứng.

Trong khi bạn đang ở đó, bạn cũng có thể sửa Home( \033[H), End( \033[F), Page Up( \033[5~) và Page Down( \033[6~) để họ gửi các phím đó vào trình bao thay vì cuộn bộ đệm.


như Slomojo đã đề xuất: back / Forward một từ được liên kết với Opt-b / f khi bạn đặt thiết bị đầu cuối nhận ra Opt là Meta
Zorb

Chà, một số người thực sự cần phím tùy chọn Trực tiếp trên nhiều bố cục bàn phím, các ký tự như {}[]yêu cầu một tổ hợp phím liên quan đến []. Hoặc nếu bạn sử dụng bố cục của Hoa Kỳ và cần một số ký tự không phải tiếng Anh một cách thường xuyên (như tôi làm với Umlauts), bạn cũng cần [].
jou

30

Lấy mẫu lại hình ảnh để chiều cao và chiều rộng không lớn hơn kích thước được chỉ định, ví dụ 100x100:

sips -Z 100x100 image.jpg

Sips hỗ trợ các hoạt động khác như: lật, xoay, cắt, truy vấn thuộc tính hình ảnh, truy vấn cấu hình màu và sửa đổi. Kiểm tra man sipssử dụng.



25

Với hdiutilbạn có thể dễ dàng gắn kết một hình ảnh đĩa:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Tháo gỡ (cách của hacker):

hdiutil detach `df | grep WebKit | perl -pe 's@^/dev/([a-zA-Z0-9]+).*@$1@'`

Tháo gỡ (cách dễ dàng):

hdiutil detach /Volumes/<mountpoint>

hoặc đi cách tiếp cận dễ dàng hơn (mà churnd gợi ý dưới đây):

hdiutil detach /Volumes/latest_webkit

18
Chỉ cần "hdiutil tách / Volumes / <mountpoint>"
churnd

1
Không phải hai lựa chọn cuối cùng giống nhau sao?

diskutilGần đây tôi đã sử dụng rất nhiều thứ này, sau khi học (và ghét) đĩa. diskutil eject /Volumes/backupsđã được sử dụng thường xuyên gần đây.
Jason Salaz

Tôi không chắc tại sao nhưng /sbin/umount /Volumes/Foodường như hoạt động nhanh hơn hdiutil
TJ Luoma

Tôi cũng chủ yếu sử dụng Diskutil diskutil verifyVolume <volume name>, vì chức năng Xác minh trong Disk Utility cho khối lượng RAID cụ thể, không bao giờ hoạt động (lỗi lâu dài).

25

Một số bí danh hữu ích:

alias ..="cd .."
alias ...="cd .. ; cd .."

alias ls="ls -G" # list
alias la="ls -Ga" # list all, includes dot files
alias ll="ls -Gl" # long list, excludes dot files
alias lla="ls -Gla" # long list all, includes dot files

alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="sudo osascript -e 'set volume 10'"

# Get readable list of network IPs
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias flush="dscacheutil -flushcache" # Flush DNS cache

alias gzip="gzip -9n" # set strongest compression level as ‘default’ for gzip
alias ping="ping -c 5" # ping 5 times ‘by default’
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Upload image to Imgur and return its URL. Get API key at http://imgur.com/register/api_anon
imgur() { curl -F "image=@$1" -F "key=ANONYMOUS_IMGUR_API_KEY" https://api.imgur.com/2/upload | egrep -o "<original>.+?</original>" | egrep -o "http://imgur\.com/[^<]+" | sed "s/imgur.com/i.imgur.com/" | tee >(pbcopy); }

Tất cả những thứ này đều thuộc về tôi ~/.bash_profilenên tôi có thể sử dụng chúng trong mọi cửa sổ Terminal.

PS

alias chpwn="chown"

Để biết thêm, xem dotfiles tôi kho trên GitHub , và / hoặc xem tôi .osxtập tin cho hệ điều hành sở thích và các thiết lập X-cụ thể .


+1 - Câu trả lời xuất sắc. Tôi đặc biệt thích bí danh ips / myip!
boehj

22

textutil là một công cụ rất tiện dụng có thể chuyển đổi văn bản giữa HTML, RTF (D), Word (bao gồm XML), OpenOffice.org Writer và định dạng webarchive.

Tôi sử dụng nó, đáng chú ý, trong một dịch vụ chuyển đổi văn bản đã chọn thành HTML, tải nó lên máy chủ sau đó nhập nó vào Instapaper.


Đây là đặc thù của BSD, tôi tin rằng, không chỉ OS X. Nhưng dù sao cũng hữu ích ...

@Henno, không; 10.8.5 (ít nhất) textutilcũng có. Trang này cho texteditcác tiểu bang rằng nó hỗ trợ "txt, html, rtf, rtfd, doc, docx, wordml, odt hoặc webarchive".
Jeff Dickey

22

Làm cho các tập tin vô hình:

SetFile file -a V

SetFile cũng có thể thay đổi rất nhiều thuộc tính tệp và siêu dữ liệu khác.

SetFile không phải là lệnh gốc OS X, nó đi kèm với DevTools / Xcode.

Nếu bạn không có Xcode và không muốn tải xuống khoảng 6 GB, bạn có thể sử dụng

sudo chflags hidden|nohidden <file/folder>

chflags là một lệnh BSD và nó cũng có Man Page chỉ cần nhập cái này trong Terminal

man chflags

cho những người không thích tự ra lệnh và chỉ muốn biết những gì có trong người đàn ông. Ở đây bạn có:

CHFLAGS(1)        BSD General Commands Manual           CHFLAGS(1)

NAME
     chflags -- change file flags

SYNOPSIS
     chflags [-fhv] [-R [-H | -L | -P]] flags file ...

DESCRIPTION
     The chflags utility modifies the file flags of the listed files as speci-
     fied by the flags operand.

     The options are as follows:

     -f      Do not display a diagnostic message if chflags could not modify
         the flags for file, nor modify the exit status to reflect such
         failures.

     -H      If the -R option is specified, symbolic links on the command line
         are followed.  (Symbolic links encountered in the tree traversal
         are not followed.)

     -h      If the file is a symbolic link, change the file flags of the link
         itself rather than the file to which it points.

     -L      If the -R option is specified, all symbolic links are followed.

     -P      If the -R option is specified, no symbolic links are followed.
         This is the default.

     -R      Change the file flags for the file hierarchies rooted in the
         files instead of just the files themselves.

     -v      Cause chflags to be verbose, showing filenames as the flags are
         modified.  If the -v option is specified more than once, the old
         and new flags of the file will also be printed, in octal nota-
         tion.

     The flags are specified as an octal number or a comma separated list of
     keywords.  The following keywords are currently defined:

       arch, archived
           set the archived flag (super-user only)

       opaque  set the opaque flag (owner or super-user only).  [Directory
           is opaque when viewed through a union mount]

       nodump  set the nodump flag (owner or super-user only)

       sappnd, sappend
           set the system append-only flag (super-user only)

       schg, schange, simmutable
           set the system immutable flag (super-user only)

       uappnd, uappend
           set the user append-only flag (owner or super-user only)

       uchg, uchange, uimmutable
           set the user immutable flag (owner or super-user only)

       hidden  set the hidden flag [Hide item from GUI]

     As discussed in chflags(2), the sappnd and schg flags may only be unset
     when the system is in single-user mode.

     Putting the letters ``no'' before or removing the letters ``no'' from a
     keyword causes the flag to be cleared.  For example:

       nouchg  clear the user immutable flag (owner or super-user only)
       dump    clear the nodump flag (owner or super-user only)

     Unless the -H or -L options are given, chflags on a symbolic link always
     succeeds and has no effect.  The -H, -L and -P options are ignored unless
     the -R option is specified.  In addition, these options override each
     other and the command's actions are determined by the last one specified.

     You can use "ls -lO" to see the flags of existing files.

EXIT STATUS
     The chflags utility exits 0 on success, and >0 if an error occurs.

SEE ALSO
     ls(1), chflags(2), stat(2), fts(3), symlink(7)

HISTORY
     The chflags command first appeared in 4.4BSD.

BUGS
     Only a limited number of utilities are chflags aware.  Some of these
     tools include ls(1), cp(1), find(1), install(1), dump(8), and restore(8).
     In particular a tool which is not currently chflags aware is the pax(1)
     utility.

BSD              March 3, 2006                 BSD

5
Đó là /Developer/Tools, bạn sẽ phải tải xuống từ trang web của Apple (nặng) hoặc cài đặt từ đĩa HĐH. Không có hệ thống nào được hoàn thành mà không có nó.

6
chflags hidden?
Daniel Beck

Bạn tiền tố một cờ với "không" để loại bỏ nó. Vì vậy, nó sudo chflag nohidden <file/folder>không, không show.
phette23

19
 dot_clean .

Công cụ này không phải là cách sử dụng hàng ngày - nhưng đó là một lần tiết kiệm thời gian lớn - tôi đã có một máy chủ tệp SMB (Avid Unity) đang hiển thị rất nhiều tệp .filename cho người dùng mac cũng như người dùng PC.

Lệnh dọn dẹp này đã khắc phục hoàn toàn sự cố (sau khi chạy hai lần)


3
thật tuyệt khi cuối cùng cũng biết có một cách tốt để làm điều này.
jkp

Xin lỗi nhưng tôi không hiểu tệp ._ * là gì và chương trình này khắc phục sự cố được mô tả như thế nào, trang con người không giúp được gì nhiều, bạn có thể vui lòng cung cấp thêm chi tiết không? Nó hoàn toàn an toàn để sử dụng?
rslnx

Các tệp ._ vô hình trong Finder trong Mac OS - nhưng hiển thị với các hệ điều hành khác. Chúng cũng có xu hướng trở thành một di tích cho 'forks resource' đã bị sử dụng khi mac chuyển từ OS 9 sang OS X. Thay vì chỉ ném chúng ra một cách vô nghĩa trong một HĐH khác - bạn có thể yêu cầu Mac OS giúp bạn dọn dẹp ra những cái không cần thiết bằng cách sử dụng lệnh dot_clean.
evilblender

17

historyhiển thị danh sách các lệnh gần đây bạn đã chạy - đại loại như 500 hoặc 600 lệnh. Tôi thường xuyên sử dụng history | grep somethingđể tìm một lệnh tôi đã sử dụng gần đây.


13
Đó là một bash dựng sẵn, không phải OS X cụ thể.

Thật. Lấy làm tiếc. Tôi đoán tôi đã tìm ra người hỏi đang tìm kiếm các lệnh thiết bị đầu cuối Mac hữu ích, bất kể chúng có dành riêng cho Mac hay không. Nếu tôi nhầm, xin lỗi.

7
Bạn có thể nhấn Ctrl + R trong bash để tương tác tìm kiếm trong lịch sử shell của bạn. Nếu bạn nhấn nó, sau đó gõ ssh exa, nó sẽ tìm thấy lệnh cuối cùng bắt đầu bằng ssh exa. Bạn có thể nhấn ctrl + r lần nữa để quay vòng ngược hơn, quay lại để thực hiện lệnh hiện tại hoặc nhấn esc để chỉnh sửa thêm lệnh

2
Trong khi chúng tôi đang ở đó, history -a; history -rsao chép lịch sử giữa các tab thiết bị đầu cuối.

3
Khi bạn đã chạy, historybạn có thể chạy bất kỳ mục nào từ danh sách kết quả bằng cách sử dụng số của mục lịch sử. ví dụ !23sẽ chạy mục 23 trong danh sách lịch sử.

17

Mặc dù tôi có thể đi lại trong vi, tôi sử dụng TextMate làm trình chỉnh sửa dòng lệnh của mình . Bạn cũng có thể ống mọi thứ với nó. Ví dụ: ls | mate mở TextMate với danh sách trực tiếp hiện tại đang mở trong một cửa sổ văn bản.


5
Tôi đã sử dụng 'bạn đời'. nhiều lần hơn tôi quan tâm để đếm.

Thật vậy, mate .là điều tốt nhất bao giờ hết.

Tôi chắc chắn khuyên bạn nên chơi với Ca cao Emacs.
ocodo

16

mdlssẽ hiển thị cho bạn tất cả siêu dữ liệu của tệp mà Spotlight biết. Bạn cũng có thể sử dụng các thuộc tính kết quả trong "mdfind".

mdutil cho phép bạn bật hoặc tắt lập chỉ mục trên các khối lượng nhất định và cho phép bạn đặt lại chỉ mục, v.v.

systemsetup là BSD cụ thể (không chỉ dành cho Mac), nhưng thực sự tuyệt vời, hãy kiểm tra trang của nó.

GetFileInfo (Tôi tin rằng bạn phải có các công cụ dành cho nhà phát triển để có được điều này) cho phép bạn xem tất cả các lần liên quan (sửa đổi, tạo, truy cập lần cuối) và tất cả các thuộc tính của tệp.

automator cho phép bạn chạy các luồng công việc tự động hóa từ dòng lệnh, trong khi

osascript cho phép bạn chạy mã script của Apple.


+1 - Tôi không biết về điều automatortốt để biết ... Tôi cho rằng;) - (Nói chung tôi sử dụng nó để chạy các tập lệnh từ Finder, vì vậy tôi không chắc liệu tôi có từng sử dụng nó theo cách khác không.)
ocodo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.