7 votes

Outils de ligne de commande disponibles par défaut

Dans un système Unix, un certain nombre de commandes sont disponibles par défaut (soit dans la rubrique /bin o /usr/bin ). Supposons que dans quelque temps j'installe d'autres outils comme git, svn

Dans OS X, si j'installe XCode puis le paquet d'outils de ligne de commande, un ensemble d'outils de développement sera installé dans le système. Comment puis-je savoir quelles commandes sont disponibles au moment de l'installation du système d'exploitation ?

Est netcat , nc disponible par défaut sur Mac OSX ou est-il installé avec les outils de ligne de commande ?

10voto

jaume Points 13186

Comment puis-je savoir quelles commandes sont disponibles au moment de l'installation ?

Les commandes disponibles après une nouvelle installation de Mavericks (OS X 10.9) appartiennent à l'un de ces quatre paquets :

  • com.apple.pkg.BSD
  • com.apple.pkg.BaseSystemBinaries
  • com.apple.pkg.BaseSystemResources
  • com.apple.pkg.Essentials

(Notez qu'à partir de High Sierra (MacOS 10.13), les commandes ont été déplacées vers ce paquet. com.apple.pkg.Core .)

Cette commande permet d'obtenir la liste des commandes incluses dans chaque paquet :

pkgutil --files <package name> | egrep '^usr/s*bin|^s*bin/'

Sont netcat , nc disponible par défaut sur Mac OS X ou est-il installé avec les outils de ligne de commande ?

J'ai trouvé nc avec :

pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'

(Sur High Sierra, exécutez pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc' à la place.)

donc oui, nc appartient à l'installation de base du système d'exploitation.

Je n'ai pas trouvé netcat Si vous l'avez sur votre système, c'est qu'il a été installé plus tard.


Pour obtenir la liste de toutes les commandes fournies par tous les paquets, exécutez la commande dans le terminal :

for p in $(pkgutil --packages); do 
  list_of_cmds=$(pkgutil --files $p | egrep '^usr/s*bin|^s*bin/')
  if [ ! -z "$list_of_cmds" ]; then
    echo ">>>> $p <<<<"
    echo "$list_of_cmds"
  fi
done

Vous pouvez également enregistrer la commande dans un fichier sur votre bureau pour vous y référer ultérieurement :

for p in $(pkgutil --packages); do 
  list_of_cmds=$(pkgutil --files $p | egrep '^usr/s*bin|^s*bin/')
  if [ ! -z "$list_of_cmds" ]; then
    echo ">>>> $p <<<<"
    echo "$list_of_cmds"
  fi
done > ~/Desktop/cmds_from_pkgs.txt

1voto

Matthieu Riegler Points 20160

netcat fait partie des binaires du système de base, comme vous pouvez le voir avec

pkgutil --files com.apple.pkg.BaseSystemBinaries | grep "usr/bin/nc"

-4voto

Tony Williams Points 11219

Il est impossible de savoir quels exécutables faisaient partie du système d'exploitation d'origine et lesquels ont été installés ultérieurement.

Un coup d'œil à la page de manuel vous donnera généralement une bonne idée. Si la page de manuel commence par quelque chose comme "BSD General Commands Manual", il est presque certain qu'elle fait partie du système d'exploitation d'origine. Vous remarquerez que ces pages se terminent également par une ligne contenant soit "BSD", soit "Mac OS X" à chaque extrémité.

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