Как просмотреть все записи в man?

Я заметил то же самое, если доступно несколько раскладок. Нажатие Ctrl всегда будет использовать первый макет в списке макетов. Это означает, что если Дворжак не первый, вы получите такое поведение. Это может сбивать с толку, но я нахожу это полезным.

Однако проблема в том, что это не всегда применимо, в зависимости от активного приложения. Теперь я ищу решение, в котором я бы получил такое же поведение, но последовательно.

Очевидно,-https://github.com/tbocek/dvorak-это должно работать с Wayland. Еще не пробовал, но есть сообщения, что это работает.

-1
26.02.2020, 05:29
3 ответа

I get 4000 man pages listed

Это половина проблемы. ОП хочет не только:

]# apropos -s1       
apropos what?
]# apropos -s1 -w \*

, который дает хороший плоский список команд. А как насчет встроенных программ, coreutils, sbin?

И он хочет не только команд:

"все команды/документация"

Много важной информации находится в других разделах :4, 5, 7 или 8.

Нет отправной точки. Нет "Руководства пользователя" со списком команд. Руководство представляет собой список команд, а команды также являются лишь строительными блоками. echoи gccсоседствуют с множеством пояснений. Но узнать, для чего они нужны, новичку не так-то просто. (мой пример для подражания – это просто заинтересованный 13-летний мальчик -или девочка)


Способ создания дистрибутивов Linux пакеты должны быть основными структурными именами :они естественным образом группируют некоторые команды вместе. И пакеты всегда имеют хорошее описание.

Это некоторые man -файлы из systemd, не начинающиеся с "systemd -"

systemd /usr/share/man/man5/udev.conf.5.gz
systemd /usr/share/man/man5/user-runtime-dir@.service.5.gz
systemd /usr/share/man/man5/user.conf.d.5.gz
systemd /usr/share/man/man5/user@.service.5.gz
systemd /usr/share/man/man5/vconsole.conf.5.gz
systemd /usr/share/man/man7/
systemd /usr/share/man/man7/bootup.7.gz
systemd /usr/share/man/man7/daemon.7.gz
systemd /usr/share/man/man7/file-hierarchy.7.gz
systemd /usr/share/man/man7/hwdb.7.gz
systemd /usr/share/man/man7/kernel-command-line.7.gz
systemd /usr/share/man/man7/sd-boot.7.gz
systemd /usr/share/man/man7/udev.7.gz
systemd /usr/share/man/man8/
systemd /usr/share/man/man8/kernel-install.8.gz

и часть man1:

systemd /usr/share/man/man1/
systemd /usr/share/man/man1/bootctl.1.gz
systemd /usr/share/man/man1/busctl.1.gz
systemd /usr/share/man/man1/coredumpctl.1.gz
systemd /usr/share/man/man1/hostnamectl.1.gz
systemd /usr/share/man/man1/init.1.gz
systemd /usr/share/man/man1/journalctl.1.gz
systemd /usr/share/man/man1/localectl.1.gz
systemd /usr/share/man/man1/loginctl.1.gz
systemd /usr/share/man/man1/machinectl.1.gz
systemd /usr/share/man/man1/networkctl.1.gz
systemd /usr/share/man/man1/portablectl.1.gz
systemd /usr/share/man/man1/resolvectl.1.gz
systemd /usr/share/man/man1/systemctl.1.gz
systemd /usr/share/man/man1/timedatectl.1.gz

Это компактный обзор, не зависящий от содержания.

Другими важными пакетами являются coreutils, util -linux, shell (s ), editor (s ).

Если я хочу узнать о других командах, связанных с ps, я могу посмотреть другие команды из его пакета (выдержка):

procps-ng /usr/share/man/man1/ps.1.gz
procps-ng /usr/share/man/man1/pwdx.1.gz
procps-ng /usr/share/man/man1/slabtop.1.gz
procps-ng /usr/share/man/man1/tload.1.gz
procps-ng /usr/share/man/man1/top.1.gz

