whereis pwd
pwd: /bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz
Il pwd nella cartella binaria non è lo stesso di
type pwd
pwd is a shell builtin
quindi non sarebbe innocuo fare qualche sperimentazione sulla pwd esterna? Ad esempio, aggiungendo un "Hello shell!" cout solo per dimostrare il principio?
Dov'è la fonte per pwd? Di solito lo ottieni con la distribuzione (sono su Debian) o lo installi o scarichi in qualche modo? È in C? Lo compilo come qualsiasi altro file con gcc e inserisco il risultato (con chmod adatto) in una cartella racchiusa nel percorso? E gli aggiornamenti? Come capisci, qui mi manca il quadro generale.
(A proposito, il file di intestazione sembra non essere correlato:pwd come nella password, non stampa/presenta la directory di lavoro.)
Risposta accettata:
non sarebbe innocuo fare qualche sperimentazione sulla pwd esterna?
È una cattiva scommessa che nulla usi /bin/pwd
. È buona norma negli script di shell, in particolare quelli comunemente eseguiti da root, fornire percorsi completi a programmi esterni, per motivi di sicurezza.
Tuttavia, puoi tranquillamente creare un pwd
personalizzato e mettilo nella tua home directory da qualche parte. Se il pacchetto usa Autoconf, questo è di solito sufficiente per configurare un pacchetto da installare nella tua home directory:
$ ./configure --prefix=$HOME
Potresti dire qualcosa come --prefix=$HOME/pwd-test
invece, per evitare ogni possibilità di conflitto.
Finché il sistema di compilazione del pacchetto è impostato correttamente, dopo averlo configurato in questo modo puoi tranquillamente dire make install
senza essere root, perché tutti i file che scrive dovrebbero andare sotto il prefisso che hai fornito.
Dov'è la fonte per pwd?
pwd
fa parte di coreutils
. Puoi scoprire queste cose con il motore di ricerca dei pacchetti Debian.
Di solito lo ottieni con la distribuzione (sono su Debian)
Probabilmente non hai ancora scaricato i sorgenti della distribuzione, ma sì, è considerata parte della distribuzione Debian. Sono separati in un set di DVD sorgente da sei dischi (!), che comprende circa 25 GB, motivo per cui la maggior parte delle persone non li scarica mai.
A meno che tu non stia cercando di fare qualcosa come ricostruire l'intera distribuzione Debian o creare una distribuzione derivata, probabilmente non dovresti scaricarli nemmeno adesso. A la carte i download sono probabilmente un'idea migliore in questa fase.
in qualche modo lo installi o lo scarichi?
Sì, puoi anche usare apt-get
per installare il codice sorgente per i pacchetti. C'è un intero capitolo nell'APT HOWTO su questo.
(Quel documento è contrassegnato come Obsoleto, ma non vedo un documento sostitutivo.)
È in C?
Con ogni probabilità sì.
Lo compilo come qualsiasi altro file con gcc e metto il risultato (con chmod adatto) in una cartella racchiusa nel percorso?
Probabilmente non esegui direttamente gcc, probabilmente esegui lo standard configure ; make ; make install
danza. Se scarichi il tarball sorgente dalla pagina di ricerca dei pacchetti Debian, probabilmente troverai un INSTALL
o README
file nel tarball, che conterrà le istruzioni di compilazione.
E gli aggiornamenti?
Che ne pensi di loro? Il motore di ricerca dei pacchetti ti aiuterà a trovare qualsiasi versione del software che desideri e apt-get
ti aiuterà a tenere traccia delle modifiche ai sorgenti proprio come farà per i binari.
Mi manca il quadro generale qui.
Allora potresti voler dare un'occhiata alla documentazione Debian.
il file di intestazione sembra non essere correlato:pwd come nella password, non print/present directory di lavoro.)
Sì. È un'intestazione di utilità per i programmatori C, per ottenere l'accesso al database dell'utente. Dì man 3 getpwent
per avere un'idea di cosa è disponibile attraverso quell'interfaccia.