6.
il terminale (1)a differenza di windows, linux non è primariamente un sistema operativo grafico. la grafica la fa ormai da padrona, ma i paranoici duri e puri lo usano ancora in testuale. senza essere paranoici, è comunque possibile (e spesso consigliato) utilizzare la riga di comando per interagire col sistema, quindi è il caso di conoscere i comandi principali. dove i comandi sono preceduti da "$" significa che possono essere eseguiti da qualunque utente, dove sono preceduti da "#" significa che possono essere eseguiti solo da root (il superutente). ovviamente $ e # non dovranno essere digitati, sono semplicemente simboli convenzionali che il terminale mostra a seconda del tipo di utente attivo. i comandi devono essere digitati rispettando maiuscole e minuscole (e spazi e trattini), linux è case sensitive.
6a.
lsaprendo una finestra di terminale e digitando il comando
ls seguito da un percorso, si otterrà il contenuto della directory. quindi
produrrà come output a video il contenuto della home dell'utente pippo.
ha alcune opzioni importanti:
ls -l dà un elenco dettagliato (con permessi, proprietari, date di creazione, dimensione)
ls -F visualizza informazioni sul tipo di file
ls -a visualizza anche i file nascosti
ls -lh estende ls -l, nel senso che la dimensione dei file viene data in unità comprensibili (h sta per human-readable)
come mostra l'ultimo esempio, più opzioni possono essere concatenate.
6b.
cpil comando
cp effettua la copia di un file.
nella forma
copia il contenuto di file1 in file2 (in pratica esegue una copia di file1 intitolata file2).
nella forma
CODICE
$ cp file1 /directory
copia file1 nella cartella /directory.
è possibile fare quest'operazione su più file:
CODICE
$ cp file1 file2 /directory
ovviamente se file1 sta in una directory diversa da quella attuale bisognerà farlo sapere al terminale...
CODICE
$ cp /percorso/di/file1 /directory
opzioni importanti di cp sono:
cp -l crea un link fisico al file
cp -s crea un link simbolico al file
cp -f forza la copiatura
cp -r o cp -R copia le directory in modo ricorsivo (cioè copia anche le sottodirectory e così via)
cp -u copia il file solo quando il file sorgente è più recente della copia (u sta per update)
qualche parola su link fisici e simbolici: un link fisico è un vero e proprio file che occupa un suo spazio sul filesystem, mentre un link simbolico è un rimando al file linkato, ma per il filesystem non esiste. bisogna abituarsi a questi "fantasmi" di linux...
6c.
mvse cp copia,
mv sposta. in pratica ha la funzione del taglia-incolla. può anche servire a rinominare un file.
in pratica
rinomina file 1 in file2, mentre
CODICE
$ mv file1 /directory
sposta file1 in /directory.
per il resto vale quanto detto per cp.
le opzioni principali sono:
mv -f forza lo spostamento (o la rinominazione)
mv -u come cp -u, ma sposta il file invece di copiarlo.
6d.
touchil comando
touch crea un nuovo file col nome indicato.
creerà un file chiamato nuovofile. se nuovofile esiste già, non lo cambierà, se non nella marcatura temporale (in pratica gli cambia la data che compare usando ls -l).
6e.
echoecho stampa sull'output standard gli argomenti che gli vengono passati. dato che in genere l'output standard è il terminale stesso, il comando
stamperà a video "ciao alunni" (senza virgolette).
un'opzione molto importante (più che altro se si devono scrivere shell scripts che diano messaggi a video) è:
echo -e abilita le scorciatoie inizianti col carattere \
le principali sono:
\n stampa una linea vuota (insomma, va a capo)
\\ stampa il carattere \
\h tabulatore
\0nnn stampa il carattere che ha codice ascii nnn
6f.
cdil comando
cdcambia la directory in cui ci si trova.
con
ci si sposta nella directory /directory
se si è già in una directory diversa dalla home, digitando
senza argomenti si torna alla home.
digitando
si torna alla directory gerarchicamente superiore (ovvero, se si è in /dir1/dir2, quel comando ci porterà in /dir1). a differenza del prompt di msdos, che accetta anche la sintassi cd.. (senza spazio), in linux lo spazio è obbligatorio.
con il comando
si arriva nella directory /dir3, che a sua volta è una sottodirectory della stessa directory di cui è sottodirectory quella in cui siamo. è più semplice di quello che sembra: abbiamo una directory /dir1 che ha le sottodirectory /dir1/dir2 e /dir1/dir3; se noi siamo in /dir1/dir2, quel comando ci porta in /dir1/dir3.
attenzione! potreste dover usare il comando
(anzi, è molto molto frequente l'uso di questo comando...).
notate bene: prima della barra c'è un solo puntino (non due come nel caso di prima). il puntino indica la directory corrente, quindi, con un albero delle directory strutturato come nell'esempio precedente, questo comando avrà effetto solo se vi trovate in /dir1.
6g.
mkdircol comando
mkdir si crea una nuova directory.
in pratica
CODICE
$ mkdir nuovadirectory
crea la directory /nuovadirectory come sottodirectory di quella in cui ci si trova.
6h.
whoamiwhoami è un comando apparentemente privo di senso, ma può tornare utile negli shell script.
digitando
otterrete come risposta il nome dell'utente che si è loggato (e salvo casi di schizofrenia dovreste saperlo...)
6i.
pwdpwd è un altro comando più da script che da uso quotidiano.
digitando
otterrete come risultato la stampa a video della directory in cui vi trovate.
whoami e pwd sono poco utili anche perchè il prompt del terminale generalmente inizia con una stringa tipo
CODICE
utente@dominio:directory$
oppure
CODICE
root@dominio:directory#
utente è l'utente loggato nel terminale (potrebbe essere diverso da quello loggato nella sessione)
dominio è il nome assegnato alla macchina (se non è stato settato, il default è localhost)
directory di default è la home dell'utente che ha aperto la sessione (non per forza di quello loggato), indicata con una tilde (~).
l'apparenza dell'"indirizzo" può variare lievemente da distribuzione a distribuzione, ma le informazioni sono quelle.
6j.
dfdf indica lo spazio disco utilizzato.
usato nella forma
indica lo spazio occupato su tutti i filesystem montati, mentre nella forma
indica lo spazio utilizzato sulla partizione /dev/hda1 (o su qualunque altra, modulando l'argomento secondo necessità).
opzioni importanti sono:
df -h esprime lo spazio occupato 8e quello libero) in unità leggibili
df -T indica anche il tipo di filesystem con cui il singolo disco è formattato.
6k.
susu è un comando in via di estinzione, per via dell'introduzione del ben più potente sudo (del quale parlerò più avanti).
se siete l'utente pippo, digitando
vi loggherete nel terminale come utente topolino (solo nel terminale, però!).
se invece siete un qualunque utente normale e digitate
senza argomenti, diventertete root.
ah, ovviamente su vi chiederà la password dell'utente che volete impersonare...
6l.
filefile vi dà informazioni del formato del file argomento
per esempio, lanciando questo comando
CODICE
$ file Schermata.png
su un file della mia home, ho ottenuto come risultato
CODICE
Schermata.png: PNG image data, 1024 x 768, 8-bit/color RGB, non-interlaced
6m.
exitil comando <b>exit<b> fa quello che sembra debba fare.
se impersonate root e digitate
tornerete ad essere l'utente precedente.
una volta chiusa tutta la catena di impersonificazioni, digitando
uscirete dal terminale.
Edited by vic vega - 15/3/2007, 12:58