1.3. /bin

Diversamente da /sbin, la directory /bin contiene diversi comandi utili che possono essere usati sia dall'amministratore del sistema che dagli utenti senza i privilegi di amministratore. Normalmente contiene le shell come bash, csh, etc ... e comandi usati comunemente come cp, mv, rm, cat, ls. Per questo motivo, e contrariamente a /usr/bin, i binari in questa directory sono considerati fondamentali. Questa directory contiene programmi di sistema essenziali che devono essere disponibili anche se è montata solo la partizione che contiene / . Questa situazione può presentarsi se è necessario riparare altre partizioni ma non si ha l'accesso alle directory condivise (per esempio quando si è in modalità monoutente e quindi senza accesso alla rete). Contiene anche programmi dai quali possono dipendere gli script di avvio.

Conformità al FSSTND significa che non ci sono sottodirectory in /bin e che i seguenti comandi, o collegamenti simbolici ai comandi, sono in questa directory.


cat      Programma per concatenare file verso lo standard output
chgrp    Programma per cambiare l'appartenenza di un file a un gruppo
chmod    Programma per cambiare i permessi d'accesso di un file
chown    Programma per cambiare proprietario del file e gruppo
cp       Programma per copiare file e directory
date     Programma per stampare o impostare la data e l'ora del sistema
dd       Programma per convertire e copiare un file
df       Programma per visualizzare l'uso dello spazio del disco da parte del filesystem
dmesg    Programma per stampare o controllare il buffer dei messaggi del kernel
echo     Programma per visualizzare una riga di testo
false    Programma che non esegue azioni, indica insuccesso [ritorna un codice di uscita 1]
hostname Programma per mostrare o impostare il nome di host del sistema
kill     Programma per inviare segnali ai processi
ln       Programma per creare collegamenti tra file
login    Programma per iniziare una sessione sul sistema
ls       Programma per elencare il contenuto di una directory
mkdir    Programma per creare directory
mknod    Programma per creare file speciali a blocchi o a caratteri
more     Programma per scorrere un testo una pagina alla volta
mount    Programma per montare un filesystem
mv       Programma per spostare/rinominare file
ps       Programma per visualizzare un rapporto sullo stato dei processi
pwd      Programma per stampare il nome della directory di lavoro corrente
rm       Programma per rimuovere file o directory
rmdir    Programma per rimuovere directory vuote
sed      Lo stream editor `sed'
sh       La Bourne shell di comandi
stty     Programma per cambiare e stampare le impostazioni della riga del terminale
su       Programma per cambiare l'ID utente
sync     Programma per svuotare i buffer del filesystem
true     Programma che non esegue azioni, indica successo [ritorna uno stato d'uscita 0]
umount   Programma per smontare i file system
uname    Programma per visualizzare informazioni di sistema

Se /bin/sh non è una vera Bourne shell, dev'essere un
collegamento fisico (hard link) o simbolico (symlink) al comando di shell
reale.

La ragione fondamentale di questa scelta risiede nel fatto che sh e bash
potrebbero non comportarsi necessariamente nello stesso modo. L'uso di un
collegamento simbolico permette inoltre agli utenti di vedere facilmente che
/bin/sh non è una vera Bourne shell.

I comandi [ e test si devono trovare nella stessa posizione in /bin o
/usr/bin.

L'esigenza che i comandi [ e test siano inclusi come binari (anche se
implementati internamente dalla shell) è condivisa con lo
standard POSIX.2.

I seguenti programmi, o collegamenti simbolici ai programmi, devono
essere in /bin se il sottosistema corrispondente è installato:

csh     La shell C (opzionale)
ed      L'editor `ed' (opzionale)
tar     Il programma di archiviazione tar (opzionale)
cpio    Il programma di archiviazione cpio (opzionale)
gzip    Il programma GNU di compressione (opzionale)
gunzip  Il programma GNU di decompressione (opzionale)
zcat    Il programma GNU di decompressione (opzionale)
netstat Il programma per le statistiche sulla rete (opzionale)
ping    Il programma ICMP per eseguire test sulla rete (opzionale)

Se i programmi gunzip e zcat esistono, devono essere collegamenti simbolici o
fisici a gzip. /bin/csh può essere un collegamento simbolico a
/bin/tcsh o a /usr/bin/tcsh.

I comandi tar, gzip e cpio sono stati aggiunti per rendere possibile 
il ripristino del sistema (ammesso che / sia intatto).

Al contrario, se si pensa di non dover mai ripristinare il sistema a
partire dalla partizione root, si possono omettere questi binari (per
esempio, un chip ROM root, che monta /usr attraverso NFS). Se il ripristino di
un sistema è pianificato attraverso la rete, ftp o tftp (e con questi
tutto ciò che serve per avere una connessione ftp) allora questi binari
devono essere disponibili sulla partizione di root.