Мне интересно узнать, какой трюк вы используете, чтобы запомнить параметры для различных команд? Поиск man-страниц все время занимает много времени и не такой крутой!
Среди прочего: unix.stackexchange.com/questions/138720/… удобен для создания индивидуальной сводки вещей, которые я обычно облажаю или забываю. Кстати, чем больше вы читаете справочные страницы, тем больше вы цените их.
Златовласка
Некоторое время я чувствую, что все забываю. Мне было интересно, если я единственный, кому трудно вспомнить все полезные опции на макушке головы ... Ваше предложение кажется хорошим решением ... Спасибо!
Атул
3
Чтение manстраниц очень круто ... :)
jasonwryan
1
Q: Как вы добираетесь до Карнеги-холла ? A: Практика!
evilsoup
4
Я думаю, что это заслуживает некоторого XKCD: xkcd.com/1168
Darkhogg
Ответы:
39
Хитрость проста: просто нет. Это пустая трата времени и просто не нужно. Запоминание опций команд не является особенно полезным навыком. Гораздо важнее понять, как все работает в целом, и иметь смутное представление о том, какие инструменты существуют в первую очередь и для чего вы их используете. Очень важным навыком здесь является умение узнавать о вещах, которые вы еще не знаете.
Страницы руководства занимают много времени? Не так. Вы не должны их читать - по крайней мере, не каждый раз - есть функция поиска. Так что, если я не помню, какая загадочная опция была для hdparmотключения таймера простоя на некоторых дисках WD, я делаю, man hdparmи /idle3да, и это было -J. Подобные вещи выглядят так быстро, что я даже не помню, как делал это потом.
Представьте, что кто-то запоминает все hdparmварианты. Что за трата времени.
Хорошо, если вы просто запомнили опции, потому что часто используете их. Это происходит автоматически, даже не задумываясь об этом. Но на самом деле сознательно тратить время на их запоминание ... для чего это должно быть хорошо? Бумажный тест?
Upvoted: навык находит то, что вам нужно, а не лишнюю память. man hdparm | less -p idle3это также удобный способ перейти к желаемому сроку ...
jasonwryan
Я полностью согласен с этим ответом, хотя думаю, что стоит подчеркнуть, что нормально запомнить несколько наиболее распространенных вариантов обычных программ только потому, что вы используете их так часто. Как rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -aи т.д. (список варьируется от человека к человеку).
Дэвид Z
8
У Zsh есть функция run-help , по умолчанию связанная с Alth. С помощью этой функции вы можете начать ввод команды со многими или сложными опциями, которые трудно запомнить, rsyncнапример, например, и затем manоткрыть страницу этой команды . Так:
rsync Alth
прочитайте manстраницу и определите, какие переключатели вам нужны, нажмите, qа затем вы вернетесь в командную строку, где именно остановились, и готовы выполнить команду с необходимыми параметрами:
rysnc -azP file dir/
Как отмечает вики:
Эта функция может быть дополнительно настроена путем определения вспомогательных функций формы run-help-command. В стандартном выпуске доступно три таких функции: run-help-git, run-help-svk и run-help-svn.
Точно так же bashимеет, bash-completeкоторый предоставит много параметров параметров для большого количества команд.
ericx
2
@ericx "Аналогично" может быть немного преувеличено ... Zsh также имеет завершение, это шаг вперед по сравнению с этим.
jasonwryan
эй ... я слышал, как люди хвастаются, но я никогда не пробовалzsh
ericx
Кроме того, bashзавершение @ericx не поддерживает добавление описаний в список завершения или группирование записей ( --classify -F -- append file type indicatorsнапример, в завершении GNU ls в zsh), поэтому оно не так полезно, как в zsh.
Использование очень длинной истории команд и прохождение через нее очень полезно.
Я в основном собираю все файлы истории оболочки и прохожу через них.
Полученные результаты во многих случаях очень полезны, так как легко найти хорошие ключевые слова.
При поиске определенного аргумента, который вы использовали, например URL, вы также найдете соответствующие команды и опции. И в поисках конкретных вариантов, вы можете найти соответствующие аргументы.
Большинство команд имеют --help для быстрого ознакомления, и обычно этого достаточно, чтобы напомнить, что я когда-то знал.
Тем не менее, есть привычка писать --help вместо -h или даже - ?. Вы никогда не знаете, что такое -h, прежде чем смотреть вывод об использовании или страницу руководства. В худшем случае -h может быть короткой рукой для --hazardous-автоматического-уничтожения.
... Большинство команд в системах GNU . Команды в системах Unix обычно не имеют --help. -?потребности ссылки с zsh, csh, tcshили , fishили , если есть файлы, имена которых будут -следует один символ в текущей директории. -:может быть предпочтительнее там.
Стефан Шазелас
Ну ... многие системы без GNU имеют настолько ужасающие результаты использования, что даже смотреть бессмысленно. В этом случае смотрите справочные страницы и удачи в запоминании, потому что больше ничего не будет работать.
Kerolasa
«Тем не менее, имеют привычку писать». Пропущенное слово?
Фахим Митха
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'
Наконец практика, практика, практика и терпение. Продолжайте вводить общие параметры, и вы в конечном итоге выучите их. Обычные в днях, другие в неделях, и да, некоторые становятся годами, чтобы стать вам известными. Думайте об этом как о удовольствии в том программировании Unix, которое будет продолжать развлекать вас в течение долгого времени.
Другой вариант, который мне нравится, - это псевдоним, который облегчает поиск в моей истории, и для этого у меня есть два похожих псевдонима:
alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'
Это позволяет мне искать использование команды, например:
hg lsпокажет все недавние случаи использования ls из истории hga ls, покажет все случаи использования ls из всей моей истории.
Я разработал HG, обнаружив, что HGA имеет тенденцию показывать слишком много.
Если ОП не может вспомнить, что rm -ivделает, ОП, вероятно, также не вспомнит, что rmivделает. Я не думаю, что проблема в дефисе.
tobyink
Я бы лично псевдоним , rm -ivчтобы safe_deleteилиrm_prompt
slebetman
Спасибо вам, ребята! Думаю, я много беспокоился о том, что вспомнил больше, чем узнал больше ... Я научусь, когда использовать оружие, а не узнавать, каковы размеры и скорость пули! К счастью, здесь так много хороших людей из Linux .. Приветствия Unix / Linux!
Атул
1
Я обычно делаю:
man ${CMD}| grep 'what was I thinking about?'
Или какой-то их вариант. С некоторыми greps вы можете указать -C / A / B для контекста , после и до соответственно. Если нет, nlи sedможет быть довольно хорошо подобраны:
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,nextDrive'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.
Во всяком случае, я думаю, мораль этой истории, помните, по крайней мере,man и grep. Может, не парься по остальным.
man
страниц очень круто ... :)Ответы:
Хитрость проста: просто нет. Это пустая трата времени и просто не нужно. Запоминание опций команд не является особенно полезным навыком. Гораздо важнее понять, как все работает в целом, и иметь смутное представление о том, какие инструменты существуют в первую очередь и для чего вы их используете. Очень важным навыком здесь является умение узнавать о вещах, которые вы еще не знаете.
Страницы руководства занимают много времени? Не так. Вы не должны их читать - по крайней мере, не каждый раз - есть функция поиска. Так что, если я не помню, какая загадочная опция была для
hdparm
отключения таймера простоя на некоторых дисках WD, я делаю,man hdparm
и/idle3
да, и это было-J
. Подобные вещи выглядят так быстро, что я даже не помню, как делал это потом.Представьте, что кто-то запоминает все
hdparm
варианты. Что за трата времени.Хорошо, если вы просто запомнили опции, потому что часто используете их. Это происходит автоматически, даже не задумываясь об этом. Но на самом деле сознательно тратить время на их запоминание ... для чего это должно быть хорошо? Бумажный тест?
источник
man hdparm | less -p idle3
это также удобный способ перейти к желаемому сроку ...rm -i -f -r
,ln -s
,df -s -h
,cp -r -i
,ls -l -h -a
и т.д. (список варьируется от человека к человеку).У Zsh есть функция run-help , по умолчанию связанная с Alth. С помощью этой функции вы можете начать ввод команды со многими или сложными опциями, которые трудно запомнить,
rsync
например, например, и затемman
открыть страницу этой команды . Так:прочитайте
man
страницу и определите, какие переключатели вам нужны, нажмите, qа затем вы вернетесь в командную строку, где именно остановились, и готовы выполнить команду с необходимыми параметрами:Как отмечает вики:
источник
bash
имеет,bash-complete
который предоставит много параметров параметров для большого количества команд.zsh
bash
завершение @ericx не поддерживает добавление описаний в список завершения или группирование записей (--classify -F -- append file type indicators
например, в завершении GNU ls в zsh), поэтому оно не так полезно, как в zsh.Использование очень длинной истории команд и прохождение через нее очень полезно.
Я в основном собираю все файлы истории оболочки и прохожу через них.
Полученные результаты во многих случаях очень полезны, так как легко найти хорошие ключевые слова.
При поиске определенного аргумента, который вы использовали, например URL, вы также найдете соответствующие команды и опции. И в поисках конкретных вариантов, вы можете найти соответствующие аргументы.
источник
Большинство команд имеют --help для быстрого ознакомления, и обычно этого достаточно, чтобы напомнить, что я когда-то знал.
Тем не менее, есть привычка писать --help вместо -h или даже - ?. Вы никогда не знаете, что такое -h, прежде чем смотреть вывод об использовании или страницу руководства. В худшем случае -h может быть короткой рукой для --hazardous-автоматического-уничтожения.
источник
--help
.-?
потребности ссылки сzsh
,csh
,tcsh
или ,fish
или , если есть файлы, имена которых будут-
следует один символ в текущей директории.-:
может быть предпочтительнее там.Один из вариантов, который мне нравится, - создавать псевдонимы с одинаковыми или похожими параметрами, например
Таким образом, у вас есть хороший ярлык, который вы скоро запомните, но он также сохранит информацию о реальных параметрах, которые он отображает.
Другой подход с псевдонимами состоит в том, чтобы выбрать наиболее распространенные параметры и создать супер короткий псевдоним, который их использует. Например,
ls
я почти всегда так делаю,l
и это потому, что у меня есть:Другой вариант - просто ввести нужные вам опции в базовую команду, например:
Наконец практика, практика, практика и терпение. Продолжайте вводить общие параметры, и вы в конечном итоге выучите их. Обычные в днях, другие в неделях, и да, некоторые становятся годами, чтобы стать вам известными. Думайте об этом как о удовольствии в том программировании Unix, которое будет продолжать развлекать вас в течение долгого времени.
Другой вариант, который мне нравится, - это псевдоним, который облегчает поиск в моей истории, и для этого у меня есть два похожих псевдонима:
Это позволяет мне искать использование команды, например:
hg ls
покажет все недавние случаи использования ls из историиhga ls
, покажет все случаи использования ls из всей моей истории.Я разработал HG, обнаружив, что HGA имеет тенденцию показывать слишком много.
источник
rm -iv
делает, ОП, вероятно, также не вспомнит, чтоrmiv
делает. Я не думаю, что проблема в дефисе.rm -iv
чтобыsafe_delete
илиrm_prompt
Я обычно делаю:
Или какой-то их вариант. С некоторыми
grep
s вы можете указать -C / A / B для контекста , после и до соответственно. Если нет,nl
иsed
может быть довольно хорошо подобраны:Те же самые приемы работают с
--help
меню, если они у вас есть, но вам может понадобиться сделать это,${CMD} --help 2>&1 | ..filter..
потому что это довольно стандартная практика для печати таких вещейstderr
.Во всяком случае, я думаю, мораль этой истории, помните, по крайней мере,
man
иgrep
. Может, не парься по остальным.источник
grep
страницам при поиске конкретной функции, это довольно удобно.-A
-B
-C
Опции grep тоже могут быть полезны, напримерman bash | grep -A 25 PROMPTING$