LINUX -Esplorare il sistema

()

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.

 

Collegamenti simbolici

Mentre ci guardiamo intorno, è probabile che venga visualizzato un elenco di directory (ad esempio,/ lib) con una voce come questa:

lrwxrwxrwx 1 root root 11 2018-08-11 07:34 libc.so.6 -> libc-2.6.so

Notate come la prima lettera della lista è l e la voce sembra avere due nomi di file? Questo è un tipo speciale di file chiamato collegamento simbolico (noto anche come collegamento software o collegamento simbolico). Nella maggior parte dei sistemi simili a Unix, è possibile avere un file a cui fanno riferimento più nomi. Mentre il valore di questo potrebbe non essere ovvio, è davvero una funzione utile. Immagina questo scenario: un programma richiede l’uso di una risorsa condivisa di qualche tipo contenuto in un file chiamato “pippo”, ma “pippo” presenta frequenti cambi di versione. Sarebbe bene includere il numero di versione nel nome del file in modo che l’amministratore o l’altra parte interessata possa vedere quale versione di “pippo” è installata. Questo presenta un problema. Se cambiamo il nome della risorsa condivisa, dobbiamo rintracciare ogni programma che potrebbe usarlo e cambiarlo per cercare un nuovo nome di risorsa ogni volta che viene installata una nuova versione della risorsa. Non sembra affatto divertente. Qui è dove i collegamenti simbolici salvano la giornata. Supponiamo di installare la versione 2.6 di “foo”, che ha il nome di file “foo-2.6”, e quindi di creare un collegamento simbolico chiamato semplicemente “foo” che punta a “foo-2.6″. Ciò significa che quando un programma apre il file ” pippo ”, in realtà sta aprendo il file“ pippo-2.6. ”Ora tutti sono felici. I programmi che si basano su “pippo” possono trovarlo e possiamo ancora vedere quale versione reale è installata. Quando è il momento di passare a “pippo-2.7”, aggiungiamo semplicemente il file al nostro sistema, eliminiamo il collegamento simbolico “pippo” e ne creiamo uno nuovo che punta alla nuova versione. Questo non solo risolve il problema dell’aggiornamento della versione, ma ci consente anche di mantenere entrambe le versioni sul nostro computer.

Immagina che “foo-2.7” abbia un bug (maledetto quegli sviluppatori!), E dobbiamo tornare alla vecchia versione. Ancora una volta, eliminiamo semplicemente il collegamento simbolico che punta alla nuova versione e creiamo un nuovo collegamento simbolico che punta alla vecchia versione.

L’elenco delle directory all’inizio di questa sezione (da / lib directory di un sistema Fedora) mostra un collegamento simbolico chiamato libc.so.6 che punta a un file di libreria condivisa chiamato libc-2.6.so. Ciò significa che i programmi che cercano libc.so.6 otterranno effettivamente il file libc-2.6.so. Impareremo come creare collegamenti simbolici nel prossimo capitolo.

Hard Links

Mentre siamo in tema di link, dobbiamo menzionare che esiste un secondo tipo di link chiamato hard link. I collegamenti fisici consentono inoltre ai file di avere più nomi, ma lo fanno in modo diverso.

Parleremo di più delle differenze tra collegamenti simbolici e reali nel prossimo capitolo.

Riassumendo

Con il nostro tour alle spalle, abbiamo imparato molto sul nostro sistema. Abbiamo visto vari file e directory e i loro contenuti. Una cosa che dovresti togliere è quanto sia aperto il sistema. In Linux ci sono molti file importanti che sono semplici testi leggibili dall’uomo. A differenza di molti sistemi proprietari, Linux rende tutto disponibile per esame e studio.

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?