Differenze tra le versioni di "Linea di comando"

Da GolemWiki.
Jump to navigation Jump to search
Riga 2: Riga 2:
 
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.  
 
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".
+
Sui sistemi Microsoft (DOS e Windows) è chiamata ''prompt dei comandi''.
  
 
La maggior parte delle distribuzioni Linux utilizza la [http://it.wikipedia.org/wiki/Bash Bourne Again Shell] (bash), una versione avanzata della vecchia [http://it.wikipedia.org/wiki/Bourne_shell Bourne shell] (sh).
 
La maggior parte delle distribuzioni Linux utilizza la [http://it.wikipedia.org/wiki/Bash Bourne Again Shell] (bash), una versione avanzata della vecchia [http://it.wikipedia.org/wiki/Bourne_shell Bourne shell] (sh).
  
 
Altre shell:
 
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.
+
* 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).
+
* TENEX C Shell (tcsh): shell predefinita di FreeBSD, compatibile con la vecchia C shell (csh).
* [[Korn shell]] (ksh): shell predefinita di NetBSD ed OpenBSD.
+
* Korn shell (ksh): shell predefinita di NetBSD ed OpenBSD.
* [[Z shell]] (zsh): compatibile con bash, incorpora varie funzionalità della tcsh e ksh
+
* Z shell (zsh): compatibile con bash, incorpora varie funzionalità della tcsh e ksh
  
Ne esiste anche una versione meno avanzata, la «[http://it.wikipedia.org/wiki/Debian_Almquist_shell dash]» (Debian Almquist SHell), che non necessita di dipendenze.
+
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».
Nota: in Linux qualsiasi cosa «è 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».
 
  
 
  .
 
  .
Riga 24: Riga 23:
 
==Comandi==
 
==Comandi==
 
  cd ..
 
  cd ..
torna alla cartella sovrastante
+
torna alla cartella di livello superiore
  
 
  man
 
  man
 
anteposto ad un comando ne mostra la guida
 
anteposto ad un comando ne mostra la guida
 
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 da che macchina hanno effettuato la connessione.
 
 
pwd
 
Print Working Directory mostra il path della cartella in cui ci troviamo.
 
  
 
  ls
 
  ls
Riga 47: Riga 40:
 
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.
 
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.
  
  ls -ahl
+
  ls -alh
 
combina i tre comandi precedenti.
 
combina i tre comandi precedenti.
  
  cp file_o_directory destinazione
+
  cp ''file_o_directory'' ''destinazione''
comando che serve per la copia dei file o delle cartelle. Con l'opzione -R il comando cp copia non solo i file della cartella  d'origine nella destinazione ma anche i file che stanno nelle sottocartelle, fino al livello più basso. Applica in poche parole una ricorsività.
+
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/cartella” “destinazione”→ serve a spostare i file (analogo al taglia di Windows), ma anche per rinominare i file.
+
mv ''file_o_directory'' ''destinazione''
Come per il comando cp, combinato con l'opzione -R, applica una ricorsività che permette di spostare non solo il file di origine ma anche le sottocartelle.
+
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 ''file''→ cancella il file.
  
rm -r “cartella” → applica il comando cancella ricorsivamente all'interno delle sottocartelle cancellandone il contenuto.
+
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 -f → cancella forzatamente il file ma solo se si hanno i permessi giusti sul file in questione. Non chiede la conferma prima di eliminare!
  
ln -s “file” “destinazione” → crea un link statico al file specificato.
+
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.
  
 
=Gestione dell'output=
 
=Gestione dell'output=

Versione delle 13:23, 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

cd ..

torna alla cartella di livello superiore

man

anteposto ad un comando ne mostra la guida

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.

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!
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.

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.


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.


/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.


apt

È il gestore dei pacchetti i cui file di configurazione stanno in /etc/apt. Il file che contiene i repository è sources.list ed ha la seguente sintassi:

deb cdrom [percorso] intrepid main restricted deb http://archive.ubuntu.com/ubuntu intrepid main restricted


(Intrepid è il nome di una versione della distribuzione di Ubuntu)

Comandi:

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)

xorg.conf

Gestisce e rileva le periferiche video e di input quali monitor, vga, mouse e tastiera. Alcune distribuzioni hanno dei tools specifici per creare il file xorg.conf, ma è possibile farlo anche a mano. Il comando “X -configure” crea un file xorg.conf funzionante...in teoria! :-(


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.:

Se volessi dare i diritti di esecuzione, lettura e scrittura sia al proprietario, al gruppo e a tutti gli altri dovrei scrivere:

chmod 777 “nome_file”

Dove: -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.

Se voglio cambiare un gruppo ad un file uso il comando chgroup “nome_gruppo” “nome_file” (di cui voglio cambiare il gruppo). Per cambiare utente ad un file invece si usa il comando chown “nuovo_utente” “nome_file” (di cui voglio cambiare l'utente). Posso cambiare utente e gruppo con un comando solo sempre usando il chown: chown “utente:gruppo” “nome_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.


Monitoraggio delle risorse

ps ax | less → fa vedere tutti i processi che ci sono attivi, ridirezionando l'output tramite il less a video come se fosse un file di testo. Nella lista ci sono tutti i processi con il relativo PID.

kill PID → uccide il processo relativo a quel PID.

killall “nome_programma” → uccide tutti i processi che hanno a che fare con quel programma (compresi i processi figli).

top → comando che ci permette di vedere i processi attivi in tempo reale con relativo utilizzo delle risorse, oltre alle risorse (RAM e CPU) in uso e libere sulla macchina.


Comandi a briglia sciolta

Un ottimo testo di riferimento per usare Linux da linea di comando (shell): Manualinux e poi una serie di utili combinazioni di tasti presa da wowarea.

cd

cd (da solo) torna nella homedir (~ o $HOME)

cd ..

porta alla directory precedente (da cui dipende)

cd /

torna alla radice da qualsiasi punto ci si trovi

ls

visualizza il contenuto di una directory orizzontalmente

ls | more

visualizza il contenuto x pagina e verticalmente (tramite enter prosegue con una singola linea x volta) (tramite space prosegue x pagina)

ls -l

l'opzione -l visualizza molti dettagli

ls -la l'opzione -a visualizza le directory precedute da un punto (questo e' il comando consigliato)

cp -av

copia intere directory es. partenza (/usr) destinazione (/mnt/dove_vuoi_tu)

cp -r

per copiare directory

mkdir

per creare una directory

rmdir

per rimuovere directory vuote

rm -r

elimina le dir/sottodir e tutto in esse contenuto

rm -r -f

elimina le dir/sottodir e tutto in esse contenuto senza chiedere conferma

pwd

per controllare in quale directory ci si trova

tree nomedir

visualizza le directory dipendenti da quella indicata

reset

se xterm non risponde più ai comandi, il comando reset lo sbloccherà

cp

per copiare file

rm

per cancellare i file

mv per spostare/rinominare file

mv nome nomenuovo rinomina il file (es. mv cri.txt cro.txt)

mv nomefile /nomedir sposta il file nella dir indicata (es. mv cri.txt /usr)

cat nomefile mostra il contenuto di un file

touch nomefile per creare un file vuoto all'istante

wc per vedere le statistiche su un file di testo.

split per dividere un file in più parti.

diff per trovare la differenza di testo all'interno di 2 files (es. diff 1.txt 2.txt)

!!

riesegue l'ultimo comando appena eseguito

!n

riesegue l'ennesimo comando presente nella storia, dove 'n' e' il numero del comando da rieseguire

!stringa 

riesegue l'ultimo comando che inizia con i caratteri specificati in 'stringa'

!stringa:p 

visualizza l'ultimo comando che inizia con i caratteri specificati in 'stringa'

!?comando? 

ricerca il comando specificato tra punti interrogativi

fc 4 

permette di modificare in comando numero 4 con l'editor predefinito (solitamente vi)

fc -e 'nome' 4 

permette di modificare in comando numero 4 con l'editor 'nome' specificato

^comando1^comando2 

riesegue l'ultimo comando eseguito che contiene la parola 'comando1' sostituendola con 'comando2'.

history 

visualizza l'elenco di tutti i comandi eseguiti

CTRL-U 

cancella tutta la riga dalla posizione del cursore all'inizio della riga

CTRL-K 

cancella tutta la riga dalla posizione del cursore alla fine della riga

CTRL-W 

cancella una parola dalla posizione del cursore all'inizio della riga

ALT-D 

cancella una parola dalla posizione del cursore alla fine della riga

freccia sinistra 

sposta il cursore di un carattere a sinistra

freccia destra 

sposta il cursore di un carattere a destra

freccia su 

scorre la storia dei comandi a ritroso

freccia giu' 

scorre la storia dei comandi in avanti

tasto home 

sposta il cursore all'inizio della riga

CTRL-A 

sposta il cursore all'inizio della riga

tasto fine 

sposta il cursore alla fine della riga

CTRL-E 

sposta il cursore alla fine della riga

ALT-F 

sposta il cursore alla fine della parola successiva (F sta per forward, successivo)

CTRL-B 

sposta il cursore all'inizio della parola precedente (B sta per backward, precedente)

CTRL-T 

inverte gli ultimi due caratteri a sinistra del cursore, cioe' ab diventa ba (T sta per transpose)

ALT-T 

inverte le ultime due parole a sinistra del cursore, cioe' cp pippo pluto diventa cp pluto pippo

ALT-U 

trasforma in maiuscolo la parola su cui si trova il cursore (U sta per uppercase, cioe' maiuscolo)

ALT-L 

trasforma in minuscolo la parola su cui si trova il cursore (L sta per lowercase, cioe' minuscolo)

tasto TAB 

espande il nome di un file o di un comando



Altri consigli presi da Manualinux

  1. COMANDI COMUNI PER MUOVERE I PRIMI PASSI SU LINUX
    1. I comandi dati possono essere riscritti, sulla riga di comando, semplicemente premendo i tasti di direzione.
    1. Tramite il comando "history" e' possibile vedere tutti i comandi dati
    1. se dopo gli viene inserito un numero, visualizza gli ultimi n. comandi dati

3 - Spesso lanciando dei comandi, si generano file di testo. Per uscirne, bisogna premere "q" oppure, qualora si voglia fermarne il processo perche' l'esecuzione del comando genera caratteri incomprensibili o non vengono accettati altri input da tastiera, bisogna premere "Ctrl+c"

4 - Spesso, i comandi lanciati, forniscono una serie di dati che superano la visualizzazione di una sola schermata, mostrando cosi', solo una parte di essi. Per ovviare a questo fenomeno, si usa una opzione "|more" o "| less" aggiunta alla fine del comando (ls -la | more) oppure dopo il nome del file (cat nomefile | more)

5 - Inoltre, dopo avere utilizzato alcune procedure sopracitate, bisogna sapere che premendo il tasto "Invio", continua la visualizzazione per riga e premendo il tasto "space" continua per pagina.


shutdown -r now = riavvio del sistema

reboot = come sopra

shutdown -h now = chiusura del sistema

halt = come sopra

halt -p = fa shutdown e spegne il sistema

exit = chiude la consolle

startx = avvia l'esecuzione del server grafico

ctrl+alt+backspace = riavvia la modalita' grafica riportando al login iniziale

ctrl+alt+F1 = apre una consolle non emulata

ctrl+alt+F7 = passa semplicemente sullo screen 0 se c'e' un server X attivo. Non chiude la console da cui si proviene.


PER HELP E INFORMAZIONI

- comandi

nomecomando --help = mostra la sintassi del comando (un aiuto generico)

man nomecomando = mostra la spiegazione in dettagli

(enter ;prosegue per linea - space ;per pagina -

q ;per uscire e tornare alla riga di comando)

info nomecomando = idem


- file installati

makewhatis = crea un database con le informazioni che riguardano i file installati (senza visualizzare nulla), poi con il comando

" apropos tipofile " viene restituito un elenco di quello che riguarda il tipo di file (es. apropos edit).


- kernel uname -a = per sapere la versione del kernel

- sistema e kernel

lsmod = visualizza i moduli caricati nel kernel

du -h = quantita' di spazio usata nella directory e sottodirectory in kb e mb.

top = mostra i processi in uso dalla cpu (per interrompre Ctrl+c).

ps aux = Visualizza i programmi e demoni in corso con i relativi pid

pidof nome programma/demone (per es. pidof kdm)

df = mostra le partizioni montate

free -mt = mostra la memoria ram e swap occupata, libera e totali

free (-t ;x i totali -m ;x i megabytes)



uname = mostra le informazioni sul sistema.

uname -m = tipo di macchina

uname -n = nome della macchina sulla rete

uname -r = release del sistema operativo (versione kernel)

uname -s = nome del sistema operativo

uname -v = versione del sistema operativo

uname -a = riepilogo generale delle opzioni sopra descritte





ALTRI COMANDI PER LA VISUALIZZAZIONE DI FILE E PRECISAZIONI

Oltre al comando "cat", ci sono altri comandi, spesso piu' utili, per visualizzare il contenuto di un file.

more nomefile = per i file di grandi dimensioni


oppure

less nomefile



more /dev/hda = verra' visalizzata la mappa delle partizioni

less /dev/hda = viene visualizzato di aggiungere l'opzione -f

less -f /dev/hda = questo e' il caso in cui non si capisce nulla

(premere "q")

cat /dev/hda = questo e' il caso in cui bisogna fermare il processo (Ctrl+c)



IL CARATTERE JOLLY "*"

  • = significa tutto

Se introdotto a fianco di una parola, fa riferimento alla parola e quelle che hanno caratteri aggiunti

es. pippo* = pippo pippo1 pippociao pippopluto pippo..............


Bisogna stare attenti quando lo si usa per eliminare file o directory, perche', un comando sbagliato come:

"rm pippo * "; elimina il file pippo e anche tutti i file dentro quella directory. Meglio controllare con:

ls -a pippo* prima di cancellare qualcosa; in questa maniera, si potra' controllare cosa verra' eliminato.



IL COMANDO CAT

(precisazioni)


Può essere usato per creare

file di testo :

cat > nomefile

digitare il testo

ctrl+d = per chiudere il file

cat nomefile = per guardare il contenuto del file


Può essere usato per riassemblare files divisi o unire vari files :

es.:

cat file1.txt file2.txt file3.txt > ris.txt



IL COMANDO CP

(precisazioni)

Può essere usato anche per trasferire un file esistente in un file che viene creato all'istante:

cp fileesistente file creatoadesso


La stessa cosa avviene per le directory

cp -r diresistente dircreataadesso


I COLLEGAMENTI

ln nome nomelink = per creare collegamenti fisici

ln -s nome nomelink = per creare collegamenti simbolici


COMANDI VARI

pushd (Dice in che directory eravate prima)

popd (vi porta nella directory dove eravate prima)

cd - (come sopra)


OCCUPAZIONE DEL DISCO

du -h (per visualizzare la quantita' in kilobyte e megabyte)


I PROCESSI

& (da mettere a fine riga di comando) per eseguire un comando in background ossia dietro le quinte e darà questo risultato:

[3] 32566 Dove 3 e' il numero del processo mentre 32566 e' l'ID del processo.


&& (da inserire tra 2 comandi, il secondo comando si avvierà solo quando il primo sarà terminato, ad esempio dir && top).


bg (avvia il comando in background, la sintassi è: bg numero_id_del_comando).

fg (esegue un processo con priorità alta, la sintassi è: fg numero_id_del_comando).


nohup (esegue un comando anche se si è usciti dalla sessione o è stata persa la connessione, la sintassi è: nohup dir &), alla fine creerà un file chiamato nohup.out con all'interno il risultato del comando.


ps -ax = per visualizzare i processi in memoria.

kill = per uccidere un processo (con kill -l si visualizzano i segnali da mandare a morte.

kill -9 (n°processo) = forza la morte del processo.

killall = uccide tutti i processi).


RAM

Per poter visualizzare la ram scrivere:

free

Per avere informazioni sulla ram utilizzata scrivere:

top

Controllare la parte in alto a sinistra dello schermo.


MANIPOLAZIONE DEI DIRITTI DI ACCESSO

Se un file o una directory è di mia proprietà allora posso impostare a mio piacimento i suoi attributi (= diritti di accesso). Il comando per fare ciò è chmod (change modes). La sua sintassi è la seguente:

chmod chi azione cosa nomefile

dove:

il parametro chi può essere u (user) g (groups) o (others) a (all)

il parametro azione può essere + (aggiungere) - (togliere)

il parametro cosa può essere r (read) w (write) x (execute)

il campo nomefile è il file o la directory oggetto del cambiamento.

(*) all indica contemporaneamente i tre tipi di utente.

Vediamo ora degli esempi pratici.Supponiamo di voler aggiungere accesso, lettura e scrittura a tutti nella directory.

drwx------ verdi users 512 pippo

Il modo più semplice è:

chmod a+rwx pippo

ovvero a parole "aggiungi (+) a tutti (a) lettura (r) scrittura (w) e accesso (x) al file pippo " (che poi è una directory perché c'è d).

Il risultato è:

drwxrwxrwx verdi users 512 pippo

Altro esempio. Supponiamo di voler rendere il file

-r-------- verdi users 4096 paperino

leggibile da tutti e scrivibile solo dal proprietario :

chmod a+r paperino

chmod u+w paperino

E il risultato è:

-rw-r--r-- verdi users 4096 paperino

Altro esempio. Supponiamo di avere il file

-rw-rw-rw- rossi superuser 1234 pluto

Se eseguiamo:

chmod o-rw pluto

invece di ottenere:

-rw-rw---- rossi superuser 1234 pluto

si ottiene il messaggio:

Permission denied

Questo perché io (verdi) sto tentando di modificare gli attributi di un file che non mi appartiene (è di rossi)


MANIPOLAZIONE DEI DIRITTI DI ACCESSO - METODO ALTERNATIVO

Un metodo più sbrigativo per assegnare gli attributi ad un file si basa su questo ragionamento. Supponiamo di attribuire dei valori

numerici ai permessi possibili:

Lettura = 4 (r)

Scrittura = 2 (w)

Esecuzione = 1 (x)


(Ricordatevi che per una directory x significa accesso). In tale maniera, eseguendo delle semplicissime somme:

0 = Nessun permesso -

1 = Esecuzione x

2 = Scrittura w

3 = Scrittura + Esecuzione wx

4 = Lettura r

5 = Lettura + Esecuzione rx

6 = Lettura + Scrittura rw

7 = Lettura + Scrittura + Esecuzione rwx


Se affianchiamo i tre codici di accesso user / groups / others

otteniamo dei numeri di tre cifre, ognuna delle quali indica i permessi di ogni tipo di utente in modo sintetico. Per esempio:

rwxrwxrwx 777

rw-rw-rw- 666

r--r--r-- 444

rwx------ 700

rw-r--r-- 644


e così via.... Perciò è possibile inglobare in un solo colpo tutti gli accessi di ogni singolo tipo di utente. Esiste allora la sintassi

alternativa di chmod:

chmod codice nomefile


Esempio. Il secondo esempio sulla prima sintassi di chmod voleva

trasformare

-r-------- verdi users 4096 paperino


nel file:

-rw-r--r-- verdi users 4096 paperino


e necessitava di 2 chmod consecutivi, il primo per assegnare a+r e il secondo per assegnare u+w. Con la sintassi alternativa di chmod è

possibile fare il tutto in un solo colpo, usando:


chmod a+r,u+w paperino -#-#-#-(attenzione alla virgola)-#-#-#-


oppure nella maniera più semplice:


chmod 644 paperino



CAMBIARE LA PROPRIETA' DI UN FILE

Se sono proprietario di un file e volessi "regalarlo" a qualcuno, cioè fare in modo che questo qualcuno ne divenga il nuovo proprietario, esiste il comando chown (change owner). La sua sintassi è:

chown nuovoproprietario.nuovogruppo file

Vediamo gli esempi. Supponiamo che rossi, dopo aver depositato nella mia directory il file:

-rw-rw-rw- rossi superuser 1234 pluto

voglia fare in modo che esso divenga di mia proprietà. Dovrà allora eseguire:

chown verdi.users pluto

Il risultato sarà:

-rw-rw-rw- verdi users 1234 pluto


CREARE ED AGGIUNGERE GRUPPI ED UTENTI

Fare tutto come utente root.

Ad es. creare un gruppo chiamato supporto:

groupadd supporto


Ad es. creare un utente ed inserirlo nel gruppo supporto

useradd utente -c (commento) -d (home directory) -g (gruppo)

useradd cristian -c ordinato -d /reparto -g supporto


Adesso bisogna inserire una password:

passwd cristian


E' possibile usare anche:

adduser (completo di tutto, pure di inserimento password).

Verranno proposti i parametri di default , sono possibili delle modifiche.


Modificare il gruppo di appartenenza di un utente:

usermod -gnome_gruppo cristian


Inserire l'utente in altri gruppi:

usermode -Ggruppo1 gruppo2 gruppo3 cristian


Per eliminare utente e gruppo scrivere:

groupdel supporto

userdel cristian (usando userdel -r verranno cancellati tutti i files e la directory dell'utente)



CONTROLLARE L'EFFICIENZA DEI DISCHI IDE

Un grazie a Riccardo Pelizzi (r.pelizzi@virgilio.it)

Controllare l'efficienza dei propri dischi ide.

nota: queste opzioni possono danneggiare i vostri dischi ide

Se il dispositivo ide (che può essere sia un hard disk sia un cd-rom sia un dvd) e la vostra scheda madre sono recenti, il vostro disco supporta la modalità di trasferimento a 32-bit, la modalità ultra-DMA e l'irq unmasking. Il kernel è molto conservativo sotto questo punto di vista (poichè attivando queste opzioni su schede o su dispositivi che non le supportano si rischia di rovinarli) e se non ci ha pensato la vostra distro a configurare a puntino i vostri dischi, lo faremo noi con il comando hdparm:

-Capire a che dispositivo corrisponde ciascun disco usiamo il comando:

hdparm -i /dev/hdX

dove X sta per il dispositivo che dovete controllare. Di solito sono a, b, c, d.

Una delle prime voci di output sarà il modello del vostro dispositivo, così potrete capire che dispositivo IDE state interrogando.

-Controlliamo che il supporto per il nostro chipset sia attivo. Non sarà possibile interagire con i dischi senza avere il supporto per il proprio chipset

integrato nel kernel o caricato come modulo. Per esempio avendo un chipset Via ed avendo compilato il driver come modulo, prima di ogni altra operazione bisogna scrivere "modprobe via82cxxx".

-Controlliamo lo stato dei nostri dischi. Il comando:

hdparm /dev/hdX

darà un output simile a questo:

multcount = 16 (on)

IO_support = 1 (32-bit)

unmaskirq = 1 (on)

using_dma = 1 (on)

keepsettings = 0 (off)

readonly = 0 (off)

readahead = 8 (on)

geometry = 9964/255/63, sectors = 160086528, start = 0

Questo è l'output di un disco che dovrebbe essere già configurato a puntino. L'unica opzione importante ma non visibile da questo menù è la modalità udma. Con il comando precedente potete vedere se la modalità dma è attivata, ma non che modalità è attivata.

Ma a questo penseremo alla fine.

-Configuriamo il nostro dispositivo

Cominciamo dando il comando:

hdparm -t /dev/hdX

e segnatevi il vostro transfer rate. Se IO_Support è uguale a 0, attiviamolo con il comando:

hdparm -c1 /dev/hdX.

Alcune combinazioni di schede madri / dispositivi richiedono il parametro c3. Questa opzione dovrebbe da sola raddoppiare il transfer rate del vostro dispositivo. Unmaskirq serve per mantenere il sistema operativo "responsive" (come lo traduco? Scattante? Pronto? Sono orribili...)

mentre si legge dal dispositivo, utile soprattutto per cd/dvd. Si attiva con:

hdparm -u1 /dev/hdX

E ora passiamo alla parte più interessante: la modalità dma. Date il comando:

hdparm -t /dev/hdX

dopo ogni operazione.

Ogni operazione dovrebbe aumentare il vostro transfer rate. Se così non è, dovrete tornare all'opzione precedente, perchè la corrente non è supportata. Cominciamo con:

hdparm -d1 /dev/hdX

Questa opzione non porta necessariamente ad un aumento di prestazioni, se non è stata attivata una modalità dma valida: andiamo a settarla.

Questa è la tabella dei parametri da fornire ad hdparm (rubata ai gentili signori della intel):

(ATA/33) -X66

(ATA/66) -X68

(ATA/100) -X69

Per esempio per attivare la modalità ATA/66, date il comando:

hdparm -X68 /dev/hdX.

C'è un ultima opzione da settare, un poco più pericolosa delle altre: multicount. Date il comando:

hdparm -i /dev/hdX

e leggete la voce max_multicount. Sarà il valore da settare come:

hdparm -mY /dev/hdX

Ovviamente questa opzione non è settabile per i cd/dvd che hanno una sola testina, il laser. A questo punto dovreste avere un transfer rate di almeno 40MB al secondo con un disco ATA/66. Confrontatelo con quello ottenuto prima di ogni operazione. Godete o rimanete impassibili a seconda del risultato :-)

NOTA: Queste opzioni non sono permanenti, per cui dovrete mettere tutti i vostri bei comandi in uno script e eseguirlo all'avvio mettendo il nome del file in fondo a:

/etc/rc.d/rc.local



HARDWARE INSTALLATO

Dare i seguenti comandi come utente root:

lspci

dmesg

cat /proc/cpuinfo



RICERCA FILE

- find (directory-file) es. find / -name cri.txt (/ cerca in tutto il file system, -name seguito dal nome del file)

- find /root -size 990k ( trova un file di dimensione 990k nella directory /root)

- locate file (es. locate cri.txt) maniera velocissima di trovare un file (dare prima il comando updatedb e poi il comando locate).

- which cri.txt in varie directory predeterminate ( which cri.txt /usr /tmp/root)

- grep cerca una parola all'interno di un documento (es. grep "casa" *.txt )



ARCHIVIAZIONE E COMPRESSIONE FILES

ESTENSIONE COMPRIMERE DECOMPRIMERE


.Z compress cri.txt uncompress cri.Z

.zip zip cri.txt cri.zip unzip cri.zip

.gz gzip cri.txt gunzip cri.gz

.bzip2 bzip2 cri.txt bunzip2 -d cri.bz2

.tar.gz tar zcvf cri.tar.gz</dir/files> tar zxvf cri.tar.gz

.lzh lha a cri.lzh</dir/files> lha x cri.lzh

.rar rar a cri.rar</dir/files> unrar x cri.rar

.zoo zoo -add cri.zoo</dir/files> zoo -extract cri.zoo


MONTARE UN CDROM

Per montare un cdroom il comando è:

mount -t iso9660 /dev/hdc /mnt/cdrom (nome dir che devi crearecon mkdir)

Controlla che il tuo cdrom sia hdc o hdd o scd0 o scd1 (se SCSI) e ricordati di creare una directory di nome cdrom.


MONTARE UNA PARTIZIONE LINUX

Per montare una partizione linux il comando e':

mount /dev/sda1 /mnt/linux (nome dir che devi creare con mkdir)

mount -w -n -o remount / montare il file system in scrittura

mount -r -n -o remount / montare il file system in lettura