명령 옵션을 어떻게 기억합니까? [닫은]


13

다양한 명령의 옵션을 기억하기 위해 어떤 트릭을 사용하는지 알고 싶습니다. 맨 페이지를 항상 찾는 것은 시간이 많이 걸리고 그렇게 시원하지는 않습니다!


2
무엇보다도 : unix.stackexchange.com/questions/138720/...은 내가 습관적으로 망치 또는 잊지 가지의 사용자 정의 요약을 만들기위한 편리합니다. BTW, 매뉴얼 페이지를 많이 읽을수록 더 많은 페이지를 읽을 수 있습니다.
goldilocks

나는 언젠가 내가 모든 것을 잊고 있다고 느낀다. 나는 머리 위에있는 모든 유용한 옵션을 기억하는 데 어려움을 겪는 유일한 사람인지 궁금합니다. 제안은 좋은 해결책 인 것 같습니다. 감사합니다!
Atul

3
읽기 man페이지 매우 :) ... 멋지다
jasonwryan

1
Q : 카네기 홀은 어떻게 가나 요? A : 연습하세요!
evilsoup

4
:이 일부 XKCD 가치가 생각 xkcd.com/1168
Darkhogg

답변:


39

트릭은 간단합니다. 당신은하지 않습니다. 시간 낭비이며 꼭 필요한 것은 아닙니다. 명령 옵션을 암기하는 것은 특히 유용한 기술이 아닙니다. 물건이 일반적으로 어떻게 작동하는지 이해하고 처음에는 어떤 도구가 있으며 어떤 도구를 사용하는지 모호한 아이디어를 갖는 것이 훨씬 더 중요합니다. 여기서 매우 중요한 기술은 아직 모르는 것을 알아내는 방법을 아는 것입니다.

매뉴얼 페이지는 시간이 많이 걸리나요? 별로. 적어도 매번이 아니라, 검색 기능이있는 것을 읽는 것은 아닙니다. 나는에 대한 하나 비밀 어떤 옵션을 기억하지 않도록 경우 hdparm일부 WD 디스크의 비활성화 유휴 타이머, 내가 할 수 man hdparm/idle3와 헤이, 그것은이었다 -J. 그런 것들을 찾는 것은 너무 빠릅니다. 나중에 그것을하는 것을 기억조차하지 않습니다.

누군가가 실제로 모든 hdparm옵션을 암기한다고 상상해보십시오 . 시간 낭비 야

옵션을 자주 사용하기 때문에 옵션을 기억하는 것이 좋습니다. 그것은 생각조차하지 않고 자동으로 발생합니다. 그러나 실제로 의식적으로 그들을 암기하는 데 시간을 보내고 ... 그게 무엇이 좋을까요? 종이 시험?


4
공감 :이 기술은 기억력을 손상시키지 않고 필요한 것을 찾는 것입니다. man hdparm | less -p idle3또한 원하는 용어로
넘어갈 수

나는이 대답에 전적으로 동의하지만, 자주 사용하는 공통 프로그램에 대해 가장 보편적 인 옵션을 기억하는 것이 일반적이라는 것을 강조 할 가치가 있다고 생각합니다. 마찬가지로 rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -a, 등 (이 목록은 사람마다 다르다).
David Z

8

Zsh에는 기본적으로에 바인딩 된 실행 도움말 기능이 Alth있습니다. 이 기능을 사용하면 rsync예를 들어 기억하기 어려운 많은 옵션이나 복잡한 옵션을 사용하여 명령을 입력 한 다음 해당 명령의 man페이지를 열 수 있습니다. 그래서:

 rsync Alth

man페이지를 읽고 필요한 스위치를 확인한 q다음 히트 한 다음 정확히 중단 한 위치에서 필수 옵션으로 명령을 완료 할 수 있도록 명령 프롬프트로 돌아갑니다.

rysnc -azP file dir/

위키 노트로 :

run-help-command 형식의 헬퍼 기능을 정의하여이 기능을 추가로 사용자 정의 할 수 있습니다. 표준 배포판에는 run-help-git, run-help-svk 및 run-help-svn의 세 가지 기능이 있습니다.

마찬가지로 bashbash-complete명령의 많은에 대한 매개 변수 선택의 여지를 제공 할 것이다.
ericx

2
@ericx "Similarly"는 조금 과장했을 수도 있습니다 ... Zsh도 완성되었습니다.
jasonwryan

zsh
저기요

@ericx는 또한 bash완료는 완료 목록에 설명을 추가하거나 항목을 그룹화 ( --classify -F -- append file type indicators예 : zsh의 GNU ls 완료)하는 것을 지원하지 않으므로 zsh만큼 유용하지 않습니다.
Stéphane Chazelas

** root @ milicent ** ~ / tmp ** 화요일 8 월 05 일 09:24:55 # pkg 정보 (-e -d -f -l -o -p -D) -r [역방향 종속성 표시] (-e -d -r -f -o -p -D) -l [모든 파일 표시] (-e -d -r -l -f -p -D) -o [원점 표시] (-e -d -r- l -o -f -D) -p [접두사 표시] (-e -d -r -l -o -p -D) -f [전체 정보 표시] (-e -d -r -l -o -p -f) -D [메시지 표시] (-e -f -r -l -o -p -D) -d [종속성 표시] (-f -d -r -l -o -p -D) -e [<pkg-name>이 설치된 경우 0을 반환합니다.] (-g -X -a -F) -x [정규식 패턴과 일치하는 프로세스 패키지] (-g -x -X -F) -a [모든 패키지 처리
ericx

