Ora che sappiamo come spostarci nel sistema di file, è tempo di fare una visita guidata al nostro sistema Linux.
Prima di iniziare, tuttavia, impareremo qualche altro comando che sarà utile lungo la strada.
ls Elenco contenuti della directory
file Determina il tipo di file
less Visualizza il contenuto del file
Sintassi dei comandi di base
La maggior parte dei comandi segue un semplice schema di sintassi:
comando [opzioni …] [argomenti …]
In altre parole, si digita un comando, seguito da una o più opzioni (che non sono sempre richieste) e uno o più argomenti prima di premere il tasto Invio.
Sebbene ci siano alcuni comandi in Linux che non sono del tutto coerenti con questa sintassi, la maggior parte dei comandi usa questa sintassi.Quando si digita un comando che deve essere eseguito, il primo passo è digitare il nome del comando.Il nome del comando si basa spesso su ciò che fa o su ciò che lo sviluppatore che ha creato comando pensa che descriverà meglio la funzione del comando.
Ad esempio, il comando ls visualizza un elenco di informazioni sui file.
Associare il nome del comando a qualcosa di mnemonico per ciò che fa può aiutarti a ricordare i comandi più facilmente.
Dovete ricordare che ogni parte del comando è normalmente sensibile al maiuscolo / minuscolo (case sensitive), quindi LS non è corretta e fallirà, ma ls è corretta e avrà successo.
Nel seguente esempio, il comando ls viene eseguito senza opzioni o argomenti, il che comporta la visualizzazione del contenuto della directory corrente. Molti comandi, come il comando ls, possono essere eseguiti correttamente senza opzioni o argomenti, ma tieni presente che esistono comandi che richiedono di digitare più del solo comando.
Più divertimento con ls
Il comando ls è probabilmente il comando più usato, e per una buona ragione. Con esso, possiamo vedere il contenuto della directory e determinare una varietà di importanti attributi di file e directory. Come abbiamo visto, possiamo semplicemente inserire ls per ottenere un elenco di file e sottodirectory contenuti nella directory di lavoro corrente.
[me @ linuxbox ~] $ ls
Desktop Documents Music Pictures Public Templates Videos
Oltre alla directory di lavoro corrente, possiamo specificare la directory da elencare, in questo modo:
me@linuxbox ~]$ ls /usr
bin games include lib local sbin share src
Possiamo anche specificare più directory.
Nel seguente esempio, noi elenchiamo sia la home directory dell’utente (simboleggiata dal carattere ~) sia la directory / usr:
[me@linuxbox ~]$ ls ~ /usr/home/me:
Possiamo anche cambiare il formato dell’output per rivelare maggiori dettagli.
[me@linuxbox ~]$ ls -l
total 56
Aggiungendo -l al comando, abbiamo modificato l’output nel formato lungo.
Opzioni e argomenti
Questo ci porta ad un punto molto importante sul funzionamento della maggior parte dei comandi. I comandi sono spesso seguiti da una o più opzioni che modificano il loro comportamento e, inoltre, da uno o più argomenti, gli elementi su cui agisce il comando. Quindi, la maggior parte dei comandi appare in questo modo:
command -options arguments
La maggior parte dei comandi utilizza opzioni, che consistono in un singolo carattere preceduto da un trattino, ad esempio -l.
Molti comandi, tuttavia, compresi quelli del Progetto GNU, supportano anche opzioni lunghe, costituite da una parola preceduta da due trattini. Inoltre, molti comandi consentono di mettere insieme più opzioni brevi. Nel seguente esempio, al comando ls vengono fornite due opzioni, che sono l’opzione l per produrre output di formato lungo e l’opzione t per ordinare il risultato in base al tempo di modifica del file.
[me @ linuxbox ~] $ ls -lt
Aggiungeremo l’opzione lunga – indietro per invertire l’ordine del tipo.
[me @ linuxbox ~] $ ls -lt –reverse
Nota Le opzioni di comando, come i nomi di file in Linux, fanno distinzione tra maiuscole e minuscole
Il comando ls ha un gran numero di opzioni possibili, le più comuni delle quali sono elencate nella Tabella
Opzione Opzione lunga Descrizione
-a –all
Elenca tutti i file, anche quelli con nomi che iniziano con a punto,
che normalmente non sono elencati (ovvero nascosti).
-A –almost-all
Come l’opzione -a tranne che non è presente nell’elenco.
(directory corrente) e .. (directory principale).
-d –directory
Normalmente, se viene specificata una directory, ls elencherà il file
contenuto della directory, non della directory stessa. Usa questo opzione in combinazione con l’opzione -l per vedere i dettagli sulla directory piuttosto che sul suo contenuto.
-F –classify
Questa opzione aggiungerà un carattere indicatore a fine di ogni nome elencato.
Ad esempio, aggiungerà a barra (/) se il nome è una directory.
-h –human-readable
In elenchi di formati lunghi, visualizza le dimensioni dei file in
human readable formato anziché in byte.
-l
Visualizza i risultati in formato lungo.
-r –reverse
Visualizza i risultati in ordine inverso.
Normalmente, viene visualizzato i suoi risultati sono in ordine alfabetico crescente.
-S
Ordina i risultati per dimensione del file.
-t
Ordina per tempo di modifica.
Uno sguardo più approfondito al formato lungo
Come abbiamo visto in precedenza, l’opzione -l fa sì che ls visualizzi i suoi risultati in un formato lungo. Questo formato contiene molte informazioni utili. Ecco la directory degli esempi da un sistema Ubuntu:
-rw-r–r– 1 root root 3576296 2017-04-03 11:05 Experience ubuntu.ogg
Elenco campi ls
Campo Significato
-rw-r–r–
Diritti di accesso al file. Il primo carattere indica il tipo di file.
Tra i diversi tipi, un trattino iniziale indica un file normale, mentre una d indica una directory. I seguenti tre caratteri sono i diritti di accesso per il proprietario del file, i tre successivi sono per i membri del gruppo del file e i tre finali sono per tutti gli altri.
-
Numero di file di collegamenti fisici. Vedere “Collegamenti simbolici” e “Collegamenti Diretti “
root Il nome utente del proprietario del file.
root Il nome del gruppo proprietario del file.
32569 Dimensione del file in byte.
2017-04-03 11:05 Data e ora dell’ultima modifica del file.
oo-cd-cover.odf Nome del file
Determinazione del tipo di file con file
Mentre esploriamo il sistema, sarà utile sapere quali file contengono.
Per fare ciò, useremo il comando file per determinare il tipo di un file. Come discusso in precedenza, i nomi dei file in Linux non sono tenuti a riflettere il contenuto di un file. Mentre un nome file come picture.jpg dovrebbe normalmente contenere un’immagine compressa in JPEG, non è richiesto in Linux. Possiamo invocare il comando file in questo modo :.
file filename
Quando viene invocato, il comando file stamperà una breve descrizione del contenuto del file. Per esempio:
[me@linuxbox ~]$ file picture.jpg
picture.jpg: JPEG image data, JFIF standard 1.01
Esistono molti tipi di file. In effetti, una delle idee comuni nei sistemi operativi Unix like come Linux è che “tutto è un file”.
Mentre procediamo con le nostre lezioni, vedremo quanto sia vera questa affermazione.
Mentre molti dei file sul nostro sistema sono familiari, ad esempio i file MP3 e JPEG, ce ne sono molti tipi che sono un po ‘meno ovvi e alcuni piuttosto strani.
Visualizzazione dei contenuti dei file con less
Il comando less è un programma per visualizzare file di testo. In tutto il nostro sistema Linux, ci sono molti file che contengono testo leggibile dall’uomo. Il programma meno fornisce un modo conveniente per esaminarli.
Perché dovremmo esaminare i file di testo? Poiché molti dei file che contengono le impostazioni di sistema (chiamati file di configurazione) sono memorizzati in questo formato, e la loro capacità di leggerli ci consente di capire come funziona il sistema. Inoltre, alcuni dei programmi effettivi utilizzati dal sistema (chiamati script) sono memorizzati in questo formato. Nei capitoli successivi, impareremo come modificare i file di testo al fine di modificare le impostazioni di sistema e scrivere i nostri script, ma per ora vedremo solo il loro contenuto Il comando less viene usato in questo modo:
less filename
Che cos’è il “testo”?
Esistono molti modi per rappresentare le informazioni su un computer. Tutti i metodi prevedono la definizione di una relazione tra l’informazione e alcuni numeri che verranno utilizzati per rappresentarla. I computer, dopo tutto, comprendono solo i numeri e tutti i dati vengono convertiti in rappresentazione numerica.
Alcuni di questi sistemi di rappresentazione sono molto complessi (come i file video compressi), mentre altri sono piuttosto semplici. Uno dei primi e più semplici si chiama testo ASCII. ASCII (pronunciato “as-key”) è l’abbreviazione di American Standard Code for Information Interchange. Questo è un semplice schema di codifica utilizzato per la prima volta su macchine Teletype per mappare i caratteri della tastiera ai numeri.
Il testo è un semplice mapping uno-a-uno di caratteri ai numeri. È molto compatto. Cinquanta caratteri di testo si traducono in cinquanta byte di dati. È importante capire che il testo contiene solo una semplice mappatura dei caratteri ai numeri. Non è lo stesso di un documento di elaboratore di testi come quello creato da Microsoft Word o LibreOffice Writer. Tali file, a differenza del semplice testo ASCII, contengono molti elementi non testuali che vengono utilizzati per descriverne la struttura e la formattazione. I semplici file di testo ASCII contengono solo i caratteri stessi e a
pochi codici di controllo rudimentali come schede, ritorni a capo e avanzamenti riga. In un sistema Linux, molti file sono memorizzati in formato testo e ci sono molti strumenti Linux che funzionano con i file di testo. Anche Windows riconosce l’importanza di questo formato. Il noto programma NOTEPAD.EXE è un editor per semplici file di testo ASCII.
—————————————————————————————————————————————————————————
Una volta avviato, il programma meno ci consente di scorrere avanti e indietro attraverso un file di testo.
Ad esempio, per esaminare il file che definisce tutti gli account utente del sistema, immettere il comando seguente:
[me@linuxbox ~]$ less /etc/passwd
Una volta avviato il programma, possiamo visualizzare il contenuto del file. Se il file è più lungo di una pagina, possiamo scorrere su e giù. Per uscire di meno, premere q.
La Tabella elenca i comandi da tastiera più comuni usati da less.
Comando |
Azione |
pagina su o b |
Scorrere indietro di una pagina |
pagina giù o spazio |
Scorrere in avanti di una pagina |
Freccia su |
Scorrere verso l’alto di una riga |
Freccia giù |
Scorri verso il basso di una riga |
G |
Sposta alla fine del file di testo |
1G o g |
Passa all’inizio del file di testo |
/ caratteri |
Cerca in avanti alla ricorrenza successiva di caratteri |
n |
Cerca la ricorrenza successiva della ricerca precedente |
h |
Visualizza la schermata di aiuto |
q |
Esci |
Less is more
Il programma less è stato progettato come una sostituzione migliorata di un precedente programma Unix chiamato more.
Il nome less è un gioco sull’espressione “less is more” – un motto di architetti e designer modernisti.
Less rientra nella classe di programmi chiamati “pager”, programmi che consentono di visualizzare facilmente documenti di testo lunghi pagina per pagina. Considerando che più programmi possono solo andare avanti, meno programmi consentono il paging sia in avanti che indietro e ha anche molte altre funzionalità.
Fare una visita guidata
Il layout del file system su un sistema Linux è molto simile a quello trovato su altri sistemi simili a Unix. Il design è in realtà specificato in uno standard pubblicato chiamato Linux Filesystem Hierarchy Standard. Non tutte le distribuzioni Linux sono esattamente conformi allo standard, ma la maggior parte si avvicina molto.
Successivamente, gireremo noi stessi intorno al file system per vedere cosa fa battere il nostro sistema Linux. Questo ci darà la possibilità di esercitare le nostre capacità di navigazione. Una delle cose che scopriremo è che molti dei file interessanti sono in chiaro testo leggibile dall’uomo. Durante il nostro tour, prova quanto segue:
-
cd in una determinata directory.
-
Elencare i contenuti della directory con ls -l.
-
Se vedi un file interessante, determinane il contenuto con file.
-
Se sembra che potrebbe trattarsi di testo, prova a visualizzarlo con less.
Se proviamo accidentalmente a visualizzare un file non di testo e questo si confonde nella finestra del terminale, possiamo ripristinare immettendo il comando reset. Mentre girovagiamo, non abbiate paura di guardare le cose. Agli utenti regolari è in gran parte vietato fare confusione. Questo è il lavoro dell’amministratore di sistema! Se un comando si lamenta di qualcosa, passa a qualcos’altro. Passa un po ‘di tempo a guardarti intorno.
Il sistema è da esplorare. Ricorda, in Linux, non ci sono segreti! La Tabella elenca solo alcune delle directory che possiamo esplorare. Potrebbero esserci alcune lievi differenze a seconda della nostra distribuzione Linux. Non aver paura di guardarti intorno e provare di più!
Directory |
Commenti |
/ |
La directory principale, dove tutto inizia |
/bin |
Contiene binari (programmi) che devono essere presenti per l’avvio e l’esecuzione del sistema. |
/boot |
Contiene il kernel Linux, l’immagine del disco RAM iniziale (per i driver necessari all’avvio) e il caricatore di avvio. I file interessanti includono / boot / grub / grub.conf o menu.lst, che viene utilizzato per configurare il caricatore di avvio e / boot / vmlinuz (o qualcosa di simile), il kernel Linux. |
/dev |
Questa è una directory speciale che contiene nodi di dispositivo. “Tutto è un file” si applica anche ai dispositivi. Qui è dove il kernel mantiene un elenco di tutti i dispositivi che comprende. |
/etc |
La directory / etc contiene tutti i file di configurazione del sistema. Esso contiene anche una raccolta di script di shell che avviano ciascuno dei servizi di sistema all’avvio. Tutto in questa directory dovrebbe essere testo leggibile. Mentre tutto in / etc è interessante, ecco alcuni preferiti di tutti i tempi: / etc / crontab, un file che definisce quando verranno eseguiti i lavori automatizzati; / etc / fstab, una tabella di dispositivi di archiviazione e i relativi punti di montaggio; e / etc / passwd, un elenco degli account utente |
/home |
Nelle configurazioni normali, a ciascun utente viene assegnata una directory in / home. Gli utenti ordinari possono scrivere file solo nelle loro directory home. Questa limitazione protegge il sistema da attività dell’utente errate. |
/lib |
Contiene i file di libreria condivisa utilizzati dai programmi di sistema principali. Questi sono simili alle librerie a collegamento dinamico (DLL) in Windows |
/lost+found |
Ogni partizione o dispositivo formattato che utilizza un file system Linux, come ext3, avrà questa directory. Viene utilizzato in caso di recupero parziale da un evento di corruzione del file system. A meno che non sia successo qualcosa di veramente brutto al tuo sistema, questa directory rimarrà vuota. |
/media |
Sui moderni sistemi Linux, la directory / media conterrà il file punti di montaggio per supporti rimovibili come unità USB, CD-ROM, e così via, che vengono montati automaticamente all’inserimento. |
/mnt |
Sui vecchi sistemi Linux, la directory / mnt contiene punti di montaggio per dispositivi rimovibili che sono stati montati manualmente. |
/opt |
La directory / opt viene utilizzata per installare il software “opzionale”. Questo è principalmente utilizzato per contenere prodotti software commerciali su cui potrebbe essere installato il sistema. |
/proc |
La directory / proc è speciale. Non è un vero file system nel senso di file memorizzati sul tuo disco rigido. Piuttosto, è un file system virtuale gestito dal kernel Linux. I “file” che contiene sono spioncini nel kernel stesso. I file sono leggibili e ti daranno un’immagine di come il kernel vede il tuo computer. |
/root |
Questa è la home directory per l’account root. |
/sbin |
Questa directory contiene file binari di “sistema”. Questi sono programmi che eseguono attività di sistema vitali che sono generalmente riservate a superutente. |
/tmp |
La directory / tmp è destinata alla memorizzazione temporanea e creazione temporanea di file creati da vari programmi. Alcune configurazioni causano lo svuotamento della directory ogni volta che si riavvia il sistema. |
/usr |
L’albero di directory / usr è probabilmente il più grande su un sistema Linux. Esso contiene tutti i programmi e i file di supporto utilizzati dagli utenti normali. |
/usr/bin |
Le librerie condivise per i programmi in / usr / bin. Non è raro che questa directory contenga migliaia di programmi. |
/usr/lib |
Le librerie condivise per i programmi in / usr / bin. |
/usr/local |
L’albero / usr / local è dove sono installati i programmi che non sono inclusi con la vostra distribuzione ma che sono destinati all’uso a livello di sistema. I programmi compilati dal codice sorgente sono normalmente installati in / usr / local / bin. Su un sistema Linux appena installato, questo albero esiste, ma sarà vuoto fino a quando l’amministratore di sistema non inserirà qualcosa al suo interno. |
/usr/sbin |
Contiene più programmi di amministrazione del sistema. |
/usr/share |
usr / share contiene tutti i dati condivisi utilizzati dai programmi in / usr / bin. Ciò include elementi quali file di configurazione predefiniti, icone, sfondi dello schermo, file audio e così via. |
/usr/share/doc |
La maggior parte dei pacchetti installati sul sistema includerà un tipo di documentazione. In / usr / share / doc, troveremo i file di documentazione organizzati per pacchetto. |
/var |
Con l’eccezione di / tmp e / home, le directory che abbiamo guardato finora rimangono relativamente statici; cioè, il loro contenuto non cambia. L’albero di directory / var è il punto in cui sono archiviati i dati che possono cambiare. Qui si trovano vari database, file di spool, posta dell’utente e così via. |
/var/log |
/ var / log contiene file di registro, registrazioni di varie attività di sistema. Questi sono importanti e devono essere monitorati di volta in volta. I più utili sono / var / log / messages e / var / log / syslog. Si noti che per motivi di sicurezza su alcuni sistemi, è necessario essere il superutente per visualizzare i file di registro. |