Làm thế nào để bạn nhớ các tùy chọn lệnh? [đóng cửa]


13

Tôi tò mò muốn biết bạn sử dụng thủ thuật gì để ghi nhớ các tùy chọn cho các lệnh khác nhau? Nhìn lên các trang man mọi lúc đều tốn thời gian và không quá tuyệt!


2
Trong số những thứ khác: unix.stackexchange.com/questions/138720/, tiện dụng để tạo một bản tóm tắt tùy chỉnh về những thứ tôi thường xuyên làm hỏng hoặc quên. BTW, bạn càng đọc nhiều trang man, bạn càng đánh giá cao chúng.
goldilocks

Tôi có lúc cảm thấy mình đang quên mọi thứ. Tôi đã tự hỏi nếu tôi là người duy nhất gặp khó khăn trong việc ghi nhớ tất cả các tùy chọn hữu ích trên đỉnh đầu .. Đề xuất của bạn có vẻ như là một giải pháp tốt..Cảm ơn bạn!
Atul

3
Đọc mancác trang rất tuyệt ... :)
jasonwryan

1
Q: Làm thế nào để bạn đến Carnegie Hall ? Một sự rèn luyện!
evilsoup

4
Tôi nghĩ rằng điều này xứng đáng với một số XKCD: xkcd.com/1168
Darkhogg

Câu trả lời:


39

Thủ thuật rất đơn giản: Bạn không cần. Đó là một sự lãng phí thời gian và không cần thiết. Ghi nhớ các tùy chọn lệnh không phải là một kỹ năng đặc biệt hữu ích. Điều quan trọng hơn nhiều là phải hiểu cách thức hoạt động của công cụ nói chung và có một ý tưởng mơ hồ về công cụ nào tồn tại ở nơi đầu tiên và bạn sử dụng chúng để làm gì. Một kỹ năng rất quan trọng ở đây là biết cách tìm hiểu về những thứ bạn chưa biết.

Trang man có tốn thời gian không? Không phải vậy. Không giống như bạn phải đọc chúng - ít nhất, không phải mọi lúc - có chức năng tìm kiếm. Vì vậy, nếu tôi không nhớ tùy chọn mật mã nào là tùy chọn hdparmđể vô hiệu hóa bộ đếm thời gian nhàn rỗi trên một số đĩa WD, thì tôi cũng vậy man hdparm/idle3đó là -J. Nhìn những thứ như thế rất nhanh, tôi thậm chí không nhớ là đã làm nó sau đó.

Hãy tưởng tượng ai đó thực sự ghi nhớ tất cả các hdparmtùy chọn. Thật là lãng phí thời gian.

Sẽ tốt thôi nếu bạn tình cờ nhớ các tùy chọn vì bạn sử dụng chúng thường xuyên. Điều đó xảy ra tự động mà không cần suy nghĩ về nó. Nhưng thực sự có ý thức dành thời gian để ghi nhớ chúng ... những gì được cho là tốt cho? Một bài kiểm tra giấy?


4
Upvote: kỹ năng là tìm kiếm những gì bạn cần, không phải bộ nhớ vẹt. man hdparm | less -p idle3cũng là một cách thuận tiện để chuyển sang thuật ngữ mong muốn ...
jasonwryan

Tôi hoàn toàn đồng ý với câu trả lời này, mặc dù tôi nghĩ rằng đáng để nhấn mạnh rằng việc có một vài lựa chọn phổ biến nhất cho các chương trình phổ biến được ghi nhớ là điều bình thường, chỉ vì bạn sử dụng chúng quá thường xuyên. Giống như rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -a, vv (danh sách các thay đổi từ người này sang người).
David Z

8

Zsh có chức năng chạy trợ giúp , theo mặc định ràng buộc với Alth. Với chức năng này, bạn có thể bắt đầu nhập một lệnh với nhiều tùy chọn phức tạp hoặc khó nhớ, rsyncví dụ như, và sau đó manmở trang của lệnh đó . Vì thế:

 rsync Alth

đọc mantrang và tìm ra công tắc nào bạn yêu cầu, nhấn qvà sau đó bạn được đưa trở lại dấu nhắc lệnh, chính xác nơi bạn rời đi, sẵn sàng hoàn thành lệnh với các tùy chọn cần thiết:

