Sono relativamente nuovo alla programmazione nel suo insieme e alcuni tutorial mi hanno detto di usare ls -l
per guardare i file in una directory e altri hanno detto ll
. So che ls
è un breve elenco, ma c'è una differenza tra gli altri due?
ls
qualsiasi altro comando che ho inserito nella shell? Se digito which ls
ottengo alias ls='ls --color=auto' /bin/ls
, ma se digito (ad esempio) which cd
ottengo /usr/bin/which: no cd in (........)
. EDIT: ho provato di nuovo con which mkdir
e ho ottenuto /bin/mkdir
. Qual è la distinzione tra questi comandi in cui alcuni di essi sono memorizzati (?) /usr/bin
E altri apparentemente no?
$PATH
. ls
è molto spesso aliasato, quindi la tua shell riporta l'alias (che ha la precedenza sul binario) e la posizione effettiva del binario (nel tuo caso /bin/ls
). Se which
non riuscissi a trovare cd
, allora qualcosa sembra terribilmente sbagliato.
cd
è una parola chiave integrata nella shell, non un programma trovato in un filesystem. Usa type cd
e type ls
per vedere cosa intendo. Alcuni comandi sono semplicemente sostituiti dai builtin della shell: echo
esiste in /bin/echo
, ma in bash
realtà nella maggior parte delle shell moderne, al suo echo
posto viene chiamata una funzione incorporata (che di solito ha funzionalità estese). type
in realtà ti dice quale è.
which ll
. Probabilmente scoprirai che inll
realtà è un alias perls -l
.