Jak w Linux znaleźć łatwo plik lub program?

Struktura katalogów i schemat rozmieszczenia plików z programami i danymi w systemie linux jest dobrze określona. Jednak często brakuje nam tej wiedzy i nie bardzo wiemy jak znaleźć nasz plik. W Windows mamy zwykle okno lub w menu opcje „szukaj”, w linux jest inaczej. Mamy kilka możliwości poszukiwania plików, katalogów i programów. W tym celu wykorzystujemy komendy:

  • find – do poszukiwania plików i katalogów
  • whereis – do określania miejsca położenia pliku określonego przez ścieżki zdefiniowane w zmiennych środowiskowych $PATH i $MANPATH
    • -b – program
    • -m – strona instrukcji
    • -s – kod źródłowy
  • which – Przeszukuje wszystkie ścieżki w zmiennej $PATH i zwraca pełną ścieżkę dostępu do komendy.
  • type – określa rodzaj komendy
    • komenda wbudowana w interpreter komand (shell)
    • komenda zewnętrzna
    • alias
    • funkcja

find

Komenda Find ma bardzo prosty schemat, który wygląda jak poniżej

find ścieżka kryteria [akcja]

  • ścieżka – miejsce w którym komenda rozpocznie poszukiwania, jeśli jest niepodana ścieżka to poszukiwania wykonuje od bieżącego katalogu
  • akcja – zadanie jakie muszą zostać wykonane po znalezieniu pliku
    • -print (domyślna akcja)
    • -exec command
  • kryteria – właściwości jakie muszą zostać spełnione dla poszukiwania
    • -ctime [+/-]days —- poszukuje pliki które zostały ostatnio zmienione nie wcześniej niż (nie później niż) przez określoną liczbę dni podaną w parametrze „days”
    • -gid number —- pliki z określoną wartością GID (Group ID)
    • -group name —- pliki których właścicielem jest grupa okreslona w nazwie „name”
    • -name pattern —- pliki zawierające wzorzec okreslony w parametrze „pattern”
    • -newer file —- pliki które zostały zmodyfikowane później niż określony plik
    • -size [+/-] size —- pliki większe lub mniejsze od określonego rozmiaru podanego w „size”. Rozmiar określa się w blokach po 512 bajtów, a przedrostek „c” lub „k” odpowiednio przełącza pomiędzy bajtami, a blokami o 1024 bajtach.
    • type file_type — poszukuje określonych typów plików  i np. „d” oznacza katalogi, „f” pliki i „l” (litera małe L) link symboliczny
    • -uid number —- Pliki z określonym numere UID (User ID)
    • -user name —- Pliki których właścicielem jest użytkownik określony w parametrze „name”

PRZYKŁAD:

user1@linux:~> find ~ -name „list*” -type f -exec grep imie {} \;
imie: Adam Smith firma XXX.
/home/user1/dokumenty/list_15052015

Zwróć uwagę na koniec zapisu „{} \;”, który jest konieczny w przypadku użycia komendy „exec”. Średnik kończy komendę, a odwrócony ukośnik jest konieczny bo średnik jest znakiem specjalnym i bez tego zostanie zinterpretowany w inny sposób. Z kolei 2 nawiasy klamerkowe są konieczne bo przekazują one wynik wyszukiwania do komendy „exec” jako parametr.

whereis

Tą komendą szukamy programu, instrukcji do programu lub kodów źródłowych. Poniżej przykład.

[user1@linux ~]# whereis grep
grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
[user1@linux ~]# whereis -b grep
grep: /bin/grep
[user1@linux ~]# whereis -m grep
grep: /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
[user1@linux ~]# whereis -s grep
grep:

which

Dzięki tej komendzie znajdziemy ścieżkę do naszego programu, który znajduje się w ścieżce określonej w zmiennej $PATH.

[user1@linux ~]# which find
/usr/bin/find
[user1@linux ~]# which grep
/bin/grep
[user1@linux ~]# which mv
alias mv=’mv -i’
/bin/mv

type

Komenda określa typ komendy jaki zostanie wykonany kiedy ją wpiszemy i wykonamy.

[user1@linux ~]# type type
type is a shell builtin
[user1@linux ~]# type grep
grep is /bin/grep
[user1@linux ~]# type ll
ll is aliased to `ls -l –color=tty’

Do przeszukiwania zawartości plików w systemie linux używamy komendy grep której schemat użycia wygląda tak jak poniżej. Jednak dokładny opis tej komendy znajdziemy albo w manuall lub w internecie. Opis tej komendy zostanie tez zawarty na tej stronie internetowej w późniejszym czasie.

grep [options] search_pattern filename