4

매우 긴 명령 히스토리를 사용하고 꿰뚫는 것이 매우 유용합니다.

나는 기본적으로 모든 쉘 히스토리 파일을 수집하고 파일을 통해 grep한다.

좋은 키워드를 찾기 위해 쉽게 검색 할 수 있기 때문에 결과는 많은 경우에 매우 유용합니다.
URL과 같이 사용한 특정 인수를 검색하면 관련 명령 및 옵션도 찾을 수 있습니다. 특정 옵션을 검색하면 관련 인수도 찾을 수 있습니다.


4

대부분의 명령에는 빠른 참조를위한 --help가 있으며 일반적으로 내가 아는 것이 무엇인지 상기시키는 것으로 충분합니다.

즉, -h 또는 심지어-? 대신에 도움을 쓰는 습관이 있습니다. 사용법 출력 또는 매뉴얼 페이지를보기 전에 -h가 무엇인지 알 수 없습니다. 최악의 경우 -h는 위험 자동 파괴를위한 짧은 손일 수 있습니다.


2
... GNU 시스템에서 대부분의 명령 . 유닉스 시스템의 명령은 일반적으로 없습니다 --help. -?로 인용 요구 zsh, csh, tcsh또는 fish또는 이름이되는 파일이있는 경우 -현재 디렉토리에 하나의 문자 다음은. -:거기에 바람직 할 수 있습니다.
Stéphane Chazelas

글쎄. GNU 이외의 많은 시스템은보기에 무의미한 사용 결과를 가지고있다. 이 경우 매뉴얼 페이지 및 하드 코즈로 암기하는 행운을 참조하십시오.
kerolasa

"저는 글을 쓰는 습관이있다"고 말했다. 빠진 단어?
Faheem Mitha

1

내가 좋아하는 한 가지 옵션은 동일하거나 유사한 옵션을 가진 별칭을 만드는 것입니다.

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

이렇게하면 곧 쉽게 기억할 수있는 유용한 바로 가기가 있지만 실제 옵션에 대한 정보도 그대로 유지됩니다.

별칭을 사용하는 또 다른 방법은 가장 일반적인 옵션을 선택하고이를 사용하는 매우 짧은 별칭을 만드는 것입니다. 예를 들어 ls나는 거의 항상 그렇게 l하고 있기 때문에 :

alias l='ls -alFtrG'

또 다른 옵션은 기본 명령에 원하는 옵션을 가져 오는 것입니다.

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

마지막으로 연습, 연습, 연습 및 인내. 일반적인 옵션을 계속 입력하면 결국 배우게됩니다. 며칠 동안의 일반적인 것들, 몇 주 동안의 다른 것들, 그리고 당신에게 알려지기까지 몇 년이 걸립니다. 유닉스 프로그래밍이 오랫동안 당신을 즐겁게 해줄 것이라고 생각하십시오.

내가 좋아하는 또 다른 옵션은 내 기록을 쉽게 검색 할 수있는 별칭이며 두 가지 유사한 별칭이 있습니다.

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

이를 통해 예를 들어 명령 사용을 검색 할 수 있습니다.

hg ls역사에서 ls의 최근 사용을
hga ls보여줍니다. 내 전체 역사에서 ls의 모든 사용을 보여줍니다.

나는 hga가 너무 많이 나타나는 경향이 있음을 알게 된 후에 hg를 개발했습니다.


4
OP가 무엇을 기억 rm -iv하지 못하면 OP는 아마도 무엇을 기억 rmiv하지 못할 것입니다 . 문제가되는 하이픈이라고 생각하지 않습니다.
tobyink

내가 좋겠 개인적으로 별칭 rm -ivsafe_deleterm_prompt
slebetman

감사합니다! 나는 더 많은 것을 배우는 것보다 더 많은 것을 기억하는 것에 대해 많은 걱정을했던 것 같다. 나는 총알 크기와 속도가 무엇인지 배우는 대신 무기를 사용할 때를 배울 것이다! 여기에 많은 훌륭한 리눅스 사람들이있어서 운이 좋았습니다. 유닉스 / 리눅스를 응원합니다!
Atul

1

나는 일반적으로 :

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

또는 이의 일부 변형. 일부를 사용하면 context , afterbefore 각각에 grep-C / A / B를 지정할 수 있습니다 . 그렇지 않은 경우 와 매우 잘 일치 할 수있다 :nlsed

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

--help메뉴가있는 경우 에도 동일한 기술이 메뉴에서 작동 하지만 ${CMD} --help 2>&1 | ..filter..이러한 작업을 인쇄하려면 상당히 표준적인 방법이기 때문에 수행해야 할 수도 있습니다 stderr.

어쨌든, 나는 이야기의 도덕적, 기억 추측 적어도 mangrep. 어쩌면 나머지는 땀을 흘리지 마십시오.


1
+1. grep특정 기능을 찾을 때 종종 매뉴얼 페이지를 작성하는 것이 매우 편리합니다.
John WH Smith

grep의 -A -B -C옵션도 유용 할 수 있습니다. 예 :man bash | grep -A 25 PROMPTING$
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.