Differenze tra le versioni di "Linea di comando"
Riga 129: | Riga 129: | ||
>> → è analogo al comando > ma accoda l'input alla fine del file destinazione senza cancellarne il contenuto preesistente. | >> → è analogo al comando > ma accoda l'input alla fine del file destinazione senza cancellarne il contenuto preesistente. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Riga 287: | Riga 223: | ||
NB. | NB. | ||
Se si hanno i permessi di scrittura/lettura/esecuzione su una directory sarà possibile anche scrivere/leggere/eseguire i file che stanno al suo interno anche se non ho i permessi direttamente su quei file specifici. | Se si hanno i permessi di scrittura/lettura/esecuzione su una directory sarà possibile anche scrivere/leggere/eseguire i file che stanno al suo interno anche se non ho i permessi direttamente su quei file specifici. | ||
+ | |||
+ | |||
+ | |||
+ | =/etc/fstab= | ||
+ | |||
+ | È il file in cui sono specificati i device che vengono montati all'avvio. | ||
+ | |||
+ | Es.: montaggio di una partizione NTFS | ||
+ | |||
+ | /dev/sda1 /media/win ntfs-3g defaults,users,umask=000,locale=it_IT.UTF-8 0 0 | ||
+ | |||
+ | In fstab non va messo il riferimento a /media ma solo a /mnt altrimenti si crea confusione con il S.O. che in /media è programmato per scriverci automaticamente al momento del rilevamento del dispositivo inserito. | ||
+ | |||
+ | |||
+ | =Struttura del filesystem= | ||
+ | |||
+ | /bin: contiene i programmi che sono essenziali all'avviamento e all'uso della macchina. | ||
+ | Es. bash, mv, cp... | ||
+ | |||
+ | /boot: contiene i file di configurazione del bootloader, necessari all'avviamento della macchina. | ||
+ | Es. I file di configurazione del Grub. | ||
+ | |||
+ | /dev: tutti i file contenuti in questa directory sono dispositivi che fanno parte del sistema o che vengono emulati. | ||
+ | Es. I dischi hda e sda | ||
+ | |||
+ | /etc: contiene principalmente i file di configurazione dei programmi e del sistema di base. | ||
+ | |||
+ | /home: non è strettamente necessaria. Contiene le directory personali dei singoli utenti. | ||
+ | |||
+ | /lib: contiene le libreria che sono usate dai programmi che stanno in /bin e /sbin, nonchè i moduli del kernel. | ||
+ | |||
+ | /media: esiste da poco, da quando sono entrati in uso i demoni “udev” e “hal” che montano automaticamente le periferiche nella cartella media a caldo quando vengono inserite. | ||
+ | Es. Pennine e device usb | ||
+ | |||
+ | /mnt: cartella dove vengono montati manualmente i device e le partizioni che solitamente sono statici e non vengono rimossi. | ||
+ | Per montare un device automaticamente nella /mnt all'avvio è necessario editare il file /etc/fstab, altrimenti è necessario montare manualmente il device ogni volta con il comando muount. | ||
+ | |||
+ | /opt: di solito contiene i programmi che non interagiscono con altri programmi installati. | ||
+ | |||
+ | /proc: è un file system virtuale. All'interno ci sono file che danno informazioni sul sistema (per esempio il tipo di CPU). | ||
+ | |||
+ | /root: è la home dell'utente root. | ||
+ | |||
+ | /sbin: contiene eseguibili e file che può usare solo l'utente root. | ||
+ | |||
+ | /srv: è la cartella che contiene i server standard. | ||
+ | |||
+ | /tmp: contiene i file temporanei che ad ogni riavvio vengono cancellati. | ||
+ | |||
+ | /usr: è speculare alla directory /root poiché contiene le stesse directory, con la differenze che in passato non stava sul mainframe ma sulla macchina locale. | ||
+ | |||
+ | /usr/src: contiene i sorgenti del kernel o dei programmi compilati dall'utente. | ||
+ | |||
+ | /usr/X11R6: contiene i file del server grafico. | ||
+ | |||
+ | /usr/local: speculare alla /usr, contiene l'installazione di programmi. | ||
+ | |||
+ | /var: ha contenuti dinamici, ovvero file che sono soggetti a modifiche dal sistema. | ||
+ | |||
+ | /var/tmp: contiene principalmente file temporanei che non vengono cancellati al riavvio. | ||
+ | |||
+ | /share: principalmente usata per condividere dati tra più utenti o in rete. | ||
+ | |||
+ | swap: serve al S.O. per swappare ma al giorno d'oggi, con le grandi quantità di ram che vengono installate a bordo dei client, è quasi praticamente inutile. |
Versione delle 13:50, 11 ott 2014
Introduzione
Una shell è un software provvisto di un'interfaccia da riga di comando attraversi il quale digitando un comando si avvia l'esecuzione di un programma.
Sui sistemi Microsoft (DOS e Windows) è chiamata prompt dei comandi.
La maggior parte delle distribuzioni Linux utilizza la Bourne Again Shell (bash), una versione avanzata della vecchia Bourne shell (sh).
Altre shell:
- Almquist shell (ash, sh, dash): veloce e minimale, shell di default di Android, è usata su Debian e derivate per eseguire gli script di avvio.
- TENEX C Shell (tcsh): shell predefinita di FreeBSD, compatibile con la vecchia C shell (csh).
- Korn shell (ksh): shell predefinita di NetBSD ed OpenBSD.
- Z shell (zsh): compatibile con bash, incorpora varie funzionalità della tcsh e ksh
Nota: su Linux tutto è un file: cartelle, file, partizioni, dischi, periferiche, interfacce, sono trattati allo stesso modo. Una cartella si distingue da un file perché contiene al suo interno due elementi: «punto» e «punto punto».
.
collegamento ricorsivo a se stessa
..
collegamento alla cartella sovrastante
Comandi principali
man
Anteposto ad un comando ne mostra la guida
Gestione di file e cartelle
cd ..
Permette di tornare alla cartella di livello superiore
ls
Mostra la lista di elementi contenuti in una directory.
ls -a
Mostra la lista di tutti gli elementi di una directory inclusi quelli nascosti.
ls -l
Mostra gli elementi contenuti in una directory sotto forma di lista, descrivendone il tipo (file, cartella o link), i diritti, il proprietario, il gruppo e la data di modifica.
ls -h
Mostra la lista di tutti gli elementi di una directory indicando la dimensione dei file in modo “human readable”, ovvero espressa in Kbyte o Mbyte anziché in byte.
mkdir nome_cartella
Crea una directory
ls -alh
Combina i tre comandi precedenti.
cp file_o_directory destinazione
Copia file o cartelle. Con l'opzione -R (ricorsività) il comando cp copia anche i file nelle sottocartelle, fino al livello più basso.
mv file_o_directory destinazione
Permette di spostare e rinominare i file. Come per il comando cp, l'opzione -R, ne applica una ricorsività.
rm file → cancella il file.
rm -r cartella
Applica il comando cancella ricorsivamente all'interno delle sottocartelle cancellandone il contenuto.
rm -f
Cancella forzatamente il file ma solo se si hanno i permessi giusti sul file in questione. Non chiede la conferma prima di eliminare!
rm -rf cartella
Cancella una cartella e tutto il suo contenuto senza chiedere conferma per ogni file.
ln -s file destinazione
Crea un link statico al file specificato.
w
indica gli utenti che in quel momento stanno lavorando sulla macchina, il tipo di console TTY (tele type terminal) da cui si connettono, l'ora di login e la macchina da cui hanno effettuato la connessione.
pwd
Print Working Directory mostra il percorso (path) della cartella in cui ci troviamo.
Spengimento e Riavvio
systemctl poweroff = Spenge il PC
reboot = Riavvia il PC
Sistema e kernel
du -h = quantità di spazio usata nella directory e sottodirectory in kb e mb.
top = mostra la percentuale di CPU utilizzata dai vari processi.
ps aux = Visualizza i programmi e demoni in corso con i relativi pid
df -h = mostra le partizioni montate
free -m = mostra la memoria ram e swap occupata, libera e totale
uname -a = indica la versione del kernel
lsmod = visualizza i moduli (driver) caricati nel kernel
Altro
history
Visualizza l'elenco degli ultimi comandi eseguiti
cat nomefile
Mostra il contenuto di un file
less nomefile
Simile a cat, ma permette di scorrere il file avanti ed in dietro. Utile per file lunghi.
Il carattere JOLLY *
- = significa tutto
Introdotto a fianco di una parola, fa riferimento alla parola e quelle che hanno caratteri aggiunti
es. pippo* = pippo pippo1 pippociao pippopluto pippo..............
Gestione dell'output
| → ingabbia l'output del comando che lo precede e lo da in input al comando successivo.
- → esegue il comando che lo prece e poi passa automaticamente al successivo indipendentemente dall'esito del comando eseguito in precedenza.
& → esegue il comando che lo precede e poi passa al successivo solo se il precedente è andato a buon fine.
> → reindirizza l'output a video del comando che lo precede in un altro file, sovrascrivendo quello che c'era prima nel file destinazione. Può essere usato per la copia.
>> → è analogo al comando > ma accoda l'input alla fine del file destinazione senza cancellarne il contenuto preesistente.
APT
apt-get update: aggiorna la lista dei pacchetti interrogando i repository.
apt-get upgrade: aggiorna i pacchetti presenti sulla macchina con nuove versioni se presenti nei repository e risolvendo le relative dipendenze.
apt-get install “nome_pacchetto”: installa il pacchetto con le relative dipendenze.
apt-cache search “stringa_da_cercare”: cerca il pacchetto che ha nel nome o nella descrizione la stringa che gli è stata specificata.
apt-get dist-upgrade: aggiorna il S.O. alla versione successiva, aggiornando automaticamente anche i sources dei repository.
Tramite apt è possibile installare anche una cache dei pacchetti, molto utile nel caso si abbiamo molti client su cui installare programmi e aggiornamenti, prendendo i file direttamente dalla cache del proxy locale anziché dalla rete internet.
tar
Programma che permette di creare archivi, un tempo usato per archiviare i file su nastro.
Opzioni:
-c → crea l'archivio. -f → archivia su file. -v → mostra la lista dei file che vengono aggiunti all'archivio dettagliatamente (verbose mode). -x → estrai l'archivio. -z → crea archivio compresso con gzip. -j → crea archivio compresso con bzip2.
Es: tar -czf nome_file_da_creare file_da_comprimere.gz (compressione di un file in formato gzip) tar -cjf nome_file_da_creare file_da_comprimere.bz2 (compressione di un file in formato bzip2)
tar -xjf “file_compresso.bz2” (estrazione di un file in formato bzip2)
Permessi, gruppi, utenti
I gruppi si creano con il comando groupadd “nome_gruppo”. Sia quelli standard che quelli creati a posteriori compaiono nel file /etc/group.
alsa → per l'audio network → per la rete optical → per lettori e masterizzatori wheel → gruppo che ha permessi quasi da root users → gruppo dove ci stanno tutti gli utenti
Gli utenti si creano con il comando useradd nome_utente. La lista degli utenti compare nel file /etc/passwd.
Per cambiare i permessi ai file si usa il comando chmod.
Metodo delle lettere (UGO – User/Group/Others): Permesso di lettura → r Permesso di scrittura → w Permesso di esecuzione → x
chmod u+x “nome_file” → do i permessi di esecuzione al proprietario chmod u-x “nome_file” → tolgo i permessi di esecuzione al proprietario
Lo stesso vale per il gruppo e per gli others:
chmod g+w “nome_file” → do i permessi di scrittura al gruppo chmod o+w “nome_file” → do i permessi di scrittura a tutti gli altri chmod a-w “nome_file” → tolgo i diritti di scrittura a tutti
Sempre usando il comando chmod si possono dare i permessi ai file anche usando il metodo dei numeri:
1 → lettura 2 → scrittura 4 → esecuzione
I diritti si danno al proprietario, gruppo e others sommando i numeri corrispondenti ai diritti che vogliamo dargli.
Es.:
chmod 777 “nome_file”
Dà i diritti di esecuzione, lettura e scrittura al proprietario, al gruppo e a tutti gli altri
-Il primo 7 è dato dalla somma di esecuzione+scrittura+lettura=4+2+1=7 ovvero i diritti che diamo al proprietario. -Il secondo 7 è dato dalla somma di esecuzione+scrittura+lettura=4+2+1=7 ovvero i diritti che diamo al gruppo. -Il terzo 7 è dato dalla somma di esecuzione+scrittura+lettura=4+2+1=7 ovvero i diritti che diamo agli altri. E cosi per tutte le possibili combinazioni.
chgroup “nome_gruppo” “nome_file”
Cambiare un gruppo ad un file
chown “nome_utente” “nome_file”
Attribuisce all'utente la proprietà del file.
NB.
Se si hanno i permessi di scrittura/lettura/esecuzione su una directory sarà possibile anche scrivere/leggere/eseguire i file che stanno al suo interno anche se non ho i permessi direttamente su quei file specifici.
/etc/fstab
È il file in cui sono specificati i device che vengono montati all'avvio.
Es.: montaggio di una partizione NTFS
/dev/sda1 /media/win ntfs-3g defaults,users,umask=000,locale=it_IT.UTF-8 0 0
In fstab non va messo il riferimento a /media ma solo a /mnt altrimenti si crea confusione con il S.O. che in /media è programmato per scriverci automaticamente al momento del rilevamento del dispositivo inserito.
Struttura del filesystem
/bin: contiene i programmi che sono essenziali all'avviamento e all'uso della macchina. Es. bash, mv, cp...
/boot: contiene i file di configurazione del bootloader, necessari all'avviamento della macchina. Es. I file di configurazione del Grub.
/dev: tutti i file contenuti in questa directory sono dispositivi che fanno parte del sistema o che vengono emulati. Es. I dischi hda e sda
/etc: contiene principalmente i file di configurazione dei programmi e del sistema di base.
/home: non è strettamente necessaria. Contiene le directory personali dei singoli utenti.
/lib: contiene le libreria che sono usate dai programmi che stanno in /bin e /sbin, nonchè i moduli del kernel.
/media: esiste da poco, da quando sono entrati in uso i demoni “udev” e “hal” che montano automaticamente le periferiche nella cartella media a caldo quando vengono inserite. Es. Pennine e device usb
/mnt: cartella dove vengono montati manualmente i device e le partizioni che solitamente sono statici e non vengono rimossi. Per montare un device automaticamente nella /mnt all'avvio è necessario editare il file /etc/fstab, altrimenti è necessario montare manualmente il device ogni volta con il comando muount.
/opt: di solito contiene i programmi che non interagiscono con altri programmi installati.
/proc: è un file system virtuale. All'interno ci sono file che danno informazioni sul sistema (per esempio il tipo di CPU).
/root: è la home dell'utente root.
/sbin: contiene eseguibili e file che può usare solo l'utente root.
/srv: è la cartella che contiene i server standard.
/tmp: contiene i file temporanei che ad ogni riavvio vengono cancellati.
/usr: è speculare alla directory /root poiché contiene le stesse directory, con la differenze che in passato non stava sul mainframe ma sulla macchina locale.
/usr/src: contiene i sorgenti del kernel o dei programmi compilati dall'utente.
/usr/X11R6: contiene i file del server grafico.
/usr/local: speculare alla /usr, contiene l'installazione di programmi.
/var: ha contenuti dinamici, ovvero file che sono soggetti a modifiche dal sistema.
/var/tmp: contiene principalmente file temporanei che non vengono cancellati al riavvio.
/share: principalmente usata per condividere dati tra più utenti o in rete.
swap: serve al S.O. per swappare ma al giorno d'oggi, con le grandi quantità di ram che vengono installate a bordo dei client, è quasi praticamente inutile.