Live Support My forum, my way! Il forum dei newsgroup: Linux » Sequenza per capire da dove viene lanciato un comando
My forum, my way! Il forum dei newsgroup
Fast Uncompromising Discussions.Newsgroup FUDforum will get your users talking.

Loading
Utenti      F.A.Q.    Registrati    Login    Home
Home » Computer » Linux » Sequenza per capire da dove viene lanciato un comando
Sequenza per capire da dove viene lanciato un comando [messaggio #35968] dom, 20 febbraio 2011 18:46 Messaggio successivo
MBulu  è attualmente disconnesso MBulu
Messaggi: 20
Registrato: febbraio 2011
Junior Member
Ciao a tutti,
mi interessa capire una cosa: nel momento in cui digito un comando dal
terminale, qual'è la sequenza di cartelle in cui viene cercato il
comando da lanciare?

Se per esempio ho 2 comandi differenti ma con lo stesso nome in 2
directories differenti, come faccio a sapere quale dei 2 viene
lanciato?

So che in windows prima viene cercato nella directory corrente e poi,
in sequenza, nelle directories che fanno parte della PATH e viene
lanciato il primo che viene trovato nella sequenza appena descritta.
In linux, come funziona?

Grazie in anticipo, Mario
Re: Sequenza per capire da dove viene lanciato un comando [messaggio #35969 è una risposta a message #35968] dom, 20 febbraio 2011 18:59 Messaggio precedenteMessaggio successivo
Crononauta  è attualmente disconnesso Crononauta
Messaggi: 145
Registrato: novembre 2010
Senior Member
On Sun, 20 Feb 2011 18:46:19 +0100
MBulu <cusinma@libero.it> wrote:

> Ciao a tutti,
> mi interessa capire una cosa: nel momento in cui digito un comando dal
> terminale, qual'è la sequenza di cartelle in cui viene cercato il
> comando da lanciare?
>
> Se per esempio ho 2 comandi differenti ma con lo stesso nome in 2
> directories differenti, come faccio a sapere quale dei 2 viene
> lanciato?

which comando
e ti dice quale viene eseguito.

echo $PATH
e ti dice l'ordine di ricerca dei percorsi.


--
Massimo Bacilieri AKA Crononauta
Skype: crononauta <massimo.bacilieri@gmail.com>
Facebook: Massimo Bacilieri
Re: Sequenza per capire da dove viene lanciato un comando [messaggio #35987 è una risposta a message #35969] lun, 21 febbraio 2011 00:04 Messaggio precedenteMessaggio successivo
NicoKid  è attualmente disconnesso NicoKid
Messaggi: 212
Registrato: novembre 2010
Senior Member
Crononauta wrote:

>>
>> Se per esempio ho 2 comandi differenti ma con lo stesso nome in 2
>> directories differenti, come faccio a sapere quale dei 2 viene
>> lanciato?
>
> which comando
> e ti dice quale viene eseguito.
>
> echo $PATH
> e ti dice l'ordine di ricerca dei percorsi.

Potrebbe essere interessante anche:
whereis comando

Nicola.

--
chi va pian va san e va lontan
Re: Sequenza per capire da dove viene lanciato un comando [messaggio #35996 è una risposta a message #35987] lun, 21 febbraio 2011 21:15 Messaggio precedenteMessaggio successivo
Dalet  è attualmente disconnesso Dalet
Messaggi: 210
Registrato: novembre 2010
Senior Member
Il 20-02-2011, NicoKid dice:
>Crononauta wrote:

>>>Se per esempio ho 2 comandi differenti ma con lo stesso nome in 2
>>>directories differenti, come faccio a sapere quale dei 2 viene
>>>lanciato?

>>which comando
>>e ti dice quale viene eseguito.
>>echo $PATH
>>e ti dice l'ordine di ricerca dei percorsi.

>Potrebbe essere interessante anche:
>whereis comando

whereis ti da' pure le manpagine, invece per conoscere
la precedenza penso che occorra type, guarda ad esempio
con echo: e' interno con precedenza, oppure in /bin.

Ebbene type ti da' il builtin e basta e infatti se dai:
echo --version ti ricopia, mentre /bin/echo --version te
la da' si' la versione.

--
Saluti, Dalet
Re: Sequenza per capire da dove viene lanciato un comando [messaggio #36008 è una risposta a message #35968] mar, 22 febbraio 2011 10:09 Messaggio precedenteMessaggio successivo
mallin.shetland  è attualmente disconnesso mallin.shetland
Messaggi: 129
Registrato: novembre 2010
Senior Member
Addì Sun, 20 Feb 2011 18:46:19 +0100 MBulu scrisse:

> mi interessa capire una cosa: nel momento in cui digito un comando dal
> terminale, qual'è la sequenza di cartelle in cui viene cercato il
> comando da lanciare?

Nessuna sequenza, Linux non ha cartelle.



Addì Sun, 20 Feb 2011 18:46:19 +0100 MBulu scrisse:

> Se per esempio ho 2 comandi differenti ma con lo stesso nome in 2
> directories differenti, come faccio a sapere quale dei 2 viene lanciato?

man which
which man
which which





Addì Sun, 20 Feb 2011 18:46:19 +0100 MBulu scrisse:

> So che in windows prima viene cercato nella directory corrente e poi, in
> sequenza, nelle directories che fanno parte della PATH e viene lanciato
> il primo che viene trovato nella sequenza appena descritta.

No, assolutamnete no.

Innanzi tutto sia in MSDOS e Windows(|NT|XP) sia in Linux la ricerca viene
effettuata solo se digiti il comando senza un percorso.

In MSDOS e Windows si cerca prima tra i comandi interni, poi se viene dato
un comanda esterno si cerca nella directory corrente del drive correne (in
Windows esiste una directory corrente per ogni unità disco) ed infine si
cerca nella directory del PATH. Inoltre non si esegue affatto il primo
comando che si trova: se in una directory esistono diversi programmi con
lo stesso nome ma estensione diversa c'è una ben precisa precedenza:
prima i *.EXE, poi i *.COM ed infine i *.BAT




Addì Sun, 20 Feb 2011 18:46:19 +0100 MBulu scrisse:

> In linux, come funziona?

Nella bash, se la shell è interattiva, dopo le varie espansioni vengono
sostituiti gli alias, poi si cerca tra le funzioni, poi tra i comandi
interni. Infine se esiste la variabile di ambiente PATH si cerca tra le
directory contenute in essa altrimenti se non esiste la variabile di
ambiente PATH si cerca nella directory corrente.
Se invece la shell non è interattiva per default gli alias non vengono
sostituiti.

Altre shell si comportano in maniera analoga, ci possono essere piccole
differenze sugli alias e sulle funzioni. Ma in fondo anche in MSDOS e
Windows esistono molte shell che fanno a modo loro.


Tutto sommato l'unica grossa differenza è che in Windows viene cercato
PRIMA nella directory corrente e poi nel PATH mentre in ambiente Unix
questo comportamento è considerato una falla nella sicurezza.
Re: Sequenza per capire da dove viene lanciato un comando [messaggio #36010 è una risposta a message #35996] mar, 22 febbraio 2011 11:35 Messaggio precedente
NicoKid  è attualmente disconnesso NicoKid
Messaggi: 212
Registrato: novembre 2010
Senior Member
Dalet wrote:

> Il 20-02-2011, NicoKid dice:
>>Crononauta wrote:
>
>>>>Se per esempio ho 2 comandi differenti ma con lo stesso nome in 2
>>>>directories differenti, come faccio a sapere quale dei 2 viene
>>>>lanciato?
>
>>Potrebbe essere interessante anche:
>>whereis comando
>
> whereis ti da' pure le manpagine, invece per conoscere
> la precedenza penso che occorra type, guarda ad esempio
> con echo: e' interno con precedenza, oppure in /bin.

In effetti hai ragione, direi che type è il comando adatto.

Nicola.

--
chi va pian va san e va lontan
Argomento precedente:altrnativa a mint
Argomento successivo:accesso automatico all'avvio
Vai al forum:
  


Ora corrente: ven ago 02 20:22:43 CEST 2024

Tempo totale richiesto per generare la pagina: 0.02497 secondi
.:: Contatti :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Live Support