GNU/Linux >> Linux Esercitazione >  >> Linux

Quali sono i comandi standard disponibili in ogni distribuzione basata su Linux?

Sfortunatamente non c'è alcuna garanzia che qualcosa sia disponibile.

Tuttavia, la maggior parte dei sistemi avrà coreutils GNU. Questo da solo fornisce circa 105 comandi. Probabilmente puoi fare affidamento su quelli a meno che non si tratti di un sistema integrato, che potrebbe invece utilizzare BusyBox.

Probabilmente puoi anche fare affidamento su bash, cron, GNU findutils, GNU grep, gzip, iproute2, iputils, man-db, module-init-tools, net-tools, passwd (passwd o shadow), procps, tar e util- linux.

Si noti che alcuni programmi potrebbero avere alcune differenze tra le distribuzioni. Ad esempio /usr/bin/awk potrebbe essere gawk o mawk. /bin/sh potrebbe essere trattino o bash in modalità POSIX. Su alcuni sistemi meno recenti, /usr/bin/host non ha la stessa sintassi della versione BIND, quindi potrebbe essere meglio usare dig.

Se stai cercando alcuni standard, Linux Standard Base definisce alcuni programmi comunemente trovati, ma non tutte le distribuzioni affermano di essere conformi allo standard e alcune lo fanno solo se installi un pacchetto di compatibilità LSB opzionale. Ad esempio, alcuni sistemi che ho visto non sono dotati di lsb_release in un'installazione predefinita.

Inoltre, potrebbe essere utile l'elenco dei comandi standardizzati da POSIX.

Un altro approccio al tuo problema è impacchettare il tuo script usando gli strumenti di packaging di ciascuna distribuzione (ad es. RPM per Red Hat, DEB per Debian, ecc.) E dichiarare una dipendenza da qualsiasi altro programma o pacchetto di cui hai bisogno. È un po' laborioso, ma significa che gli utenti vedranno un messaggio di errore più amichevole, che dice loro non solo cosa manca, ma anche quali pacchetti devono installare.

Ulteriori informazioni:

  • RPM - Aggiunta di informazioni sulle dipendenze a un pacchetto
  • Debian - Dichiarazione delle relazioni tra i pacchetti.

Sui sistemi Linux non incorporati, generalmente puoi contare sulla maggior parte delle utilità GNU:

  • coreutils
  • bash
  • findutils (almeno find e xargs , non necessariamente locate e updatedb )
  • grep
  • gzip
  • sed
  • tar

più la suite util-linux e la suite procps. Nota che /bin/sh non è sempre bash, può essere una shell con meno funzionalità come una delle multiple forcelle di ash.

La Linux Standard Base definisce un insieme di utilità comuni con funzionalità previste su tutti i sistemi conformi. Puoi anche aspettarti la maggior parte delle utilità specificate da POSIX. Un'eccezione degna di nota è pax , che non fa parte dell'installazione predefinita di molte distribuzioni.

Se vuoi mantenere le cose semplici, richiedi l'installazione di un lsb_release pacchetto. Molte distribuzioni hanno un tale pacchetto che inserisce tutte le dipendenze richieste da LSB.

Su un sistema embedded, tutte le scommesse sono annullate. I sistemi Linux embedded di solito eseguono BusyBox, ma molte utilità e funzionalità sono opzionali, quindi c'è molto poco che puoi essere sicuro di ottenere.


C'è una serie di comandi nella maggior parte se non in tutte le distribuzioni Linux, e del resto, anche le distribuzioni Unix forniranno. Questi sono i comandi obbligatori specificati dallo standard POSIX.

La maggior parte dei comandi che citi (cd , mkdir , ls , echo , grep , sed , awk , ecc.) ne fanno parte. L'eccezione è ping come ha giustamente commentato WhiteWinterWolf.


Linux
  1. 20 comandi Linux essenziali per ogni utente

  2. 10 comandi che ogni utente Linux dovrebbe conoscere

  3. Come sapere quale distribuzione Linux stai utilizzando?

  4. Su quale piattaforma sono configurati i VPS Linux?

  5. Quali porte di rete sono riservate dal sistema operativo Linux?

Recensione di ArchLabs:una rapida occhiata alla distribuzione Linux basata su Arch in aumento

Una rapida occhiata alla distribuzione Indie Linux basata su Arch:MagpieOS

Alcuni comandi Linux casuali a una riga [Parte 2]

Alcuni comandi Linux casuali a una riga [Parte 3]

Come trovare la versione di Linux in esecuzione

Come utilizzare il comando which in Linux