----------------------------------- BIOS e' il firmware del PC ----------------------------------- device I/O adress IRQ DMA ----------------------------------- ttys0 3f8 4 na ttys1 2f8 3 na ttys2 3e8 4 na ttys3 2e8 3 na lp0 378-37f 7 na fd0 3f0-3f7 6 2 ---------------------------------- sndconfig pnpdump isapnp /proc/isapnp /proc/interrupts /proc/dma /proc/ioports lspci setserial hotplug usb OHCI 1.1 12 Mbps usb UHCI 1.1 12 Mbps usb EHCI 2.0 480 Mbps ldd visualizza le librerie necessarie ldconfig -p visualizza le librerie caricate /etc/ld.so.conf indica i path dove cercare le librerie /etc/lilo.conf /boot/grub/menu.conf ---------------------------------------------------------------------- /etc/passwd nome-utente:password:UID:GID:nomereale:dir~/:shell /etc/group nome-gruppo:password:GID:membro1,membro2,........ /etc/shadow nome-utente:passwordcriptata:nnn:nn:nnn:n:n:n:nnnnn giorni passati dal 1-1-70 ^ giorni rimanenti ^ giorni rimanenti alla forzatuta ^ giorni rimanenti avviso utente ^ giorni rimanenti disabilitazione ^ giorni trascorsi dalla disabilitaz. ^ - ^ /etc/gshadow nome-gruppo:passwordcriptata:: passwd/group sono accessibili a tutti shadow/gshadow accessibili solo da root --------------------------------------------------------------------- vipw edita il file passwd vigr edita il file group vipw -s edita il file shadow passwd resetta password chage vedere e cambiare le impostazioni sulla durata della password gpasswd amministrazione del gruppo multiuso groupadd, groupdel, groupmod = aggiungere/cancellare/modificare gruppi in /etc/group useradd, userdel, usermod = aggiungere/cancellare/modificare utenti in /etc/passwd pwconv, grpconv = convertire i file passwd e group nella "nuova forma" di password oscurate --------------------------------------------------------------------- tipi di file ------------- - file regolare d directory l link simbolico c file per periferica a caratteri b file per periferica a blocchi p file che indica comunicazione unidirezionale = pipe = fifo s file che indica comunicazione bidirezionale = socket ----------------------------------------------------------------------------------- dpkg/apt-get rpm ----------------------------------------------------------------------------------- installazione dpkg -i (apt-get install) rpm -i / -U rimozione dpkg --purge (apt-get remove) rpm -e dpkg -r interroga per ricerca pacchetto rpm -q ricerca file nei pacchetti dpkg -S ... rpm -qf /path-file lista pacchetti installati dpkg -l rpm -qa lista file di un pacchetto dpkg -L nomepacchetto rpm -ql pacchetto status pacchetto dpkg -s nomepacchetto rpm -qi pacchetto pacchetti disponibili dpkg --print-avail ... verifica stato rpm -V verifica firma rpm -k verbose rpm -v stampa barra di progresso rpm -h verifica firma GPG rpm --checksig lista dipendenze rpm -qR rpm --nodeps rpm --force stampa informazioni dpkg -p " " su .deb dpkg -I " contenuto di .deb dpkg -c cancella arc. pacc. scaric. apt-get clean aggiorna lista pacchetti apt-get update aggiorna pacc. installati apt-get upgrade aggiorna distribuzione apt-get dist-upgrade cancella pacc. vecchie ver. apt-get autpclean ------------------------------------------------------------------------------------ dselect alien -i installa alien -r converte in rpm alien -t converte in tar.gz ------------------------------------------------------------------------------------ PS1=[\u@\h \w]\$ o \# (Prompt String) PS2=> prompt seconda linea comando+opzioni+argomento+invio sotituzione in BASH= $(command) o `command` echo $@ tutti gli argomenti passati echo $0 il comando echo $1, $2 ecc i parametri passati echo $* tutti i parametri passati echo $$ stampa il PID della shell echo $# numero parametri echo $? stampa l'exit status dell'ultimo comando echo $- stampa le opzioni impostate echo !# stampa il comando eseguito echo $SHELL stampa la shell attuale cd - va nella directory precedente man -k <..> cerca nelle pagine man ------------------------------------------ tipo history examples ------------------------------------------ expansion !! !n ^string1^string2 editing Ctrl-P, previus line = !! Ctrl-N, next line Ctrl-K, kill fino alla fine Ctrl-Y, past (yank) text Ctrl-U, cancella intera riga Ctrl-B, sposta a sinistra Ctrl-F, sposta a destra Ctrl-A, va a inizio riga Ctrl-E, va a fine riga Ctrl-W, cancella parola preced. ----------------------------------------- ------------------------------------------------------------------------------------------ cut lista expand/unexpand lista x tab fmt uniforma head/tail testa o coda join accoppia nl numera le righe od dump paste mischia pr formatta per stampa sort ordina split divide tail stampa ultime righe cat/tac lista uniq controlla righe unicita' righe wc conta caratteri, parole, righe xargs costruisce e esegue delle righe di comando da stdin ------------------------------------------------------------------------------------------- * qualsiasi, quanti siano . directory corrente, delimitatorefile, nome host ! negazione, cronologia comandi | pipe di comando / delimitatore dir., comando di ricerca \ lettere, macro $ variabile, fine riga ' stringhe letterali ` sostituzione comando " stringhe semi-letterali ^ negazione, inizio riga ~ negazione, abbr. directory # commento, preprocessore, sostituzioni _ sostituto spazio ? solo un carattere, qualsiasi [caratteri] ogniuno nella lista [!caratteri] tranne quelli della lista [a-z] tutta la sequenza da a alla z [!a-z] escluso i caratteri della sequenza {fram1,fram2} espande per gli elementi ---------------------------------------------------- invia stdout file cmd > file cmd 1> file invia stderr file cmd 2> file ivia stdout e stderr a file cmd > file 2>&1 stdout a file1 stderr file2 cmd > file1 2> file2 riceve stdin da file cmd < file append stdout a file cmd >> file cmd 1>> file append stderr a file cmd 2>> file append stdout stderr a file cmd >> file 2>&1 pipe cmd 1 a cmd2 cmd1 | cmd2 pipe stdout stderr a cmd2 cmd1 2>&1 | cmd2 ----------------------------------------------------- tee incanala stdin in file + stdout cp copia mkdir crea dir mv move/rename rm remove rmdir " not empty touch change acc./mod. time ----------------------------- ps snapshot dei processi PID TTY STAT (S=sospeso, R=running, D=uninterruptible, T=stopped, W=paging, X=dead, Z=defunct TIME COMMAND pstree " " " a vista albero ps aux --forest simile a pstree top processi in tempo reale ----------------------------------------------------------- kill ---- segnali ai processi -------------------------------------- HUP 1 butta giu' e riparte INT 2 stop, control-C (stesso effetto sigTERM) KILL 9 stop indondizionato TERM 15 termina in modo corretto TSTP 20 stop all'esecuzione, in attesa di continuare, control-Z CONT 18 continua l'esecuzione stoppata ------------------------------------------------------------ bg background (si riattiva solo se non ha bisogno di stdout o stdin) fg foreground jobs list active job nice -n n=valore tra -20 e 19 default 10 renice numero " ------------------------------------------------------------------------ crontab minuto, ora, giornomese, mese, giornosettimana, comando i file del crontab sono in /var/spool/cron crontab -e per editare tali file ------------------------------------------------------------------------ regex ^ all'inizio della riga $ alla fine della riga \< all'inizio della parola \> alla fine della parola [abc] ogni singolo carattere uguale a ... [a-z] ogni carattere da a alla z [^abc] inverso [abc] [^a-z] inverso [a-z] * un qualsiasi numero del singolo carattere che lo precede \? zero o un'istanza della precedente regex \+ una o piu istanze delle regex preced. \{n,m\} range di occorrenze che lo precedono. da n a m volte \| alterna o la regex precedente o segue la barra verticale \(regex\) raggruppamento n volte ---------------------------------------------------------------- VI / vim ---------------- esc exit insert mode ---> command mode h sinistra j giu' k su l destra H top G bottom w una parola avanti b una parola indietro 0 inizio riga ^ sposta al primo carattere nonspazio della riga $ fine riga ctrl-B pagina su ctrl-F pagina giu' i insert carattere I inserimento all'inizio di riga a append dopo il cursore A append alla fine della riga o nuova linea giu' O nuova linea su' x delete prossimi carattere X delete precedente carattere r sostituisce carattere R sostituisce s cancella carattere e va in insert mode S cancella la riga attuale e va in insert mode dX dd cut intera riga corrente D cut dal cursore a fine riga cX cc cut linea C cut dal cursore a fine riga yX yy o Y copia la riga p paste dopo P paste prima . ripete ultimo comando u undo /regex ricerca avanti della parola ?regex ricerca indietro della parola n find next N find prev :n next file :efile load file :rfile inserisce file :q quit :wfile scrive il buffer in file :wq write e quit ZZ write e quit :!command esegue il comando in subshell ----------------------------------------------- IDE: hda, hdb, hdc, ... SCSI: sda, sdb, sdc, ... primary da 1-4 extendedo 1, o 2, o 3, o 4 logical da 5-16 ----------------------------------------------- /boot 100mb / 500mb /usr 4GB /var 2GB /opt 1GB /tmp 500mb swap 1GB /home 60GB ---------------------------------------------------------------------- du -cs /home/* | sort -nr ordina per dimensione spazio occupato fdisk mkfs mkswap swapon swapoff df du tune2fs fsck --------------------------------------------------------------------------------------- fstab device / mount.point / filesystem.type / mount.point / dump.freq / pass.number mount umount opzioni: noatime=disattiva la registrazione delle informazioni sull'a(ccess)time (orario dell'ultimo accesso) sul disco user=permette il montaggio del determinato filesystem da parte di ogni utente -------------------------------------------------------------------------------------- tipi quota: per-user hard, per-user soft, per group hard, per group soft, grace periodo(tra il soft e l'hard) quota display quotaon attiva quota quotaoff disattiva quota quotacheck controlla valori edquota edita valori in fstab /usr/users /mnt/hdxx xfs usrquota,grpquota,noauto 0 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- SUID per eseguibili, il processo appartiene al proprietario del file e non a chi lo lancia SGID per eseguibili, il gruppo del processo appartiene al gruppo del file SGID per directory, i nuovi file della cartella appartengono al gruppo della directory sticky per eseguibili, il programma viene mantenuto in memoria sticky per cartelle, comandi rm e mv solo per il proprietario della directory/file e root ----------------------------------------------------------------------------------------- chmod modalita' classi utenti u user g gruppo o altro a tutto operazione - toglie il permesso + aggiunge il permesso = imposta esattamente permessi r read (per directory: possibile avere una lista dei contenuti della cartella stessa) w write (per directory: si possono creare file nella cartella) x execute (per directory: indica la possibilitą di entrare nella cartella e accedere ogni sotto cartella al suo interno) X " per directory s SUID (4) s SGID (2) t sticky bit (1) 000-111-101-000 ||| | | |___> altri ||| | |_______> gruppo ||| |___________> utente |||______________> sticky (mantxieneva il programma in memoria) (x dir=solo proprietari possono cancellarlo) ||_______________> SGID (esegue prog. come gruppo a cui appartiene) (x dir= i file creati hanno prorpietario quello della dir) |________________> SUID (esegue prog. come utente a cui appartiene) (x dir= i file creati hanno proprietario quello della dir) | | | | | |__> stichy (t) o (T) se c'e' 1 o 0 | |______> SGID (s) o (S) se c'e' 1 o 0 |__________> SUID (s) o (S) se c'e' 1 o 0 ----------------------------------------------- chown cambio proprietario chgrp cambio gruppo umask permessi per i file nuovi (=cosa disabilitare) (x sempre) complemento a 666 ln link hard ln -s link simbolico cp -p preserva i link ----------------------------------------------- chattr attributi estesi A non aggiorna data ultimo-accesso a solo append c attiva copressione e decompressione D scrittura su disco sincrona d esclude per backup E errore nella compressione I dir. indicizzata con gli hash-tree i non modificabile j modifiche scritte sul journaling s se cancellato, sicuro S non utilizza cache u attiva per il recupero dopo la cancellazione X accesso diretto al file compresso Z file compresso in stato inconsistente (dirty) lsattr ----------------------------------------------- FHS tipi di dati sharable non-sharable statici /usr /etc /usr/local /boot - - - - - - - - - - - - - - - - - - -- - - - - variabili /var/mail /var/log /home /proc ---------------------------------------------------------------------------- cercare file/comandi - - - - - - - - - - which keyword cerca il programma nel path find path express cerca find /usr/share/doc -name README\* (cerca README*) find /usr/bin -name '*vim*' -type l (solo link) find . -name \? -mtime -1 (file creati nelle 24ore) find . -name \? -daystart -mtime +0 -mtime -3 find /usr/bin -type f -size -50c (c=byte, k) find /usr/bin -type f -size -50c -exec ls -l '{}' ';' (processa file trovati) locate keyword cerca il file o parte nel database (slocate x sicurezza) updatedb aggiorna il database whatis keyword descrive il comando (database costruito da makewhatis) apropos keyword cerca nelle descrizioni dei comandi type keyword indica il comando e la sua locazione / se e' builtin file keyword dice il tipo di file (secondo /usr/share/misc/file/magic) whereis keyword trova il programma e la pagina man stat nomefile tutti i dati legati al file ---------------------------------------------------------------------------- Xfonts /etc/X11/fs/config .Xresources control conf. ---------------------------------------------------------------------------- /bin comandi eseguibili di sistema /dev file di dispositivo /etc informazioni di configurazione /lib librerie condivise e moduli del kernel /mnt per il montaggio /root home per root /sbin utilita' per l'aministratore di sistema /boot file per il bootloader /home home degli utenti /opt per software di terze parti /tmp per file temporanei - possono non sopravvivere al riavvio /usr programmi eseguibili (non essenziali) usato in NFS ./X11R6 file di X ./bin user comand non essenziali ./include include & header per il C/C++ ./lib librerie condivise es. perl ./local sotto albero di eseguibili per amministrazione o documentaz. ./sbin comandi di amministrazione del sistema (non essenziali) ./share dati indipendenti dall'architettura ./src kernel source, altri sorgenti e kernel header /var log, mail, spool ./acount conti di processo ./cache imagazzinamento temporaneo di dati intermedi ./crash tiene i dump crash ./games ./lock lock file - no dati ./log log di sistema, ./mail mailbox di sistema, mailbox degli utenti ./opt file temporanei dei programmi di /opt ./run file descrittivi dello stato del sistema es.PID ./spool code di processo di dati ./state informazioni per applicazioni multiple-instanza ./tmp file temporanei che sopravvivono al riavvio ./yp NetworkInformationService NIS database ------------------------------------------------------------------------------ grep -v ^# $1 lista senza commenti sed '/ *#/d; /^$/d' example.txt lista senza commenti e righe vuote ls -l | grep ^d lista dir ls -d */ lista dir df -i /dev/hda lista situaz. inode inode contiene: proprietario, tipo, diritti accesso, data, n. link al file, indirizzi blocchi, dimensione --------------------------------------------------------------- startx -- :1 avvia secondo display Xorg X -configure, xorgcfg, xorg86config remote host host:display.screen (192.168.1.2:1.0) xvidtune check X xdpyinfo display information utility for X xrandr X Resize, Rotate and Reflection extension xset user preference utility for X xev print contents of X events xhost programma di controllo degli accessi al server X ---------------------------------------------------------------- for i in $( ls ); do; du -s $i; done lista dir/file e spazio occupato cpio -id --no-absolute-filenames < kernel26.img estrae da file cpio ls -s | sort -n elenca file sortati per dimensione sed stream editor who chi e' nel sistema w cosa fa chi e' nel sistema id gruppi groups gruppi tty visualizza su che tty si e' kcmshell privacy gestione cache kde nohup per gestione remota, stacca dalla shell find . -type f -exec grep -l " .. " {} \; cat mio_file.txt | sort | uniq | wc -l mount /mnt -o remount,rw rimonta in lettura-scrittura ------------------------------------------------------------------------------ avvio shell login -->/etc/profile-->/etc/bashrc--> ~/.bash_profile--> ~/.bashrc all'uscita ~/.bash_logout - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - interattiva login profile rc - - - - - - - - - - - - - - - - - - - - -- - - - - si si usato ignorato si no ignorato usato no si usato ignorato no no ignorato ignorato - - - - - - - - - - -- - - - - - - - - - - - - - - - /etc/profile profili letti da tutti /etc/skel profili generici per nuovi utenti set imposta la variabile o le visualizza tutte export esporta la variabile o le visualizza solo quelle esportate env esporta solo per la sessione corrente variabile PAGER indica come mostrare le pagine man (less o ....) --------------------------------------------------------------------------- runlevel -------- 0: Arresta il computer 1 o s: Modalitą singolo utente 2: Multi-utente, nessun servizio di rete 3: Multi-utente, console di testo 4: Multi-utente, console grafica 5: lo stesso di 4 6: Riavvia il computer. - - - - - - - - - - - - - - - - - - - - - - shutdown 5 in 5 minuti passa a runlevel 1 shutdown -r now riavvio adesso shutdown -h 1 halt in 1 minuto n.b. passare al bootloader "init=/bin/sh" per recuperare un sistema ------------------------------------------------------------------------------- klogd serve a ricevere informazioni e messaggi di errore dal kernel e quindi passarli a syslogd per la categorizzazione e registrazione. ------------------------------------------------------------------------------- dpkg-reconfigure -plow xserver-xorg riconfigura xorg update-alternatives --config X-cursor theme --------------------------------------------------------- escaping bash ------------- \n significa a capo \r significa invio \t significa tabulazione \v significa tabulazione verticale \b significa ritorno (backspace) \a "significa allerta" (segnale acustico o accensione di un led) \0xx trasforma in carattere ASCII il valore ottale 0xx \" mantiene il significato letterale dei doppi apici \$ mantiene il significato letterale del segno del dollaro (la variabile che segue \$ non verrą referenziata) \\ mantiene il significato letterale della barra inversa --------------------------------------------------------------- chsh modifica la shell di login (tra le elencate in /etc/shells)