Che materia stai cercando?

Elementi di informatica e programmazione - i principali comandi di Linux Appunti scolastici Premium

Appunti di Elementi di informatica e programmazione per il corso del professor Giacomin. Gli argomenti trattati sono i seguenti: i principali comandi di Linux, le nozioni fondamentali, il Linux è un sistema operativo multiutente, i caratteri speciali, il reindirizzamento dell'output su file.

Esame di Elementi di informatica e programmazione docente Prof. M. Giacomin

Anteprima

ESTRATTO DOCUMENTO

Alcune volte potrebbe risultare utile passare i dati da un comando ad un altro cioé

passare i risultati dell'esecuzione di un comando (output standard) ad un altro

comando. Per fare questo é necessario usare le pipe | il cui uso é molto semplice. Se,

ad esempio, vogliamo stampare su una stampante (comando lpr ) il contenuto di una

directory basterà il seguente comando:

ls | lpr

cioé l'output del comando ls (ovvero il contenuto della directory) viene mandato al

comando lpr che lo sfrutterà come input e quindi lo stamperà. Naturalmente é

possibile usare più pipe nello stesso comando. Ad esempio

sort elenco | cat -n | lpr

ordina il file elenco (comando sort) e passa il risultato dell'ordinamento al comando

cat -n che provvede a numerare ogni riga. Questo ultimo output viene passato al

comando lpr al quale è demandato il compito di stamparlo.

Reindirizzamento dell'output su file

Può risultare molto utile redirigere l'output generato da un comando su un file.

Questo può essere fatto utilizzando il reindirizzamento > subito dopo il comando

specificando il nome del file sul quale scrivere l'output. Il computer lo creerà se il file

non esiste e lo sovrascriverà se già esistente. Se ,ad esempio, voglio stampare il

contenuto di una directory nel file contenuto.dir basterà utilizzare il comando:

ls > contenuto.dir

Se, invece, si vuole aggiungere in coda ad un file l'output allora bisogna utilizzare il

reindirizzamento >> (chiamato append) al posto di >.

Infine vogliamo spendere due parole riguardo la notazione utilizzata in queste

dispense nel descrivere i comandi. Abbiamo preso, per questione di semplicità, molti

spunti dalla EBNF: quindi le funzioni tra parentesi quadrata sono opzionali mentre la

sbarra verticale implica una scelta tra due o più funzioni. I comandi non scritti tra

parentesi sono obbligatori e quindi ometterli vuol dire commettere un errore. In molti

comandi è necessario premere contemporaneamente il tasto CTRL insieme ad altri

tasti. Per indicare una combinazione di questo tipo si utilizza la seguente notazione:

[CTRL]-tasto (ad esempio [CTRL]-D). Nei programmi, invece, spesso si utilizza la

notazione ^tasto (ad esempio ^D).

Quando, invece, troverete scritto <return> vuol dire che dovrete premere INVIO o

RETURN (dipende dal tipo di tastiera). Ricordatevi che alla fine di ogni comando è

indispensabile premere questo tasto affinché il computer lo esegua.

2. MANIPOLAZIONE DEI DIRITTI DI ACCESSO

3

Ogni volta che visualizzate una directory in modo dettagliato (per esempio con il

comando v) sulla sinistra dello schermo compare una combinazioni di lettere e tratti.

Questi array rappresentano i diritti di accesso cioè i tipi di utenti che possono leggere,

scrivere o eseguire un file o una directory. Cercheremo, dunque, di spiegare in quale

modo è possibile comprendere i diritti di ogni file o directory.

L’array è composto da 10 elementi e lo rappresentiamo con la seguente struttura:

- --- --- ---

0 123 456 789

Nella casella 0 compare d de il nome corrispondente è una directory altrimenti, cioè

nel caso di files, resta il trattino -. I restanti gruppi, composti ognuno da tre elementi,

indicano tre diversi tipi di utente: User (elementi 1,2 e 3), Group (4,5 e 6) e Others

(7,8 e 9). Ad ogni tipo di utente (user è l’utilizzatore, group è il gruppo a cui questi

appartiene mentre others sono tutti gli altri) possono essere associati tre diversi diritti:

