Jestem stosunkowo nowy w programowaniu jako całości, a niektóre samouczki mówią mi, żebym ls -l
szukał plików w katalogu, a inni mówili ll
. Wiem, że ls
to krótka lista, ale czy istnieje różnica między pozostałymi dwoma?
ls
każde inne polecenie, które wprowadzam do powłoki? Jeśli piszę which ls
, dostaję alias ls='ls --color=auto' /bin/ls
, ale jeśli piszę (na przykład) which cd
, dostaję /usr/bin/which: no cd in (........)
. EDYCJA: Próbowałem ponownie which mkdir
i dostałem /bin/mkdir
. Jaka jest różnica między tymi poleceniami, w których niektóre z nich są przechowywane (?), /usr/bin
A niektóre najwyraźniej nie?
$PATH
. ls
jest bardzo często aliasowany, więc twoja powłoka zgłasza alias (który ma pierwszeństwo przed plikiem binarnym) i faktyczną lokalizację pliku binarnego (w twoim przypadku /bin/ls
). Jeśli which
nie można znaleźć cd
, coś wydaje się okropnie nie tak.
cd
to słowo kluczowe wbudowane w powłokę, a nie program znaleziony w systemie plików. Użyj type cd
i, type ls
aby zobaczyć, co mam na myśli. Niektóre polecenia są po prostu nadpisywane przez wbudowane powłoki: echo
istnieją w /bin/echo
, ale w bash
rzeczywistości w większości nowoczesnych powłok, echo
zamiast tego wywoływana jest funkcja wbudowana (która zwykle ma rozszerzone funkcje). type
w rzeczywistości mówi ci, który to jest.
which ll
. Prawdopodobnie odkryjesz, żell
tak naprawdę jest to aliasls -l
.