Benvenuto Visitatore ( Log In | Registrati )
![]() ![]() |
23 Aug 2007, 13:56
Messaggio
#1
|
|
|
Ciao,
la maggior parte degli utenti usa OSX senza mai sentire la necessità del terminale. Questo capitolo serve proprio per illustrare i seguenti aspetti: - cos'è il terminale?e perchè è utile conoscere come muoversi in questo ambiente? - quali sono i comandi principali per usare il terminale? - descrizione dei comandi per muoere file, cancellare file, svuotare il cestino in modo sicuro eliminare file in modo che questi non siano recuperati in nessun modo - ricerche da terminale - uso di editor di teso da terminale. Queste le domande principali per consentire ad un utente abituato a lavorare solo mediante interfaccia grafica di scoprire il potere del terminale. SoHo -------------------- Stefano Dindo
|
|
|
|
|
|
|
|
25 Aug 2007, 17:18
Messaggio
#2
|
|
|
Visto che anche questo Thread è ancora vergine mi gioco altre 2-3 cartucce, premettendo che la mia conoscenza del terminale rasenta lo ZERO.
- cosa vuol dire sudo dal terminale? superuser do - come accedo alle directory spaziate da terminale? si accede mettendo il nome tra apici " " - come faccio da finder o da terminale a ottenere le info sulla dimensione della home di un altro utente a cui io non ho accesso? senza cambiare i permessi. Direi facendo il login da root, digitando la cartella che ti interessa e poi: da terminale du -ksh e poi per le dimensioni delle singole sottocartelle di livello n-1: du -ksh * Ciao! Pietro -------------------- Pietro "Mec" DB
Tu sei forte. Sarai conosciuto come Usul che significa “forte come la base del pilastro”. |
|
|
|
|
25 Aug 2007, 17:46
Messaggio
#3
|
|
|
Primi due passi per usare il Terminale di MacOsX:
1) leggere la voce Shell in Wikipedia 2) leggere la pagina di aiuto del Terminale Dalla finestra del Terminale si possono lanciare i proprammi presenti nel computer. In MacOsX il terminale è l'esatto equivalente di xterm in X11 di Unix. I cosiddetti comandi del terminale sono programmi presenti in particolari locazioni del computer, già note al Terminale, che quindi è in grado di lanciarli senza che l'utente scriva il nome completo. ls è il comando per vedere il contenuto di una directory, ma in realtà è il programma contenuto nel file /bin/ls. Per eseguirlo basta scrivere ls perché il Terminale sa dove cercarlo. L'elenco delle directory nelle quali il Terminale cerca i programmi eseguibili è contenuto nella variabile di sistema PATH. Per vedere il contenuto di PATH si esegua il comando: echo $PATH ... -------------------- Non ci sono più le mezze stagioni! O no?
|
|
|
|
|
25 Aug 2007, 18:01
Messaggio
#4
|
|
|
Visto che anche questo Thread è ancora vergine mi gioco altre 2-3 cartucce, premettendo che la mia conoscenza del terminale rasenta lo ZERO. - cosa vuol dire sudo dal terminale? superuser do - come accedo alle directory spaziate da terminale? si accede mettendo il nome tra apici " " - come faccio da finder o da terminale a ottenere le info sulla dimensione della home di un altro utente a cui io non ho accesso? senza cambiare i permessi. Direi facendo il login da root, digitando la cartella che ti interessa e poi: da terminale du -ksh e poi per le dimensioni delle singole sottocartelle di livello n-1: du -ksh * Ciao! Pietro Molto buona questa tua intraprendenza e voglia di contribuire ! Contiua così! Io aggiungo visto il poco tempo a mia disposizione in questi giorni i comandi essenziali per muovere i primi passi con il terminale: nei sistemi unix il logo di lavoro in cui ci si trova viene detto current working directory... Per sapere dove ci si trova in un determinato momento si usa il comando pwd pwd = print working directory e quando si lancia mostra il percorso dalla home directory a quella di lavoro. Mentre quando si ha intenzione di cambiare la propria directory di lavoro si usa il comando cd che sta per change directory la sintassi del comando è cd nome_directory in alcuni casi l'argomento del comando cd può essere anche un percorso. Per esempio cd /Desktop/pippo/pluto Se si lancia il comando senza nessun operando questo rimanda alla nostra home directory. Se invece si lancia il seguente comando cd .. si chiede alla shell di scalare di un livello nella gerarchia delle directory, in altre parole se ci troviamo nella nel seguente path /Pippo/pluto dopo il comando cd .. ci troveremo in /Pippo Il comando ls sta per list. lanciando questo comando apparirà a terminale il contenuto della direcory di lavoro in cui ci si trova. Più utile e maggiormente utilizzato è il comando ls -l con questo flag aggiuntivo otterremo il contenuto della directory con maggiori informazioni quali 1) tipo di documento e autorizzazioni 2) numero di alias materiali o numero di blocchi per una cartella 3) Proprietario 4) Gruppo 5) Dimensione 6) data e ora ultima modifica 7) nome del documento quindi il risultato del comando ls -l potrebbe essere il seguente: drwxr-x-r-x 23 rossi rossi 1134 Aug 25 17:59 Immagini -rw-r--w-x 3 rossi guest 65536 Luglio 24 18:38 Ricordo.jpg Ciaoz SoHo -------------------- Stefano Dindo
|
|
|
|
|
25 Aug 2007, 18:05
Messaggio
#5
|
|
|
Direi facendo il login da root, ... In tutti i sistemi Unix è da evitarsi il login come root, tranne pochissimi casi di assoluta necessità. In MacOsX root è disabilitato di default (o almeno lo era, spero che sia ancora così). Per eseguire comandi che richiedono i poteri di root è meglio usare sudo. -------------------- Non ci sono più le mezze stagioni! O no?
|
|
|
|
|
25 Aug 2007, 20:43
Messaggio
#6
|
|
|
- come accedo alle directory spaziate da terminale? si accede mettendo il nome tra apici " " Lo spazio ha un significato speciale nel terminale, serve per separare i comandi e i parametri. Per questo motivo se lo spazio non deve avere il suo significato speciale occorre trattarlo in qualche modo. Ci sono 3 possibilità:
I cosiddetti comandi del terminale sono programmi presenti in particolari locazioni del computer, già note al Terminale, che quindi è in grado di lanciarli senza che l'utente scriva il nome completo. Non tutti i comandi però sono dei programmi. Alcuni sono dei comandi specifici della shell che si sta usando. Ad esempio i citati echo e pwd sono dei comandi di bash (anche se hanno anche un equivalente come programmi).In MacOsX root è disabilitato di default (o almeno lo era, spero che sia ancora così). È ancora così.Però è disabilitato il login come root ma non il suo uso. Con il comando sudo su si diventa root a tutti gli effetti. Ciao Paolo -------------------- |
|
|
|
|
26 Aug 2007, 16:21
Messaggio
#7
|
|
|
il comando cp sta per copy e ha la funzone di copiare un file nella cartella di lavoro in una destinazione passata come argomento. Per esempio
$ cp prova.txt Desktop dopo aver dato l'invio il comando copia il file prova.txt nella Scrivania. il comando mv sta per move e ha la funzione di spostare un documento dalla cartella di lavoro alla directory di destinazione passata come argomento. Per esempio $ mv prova.txt Desktop dopo aver dato l'invio sposta il file prova.txt nel Desktop il comando rm sta per remove e ha la funzione di rimuovere un documento dalla cartella di lavoro. Pere esempio $ rm prova.txt cancella dalla directory di lavoro il file prova.txt I comandi mkdir e rmdir servono per creare ed eliminare una directory. $ mkdir prova crea la cartella prova nella directory di lavoro $ rmdir prova elimina la cartella prova nella directory di lavoro. SoHo -------------------- Stefano Dindo
|
|
|
|
|
26 Aug 2007, 16:39
Messaggio
#8
|
|
|
il comando mv sta per move e ha la funzione di spostare un documento dalla cartella di lavoro alla directory di destinazione passata come argomento. Per esempio mv è usato anche per rinominare i file: $ mv prova.txt Desktop dopo aver dato l'invio sposta il file prova.txt nel Desktop CODICE mv prova.txt pippo.txt rinomina il file prova.txt in pippo.txtil comando rm sta per remove e ha la funzione di rimuovere un documento dalla cartella di lavoro. Pere esempio Attenzione che il comando non chiede alcuna conferma. Chi è alle prime armi farebbe bene ad aggiungere l'opzione -i che chiede conferma per ogni file da cancellare. $ rm prova.txt cancella dalla directory di lavoro il file prova.txt CODICE $ rm -i prova.txt remove prova.txt? y $ I comandi mkdir e rmdir servono per creare ed eliminare una directory. rmdir cancella le cartelle solo se sono completamente vuote.$ mkdir prova crea la cartella prova nella directory di lavoro $ rmdir prova elimina la cartella prova nella directory di lavoro. Per cancellare cartelle piene si può usare CODICE rm -R prova Ciao Paolo -------------------- |
|
|
|
|
26 Aug 2007, 18:04
Messaggio
#9
|
|
|
il comando mv sta per move e ha la funzione di spostare un documento dalla cartella di lavoro alla directory di destinazione passata come argomento. Per esempio mv è usato anche per rinominare i file: $ mv prova.txt Desktop dopo aver dato l'invio sposta il file prova.txt nel Desktop CODICE mv prova.txt pippo.txt rinomina il file prova.txt in pippo.txtil comando rm sta per remove e ha la funzione di rimuovere un documento dalla cartella di lavoro. Pere esempio Attenzione che il comando non chiede alcuna conferma. Chi è alle prime armi farebbe bene ad aggiungere l'opzione -i che chiede conferma per ogni file da cancellare. $ rm prova.txt cancella dalla directory di lavoro il file prova.txt CODICE $ rm -i prova.txt remove prova.txt? y $ I comandi mkdir e rmdir servono per creare ed eliminare una directory. rmdir cancella le cartelle solo se sono completamente vuote.$ mkdir prova crea la cartella prova nella directory di lavoro $ rmdir prova elimina la cartella prova nella directory di lavoro. Per cancellare cartelle piene si può usare CODICE rm -R prova Ciao Paolo grazie delle precisazioni SoHo -------------------- Stefano Dindo
|
|
|
|
|
26 Aug 2007, 19:34
Messaggio
#10
|
|
|
Il manuale (dette anche man pages):
serve per avere maggiori dettagli sui vari comandi di unix che si incontrano. Da alcuni post si riesce già a capire che spesso i comandi sono seguiti da diverse opzioni (nomecomando -lettere o numeri che indicano l'opzione). Si è già visto ad es. che il comando ls da solo dice solo quello che è contenuto nella directory attiva, mentre con l'opzione -l ne risultavano maggiori informazioni a forma di listato. Scopo del manuale è dare maggiori ragguagli riguardo l'uso di un determinato comando Il manuale si richiama scrivendo man nomecomando Esempio per il caso visto: man ls l'output risultante sarà: CODE LS(1) BSD General Commands Manual LS(1) NAME ls - list directory contents SYNOPSIS ls [-ABCFGHLPRTWZabcdfghiklmnopqrstuwx1] [file ...] DESCRIPTION For each operand that names a file of a type other than directory, ls displays its name as well as any requested, associated information. For each operand that names a file of type directory, ls displays the names of files contained within that directory, as well as any requested, asso- ciated information. If no operands are given, the contents of the current directory are dis- played. If more than one operand is given, non-directory operands are displayed first; directory and non-directory operands are sorted sepa- rately and in lexicographical order. The following options are available: -snip- Per uscire dalla man page e ritornare al prompt del terminale digitare "q" Purtroppo allo stato attuale le man pages sono solo in inglese, cosa che spesso lo rende inaccessibile a chi non ha dimestichezza con la lingua anglofona. -------------------- |
|
|
|
|
27 Aug 2007, 13:11
Messaggio
#11
|
|
|
è possibile effettuare delle ricerche di documenti anche tramite il terminale mediante l'utilizzo di diversi manuali. I comandi classici sono find, locate, grep.
Find è lo strumento di ricerca classico per tutti coloro che usano un OS unixi like. questo comando è molto potente ma allo stesso tempo abbastanza lento però offre un controllo completo sulla ricerca effettuata. Per esempio $ find / -name prova.txt con questo comando il terminale cercherà a partire dalla radice del disco il documento prova.txt. il flag -name serve per cercare nella pathname dei documento. L'operazione poichè si parte dalla radice del disco sarà molto lunga. Locate è un comando di ricerca molto veloce in quanto è basato su un database statico generato periodicamente dalle operazioni di mantenimento di OSX. Molto comodo per ricercare documenti statici e che non cambiano molto. Il suo punto di forza è la velocità delle ricerche in quanto si basa su un database. Grep permette di effettuare delle ricerche su catene di caratteri presenti in documento Per esempio $ sudo grep prova /Desktop/* in questo caso ho cercato la catena di caratteri "prova" in tutti i documenti presenti nella cartella / Desktop / SoHo -------------------- Stefano Dindo
|
|
|
|
|
29 Aug 2007, 21:17
Messaggio
#12
|
|
|
Io oggi continuerei ancora con qualcosina sulla "navigazione" tra cartelle, sottocartelle e files con il terminale.
Sono cose abbastanza banali e scontate per chi mastica terminale da una vita ma non lo sono per nulla per chi si trova per la prima volta a lanciare una shell ed a trovarsi di fronte delle scritte strane ed un prompt che non aspetta altro che tu gli inserisca qualche comando. Tra i comandi fino ad ora visti, balza all'occhio il comando cd "change directory" Si è visto in particolare che CODICE cd .. fa passare dalla directory attuale alla directory c.d. "madre". Quindi, se ci troviamo in /Users/ikee e diamo il comando cd .. passeremo nella directory /Users . Lo possiamo verificare dando il comando pwd visto prima. Tutto bello però...se io sono ad es nella directory di Safari, come faccio a raggiungere subito la mia cartella Documents che si trova (apparentemente) dall'altra parte del mondo? CODICE [IKEE:~] ikee% [IKEE:/Applications/Safari.app] ikee% cd ~/Documents/ [IKEE:~/Documents] ikee% pwd /Users/ikee/Documents [IKEE:~/Documents] ikee% alternativamente, bastera scrivere CODICE cd e dare il comando enter e ci si troverà automaticamente nella propria "home directory" (nel caso mio /Users/ikee) A questo punto è abbastanza chiaro che dando il comando CODICE cd / ci si troverà nella directory "root"(la madre di tutte le directory) Per evitare di scrivere tutto ogni qualvolta ci si debba spostare da una directory all'altra ci viene in aiuto la "auto completion". In altre parole, se partendo dalla directory home ci si vuole spostare in /Applications/Safari.app basterà scrivere CODICE cd /Applic + tab CODICE /Saf + tab + EnterAttenzione: scrivere CODICE cd Library è diverso dallo scrivere CODICE cd /Library perchè? Scopritelo con il comando CODICE pwd -------------------- |
|
|
|
|
29 Aug 2007, 21:24
Messaggio
#13
|
|
|
Io oggi continuerei ancora con qualcosina sulla "navigazione" tra cartelle, sottocartelle e files con il terminale. ... Interessante, ma proseguendo sulla linea di illustrare i comandi del Terminale si scrive l'ennesimo manuale Unix, del quale credo nessuno senta la mancanza (ne esistono tanti, ed anche buoni). Secondo me va solo spiegato che il Terminale è la porta d'accesso alla shell ed allo Unix che sta sotto l'interfaccia grafica del Mac. -------------------- Non ci sono più le mezze stagioni! O no?
|
|
|
|
|
30 Aug 2007, 08:26
Messaggio
#14
|
|
|
Interessante, ma proseguendo sulla linea di illustrare i comandi del Terminale si scrive l'ennesimo manuale Unix, del quale credo nessuno senta la mancanza (ne esistono tanti, ed anche buoni). Beh, io cercavo di dare il mio contributo (quanto utile o futile questo spetta al lettore, in base alle sue conoscenze, decidere) seguendo l'idea del progetto OSXfeed. Non so se poi l'idea sia quella di creare un manuale o meno. So per certo che quanti più contributi la comunità riesce a dare, tanto migliore ed esaustivo riuscirà ad essere il documento finale. Quanto al manuale di Unix, se fatto bene, uno in più non guasta mai e non può e non deve essere un capitolo prescindibile da OSX, in quanto per poter sfruttare al meglio OSX bisogna saper usare il terminale. Secondo me va solo spiegato che il Terminale è la porta d'accesso alla shell ed allo Unix che sta sotto l'interfaccia grafica del Mac. Mi pare un po' riduttivo (IMHO) -------------------- |
|
|
|
|
30 Aug 2007, 09:31
Messaggio
#15
|
|
|
Penso che una mini guida ai comandi principali per muoversi nel terminale sia utile. Poi comandi complessi come grep, awk, ifconfig… può bastare anche solo nominarli. Una volta che si è spiegato il comando man, il lettore ha buona parte degli strumenti per apprendere il resto da solo come preferisce.
Ciao Paolo -------------------- |
|
|
|
|
30 Aug 2007, 09:42
Messaggio
#16
|
|
|
Interessante, ma proseguendo sulla linea di illustrare i comandi del Terminale si scrive l'ennesimo manuale Unix, del quale credo nessuno senta la mancanza (ne esistono tanti, ed anche buoni). Secondo me va solo spiegato che il Terminale è la porta d'accesso alla shell ed allo Unix che sta sotto l'interfaccia grafica del Mac. Lo scopo del documento OSXfeed è quello di fornire un punto di riferimento ad un utente che vuole imparare ad usare OSX in tutte le sue forme...tra qeuste forme c'è anche il terminale... in un documento che si rispetti non è possibile dire solo cos'è il terminale e poi per i comandi rimandare un utente in un altro documento è molto meglio riportare i comandi per muoversi nel terminale e poi illustrare altri comandi molto più complessi mentre solamente alla fine del capitolo si possono fare riferimenti ad altri libri che trattano di un argomento specifico per aumentare la conoscenza in tale ambito. Spero di essermi spiegato SoHo -------------------- Stefano Dindo
|
|
|
|
|
30 Aug 2007, 23:42
Messaggio
#17
|
|
|
Lo scopo del documento OSXfeed è quello di fornire un punto di riferimento ad un utente che vuole imparare ad usare OSX in tutte le sue forme...tra qeuste forme c'è anche il terminale... in un documento che si rispetti non è possibile dire solo cos'è il terminale e poi per i comandi rimandare un utente in un altro documento è molto meglio riportare i comandi per muoversi nel terminale e poi illustrare altri comandi molto più complessi mentre solamente alla fine del capitolo si possono fare riferimenti ad altri libri che trattano di un argomento specifico per aumentare la conoscenza in tale ambito. Spero di essermi spiegato SoHo Chiarissimo. Io sono di parere diverso, ma poiché il capoprogetto sei tu mi adeguerò alla tua impostazione. -------------------- Non ci sono più le mezze stagioni! O no?
|
|
|
|
|
31 Aug 2007, 08:48
Messaggio
#18
|
|