1 votes

Installer les manpages linux sur MacOS

Je dois régulièrement travailler avec des machines Linux sur lesquelles man n'est pas installé (ne me demandez pas pourquoi). Est-il possible d'installer les pages de manuel de Linux sur MacOS ? Je pense à l'aide pour des commandes comme ip o ipset ou peut-être des variantes GNU d'outils Unix courants. J'ai utilisé manpages.me, mais c'est assez encombrant car il n'est pas aussi réactif qu'un outil de ligne de commande et affiche par défaut les manpages FreeBSD.

2 votes

Vous auriez également besoin d'accéder aux pages de manuel de MacOS, ce qui entraînerait de nombreux conflits. Peut-être installer une petite VM Linux ?

0 votes

Une VM semble extrêmement surchargée et plus encombrante que l'utilisation d'un service de gestion en ligne. Je pense que je pourrais éviter les conflits en mettant -M dans un alias. Je pense que je vais simplement télécharger les pages de manuel manuellement et les mettre quelque part, j'espérais une solution plus simple.

2 votes

Qu'en est-il ss64.com/bash

5voto

Rizwan Sattar Points 121

Voici une façon de le faire :

  • Allez sur la machine Linux de votre choix et faites un tar/zip de l'ensemble du fichier /usr/share/man répertoire.
  • Copiez l'archive sur votre Mac et décompressez-la, dites dans ~/Documents/linux-man .
  • Utilisez le -M passer pour faire man dans ce dossier : man -M ~/Documents/linux-man ip
  • Créez un alias, une fonction ou un wrapper script shell pour une utilisation plus pratique. Par exemple : lman() { man -M ~/Documents/linux-man "$@" } . Ensuite, vous pouvez faire lman 7 ip .

0voto

TheDudeAbides Points 217

Les recommandations d'utiliser man7.org et ss64.com sont légitimes. J'utilise régulièrement ces deux sites.

Mais j'ai généralement envie de lire des pages d'homme. dans le terminal Je me suis donc récemment mis à la recherche d'un référentiel semi-complet de pages de manuel GNU/Linux au format brut roff, en pensant pouvoir groff -T utf8 à la volée.

J'ai proposé quelques options :

Voici un exemple de fonction Bash qui va chercher la page de manuel demandée sur le serveur des pages de manuel de Debian, puis la tape avec groff .

# fetch Debian Linux man pages from https://manpages.debian.org
lman() {
    local encoding=utf8
    local lang=en
    local baseurl='https://manpages.debian.org/stable'
    local manpage=${1:?What manual page do you want?}

    curl -sL "$baseurl/$manpage.$lang.gz" \
      | groff -man -T$encoding \
      | less
}

J'ai un récent groff de MacPorts, mais celui qui est fourni avec MacOS devrait être suffisante.

Sur mon système, cela donne une sortie de 80 colonnes. Si vous voulez être plus fantaisiste, voici comment vous pouvez ajuster la sortie à un nombre spécifique de colonnes ( maxwidth ), et le centre à l'intérieur du terminal. Cela améliore considérablement la lisibilité lorsque votre écran principal peut afficher un grand nombre de colonnes.

# fetch Debian Linux man pages from https://manpages.debian.org and reformat
# to `maxwidth` columns, centered within the terminal
lman() {
    local maxwidth=100
    local encoding=utf8
    local lang=en
    local baseurl='https://manpages.debian.org/stable'
    local termwidth=$(tput cols)
    local width=$(( termwidth < maxwidth ? termwidth : maxwidth ))
    local margin=$(( (termwidth - width) / 2 ))
    local pad=$(printf "%${margin}s")
    local manpage=${1:?What manual page do you want?}

    curl -sL "$baseurl/$manpage.$lang.gz" \
      | groff -man -T$encoding -rLL=${width}n \
      | sed "s/^/$pad/" \
      | less
}

Les fonctions ci-dessus ne sont pas parfaites, car bien sûr les pages de manuel rendues ne sont pas mises en cache, il y a donc toujours un délai, et elles ne font pas la différence entre les sections du manuel, par exemple , crontab(1) vs. crontab(5) . L'implémentation de ces fonctionnalités est laissée comme un exercice pour le lecteur. ;)

Pour récupérer à partir d'une des autres sources mentionnées ci-dessus, comme les pages de manuel POSIX de kernel.org, il suffit d'ajuster l'URL récupérée par curl selon les besoins. Par exemple, la source roff pour le programme POSIX cp peut être récupérée à partir de https://git.kernel.org/pub/scm/docs/man-pages/man-pages-posix.git/plain/man-pages-posix-2017/man1p/cp.1p Vous devez donc mettre à jour le fichier lman comme suit :

# fetch a POSIX man page from git.kernel.org's man-pages repository
pman() {
    local encoding=utf8
    local baseurl='https://git.kernel.org/pub/scm/docs/man-pages/man-pages-posix.git/plain/man-pages-posix-2017/man1p'
    local manpage=${1:?What manual page do you want?}

    curl -sL "$baseurl/$manpage.1p" \
      | groff -man -T$encoding \
      | less
}

La réponse de DarkDust est toujours le meilleur si vous avez besoin d'un accès hors ligne, cependant.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X