rysnc -azP file dir/

Như wiki ghi chú:

Hàm này có thể được tùy chỉnh thêm bằng cách xác định các hàm trợ giúp của biểu mẫu run-help-lệnh. Có ba chức năng như vậy có sẵn trong bản phân phối tiêu chuẩn: run-help-git, run-help-svk và run-help-svn.

Tương tự như vậy bashbash-completemà sẽ cung cấp rất nhiều tùy chọn tham số cho rất nhiều các lệnh.
ericx

2
@ericx "Tương tự" có thể nói quá lên một chút ... Zsh cũng đã hoàn thành, đây là một bước tiến lên từ đó.
jasonwryan

này ... tôi đã nghe mọi người khoe khoang, nhưng tôi chưa bao giờ thửzsh
ericx

Ngoài ra, @ericx, bashviệc hoàn thành không hỗ trợ thêm mô tả vào danh sách hoàn thành hoặc nhóm các mục ( --classify -F -- append file type indicatorsví dụ: trong quá trình hoàn thành GNU ls của zsh) vì vậy gần như không hữu ích như zsh.
Stéphane Chazelas

** root @ milicent ** ~ / tmp ** Thứ ba ngày 05 tháng 8 09:24:55 # pkg thông tin (-e -d -f -l -o -p -D) -r [Hiển thị các phụ thuộc ngược] (-e -d -r -f -o -p -D) -l [Hiển thị tất cả các tệp] (-e -d -r -l -f -p -D) -o [Hiển thị nguồn gốc] (-e -d -r - l -o -f -D) -p [Hiển thị tiền tố] (-e -d -r -l -o -p -D) -f [Hiển thị thông tin đầy đủ] (-e -d -r -l -o -p -f) -D [Hiển thị thông báo] (-e -f -r -l -o -p -D) -d [Hiển thị các phụ thuộc] (-f -d -r -l -o -p -D) -e [Trả về 0 nếu <pkg-name> được cài đặt] (-g -X -a -F) -x [Gói xử lý khớp với mẫu biểu thức chính quy] (-g -x -X -F) -a [Xử lý tất cả gói
ericx

4

Sử dụng một lịch sử lệnh rất dài, và tìm kiếm thông qua nó, rất hữu ích.

Về cơ bản tôi thu thập tất cả các tệp lịch sử shell và grep thông qua chúng.

Các kết quả được tìm thấy trong nhiều trường hợp rất hữu ích, vì nó dễ dàng tìm kiếm các từ khóa tốt.
Tìm kiếm một đối số cụ thể mà bạn đã sử dụng, như URL, bạn cũng tìm thấy các lệnh và tùy chọn liên quan. Và tìm kiếm các tùy chọn cụ thể, bạn cũng có thể tìm thấy các đối số có liên quan.


4

Hầu hết các lệnh đều có - trợ giúp để tham khảo nhanh và thường đủ để nhắc nhở những gì tôi đã từng biết.

Điều đó nói rằng, có thói quen viết - trợ giúp thay vì -h hoặc thậm chí -?. Bạn không bao giờ biết -h là gì trước khi tìm trang đầu ra hoặc trang thủ công. Trong trường hợp xấu nhất, -h có thể là tay ngắn cho - hủy diệt tự động.


2
... Hầu hết các lệnh trên hệ thống GNU . các lệnh trên hệ thống Unix thường không có --help. -?nhu cầu trích dẫn với zsh, csh, tcshhoặc fishhoặc nếu có các file có tên được -theo sau bởi một nhân vật duy nhất trong thư mục hiện hành. -:có thể thích hơn ở đó
Stéphane Chazelas

Chà .. nhiều hệ thống không phải GNU có đầu ra sử dụng quá kinh khủng, chúng thậm chí còn vô nghĩa. Trong trường hợp như vậy, hãy xem trang người đàn ông và ghi nhớ may mắn tốt nhất bởi vì không có gì khác sẽ làm việc.
kerolasa

"Điều đó nói có thói quen viết". Từ thiếu?
Faheem Mitha

1

