Promemoria Comandi Linux (csh): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (per gentile concessione di Susanna Pelagatti) 1. Generali: ^^^^^^^^ . directory corrente .. directory padre ~username home dell'utente username ~ home dell'utente corrente Ridirezioni: < ridirige lo standard input > ridirige lo standard output >> appende in fondo a un file >& ridirige stdout e stderr >>& appende stdout e stderr Wildcards: * qualsiasi stringa es: *.c puo' essere espanso con `ff.c g.c prova.c' ? qualsiasi carattere es: ?.c puo' essere espanso con `f.c g.c p.c' [..] qualsiasi carattere dell'insieme es: [fg].c e' espanso con `f.c g.c' Mettere insieme piu' comandi: c1 ; c2 esecuzione in sequenza c1 | c2 esecuzione in pipe (l'stdoput di c1 viene inviato sullo stdin di c2) c1 |& c2 pipe che ridirige anche lo standard error 2. Comandi: ^^^^^^^^^^ Per ogni comando \`e fornita una breve descrizione e (dove ha senso) un esempio di uso e le opzioni piu' comuni: 2.1 Miscellanea: ^^^^^^^^^^^^^^^ date fornisce la data corrente ------------------------------------------------------ % date Tue Sep 21 12:01:05 CEST 1999 ------------------------------------------------------ clear pulisce la finestra man XX permette di accedere alle pagine di manuale in linea per il comando XX ------------------------------------------------------ % man man man(1) man(1) NAME man - format and display the on-line manual pages manpath - determine user's search path for man pages SYNOPSIS man [-acdfFhkKtwW] [-m system] [-p string] [-C con- fig_file] [-M path] [-P pager] [-S section_list] [section] name ... ... ... ------------------------------------------------------ yppasswd cambia la password (seguite le richieste interattive, la nuova password e' operativa dal giorno successivo al cambio) pwd stampa il nome della Working Directory corrente (relativo) usare gli apici per il path name assoluto ------------------------------------------------------ % pwd ~/ESERCITAZIONI % 'pwd' /.automount/homeserver/local/disc2/home/s/susanna/ESERCITAZIONI ------------------------------------------------------ cd XX cambia la Working Directory corrente con XX ------------------------------------------------------ % cd .. % pwd ~ % cd ESERCITAZIONI % pwd ~/ESERCITAZIONI ------------------------------------------------------ ls XX lista il contenuto di una certa directory XX o il file XX ------------------------------------------------------ % ls Canceled.mail HTTPlocation TMP-ESE/ jkjk ESERCITAZIONI/ OLD-Lab/ a.out* ese.tar ------------------------------------------------------ Le directory sono indicate con un barra (/) finale e gli eseguibili con un asterisco (*) ls da solo lista la dir corrente ls -l lista anche gli attributi dei file ------------------------------------------------------ % ls -l ESERCITAZIONI Canceled.mail a.out -rw------- 1 susanna docenti 3128 Oct 1 1997 Canceled.mail -rwxr-xr-x 1 susanna docenti 13955 Nov 3 1998 a.out* ESERCITAZIONI: total 16 -rw-r--r-- 1 susanna docenti 693 Oct 22 1998 ese13-10.c -rw-r--r-- 1 susanna docenti 1238 Oct 22 1998 ese22-10sizeof.c -rw-r--r-- 1 susanna docenti 724 Oct 22 1998 eseD13-10.c -rw-r--r-- 1 susanna docenti 4754 Oct 22 1998 esebit15-10.c -rw-r--r-- 1 susanna docenti 465 Oct 26 1998 min_maiu22-10.c -rw-r--r-- 1 susanna docenti 831 Oct 26 1998 poly22-10.c -rw-r--r-- 1 susanna docenti 3073 Oct 29 1998 sol27-10.c -rw-r--r-- 1 susanna docenti 357 Oct 26 1998 stampa_ascii22-10.c ------------------------------------------------------ ls -d lista le informazione relative alla directory indicata ------------------------------------------------------ % ls -ld ESERCITAZIONI drwxr-xr-x 2 susanna docenti 512 Nov 5 1998 ESERCITAZIONI/ ------------------------------------------------------ ls -a lista anche i file il cui nome comincia per punto (.) more mostrano il contenuto di un file di caratteri less (barra per avanzare, q per uscire) ----------------------------------------------------- % more HTTPlocation http://www.di.unipi.it/~susanna/Li3a/li3a.html http://www.di.unipi.it/~susanna/Li3a/ese.html ----------------------------------------------------- file XX da il tipo del file XX ----------------------------------------------------- % file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped % file Canceled.mail Canceled.mail: mail text ----------------------------------------------------- stty permette di listare i Metacaratteri (--all) e cambiare i setting del terminale ----------------------------------------------------- % stty --all speed 38400 baud; rows 45; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke ----------------------------------------------------- Alcuni metacaratteri (CONTROL = ^) ^D end of file ^C abortisce l'esecuzione del comando in corso ^H cancella un carattere ^S blocca l'uscita del video ^Q sblocca l'uscita del video ^Z mette un processo in attesa ------------------------------------- % man man .... ^C (per interrompere il man man) ---------------------------------- cat x y .... concatena il contenuto dei file x, y etc e lo invia sullo standard output cat mostra lo standard input sullo standard output cat > nomefile permette di creare velocemente file di testo. (in questo caso usare ^D per segnalare la fine del testo (End Of File)) ------------------------------------- % cat > tt hkjhkhal kshlhlhla ^D % ls tt 1 tt % more tt hkjhkhal kshlhlhla % ------------------------------------------- sort ordina lessicograficamente le linee sullo standard input e le invia sullo standard output ------------------------------------------- % sort g f e ^D <-- fine stdin e f g % ------------------------------------------- 2.2 Creazione/Distruzione/Copia di file e directory ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ La CREAZIONE dei file di testo avviene con un editore (emacs) o utilizzando il comando cat. La CREAZIONE di derectory avviene con il comando mkdir. mkdir XX crea la directory di nome XX ------------------------------------------------------ % mkdir MAN % ls -ld MAN drwxr-xr-x 2 susanna docenti 512 Sep 21 13:55 MAN/ ------------------------------------------------------- cp serve per COPIARE file/directory cp source dest copia il file o la directory source in dest cp file1 ... fileN dir copia file1 ... fileN nella directory dir cp -r dir1 dir2 copia ricorsivamente tutto il sottoalbero radicato in dir1 in dir2 rm/rmdir servono a CANCELLARE (rimuovere) file o directory rmdir nomedir rimuove una directory (vuota) rm [-i] f1 .. fN rimuove i file f1 ... fN l'opzione -i serve per chiedere conferma ed e' automaticamente settata nel vostro ambiente invocando rm f1 ... fN rm -r file/directory rimuove un file o (una directory insieme a tutto il suo contenuto) PERICOLOSO mv source dest sposta source in dest e rimuove source serve per SPOSTARE/RIDENOMINARE file/directory mv dir1 dir2 sposta dir1 nella directory dir2 (se dir2 esiste) oppure ridenomina dir1 con il nome dir2 (se dir2 non esiste) mv file1 ... fileN dir sposta file1 ... fileN in dir 2.3 Cambio diritti ^^^^^^^^^^^^^^^^^^ chmod [-R] mode file1 ... fileN dir1 ... dirK cambia i diritti di file1 ... fileN dir1 ... dirK come specificato da mode [-R] se specificato scende ricorsivamente le directory cambiando i diritti a tutti i file del sottoalbero mode specifica i nuovi diritti in simbolico [u g o a][+ - =][r w x] es: ugo-r g+w o 3 cifre ottale es: 777 622 744 --------------------------------------------------------------------- % ls -l Canceled.mail -rw------- 1 susanna docenti 3128 Oct 1 1997 Canceled.mail % chmod ugo+r Canceled.mail % ls -l Canceled.mail -rw-r--r-- 1 susanna docenti 3128 Oct 1 1997 Canceled.mail % chmod 755 Canceled.mail % ls -l Canceled.mail -rwxr-xr-x 1 susanna docenti 3128 Oct 1 1997 Canceled.mail* --------------------------------------------------------------------- 2.4 Aliasing ^^^^^^^^^^^^ Lista delle ridenominazioni predefinite (alias) in ~/.aliases alias nome mostra l'alias per nome --------------------------------------------------------------------- % alias rm rm -i ------------------------------------------------------------------- alias nome definizione permette di creare nuovi alias ------------------------------------------------------------------- % alias pippo 'rm -i' % alias pippo rm -i ------------------------------------------------------------------- unalias nome permette di eliminare ridenominazioni ------------------------------------------------------------------- % unalias pippo % pippo pippo: Command not found. ------------------------------------------------------------------- 2.5 Processi ^^^^^^^^^^^^ & esecuzione in background sleep n_sec non fa niente per n_sec --------------------------------------------- % sleep 40 & % ----------------------------------------------- ho attivato un processo in background che non fa niente per 40 secondi ps mostra i processi in esecuzione -------------------------------------------- % ps PID TTY TIME CMD 1157 pts/0 00:00:00 csh 1328 pts/0 00:00:00 sleep 1329 pts/0 00:00:00 ps -------------------------------------------- ps -l fornisce informazioni dettagliate su ogni processo --------------------------------------------------------------------- % ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 100 S 16325 1157 1156 0 67 0 - 563 rt_sig pts/0 00:00:00 csh 000 S 16325 1328 1157 0 64 0 - 262 nanosl pts/0 00:00:00 sleep 000 R 16325 1330 1157 0 70 0 - 669 - pts/0 00:00:00 ps --------------------------------------------------------------------- La colonna S specifica lo stato: R: running, in esecuzione al momento o in attesa del processore S: sleeping, in attesa di un evento, ad esempio un carattere dalla tastiera T: stopped, congelato, in attesa di essere riattivato N: nice, processo running con priorita' bassa Z: zombie, processo morto ma in attesa di comunicare il suo codice di errore al padre jobs fornisce i job attivati dalla shell corrente ---------------------------------------------------- % jobs [1] + Running sleep 40 % ---------------------------------------------------- kill [opt] pid kill [opt] %N_job UCCIDE il processo con process identifier PID e con numero di job N_job ---------------------------------------------------- % ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 100 S 16325 1157 1156 0 67 0 - 564 rt_sig pts/0 00:00:00 csh 000 S 16325 1334 1157 0 62 0 - 262 nanosl pts/0 00:00:00 sleep 000 R 16325 1336 1157 0 70 0 - 669 - pts/0 00:00:00 ps % kill %2 [2] Terminated sleep 40 % ps PID TTY TIME CMD 1157 pts/0 00:00:00 csh 1337 pts/0 00:00:00 ps % ---------------------------------------------------- le opzioni indicano il tipo di segnale inviato per la terminazione, il piu' letale e' -KILL (es: kill -KILL 1157) ^C ammazza i processi che girano in foreground ^Z mette in stato di stopped (T) un processo in foreground bg [%N_job] riprende l'esecuzione in background fg [%N_job] riprende l'esecuzione in background 2.6 History ^^^^^^^^^^^ history k lista gli ultimi k comandi eseguiti ------------------------------- % history 4 111 14:42 ps -l 112 14:42 fg 113 14:46 sort 114 14:52 history 4 % ------------------------------- !! ripete l'ultimo comando eseguito !so ripete l'ultimo comando seguito che inizi per `so' !113 ripete il comando numero 113 (sort) -------------------------------- % !! history 4 112 14:42 fg 113 14:46 sort 114 14:52 history 4 115 14:54 history 4 % ------------------------------------ ------------------------------------------------------ - Emacs + JDE + comandi base + comandi per Java ----------------------------------------------------------------- Promemoria comandi Emacs ^^^^^^^^^^^^^^^^^^^^^^^^ Generali: --------- CONTROL C-x comando ESC M x meta-comando C-g abortire comandi C-x 1 chiudere tutte le fin eccetto quella del cursore C-h t apre il tutorial C-x C-c esce da emacs C-a sposta il cursore all'inizio della riga C-e sposta alla fine della riga M > sposta il cursore alla fine del file M < sposta il cursore all'inizio del file C-k cancella dal cursore alla fine della linea C-y incolla(paste) l'ultima cancellazione Marche: C-@ marca inizio regione cursore marca fine regione C-x C-x controlla i margini della regione C-w cancella la regione marcata M w copia la regione marcata Undo di comandi: --------------- C-x u elimina gli effetti dell'ultimo comando inviato (undo) C-_ Search & Replace: ----------------- C-s inizia l'Isearch (incremental search) M (ESC) esce da Isearch C-r inizia l'Isearch all'indietro M x nomefun valuta funzioni piu' complesse Barra TAB per completare i nomi delle funzioni da eseguire replace-string : search & replace di una stringa query-replace : search & replace con stringa (chiede conferma) C-h help in linea Salvare/caricare/ridenominare file: ---------------------------------- C-x C-f aprire un file (vecchio o nuovo) C-x C-w ridenomina un file C-x i carica un file (nella posizione in cui si trova il cursore) C-x C-c uscire da emacs salvando i file C-x C-s salva il file senza uscire C-x b passa da un buffer (file aperto) all'altro C-x C-b lista i buffer C-x k kill buffer Gestione finestre: ----------------- C-x 2 split della finestra corrente in due finestre C-x o passa il cursore da una finestra all'altra Attivare una shell: ------------------ M x shell exit Comandi utili per editare programmi C (e non solo): ------------------------------------------------- M x c-mode (automatico se aprite un file con il suffisso .c) indenta automaticamente il codice C nel modo giusto rileva alcuni errori di sintassi M x line-number-mode setta numero di linea (utile per capire dove si trovano gli errori segnalati) M x goto-line permette di posizionare il cursore ad una particolare linea Utili ne caso di uso da terminale alfanumerico: ---------------------------------------------- ^Z blocca il processo emacs fg lo rimanda in esecuzione in foreground... -----------------------------------------------------------------------