Як ви пам’ятаєте варіанти команд? [зачинено]


13

Мені цікаво дізнатися, який трюк ви використовуєте, щоб запам'ятати варіанти різних команд? Переглядаючи сторінки чоловіків весь час трудомісткий і не такий класний!


2
Крім усього іншого: unix.stackexchange.com/questions/138720/… - це зручно для створення індивідуального резюме речей, які я звично викручую або забуваю. До речі, чим більше читаєш чоловічих сторінок, тим більше їх оцінюєш.
goldilocks

Я певний час відчуваю, що все забуваю. Мені було цікаво, чи я єдиний, хто важко запам’ятовує всі корисні варіанти вгорі голови? Ваша пропозиція здається хорошим рішенням. Дякую!
Атул

3
Читання manсторінок дуже круто ... :)
jasonwryan

1
Питання: Як потрапити до Карнегі Холл ? A: Тренуйтеся!
злий

4
Я думаю, що це заслуговує на деякий XKCD: xkcd.com/1168
Darkhogg

Відповіді:


39

Трюк простий: ти просто цього не робиш. Це марна трата часу і просто не потрібна. Запам'ятовування параметрів команд - не особливо корисний навик. Набагато важливіше зрозуміти, як працює робота в цілому і мати розпливчасте уявлення про те, які інструменти існують в першу чергу і для чого ви їх використовуєте. Тут дуже важлива навичка - знати, як дізнатися про речі, які ви ще не знаєте.

Сторінки людини займають багато часу? Не так. Це не так, як вам доведеться їх читати - принаймні, не кожен раз - є функція пошуку. Тож якщо я не пам’ятаю, яка криптовалюта була hdparmвимкненням таймера очікування на деяких дисках WD, я це роблю, man hdparmі так /idle3, це було -J. Шукати подібні речі так швидко, що навіть не пам'ятаю, як це робили після цього.

Уявіть, що хтось насправді запам'ятовує всі hdparmваріанти. Яка марна трата часу.

Добре, якщо ви просто запам'ятаєте варіанти, оскільки ви їх часто використовуєте. Це відбувається автоматично, навіть не думаючи про це. Але насправді свідомо витрачаючи час на їх запам'ятовування ... для чого це повинно бути корисним? Паперовий тест?


4
Оновлено: вміння знаходити те, що вам потрібно, а не перетворювати пам'ять. man hdparm | less -p idle3також є зручним способом перейти до потрібного терміну ...
jasonwryan

Я цілком згоден з цією відповіддю, хоча думаю, що варто підкреслити, що нормально запам’ятовувати декілька найпоширеніших варіантів для загальних програм просто тому, що ви їх використовуєте так часто. Як 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.

Аналогічно bashмає, bash-completeякий надасть безліч параметрів параметрів для багатьох команд.
ericx

2
@ericx "Аналогічно" може трохи завищити ... Zsh також має завершення, це крок від цього.
jasonwryan

Гей ... Я чув, як люди вихваляються, але ніколи не пробувавzsh
ericx

@ericx, також, bashзавершення не підтримує додавання описів до списку завершень або групування записів ( --classify -F -- append file type indicatorsнаприклад, в завершенні zsh в GNU ls), тому не є настільки корисним, як zsh.
Стефан Шазелас

** root @ milicent ** ~ / tmp ** Tue Aug 05 09:24:55 # pkg info (-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 [Повертає 0, якщо встановлено <pkg-name>] (-g -X -a -F) -x [Обробляти пакети, що відповідають шаблону регулярного вираження] (-g -x -X -F) -a [Обробити весь пакет
ericx

4

Використання дуже тривалої історії команд та проходження через неї дуже корисно.

Я в основному збираю всі файли історії оболонок і проглядаю їх.

Знайдені результати є в багатьох випадках дуже корисними, оскільки легко знайти хороші ключові слова.
Шукаючи потрібний вами аргумент, наприклад URL-адресу, ви також знайдете відповідні команди та параметри. І шукаючи конкретні варіанти, ви також можете знайти відповідні аргументи.


4

Більшість команд - допомогти для швидкого довідки, і зазвичай достатньо нагадати, що було щось, про що я раніше знав.

Сказавши, майте звичку писати - допомагати замість -h чи навіть - ?. Ви ніколи не знаєте, що таке -h, перш ніж шукати вихідні дані або сторінку вручну. У гіршому випадку -h може бути короткою рукою для - небезпечного автоматичного знищення.


2
... Більшість команд у системах GNU . Команд в системах Unix, як правило, немає --help. -?потреби посилання з zsh, csh, tcshабо , fishабо , якщо є файли, імена яких будуть -слід один символ в поточній директорії. -:може бути кращим там.
Стефан Шазелас

Ну .. багато систем, що не належать до 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'

Нарешті, практика, практика, практика і терпіння. Продовжуйте вводити загальні параметри, і з часом ви їх вивчите. Для звичайних вони стають днями, а іншим - тижнями. Так, для деяких вам знадобляться роки. Подумайте про це як про ласощі в програмі Unix, яке ще довго розважатиме вас.

Ще один варіант, який мені подобається - псевдонім, щоб полегшити пошук моєї історії, і для цього у мене є два подібних псевдоніми:

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

Вони дозволяють мені шукати використання команди, наприклад:

hg lsпокаже будь-яке недавнє використання ls з історії
hga ls, покаже всі використання ls з усієї моєї історії.

Я розробив hg після того, як виявив, що hga, як правило, показує занадто багато.


4
Якщо ОП не може згадати, що 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,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.

У будь-якому випадку, я думаю, мораль цієї історії є, пам’ятайте принаймні man і grep. Можливо, не потійте решту.


1
+1. Я часто переглядаю grepсторінки, шукаючи певну особливість, це дуже зручно.
Джон У. Сміт

-A -B -CПараметри grep також можуть бути корисними, наприкладman bash | grep -A 25 PROMPTING$
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.