Một tùy chọn tôi thích là tạo các bí danh có các tùy chọn giống hoặc tương tự, ví dụ:

alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'

Bằng cách này, bạn có một lối tắt đẹp mà bạn sẽ sớm nhớ dễ dàng nhưng điều đó cũng sẽ giữ lại thông tin về (các) tùy chọn thực tế mà nó phản ánh.

Một cách tiếp cận khác với bí danh là chọn các tùy chọn phổ biến nhất và tạo một bí danh siêu ngắn sử dụng chúng. Ví dụ với lstôi gần như luôn luôn làm lvà đó là bởi vì tôi có:

alias l='ls -alFtrG'

Một tùy chọn khác là chỉ đưa các tùy chọn bạn thích vào lệnh cơ sở, vd

alias ls='ls -F --color=always'

Cuối cùng là luyện tập, luyện tập, luyện tập và kiên nhẫn. Tiếp tục gõ các tùy chọn phổ biến và cuối cùng bạn sẽ học chúng. Những cái phổ biến trong vài ngày, những cái khác trong vài tuần và có một số phải mất nhiều năm để bạn biết đến. Hãy nghĩ về điều đó như một điều trị trong chương trình unix sẽ tiếp tục giải trí cho bạn trong một thời gian dài.

Một tùy chọn khác mà tôi thích là một bí danh để giúp tìm kiếm lịch sử của tôi dễ dàng hơn và tôi có hai bí danh tương tự:

alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'

Chúng cho tôi tìm kiếm việc sử dụng một lệnh chẳng hạn:

hg lssẽ hiển thị bất kỳ việc sử dụng ls gần đây từ lịch sử
hga lssẽ hiển thị tất cả việc sử dụng ls từ toàn bộ lịch sử của tôi.

Tôi đã phát triển hg sau khi thấy rằng hga có xu hướng hiển thị quá nhiều.


4
Nếu OP không thể nhớ những gì rm -ivlàm, OP có lẽ cũng sẽ không nhớ những gì rmivlàm. Tôi không nghĩ đó là dấu gạch nối đó là vấn đề.
tobyink

Tôi muốn đích thân bí danh rm -ivđể safe_deletehoặcrm_prompt
slebetman

Cảm ơn mọi người! Tôi đoán rằng tôi đã lo lắng rất nhiều vì nhớ nhiều hơn là học nhiều hơn..Tôi sẽ học khi sử dụng vũ khí thay vì học kích thước và vận tốc của viên đạn là gì! May mắn khi có rất nhiều người dùng linux tốt ở đây .. Chúc mừng unix / linux !!
Atul

1

Tôi thường làm:

man ${CMD} | grep 'what was I thinking about?'

Hoặc một số biến thể của chúng. Với một số greps, bạn có thể chỉ định -C / A / B cho bối cảnh , sautrước tương ứng. Nếu không, nlsedcó thể được kết hợp khá tốt:

man hdparm |                      #hard to forget
nl -bp'idle3' -nln -w1 |          #I had to grep man to put this together
sed -n '/^[0-9]/{N;N;N;s///p}'    #no print until line begins w/ number, next,next,next

           Drive's "idle3" timeout value.  This timeout
            controls how often the drive parks its heads
            and  enters  a  low power consumption state.
            The factory default is  eight  (8)  seconds,
           zero (0) to disable the WD idle3 timer  com‐
            pletely (NOT RECOMMENDED!).

     -k     Get/set  the "keep_settings_over_reset" flag

Các kỹ thuật tương tự hoạt động với --helpcác menu nếu bạn có chúng, nhưng bạn có thể cần phải thực hiện ${CMD} --help 2>&1 | ..filter..vì đây là một cách thực hành khá chuẩn để in những thứ như vậy stderr.

Dù sao, tôi đoán đạo đức của câu chuyện là, ít nhất hãy nhớ mangrep. Có lẽ đừng đổ mồ hôi phần còn lại.


1
+1. Tôi thường quản lý grepcác trang khi tìm kiếm một tính năng cụ thể, điều đó khá tiện dụng.
John WH Smith

grep của -A -B -Ctùy chọn có thể hữu ích quá, ví dụ nhưman bash | grep -A 25 PROMPTING$
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.