read (lettura), write (scrittura), execute (eseguibile) oppure nessuno dei tre (in questo

caso comparirà il trattino -. Quindi ammettiamo, per esempio, che prima di un file si

trovi l’array: - rwxr--r--

Questo vuol dire che il file (lo è perché nella casella 0 vi è il trattino - ) può essere

letto, scritto ed eseguito dall’utilizzatore mentre gli altri gruppi (others) e il gruppo a

cui appartiene l’utilizzatore (group) possono solo leggere (r) il file. Con il comando

chmod è possibile assegnare ai vari utenti determinati diritti.

3. GUIDA AI COMANDI PRINCIPALI

Comando Descrizione e sintassi del comando

4

• Crea degli alias per i comandi. E’ utile usare degli alias quando si è

alias soliti adoperare dei comandi molto lunghi: allora è possibile assegnare

a tale comando un nome (possibilmente corto e facile da ricordare) in

modo da digitare quest’ultimo in luogo dell’intero comando.

La riga per l’inserimento del comando alias va inserita all’interno del

file .profile usando un editor (vd. pico o vi).

Sintassi:

alias nome_nuovo=’comando_intero’

Digitando dal prompt alias seguito da return vengono mostrati tutti gli

alias in uso.

Esempio:

Se sono solito usare il comando

lynx http://ascu

posso creare un alias, che ad esempio chiamerò ascu, per evitare di

scrivere ogni volta l’intero comando. Quindi scriverò all’interno del file

.profile la seguente riga:

alias ascu=’lynx http://ascu’

In tale modo basterà scrivere solo per avviare l’intero comando.

ascu

5

• Esegue un comando in un momento preciso da noi assegnato.

at Sintassi:

at [-f nome_file] [-m] ora [data]

Descrizione:

-f nome_file: indica il file che contiene la lista dei comandi da eseguire

-m: invia un messaggio di posta elettronica dopo che il comando è stato

eseguito

ora: ora in cui deve partire l’esecuzione (si può usare anche

l’espressione midnight, per indicare che il comando deve essere

eseguito di notte, o now+[ora], per indicare dopo quanto tempo deve

essere eseguito il comando (Es. now+6 hours fa in modo tale che il

comando venga eseguito tra 6 ore)

data: data in cui deve avviarsi il comando

E’ possibile anche digitare:

at ora [data]<return>

[comando]<return> (questa parte può essere ripetuta più volte per eseguire più

comandi)

[CTRL]-D (indica al computer che è finita la sequenza di comandi da eseguire)

Esempio:

Utilizzando il comando

at -f trasferisci -m midnight

faccio eseguire il file trasferisci (che potrebbe contenere, ad esempio, le

istruzioni per un trasferimento ftp) di notte (midnight). Mi verrà,

inoltre, inviata una e-mail che confermerà l’esecuzione del comando (-

m).

• Calcolatrice.

bc Sintassi:

Dopo aver digitato bc bisogna introdurre l’espressione da elaborare

seguita da return. Per uscire dal programma digitare [CTRL]-D.

6

• Riprende in background un job interrotto.

bg Sintassi:

bg %numero_processo

Descrizione:

numero_processo: rappresenta il numero del processo (digitando jobs

vengono mostrati tutti i jobs seguiti dal numero di processo).

NB: Il comando bg non ha alcun effetto se il job è una sessione lynx.

E’ possibile eseguire un comando in background digitando alla fine

della riga del comando &.

Esempio:

Ammettiamo di aver iniziato il trasferimento di un file da un sito ftp

tramite il comando get (vd. Uso dell’FTP). Dopo essermi reso conto

che la rete è intasata decido di far continuare il trasferimento in

background. Premo, quindi, [CTRL]-Z per sospendere l’esecuzione del

comando e il computer mi risponderà con un messaggio del tipo:

[1]+ Stopped ftp ftp.sito.com

Per continuare il processo in background basterà digitare ([1]

bg %1

rappresenta il numero del processo che in questo caso è 1).

• Visualizza un file sullo schermo (non si ferma, però, alla fine di ogni

cat pagina e non è possibile muoversi all’interno del file). Serve anche per

riunire in un unico file più volumi (vd. comando split per la creazione

dei volumi).

Sintassi:

cat nome_file

Esempio:

Se voglio riunire tre files (chiamati file1, file2 e file3) in un unico file

(chiamato one.big.file) basterà digitare:

cat file1 file2 file3 > one.big.file

7

• Cambia la directory in uso.

cd Sintassi:

cd directory

Per tornare alla directory che gerarchicamente si trova prima digitare:

cd ..

Esempio:

Mi trovo nella directory prova e voglio entrare nella sottodirectory

lavoro. Allora dovrò digitare Usando il comando pwd

cd lavoro.

verrà visualizzata sullo schermo la directory nella quale ci si trova. (in

questo caso nella directory prova/lavoro). Se ora voglio tornare alla

directory prova dovrò digitare (è da notare lo spazio tra cd e i

cd ..

due punti senza il quale il comando non funziona).

• Modifica i diritti di manipolazione di un file o directory.

chmod Sintassi:

chmod tipo_utente azione diritto nome_file

Descrizione:

tipo_utente: user, groups, others oppure all

azione: aggiungi(+) oppure togli (-)

diritto: read, write oppure execute

Esempio:

Utilizzando il comando

chmod go-w pippo.1

faccio in modo tale che nessuno tranne me possa riscrivere il file

pippo.1 (cioè levo (-) agli appartenenti al mio gruppo (g) e a tutti gli

altri (o) il diritto di riscrivere (w) il file pippo.1)

• Cambia la proprietà di un file o directory (change owner). Questo

chown comando può essere eseguito solo dall’utente root.

Sintassi:

chown nuovo_proprietario nome_file

Esempio:

Se voglio dare la proprietà del file prova.1 all’utente kln basterà

digitare

chown kln prova.1

• Pulisce lo schermo.

clear

• Confronta due files e dice le loro differenze in righe.

cmp 8

• Comprime i files selezionati. Per decomprimerli utilizzare i comandi

compress uncompress o zcat.

Sintassi:

compress [-v] nome_file

Descrizione:

-v: indica il rateo di compressione

NB: Ai files compressi viene aggiunta l’estensione .Z. Per esempio

comprimendo il file mio.file avrò il file compresso mio.file.Z.

• Copia un file.

cp Sintassi:

cp nome_file percorso

Descrizione:

percorso: rappresenta la nuova directory dove si vuole copiare il file

NB: E’ possibile anche dare un nuovo nome al file specificandolo nel

percorso.

Esempio:

Se voglio trasferire il file prova.1 nella mia directory (la propria home

directory è rappresentata nel Linux dal carattere ~) con il nome pippo.1

basterà digitare

cp ~/pippo.1

• Mostra la data e l’ora corrente.

date

• Mostra lo spazio disponibile sul disco.

df

• Confronta due directory (-d per confrontare i files comuni).

dircmp

• Indica lo spazio del disco occupato dai propri file (in KiloByte).

du

• Riprende un job interrotto eseguendolo in primo piano.

fg Sintassi:

fg %numero_job

Nota: l’utilizzo di questo comando è del tutto simile al comando bg.

• Dice se qualcosa è un file (se è un file noto dice anche di quale tipo di

file file si tratta) o una directory.

Sintassi:

file nome 9

• Ricerca un file se noto il nome all’interno di una o più directory.

find Sintassi:

find directory -name nome_file -print

Descrizione:

directory: nome della directory da cui si vuole iniziare la ricerca, per

quella corrente digitare un punto mentre per tutto il disco digitare /.

-name nome_file: nome del file da trovare.

• Visualizza lo stato degli utenti e dei computer sulla rete.

finger Sintassi:

finger [-s] [nome_utente] [@computer]

Descrizione:

-s: vengono visualizzate pochissime informazioni sugli utenti

nome_utente: se viene inserito lo user-name dell’utente vengono

visualizzate molte informazioni sull’utente. Molto spesso basta inserire

o il nome o il cognome dell’utente in luogo dello user-name

computer: specifica su quale computer controllare. Nel caso in cui

l’utente è collegato sullo stesso computer, questa opzione può esser

omessa.

Esempio:

Facciamo conto di essere a Milano e di utilizzare un computer che ha

come sistema operativo il Linux. Se voglio vedere chi è collegato al

server dell’ASCU basterà digitare

finger @ascu.unian.it

• Trova in uno o più files le righe con le stesse parole che cerca l’utente.

grep Sintassi:

grep [opzioni] stringa nome_file

Descrizione:

stringa: rappresenta la stringa da ricercare (nel caso è costituita da più

di una parola bisogna utilizzare le virgolette).

Opzioni:

-i: case non sensitive

-j: solo nomi di files (altrimenti viene visualizzata l’intera riga del file

che contiene la stringa)

-v: visualizza tutte le righe nelle quali non è contenuta la stringa

Esempio:

grep “Via Manzoni” *

ricerca in ogni file la stringa Via Manzoni (ricordatevi del significato

dell’asterisco * appreso nella sezione NOZIONI FONDAMENTALI).

10

• Elenca gli ultimi comandi usati.

history NB: Per eseguire l’ultimo digitare !!.

• Dice quali sono i propri ID numerici di utente e di gruppo.

id

• Elenca i jobs in esecuzione con i rispettivi numeri di job.

jobs Esempio:

Ammettiamo di digitare il comando jobs e sullo schermo sono

visualizzate delle righe simili alle seguenti:

[1]- Running ftp ftp.sito.com &

[2]+ Stopped lynx http://www.shareware.com

Questo vuol dire che la sessione ftp è in corso (running) ed è stato

sospeso il comando lynx (stopped). A questo punto potrei utilizzare

o il comando bg (si noti che alla fine della prima riga compare il

simbolo & che sta ad indicare che la sessione è già eseguita in

background) o fg.

• E’ un potente e semplice editor di testo.

joe

• Elimina un job.

kill Sintassi:

kill [-9] %numero_job (per trovare il numero del job utilizzare il

comando jobs)

oppure

kill [-9] ID_del_job (per trovare l’ID del job utilizzare il comando ps)

Descrizione:

-9: indica una eliminazione incondizionata.

Esempio:

Ammettiamo di voler eliminare una sessione lynx precedentemente

sospesa. Innanzitutto utilizzo jobs che visualizzerà sullo schermo delle

righe simili a queste:

[1]- Running ftp ftp.sito.com &

[2]+ Stopped lynx http://www.shareware.com

Visto che la sessione lynx ha il numero allora dovrò utilizzare il

[2]

seguente comando:

kill %2

• Visualizza il contenuto di un file. A differenza del comando more, è

less possibile andare avanti e indietro nel file.

Sintassi:

less nome_file 11


PAGINE

21

PESO

86.64 KB

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria dell'automazione industriale
SSD:
Università: Brescia - Unibs
A.A.: 2001-2002

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher melody_gio di informazioni apprese con la frequenza delle lezioni di Elementi di informatica e programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Brescia - Unibs o del prof Giacomin Massimiliano.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in ingegneria dell'automazione industriale

Controllo digitale
Dispensa