GNU/Linux >> Linux Esercitazione >  >> Linux

Perché nessuno usa la vera shell Bourne come /bin/sh?

Ho notato che praticamente nessun sistema con cui abbia mai lavorato ha /bin/sh come un vero eseguibile. È sempre un collegamento simbolico a dash , bash in modalità POSIX o qualcosa di simile.

Come mai? Quali sono gli svantaggi dell'utilizzo del vero /bin/sh originale ? (Velocità? Licenze?)

Risposta accettata:

Immagino la mancanza di funzionalità:nessuna cronologia dei comandi, nessun reindirizzamento di fantasia, nessuna modifica della riga di comando. BSD ha introdotto csh la shell C per questi motivi. Un altro fattore è che la Genuine Bourne Shell è stata disponibile solo di recente in forma open source. A meno che tu non lo conceda in licenza, non potresti distribuirlo. Ciò lo rendeva fuori portata per le distribuzioni gratuite e lo rendeva ideologicamente sgradevole per altre distribuzioni e *BSD.

Ma il codice è ora disponibile. Puoi dare un'occhiata, compilarlo, dargli un giro.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Perché è meglio usare "#!/usr/bin/env Name" invece di "#!/path/to/name" come The Shebang?

  3. Qual è la differenza tra /sbin/nologin e /bin/false?

  4. È corretto utilizzare /bin/sh nell'hashbang se Bourne Shell non è disponibile in una distribuzione?

  5. Perché /bin/sh punta a /bin/dash e non a /bin/bash??

Qual è la differenza tra #!/usr/bin/env bash e #!/usr/bin/bash?

Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

Differenza tra /bin e /usr/bin

Perché vero e falso sono così grandi?

Perché sono necessari < o > per usare /dev/tcp

#!/bin/sh vs #!/bin/bash per la massima portabilità