Comandi essenziali per operare sulle macchine Linux del laboratorio

In questa pagina vengono riassunti i comandi basilari per entrare sulle macchine Linux del laboratorio, creare/modificare/cancellare file e directories in Linux, utilizzare l’editor vi per scrivere
i vostri programmi, compilare ed eseguire programmi c sulle macchine Linux.

Per entrare sulle macchine di laboratorio dovete digitare  login e pasword:
login: ....
password: ....
 
 

Creazione di un file: utilizzazione dell’editor vi
(piu' semplicemente potete invocare gedit !!!!)

Per creare un file contente un vostro programma dovete usare uno degli editor disponibili in Linux. Due degli editor piu’ diffusi sono vi e emacs. Per invocare vi e creare un file digitare
vi nome_file return (dovete sempre battere return per eseguire uno dei comandi riportati qui di seguito)
per entrare in modalita’ scrittura digitate ESC i, oppure  ESC a
A questo punto potete scrivere il vostro programma. Per andare a capo battete il testo di return, per spostarvi all’interno del testo che avete scritto usate le freccette. Per uscire da vi digitate:
ESC :q!  per uscire senza salvare quanto fatto
ESC: wq  per salvare e uscire da vi
ESC: w  vi permette invece di salvare quanto scritto senza uscire da vi
Per cancellare una lettera all’interno di una parola che avete scritto premete ESC, posizionatevi sulla lettera e battete il comando dl (delete letter); per cancellare una intera parola posizionatevi
sulla prima lettera e battete dw (delete word). Per sostituire il valore di una lettera battete esc, posizionatevi sulla lettera, digitate il comando cl (change letter) seguito dalla lettera o parola
che volete inserire al suo posto e digitate nuovamente esc; per cambiare il valore di una parola posizionatevi sulla prima lettera della parola, battete cw (ch’ange word), inserite la parola con
cui la volete sostituire e battete nuovamente esc.
Altri comandi utili sono
Esc:numero_linea per posizionarsi sulla linea avente il numero indicato (ad esempio esc:4 vi fara’ posizionare sulla quarta linea), ESC/nomeparola per ricercare una parola nomeparola
all’interno del testo che avete scritto (ad esempio ESC/integer1 vi posizionera’ sulla prima occorrenza di integer1 all’interno del testo) e ESC:$ per posizionarsi alla fine del testo che avete
scritto.

Per ulteriori informazioni sui comandi di vi, o per informazioni su emacs, digitate man vi o man emacs.

Comandi base di Linux
 

       Per creare una nuova directory:
       mkdir nome_directory
       Ad esempio, se siete nella directory /home/prog1 e volete crearvi una directory laboratorio dovete digitare il comando:
       mkdir laboratorio

       Per elencare i file e le directory contenute nella directory corrente digitare:
       ls
       Se ad esempio una directory /home/prog1/laboratorio contiene una directory tempo, e due file esercizio1.c e esercizio2.c, digitando ls comparira’ sullo schermo
       Esercizio1.c  esercizio2.c  tempo/
       Una delle opzioni piu’ usate del comando ls e’ l’opzione ?l. Digitando nel caso precedente ls ?l nella directory /home/prog1/laboratorio otterrete in output informazioni piu’
       dettagliate sui file contenuti sulla directory, ad esempio:
       -rwxrwxrwx 1prog1  prog1  4096 ott 17  9:00 esercizio1.c
       La prima colonna (-rwxrwxrwx) dice se e’ una directory o un file (primo carattere d nel caso di una directory, - nel caso di un file), e chiarisce i diritti di lettura (r = diritto di lettura
       attivo, - diritto di lettura non attivo), scrittura  (w = diritto di scrittura attivo, - diritto di scrittura non attivo), ed esecuzione del file (x = diritto di esecuzione attivo, - diritto di
       esecuzione non attivo), da parte dell’utente (caratteri 2-4), del gruppo a cui l’utente appartiene (caratteri 5-7) e di tutti gli altri (caratteri 8-10). Il comando da usare per dare a tutti il
       diritto di leggere, scrivere ed eseguire il file e’ chmod 777 nomefile Per maggiori dettagli su tale comando chiamate l’help in linea digitando man chmod
       La seconda  e terza colonna indicano il nome dell’utente a cui il file appartiene e del suo gruppo di appartenenza, la quarta colonna indica la dimensione del file, la quinta la data
       dell’ultima modifica effettuata sul file, la sesta il nome del file.

       Per muoversi tra directory differenti digitare
       cd path_dalla_directory_corrente_a_quella_di_destinazione
       Ad esempio se siete nella directory /home e volete spostarvi sulla directory /home/prog1/laboratorio dovete digitare cd prog1/laboratorio/
       Per ritornare indietro di un passo nell’albero delle directory (ad esempio da /home/prog1/laboratorio a /home/prog1) basta digitare cd ...
       In generale, ../ indica la directory precedente e ./ la directory corrente nell’albero delle directory

       Per copiare un file digitare cp nome_file_da_copiare nome_file_destinazione
       Ad esempio se siete nella directory /home/prog1/laboratorio e volete copiare il contenuto del file esercizio1.c in un nuovo file tempo.c dovete digitare cp esercizio1.c tempo.c
       L’operazione di copia e’ non distruttiva (il contenuto del file esercizio1.c rimane inalterato). Se invece i due file sono su directory diverse dovete indicare il path del file. Ad esempio
       se siete nella directory /home/prog1 e volete copiare il contenuto del file pippo nella directory home in un file pippo_lab nella directory /home/prog1/laboratorio dovrete digitare
       cp ../pippo      laboratorio/pippo_lab
 
 
 

       Per rinominare un file digitare mv vecchio_nome_file     nuovo_nome_file
       Ad esempio se siete nella directory /home/prog1/laboratorio e volete cambiare il nome del file esercizio1.c in tempo.c dovete digitare mv esercizio1.c     tempo.c
       L’operazione di rinomina e’ distruttiva (scompare il file esercizio1., si genera un file tempo.c con lo stesso contenuto). Se i due file sono su directory diverse dovete indicare il path
       del file. Ad esempio se siete nella directory /home/prog1 e volete rinominare il file pippo nella directory home in un file pippo_lab, spostandolo contemporaneamente nella directory
       /home/prog1/laboratorio dovrete digitare
       mv ../pippo       laboratorio/pippo_lab
 
 
 

       Per cancellare un file utilizzare il comando
       rm nomefile
       Ad esempio, se siete in una directory /home/prog1/laboratorio e volete cancellare un file esercizio1.c, dovrete scrivere
       rm esercizio1.c
       Se siete nella directory /home/prog1 e volete cancellare lo stesso file dovrete scrivere
       rm laboratorio/esercizio1.c
       Per cancellare tutti i file all’interno della directory corrente scrivere rm *
       (ATTENZIONE all’uso dell’rm!!)
       Quando avete cancellato tutti i file all’interno di una directory e’ possibile cancellare la stessa directory digitando rmdir path_directory. Ad esempio se siete nella directory
       /home/prog1/laboratorio che contiene una directory tempo vuota, e’ possibile cancellarla digitando rmdir tempo

       Per individuare il path della directory in cui vi trovate digitare
       pwd
       Ad esempio se siete nella vostra home directory, /home/prog1 digitando pwd  otterrete /home/prog1

       Per avere maggiori dettagli sulle opzioni associate ad un comando digitate
       man nome_comando
       Ad esempio il comando
       man cp
       vi fara’ apparire una schermata:
       CP(1)    FSF     CP(1)
       NAME
        cp ? copy files and directories
       SYNOPSIS
        cp [OPTION].... SOURCE  DEST
        cp [OPTION] ... SOURCE ... DIRECTORY
        cp [OPTION] ... ?target ? directory=DIRECTORY SOURCE...
       DESCRIPTION
        Copy source to destination, or multiple sources to directory.
       Etc.etc.
       che vi fornira’ informazioni dettagliate sul significato e opzioni del comando.

Compilazione ed esecuzione di programmi c

Il compilatore c presente sulle macchine Linux e’ il gcc. Per poter compilare un vostro programma dovete averlo editato ( ad esempio con vi e emacs) e salvato con una estensione .c
(attenzione e’ importante che la lettera c sia minuscola. .C e’ usato per programmi in C++). Ad esempio potete avere salvato il vostro programma nel file esercizio1.c
Per compilare il vostro programma dovete digitare gcc esercizio1.c
La fase di compilazione creera’ un eseguibile memorizzato nel file a.out
Per eseguire il programma e’ sufficiente digitare a.out
Se il sistema dovesse segnalarvi l’incapacita’ di trovare il file a.out, e la compilazione e’ andata a buon fine, digitate ./a.out , cosi' indicando esplicitamente il path (directory corrente, file
a.out)
E’ possibile esplicitare un nome diverso da dare all’eseguibile digitando
gcc ?o nome_eseguibile esercizio1.c
Ad esempio gcc ?o es1 esercizio1.c creera’ un eseguibile es1.