Corso Shell Marzo 2009

Da GolemWiki.
Jump to navigation Jump to search

Tratto da Wikipedia:

L'interfaccia a linea di comando (in inglese CLI: command line interface), è la modalità di interazione tra utente ed elaboratore che avviene inviando comandi tramite tastiera e ricevendo risposte alle elaborazioni tramite testo scritto. Questo tipo di approccio deriva dalla modalità di interazione con i primi calcolatori che avveniva attraverso terminali testuali non in grado di compiere alcuna elaborazione e connessi ad un elaboratore centrale.

In ambiente Windows NT la CLI è ottenuta tramite il programma "Prompt dei comandi" che richiama nella grafica l'interfaccia del Sistema Operativo MS-DOS.

In Unix, Linux e sistemi analoghi si parla invece di "terminale". La shell è il programma con interfaccia a linea di comando che viene eseguito all'interno di un terminale testuale per impartire comandi al sistema. Possono esistere ed essere utilizzate contemporaneamente differenti shell (Bourn Shell, Bash, Korn shell, C shell, Dash, Z shell). L'interfaccia a linea di comando è ancora molto diffusa per il controllo e la configurazione di dispositivi specializzati, come router, switch e stampanti di rete, ma anche per connettersi remotamente ad altri elaboratori. In tal caso, vengono impiegati protocolli come telnet o ssh.


Corso Linux primavera 2009


Iscritti:

  1. Lorex
  2. Hal
  3. linux-lover
  4. ...
  5. ...
  6. ...
  7. ...

Per iscriversi basta inviare un messaggio all'indirizzo hack@golem.linux.it


Prezzo d'iscrizione: 0 euro.
Richiesta tessera socio GOLEM 10 euro (valida 1 anno).


Inizio corso: metà-fine marzo (indicativamente).

Molto probabilmente si terrà di mercoledì, il numero complessivo delle lezioni è ancora in fase di valutazione.


Bozza del programma del corso


  • Principali comandi Unix:

man, ls (+ cenni echo *), pwd, mv, cp (-R), ln, mkdir, cat, less, chmod, chown, chgrp, adduser (useradd), dmesg, lsmod, modprobe, ps, top, kill, killall, exit, su, pwd, w, whoami, halt shutdown, sleep, fdisk, cfdisk, mkfs.*, fsck.*, dd, mount (-o loop,nodev...), tar, gzip, free, lspci, lsusb, X (-configure), grep, loadkeys, dhcpcd, ifconfig, route. Uso di "&", "|", ";" e ">".


  • Organizzazione del File System di Linux: FHS

Classificazione dei file

NB: un tempo l'hardware non era a basso costo come oggi, spesso nelle grandi aziende e nelle università venivano impiegati dei potenti mainframe ai quali venivano collegati dei più economici terminali. Non era insolito che i programmi che occupavano più spazio venissero installati solo sul server, ma venissero utilizzati anche dai terminali tramite un network file system (NFS).

  • Condivisibili: directory ed eseguibili contenuti in un server, ma potenzialmente utilizzabili anche da altri client (che usano un OS compatibile con quello del server)
  • Non condivisibili: directory che non ha senso o che creerebbero problemi se venissero condivise.
  • Statici: file binari, librerie, documentazione, etc… non cambiano a meno che non intervenga l'amministratore di sistema. Spesso si tratta di directory che possono essere condivise.
  • Variabili: tutti i file che non sono statici (es. directory /var).


Contenuto del file system nel dettaglio:

/bin: eseguibili utilizzabili da tutti gli utenti e sufficienti per permettere al sistema di funzionare anche quando gli altri filesystem non sono montati (es. boot in single user mode).

/boot: file statici del boot loader utilizzati prima che il kernel inizi ad eseguire programmi in user-mode.

/dev: file che rappresentano i dispositivi collegati al sistema.

/etc: riservata ai file locali di configurazione (da et cetera), nessun file binario dovrebbe trovarsi in questa directory.

/home/ (opzionale): directory home degli utenti, talvolta è un link simbolico che rimanda ad altre directory es. /usr/home (FreeBSD), /usr/export/home (Solaris), /Users/name (MacOSX, GoboLinux).

/lib: librerie di cui necessitano i programmi installati in /bin e /sbin

/media: punti di montaggio (spesso automatico) per dispositivi rimovibili come CD-ROM, floppy o penne USB (apparso in FHS-2.3).

/mnt: punti di montaggio per filesystem montati temporaneamente (floppy, hard disk, file system di rete, sistemi in chroot…). La sua gestione avviene a discrezione dell'amministratore di sistema, ma non dovrebbe interferire con i programmi in esecuzione.

/opt: pacchetti software statici e generalmente di grandi dimensioni (es. KDE, java, staroffice, quake, vmware…), è spesso utilizzata come directory predefinita d'installazione per software commerciali o non opensource. Non è sempre presente nei sistemi Unix.

/proc (tipica dei sistemi Linux): filesystem virtuale che mostra informazioni sullo stato del kernel, dell'hardware e dei processi attivi.

/root (opzionale): directory home dell'utente root.

/sbin: eseguibili utilizzati unicamente dall'utente root. Servono solo a montare /usr e a eseguire operazioni di ripristino del sistema. Gli altri comandi per l'amministrazione locale del sistema devono essere inseriti in /usr/sbin e /usr/local/sbin.

/srv: dati per i servizi forniti dal sistema (httpd, ftp, rsync, cvs). Un tempo questi file potevano trovarsi in varie directory a seconda del programma utilizzato, i file html in hosting web potevano trovarsi in /www, /var/www, /usr/local/www/apache**, /home/www/, /home/httpd…

/tmp: file temporanei, il suo contenuto è cancellato ad ogni riavvio del sistema.

/usr: gerarchia secondaria per i dati condivisibili; spesso ha una partizione a sé dedicata che è montata in sola lettura. Questa directory è nata per essere condivisa tra gli host e non deve contenere dati specifici.

/usr/bin: directory principale d'installazione dei programmi

/usr/sbin: eseguibili non indispensabili per la riparazione/ripristino del sistema utilizzabili solo dall'utente root.

/usr/share: dati condivisi (shared) indipendenti dall'architettura (manuali, icone, font…).

/usr/src (opzionale): codici sorgenti.

/usr/X11R6 (opzionale): X Window System, a partire dalla Versione 11 Release 6.

/usr/local: terza gerarchia con struttura simile alla directory /usr. Utilizzata dall'aministratore di sistema quando installa software a livello locale, come pacchetti compilati ed installati a partire dai sorgenti. Un tempo /usr era un partizione read-only che poteva non risiedere sul client ed essere montata tramite NFS. Su FreeBSD il sistema di base si trova in /bin, /sbin e /usr mentre il software installato dai ports è tutto in /usr/local.

/var: poiché l'FHS richiede che /usr possa essere montata in sola lettura, tutti i programmi che scrivono file di log o necessitano delle directory spool o lock dovrebbero scriverli nella directory /var.

/var/tmp: file temporanei preservati anche dopo il reboot.


  • Init e boot loader:
/boot/grub/menu.lst
initrd "initial ramdisk" (es. kernel26.img), mkinitfs e problematiche kernel monolitico/modulare
/etc/inittab
/etc/rc.d/* (funzionamento dell'init BSD + SysV runlevel)
/etc/rc.local


  • Principali file di configurazione:
/etc/apt/sources.list (solo nelle distribuzioni che usano il package manager apt).
/etc/fstab
/etc/group
/etc/password
/etc/hosts
/etc/X11/xorg.conf
~/.xinitrc
/etc/sudoers


  • Installazione Slackware o Archlinux