Tullio Facchinetti

by Tullio Facchinetti


Introduzione all’uso della Shell

La sintassi generale utilizzata per l’immissione dei comandi della Shell è:

comando [ opzioni ] [ argomenti ]

le parentesi quadre implicano che sia le opzioni che gli argomenti sono opzionali e possono essere omessi. I comandi più comuni eseguono una manipolazione di file e directory e accettano come argomenti percorsi dei file da creare, rimuovere, rinominare… Un percorso assoluto indica il file e tutte le directory che lo contengono, a partire dalla directory radice (indicata con /) ad esempio, sono percorsi assoluti:

/home/utente/file.txt
/home/utente
/home/utente/Documenti/esercizio.c
/usr/bin/gcc

I percorsi relativi invece assumono come punto di partenza la directory di lavoro corrente e sono, ad esempio:

file.txt
Documenti/esercizio.c
Documenti/informatica/appunti.doc

si noti l’assenza del carattere / iniziale.

Nell’uso dei percorsi relativi è spesso utile fare riferimento ad alcune directory speciali:

I comandi più comuni sono riassunti nella lista seguente:

mostrerà sullo schermo il manuale del comando ls.

Molti di questi comandi possono essere utilizzati per operare su file multipli quando i loro nomi seguono uno schema regolare. Ad esempio, il comando

rm *. c

cancella tutti i file nella directory corrente il cui nome termina con i caratteri .c (prova.c, esempio.c, pippo.c etc.). Il carattere asterisco rappresenta una sequenza di caratteri qualunque. Il simbolo ?, invece, rappresenta un singolo carattere qualunque, quindi il comando:

cat file?.txt

stamperebbe tutti i file nella directory corrente con nomi che seguono lo schema file1.txt, file2.txt, fileA.txt, file+.txt etc.

Esercizi

Seguono alcuni semplici esercizi di uso dei comandi riassunti nella sezione precedente. Tutti gli esercizi assumono che inizialmente la directory di lavoro sia /projects.

Prima di iniziare si esegua il comando pwd per conoscere qual’è la directory di lavoro effettiva.

  1. utilizzando i comandi mkdir e touch e come argomenti i percorsi relativi alla directory corrente, creare la directory /projects/nome/utente/prova e creare il file vuoto /projects/nome/utente/prova/vuoto.txt;
  2. cancellare file e directory creati nell punto precedente con i comandi rmdir e rm;
  3. ripetere i due punti precedenti utilizzando i percorsi assoluti invece di quelli relativi.
  4. utilizzando i comandi mkdir, touch e aiutandosi con il comando cd creare la directory esercizio e le sue sottodirectory (in rosso) e i file (in verde) secondo lo schema:
  5. cancellare directory e file creati nel punto precedente;
  6. usando il comando cp copiare il file dal nome stdio.h che si strova nella directory /usr/include;
  7. utilizzando il comando cat mostrare a video il contenuto del file stdio.h;
  8. utilizzando il comando mv cambiare il nome del file copiato in prova.h e poi cancellarlo con il comando rm.

Comandi per lo sviluppo

Lo sviluppo di programmi in linguaggio C richiede due programmi specifici:

Nel seguito si assumerà l’uso dell’editor integrato di Codenvy e del compilatore gcc.

Hello, World

Storicamente, il primo programma che si realizza quando si impara un nuovo linguaggio è il programma cosiddetto Hello, World che stampa appunto sul terminale la scritta Hello, World.

Una versione del codice di questo programma è presente nel file /projects/tutorato/T01/consegna-T01.c. Per visualizzarne il contenuto, ed eventualmente modificarlo, bisogna utilizzare l’interfaccia di Codenvy. Nel riquadro laterale di Codenvy sono mostrate le cartelle su cui lavorare. Espandendo la cartella Tutorato si troveranno le varie cartelle corrispondenti alle varie settimane di tutorato. Espandendo la cartella T01 si troverà il file consegna-T01.c. Facendo doppio click sul file lo si aprirà per la modifica nel editor di Codenvy.

Per compilare il file bisogna cambiare la directory corrente nel terminale in modo da raggiungere la directory /projects/tutorato/T01 e poi usare il comando:

gcc -Wall consegna-T01.c

Infine, si esegua il programma con il comando:

./a.out


Highlights

  • Publications
  • Students and theses
  • Thesis topics
  • Curated awesome list of CLI apps
  • Last updates (English)

  • Students and theses ()
  • Students and theses - English ()
  • Speed up the compilation of LaTex Beamer presentations ()
  • Learn enough C to survive ()
  • Workflow for writing theses collaboratively ()
  • Guidelines for theses and presentations ()
  • Projects ()
  • Last updates (Italian)

  • Risultati FdI 25 Giugno 2025 ()
  • Risultati FdI 31 Marzo 2025 e 07 Aprile 2025 ()
  • Risultati FdI 18 Febbraio 2025 ()
  • Risultati FdI 31 Gennaio 2025 ()
  • Risultati FdI 18 Novembre / 02 Dicembre 2024 ()
  • Studenti e tesi ()
  • Risultati FdI 27 Settembre 2024 ()
  • List of categories

    Article Article_en Article_it C Courses Fdi Lang_en Lang_it Latex Programming Project Research Results Robotics Software Teaching Thesis Tips