Differenze tra le versioni di "Linea di comando"
Riga 21: | Riga 21: | ||
collegamento alla cartella sovrastante | collegamento alla cartella sovrastante | ||
− | + | =Comandi principali= | |
man | man | ||
Anteposto ad un comando ne mostra la guida | Anteposto ad un comando ne mostra la guida | ||
− | + | ==Gestione di file e cartelle== | |
cd .. | cd .. | ||
Permette di tornare alla cartella di livello superiore | Permette di tornare alla cartella di livello superiore | ||
Riga 76: | Riga 76: | ||
− | + | ==Spengimento e Riavvio== | |
systemctl poweroff = Spenge il PC | systemctl poweroff = Spenge il PC | ||
Riga 82: | Riga 82: | ||
− | + | ==Sistema e kernel== | |
du -h = quantità di spazio usata nella directory e sottodirectory in kb e mb. | du -h = quantità di spazio usata nella directory e sottodirectory in kb e mb. | ||
Riga 99: | Riga 99: | ||
− | + | ==Altro== | |
history | history | ||
Visualizza l'elenco degli ultimi comandi eseguiti | Visualizza l'elenco degli ultimi comandi eseguiti | ||
Riga 110: | Riga 110: | ||
− | + | ==Il carattere JOLLY '''*'''== | |
* = significa tutto | * = significa tutto | ||
Riga 118: | Riga 118: | ||
es. pippo* = pippo pippo1 pippociao pippopluto pippo.............. | es. pippo* = pippo pippo1 pippociao pippopluto pippo.............. | ||
− | =Gestione dell'output= | + | ==Gestione dell'output== |
| → ingabbia l'output del comando che lo precede e lo da in input al comando successivo. | | → ingabbia l'output del comando che lo precede e lo da in input al comando successivo. | ||
Riga 254: | Riga 254: | ||
/lib: contiene le libreria che sono usate dai programmi che stanno in /bin e /sbin, nonchè i moduli del kernel. | /lib: contiene le libreria che sono usate dai programmi che stanno in /bin e /sbin, nonchè i moduli del kernel. | ||
− | /media: | + | /media: usata da udev per montare automaticamente le periferiche quando vengono inserite. |
Es. Pennine e device usb | Es. Pennine e device usb | ||
Riga 272: | Riga 272: | ||
/tmp: contiene i file temporanei che ad ogni riavvio vengono cancellati. | /tmp: contiene i file temporanei che ad ogni riavvio vengono cancellati. | ||
− | /usr: | + | /usr: utilizzata per l'installazione dei programmi. |
/usr/src: contiene i sorgenti del kernel o dei programmi compilati dall'utente. | /usr/src: contiene i sorgenti del kernel o dei programmi compilati dall'utente. | ||
− | |||
− | |||
− | |||
− | |||
/var: ha contenuti dinamici, ovvero file che sono soggetti a modifiche dal sistema. | /var: ha contenuti dinamici, ovvero file che sono soggetti a modifiche dal sistema. | ||
− | |||
− | |||
− | |||
− | |||
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. | 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:53, 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: usata da udev per montare automaticamente le periferiche 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: utilizzata per l'installazione dei programmi.
/usr/src: contiene i sorgenti del kernel o dei programmi compilati dall'utente.
/var: ha contenuti dinamici, ovvero file che sono soggetti a modifiche dal sistema.
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.