Пользовательская справка / человек - как команда (для напоминаний)

xargs

Один метод, о котором я знаю, должен использовать xargs узнать эту информацию.

$ xargs --show-limits --no-run-if-empty < /dev/null 
Your environment variables take up 4791 bytes
POSIX upper limit on argument length (this system): 2090313
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2085522
Size of command buffer we are actually using: 131072

getconf

Предел это xargs отображается происходит из этого значения конфигурации системы.

$ getconf ARG_MAX
2097152

Значения, такие как они обычно "трудно кодируются" в системе. Посмотрите man sysconf для больше на этих типах значений. Я полагаю, что эти типы значений доступны в приложении C, например:

#include 
...
printf("%ld\n", sysconf(_SC_ARG_MAX));

Ссылки

2
11.03.2014, 20:39
2 ответа
[114238]Правильно, вот также скрипт с автозавершением, как описано в ОП; вы можете сохранить его в каталоге [114714]~/myreminderhelp/[114715], как в ответе [114716]man[114717], а затем сделать сим-ссылку на [114718]/usr/bin[114719]. Он должен прочитать все файлы [114720]*.txt[114721] в своей директории, и сделать их доступными (без расширений) через автозавершение; пробелы в именах файлов должны быть обработаны. Поэтому вы можете вызвать:

  • ... или использовать что-то подобное, чтобы открыть файлы в текстовом редакторе:

    enter image description here

  • ... который также откроет несуществующие файлы, так что вы можете начать их редактирование.

    Вот код для [114722]help-remind.sh[114723]:

    shmgrate.exe OcinstallreinstallIE
    

    0
    27.01.2020, 22:06
    [114017]Расширяя комментарий @SamiLaine для использования [114426]man[114427] - одна из причин, по которой он мне не понравился, была в том, что я ожидал, что его будет утомительно устанавливать, и я думаю, что этот пост покажет это; но, похоже, это работает. Во-первых, некоторое введение можно найти здесь:
  • HowTo: Linux / UNIX Create a Manpage - nixCraft[114936] упоминает разделы, синтаксис и т.д.

    Создание пользовательских страниц Man | Linux Journal[114938] упоминает [114939]txt2man[114940] ([114941]sudo apt-get install txt2man[114942])

  • 10.04 - Как добавить каталог в MANPATH или INFOPATH? - Спросим Ubuntu

  • Сначала создадим каталог и добавим его в MANPATH:
  • Проверим, найден ли он: закрываем терминал, открываем новый; а потом:
  • К сожалению, это ничего не сообщает мне; даже если [114434]echo $MANPATH[114435] скажет [114436]:~/myreminderhelp[114437].
  • Попробуйте с глобальным [114438]/etc/bash.bashrc[114439] (после удаления строки в локальном [114440]~/.bashrc[114441], и снова перезапустите терминал):
  • Перезапустите терминал; все равно [114442]manpath[114443] не сообщает об этом каталоге. Теперь попробуем так:

    grep -o pattern file
    

    Закрыть и снова открыть терминал; наконец, мы получим:

    for f in *\ *; do mv "$f" "${f// /_}"; done
    

    На самом деле, после нахождения этого, я удалил строку из [114444]/etc/bash.bashrc[114445], и [114446]manpath[114447] все еще сообщает об этом каталоге. Так что, думаю, редактирование [114448]/etc/manpath.config[114449] - это все, что нужно.

    • Хорошо, давайте создадим здесь пример пользовательского файла-напоминания:
    • Затем используйте [114450]txt2man[114451], чтобы получить файл в формате [114452]man[114453], и gzip его:
    • Перезапустите терминал ещё раз, попробуйте набрать [114454]man nm[114455] и нажмите TAB - автозавершение покажет, что [114456]nmcli-reminder[114457] не найден....
    Итак, давайте попробуем поместить наши файлы в подпапку раздела [114458]man[114459]; ссылки выше показывают, что раздел 7 подходит; так:

    set -g terminal-overrides 'xterm*:smcup@:rmcup@'
    

    Перезапустите терминал ещё раз; попробуйте набрать [114460]man nm[114461] и нажмите TAB - автозавершение наконец-то работает:

    .... но теперь у нас проблема:

    Чёрт возьми. Может быть, сейчас наш файл - [114462]nmcli-reminder.1. .gz[114463], указывая на раздел 1 - переименуем его:

    ... и [114464]наконец[114465] команда [114466]man[114467] работает!

    Так что для этого случая использования, наверное, лучше всего хранить исходные файлы [114468].txt[114469] непосредственно в [114470]~/myreminderhelp/[114471], а затем генерировать man-страницы в соответствующей подпапке - как в:

    . ...соответствующие команды генерации:
    И вот скрипт [114472]~/myreminderhelp/buildreminders.sh[114473]:

    EDIT: Оказывается, очень сложно заставить [114474]txt2man[114475] оставить буквальный исходный код неформатированным, так как он имеет тенденцию к автоматическому извлечению информации вроде [114476]man[114477] (sub)разделов и т.д. Я модифицировал скрипт выше, чтобы использовать [114478]pandoc[114479] вместо него (через [114480]WritingManPages - HerzbubeWiki[114481]) -- по крайней мере, с помощью [114482]pandoc[114483] с вводом Markdown, вы имеете некоторый контроль над тем, что является буквальным предварительно отформатированным текстом, а что нет ...

    Однако, оба этих инструмента будут отступать от содержимого, как это типично для страницы [114484]man[114485] (так как там заголовки разделов не отступают, остальное текстовое содержимое, как в параграфах, есть). И я не уверен, что в конце концов мне это понравится...[114061].

    3
    27.01.2020, 22:06

    Теги

    Похожие вопросы