И описание «Утилиты для мониторинга вашей системы и ее процессов», что дает всей банде значимое название.

20 пакетов с 20 справочными страницами в каждом (в среднем )намного лучше, чем 4000 справочных страниц целиком .


... и с системными вызовами

Я делал/делаю что-то подобное с системными вызовами -определениями, которые я нашел (с помощью find/grep ).


find -exec grep— это (слегка отформатированный в две строки):

]# dlist='kernel mm fs block net ipc security' 
]# find $dlist -name '*.c' -exec grep '^SYSCALL_DEFINE[0-6]' {} +  

$dlistявляется необязательным, но полная гига(drivers/! )в первый раз встряхнет SSD на несколько секунд.

И путем перенаправления в какой-либо файл путем добавления > /tmp/SYSC_06я получаю список, который я могу grep, сортировать и группировать по каталогу, имени файла и количеству аргументов. Несколько простых примеров следуют:


]# grep '(.*write.*,' SYSC_06 

mm/process_vm_access.c:SYSCALL_DEFINE6(process_vm_writev, pid_t, pid,
fs/read_write.c:SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf,
fs/read_write.c:SYSCALL_DEFINE4(pwrite64, unsigned int, fd, const char __user *, buf,
fs/read_write.c:SYSCALL_DEFINE3(writev, unsigned long, fd, const struct iovec __user *, vec,
fs/read_write.c:SYSCALL_DEFINE5(pwritev, unsigned long, fd, const struct iovec __user *, vec,
fs/read_write.c:SYSCALL_DEFINE6(pwritev2, unsigned long, fd, const struct iovec __user *, vec,


]# grep sync SYSC_06

mm/msync.c:SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
fs/sync.c:SYSCALL_DEFINE0(sync)
fs/sync.c:SYSCALL_DEFINE1(syncfs, int, fd)
fs/sync.c:SYSCALL_DEFINE1(fsync, unsigned int, fd)
fs/sync.c:SYSCALL_DEFINE1(fdatasync, unsigned int, fd)
fs/sync.c:SYSCALL_DEFINE4(sync_file_range, int, fd, loff_t, offset, loff_t, nbytes,
fs/sync.c:SYSCALL_DEFINE4(sync_file_range2, int, fd, unsigned int, flags,

Это было бы еще более синоптическим:

fs/sync.c: sync()
fs/sync.c: syncfs(fd)

"СМ. ТАКЖЕ" полезно, но я хочу "СМ. ВСЕ" в логических группах

man futexесть:

SEE ALSO: get_robust_list(2), restart_syscall(2),...

Но я понимаю:

]# grep futex SYSC_06 

kernel/futex.c:SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
kernel/futex.c:SYSCALL_DEFINE3(get_robust_list, int, pid,
kernel/futex.c:SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,

(строки неполные... но см. выше... поиск тоже не точный.)

restart_syscall()предназначен "только для внутреннего пользования" -довольно ложный след.


Или все системные вызовы с 6 аргументами в минимальном формате:

]# grep FINE6 SYSC_06 |sed -n 's/(/\t\t/p'

kernel/futex.c:SYSCALL_DEFINE6          futex, u32 __user *, uaddr, int, op, u32, val,
kernel/fork.c:SYSCALL_DEFINE6           clone, unsigned long, clone_flags, unsigned long, newsp,
mm/nommu.c:SYSCALL_DEFINE6              mmap_pgoff, unsigned long, addr, unsigned long, len,
mm/mempolicy.c:SYSCALL_DEFINE6          mbind, unsigned long, start, unsigned long, len,
mm/mmap.c:SYSCALL_DEFINE6               mmap_pgoff, unsigned long, addr, unsigned long, len,
mm/process_vm_access.c:SYSCALL_DEFINE6          process_vm_readv, pid_t, pid, const struct iovec __user *, lvec,
mm/process_vm_access.c:SYSCALL_DEFINE6          process_vm_writev, pid_t, pid,
mm/migrate.c:SYSCALL_DEFINE6            move_pages, pid_t, pid, unsigned long, nr_pages,
fs/eventpoll.c:SYSCALL_DEFINE6          epoll_pwait, int, epfd, struct epoll_event __user *, events,
fs/read_write.c:SYSCALL_DEFINE6         preadv2, unsigned long, fd, const struct iovec __user *, vec,
fs/read_write.c:SYSCALL_DEFINE6         pwritev2, unsigned long, fd, const struct iovec __user *, vec,
fs/read_write.c:SYSCALL_DEFINE6         copy_file_range, int, fd_in, loff_t __user *, off_in,
fs/splice.c:SYSCALL_DEFINE6             splice, int, fd_in, loff_t __user *, off_in,
fs/select.c:SYSCALL_DEFINE6             pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp,
fs/aio.c:SYSCALL_DEFINE6                io_pgetevents,
net/socket.c:SYSCALL_DEFINE6            sendto, int, fd, void __user *, buff, size_t, len,
net/socket.c:SYSCALL_DEFINE6            recvfrom, int, fd, void __user *, ubuf, size_t, size,
ipc/syscall.c:SYSCALL_DEFINE6           ipc, unsigned int, call, int, first, unsigned long, second,
2
28.04.2021, 23:22

У меня не установлен GMP, но я подозреваю, что пакет не содержит man-страниц для него.

Я не понимаю, почему вам нужны справочные страницы без использования Интернета, к которому у вас явно есть доступ. Документация по проекту GMP находится по адресу :

.
https://gmplib.org/manual

PDF-файл на 150 -страниц находится по адресу :

.
gmplib.org/gmp-man-6.2.0.pdf
0
28.04.2021, 23:22

Почему вы хотите видеть «все справочные страницы»? Как заявляли другие, в типичной настольной установке их буквально тысячи. Вы можете проверить «пользовательские команды» в разделе 1 руководства (, иногда также в разделе l, для локальных дополнений/внеофициальных команд ), но их как минимум несколько сотен (здесь у меня 4365! ).

Хотите научиться эффективно использовать командную строку? Посмотрите учебник по вашей оболочке (предположительно bash ), есть много по использованию командной строки, посмотрите шпаргалку по командной строке Unix для основных команд. Обратите внимание, что в оболочках есть элементарные средства программирования и множество подводных камней, которые сильно вас укусят в один прекрасный день при написании более амбициозных сценариев. Используйте средства программирования для одноразовых -одноразовых команд (циклически перебирайте все файлы с именами *.pdf и т. д. ). Если ваши скрипты разрастаются/используются часто, подумайте о том, чтобы переписать их на нормальном языке сценариев (. ] как Python ).Узнайте, как использовать текстовый редактор «командной строки», стандартом является vi (, в Linux обычно действительно vim, значительно расширенная версия ), но есть фанатики emacs... Многие стандартные команды Unix (] grep, more/less, sed )используют более или менее тот же механизм поиска, что и vi, поэтому стоит научиться его использовать (, и если вы когда-нибудь окажетесь в странной системе Unix, vi будет доступен ). Многие команды передают объемный вывод через ваш пейджер (более или менее ). Существуют команды для изменения текстовых файлов (cat, cut, join, sort, split, head, tail ).

Для более специализированных задач вам нужно посмотреть, что доступно (сначала осмотреться с помощью apropos, чтобы увидеть, не упоминается ли на какой-либо странице руководства искомый термин и может ли он быть релевантным ), выполнить поиск по ' net для задания в вашем дистрибутиве, а в крайнем случае поспрашивайте здесь. Как правило, существует ошеломляющее разнообразие программ для данной задачи... и выбор должен основываться на личных (предпочтениях, доступности, стандартной или нет, простоте использования,... ).

1
28.04.2021, 23:22

Теги

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