OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

rm: usunąć katalog „archiwum”? y

O tym, jak ustawić tę opcję jako domyślną, porozmawiamy w rozdziale 7, w którym omawiamy dostosowywanie środowiska powłoki.


obraz


3.3.3. Znajdowanie plików


3.3.3.1. Korzystanie z funkcji powłoki


W przykładzie przenoszenia plików widzieliśmy już, jak powłoka może manipulować wieloma plikami jednocześnie. W tym przykładzie powłoka automatycznie dowiaduje się, co użytkownik ma na myśli poprzez wymagania zawarte w nawiasach kwadratowych „[” i „]”. Powłoka może zastępować zakresy liczb oraz wielkie i małe litery. Zastępuje także dowolną liczbę znaków gwiazdką i tylko jeden znak znakiem zapytania.


Można stosować jednocześnie wszelkiego rodzaju podstawienia; Shell jest w tym bardzo logiczny. Na przykład powłoka Bash nie ma problemu z wyrażeniami takimi jak ls nazwa_kierunku/*/*/*[2-3].


W innych powłokach gwiazdka jest powszechnie używana, aby zminimalizować wysiłek związany z pisaniem: ludzie by weszli cd reż.* zamiast cd katalog. Jednakże w Bash nie jest to konieczne, ponieważ powłoka GNU posiada funkcję zwaną uzupełnianiem nazw plików. Oznacza to, że możesz wpisać kilka pierwszych znaków polecenia (w dowolnym miejscu) lub pliku (w bieżącym katalogu) i jeśli nie będzie możliwe pomyłka, powłoka dowie się, co masz na myśli. Na przykład


w katalogu zawierającym wiele plików możesz sprawdzić, czy są jakieś pliki zaczynające się na literę A, po prostu wpisując ls A i naciśnięcie klawisza zakładka dwukrotnie, zamiast naciskać Wchodzę. Jeśli istnieje tylko jeden plik rozpoczynający się na literę „A”, plik ten zostanie wyświetlony jako argument ls (lub dowolne polecenie powłoki, jeśli o to chodzi) natychmiast.


obraz

3.3.3.2. Które


Bardzo prostym sposobem wyszukiwania plików jest użycie metody który polecenie, aby wyszukać wymagany plik w katalogach wymienionych na ścieżce wyszukiwania użytkownika. Oczywiście, ponieważ ścieżka wyszukiwania zawiera tylko ścieżki do katalogów zawierających programy wykonywalne, który nie działa w przypadku zwykłych plików. The który polecenie jest przydatne przy rozwiązywaniu problemów „Nie znaleziono polecenia”. W poniższym przykładzie użytkownik tina nie mogę skorzystać z przeczytaj programu, podczas gdy jej koleżanka nie ma żadnych problemów w tym samym systemie. Problem jest podobny do PATH problem z poprzedniej części: Kolega Tiny mówi jej, że widzi wymagany program

/opt/acroread/bin, ale ten katalog nie znajduje się na jej ścieżce:


Tina:~> które czytamy

/usr/bin/który: brak odczytu acroread (/bin:/usr/bin:/usr/bin/X11)

Tina:~> które czytamy

/usr/bin/który: brak odczytu acroread (/bin:/usr/bin:/usr/bin/X11)

Problem można rozwiązać, podając pełną ścieżkę do polecenia do uruchomienia lub ponownie eksportując zawartość pliku

Zmienna PATH:


Tina:~> eksportuj PATH=$PATH:/opt/acroread/bin


Tina:~> echo $ ŚCIEŻKA

/bin:/usr/bin:/usr/bin/X11:/opt/acroread/bin

Tina:~> eksportuj PATH=$PATH:/opt/acroread/bin


Tina:~> echo $ ŚCIEŻKA

/bin:/usr/bin:/usr/bin/X11:/opt/acroread/bin

Korzystanie z który polecenie sprawdza również, czy polecenie jest aliasem innego polecenia:


Gerrit:~> które -a ls

ls jest aliasem do `ls -F --color=auto' ls to /bin/ls

Gerrit:~> które -a ls

ls jest aliasem do `ls -F --color=auto' ls to /bin/ls

Jeśli to nie zadziała w twoim systemie, użyj alias polecenie:


dolle@www:~/mail$ pseudonim ls

alias ls='ls --kolor'

dolle@www:~/mail$ pseudonim ls

alias ls='ls --kolor'


obraz


3.3.3.3. Znajdź i zlokalizuj


Są to prawdziwe narzędzia używane podczas wyszukiwania innych ścieżek niż te wymienione w ścieżce wyszukiwania. The odnaleźć narzędzie znane z UNIX-a jest bardzo potężne, co może być przyczyną nieco trudniejszej składni. GNU ANTYLOPA odnaleźć, jednak zajmuje się problemami składniowymi. To polecenie nie tylko umożliwia wyszukiwanie nazw plików, ale może także akceptować rozmiar pliku, datę ostatniej zmiany i inne właściwości pliku jako kryteria wyszukiwania. Najczęstszym zastosowaniem jest wyszukiwanie nazw plików:


odnaleźć -nazwa


Można to zinterpretować w ten sposób: „Przejrzyj wszystkie pliki i podkatalogi zawarte w danej ścieżce i wypisz nazwy plików zawierających szukany ciąg w ich nazwie” (a nie w ich zawartości).


Kolejne zastosowanie odnaleźć służy do wyszukiwania plików o określonym rozmiarze, jak w poniższym przykładzie, gdzie user peter

chce znaleźć wszystkie pliki w bieżącym katalogu lub jednym z jego podkatalogów, które są większe niż 5 MB:


Piotr:~> znajdować . -rozmiar +5000 tys

psychotic_chaos.mp3

Piotr:~> znajdować . -rozmiar +5000 tys

psychotic_chaos.mp3


Jeśli pogrzebiesz w stronach podręcznika, zobaczysz to odnaleźć może także wykonywać operacje na znalezionych plikach. Typowym przykładem jest usuwanie plików. Najlepiej najpierw wykonać test bez -Exec opcję wybrania właściwych plików, po czym można ponownie uruchomić polecenie w celu usunięcia wybranych plików. Poniżej wyszukujemy pliki kończące się na .tmp:


Piotr:~> znajdować . -name "*.tmp" -exec rm {} \;


Piotr:~>

Piotr:~> znajdować . -name "*.tmp" -exec rm {} \;


Piotr:~>


obrazOptymalizować!

To polecenie wywoła rm tyle razy, ile razy znaleziono plik spełniający wymagania. W najgorszym przypadku może to być tysiące lub miliony razy. Jest to spore obciążenie dla Twojego systemu.


Bardziej realistycznym sposobem pracy byłoby użycie potoku (|) i xargs narzędzie z rm jako argument. W ten sposób rm polecenie jest wywoływane tylko wtedy, gdy wiersz poleceń jest pełny, a nie dla każdego pliku. Więcej informacji na temat wykorzystania przekierowań we/wy w celu ułatwienia codziennych zadań można znaleźć w rozdziale 5.

Później (według stron podręcznika w 1999 r., po 20 latach odnaleźć), zlokalizować został opracowany. Ten program jest łatwiejszy w użyciu, ale bardziej ograniczony niż odnaleźć, ponieważ jego dane wyjściowe opierają się na bazie danych indeksów plików, która jest aktualizowana tylko raz dziennie. Z drugiej strony wyszukiwanie w zlokalizować baza danych zużywa mniej zasobów niż odnaleźć i dlatego pokazuje wyniki niemal natychmiast.


Większość dystrybucji Linuksa używa slokować się obecnie lokalizacja o zwiększonym bezpieczeństwie, nowoczesna wersja zlokalizować uniemożliwiający użytkownikom uzyskanie wyników, których nie mają prawa czytać. Pliki w korzeńkatalog domowy jest takim przykładem, zwykle nie jest on dostępny publicznie. Użytkownik chcący znaleźć kogoś znającego się na powłoce C może wydać polecenie zlokalizować .cshrc, aby wyświetlić wszystkich użytkowników, którzy mają dostosowany plik konfiguracyjny powłoki C. Załóżmy, że użytkownicy korzeń i przędzarka używasz powłoki C, to tylko plik

/home/jenny/.cshrc zostanie wyświetlony, a nie ten w korzeńkatalog domowy użytkownika. W większości systemów

zlokalizuj jest dowiązaniem symbolicznym do programu slocate:


Billy:~> ls -l /usr/bin/locate

lrwxrwxrwx 1 root slocate 7 28 października 14:18 /usr/bin/locate -> slocate*

Billy:~> ls -l /usr/bin/locate

lrwxrwxrwx 1 root slocate 7 28 października 14:18 /usr/bin/locate -> slocate*

Użytkownik tina mógł skorzystać zlokalizować aby znaleźć aplikację, której szukała:


Tina:~> zlokalizuj acroread

/usr/share/icons/hicolor/16x16/apps/acroread.png

/usr/share/icons/hicolor/32x32/apps/acroread.png

/usr/share/icons/locolor/16x16/apps/acroread.png

/usr/share/icons/locolor/32x32/apps/acroread.png

/usr/local/bin/acroread

/usr/local/Acrobat4/Reader/intellinux/bin/acroread

/usr/local/Acrobat4/bin/acroread

Tina:~> zlokalizuj acroread

/usr/share/icons/hicolor/16x16/apps/acroread.png

/usr/share/icons/hicolor/32x32/apps/acroread.png

/usr/share/icons/locolor/16x16/apps/acroread.png

/usr/share/icons/locolor/32x32/apps/acroread.png

/usr/local/bin/acroread

/usr/local/Acrobat4/Reader/intellinux/bin/acroread

/usr/local/Acrobat4/bin/acroread

Katalogi niezawierające nazwy kosz nie mogą zawierać programu - nie zawierają plików wykonywalnych. Pozostały trzy możliwości. Plik w / usr / local / bin ten właściwy tina chciałbym: jest to link do skryptu powłoki, który uruchamia właściwy program:


Tina:~> plik /usr/local/bin/acroread

/usr/local/bin/acroread: łącze symboliczne do ../Acrobat4/bin/acroread


Tina:~> plik /usr/local/Acrobat4/bin/acroread

/usr/local/Acrobat4/bin/acroread: Plik wykonywalny tekstowego skryptu powłoki Bourne'a


Tina:~> plik /usr/local/Acrobat4/Reader/intellinux/bin/acroread

/usr/local/Acrobat4/Reader/intellinux/bin/acroread: 32-bitowy plik wykonywalny ELF LSB, Intel 80386, wersja 1, dynamicznie połączony (wykorzystuje

Tina:~> plik /usr/local/bin/acroread

/usr/local/bin/acroread: łącze symboliczne do ../Acrobat4/bin/acroread


Tina:~> plik /usr/local/Acrobat4/bin/acroread

/usr/local/Acrobat4/bin/acroread: Plik wykonywalny tekstowego skryptu powłoki Bourne'a


Tina:~> plik /usr/local/Acrobat4/Reader/intellinux/bin/acroread

/usr/local/Acrobat4/Reader/intellinux/bin/acroread: 32-bitowy plik wykonywalny ELF LSB, Intel 80386, wersja 1, dynamicznie połączony (wykorzystuje


shared biblioteki), nie obnażony Aby ścieżka była jak najkrótsza, aby system nie musiał zbyt długo szukać za każdym razem, gdy użytkownik chce wykonać polecenie, dodajemy / usr / local / bin do ścieżki, a nie do innych katalogów, które

zawierają tylko pliki binarne jednego konkretnego programu, podczas gdy / usr / local / bin zawiera inne przydatne

programy również.


Ponownie opis pełnych funkcji odnaleźć i zlokalizować można znaleźć na stronach informacyjnych.


obraz

3.3.3.4. Polecenie grep


3.3.3.4.1. Ogólne filtrowanie linii


Prosty, ale potężny program, grep służy do filtrowania linii wejściowych i zwracania określonych wzorców na wyjście. Istnieją dosłownie tysiące aplikacji dla grep program. W poniższym przykładzie jerry zastosowania grep żeby zobaczyć jak on to zrobił odnaleźć:


jerry:~> grep -znalezienie .bash_history

znajdować . -name informacje o użytkowniku, znajdź człowieka

znajdź ../ -nazwa common.cfg

jerry:~> grep -znalezienie .bash_history

znajdować . -name informacje o użytkowniku, znajdź człowieka

znajdź ../ -nazwa common.cfg


obrazHistoria wyszukiwania

W takich przypadkach przydatna jest również funkcja wyszukiwania bash, aktywowany przez naciśnięcie Ctrl+R od razu, jak w przykładzie, w którym chcemy sprawdzić, jak to zrobiliśmy ostatnio odnaleźć jeszcze raz:


Tomasz ~> ^R

(odwrotne-wyszukiwanie)`find': znajdź `/home/thomas` -name *.xml

Tomasz ~> ^R

(odwrotne-wyszukiwanie)`find': znajdź `/home/thomas` -name *.xml

Wpisz szukany ciąg w wierszu wyszukiwania. Im więcej znaków wpiszesz, tym bardziej ograniczone będzie wyszukiwanie. Spowoduje to odczytanie historii poleceń dla tej sesji powłoki (która jest zapisywana w

.bash_historia w katalogu domowym po wyjściu z tej sesji). Wyświetlone zostanie najnowsze wystąpienie wyszukiwanego ciągu. Jeśli chcesz zobaczyć poprzednie polecenia zawierające ten sam ciąg, wpisz Ctrl+R ponownie.


Zobacz strony informacyjne na bash więcej.

Wszystkie UNIX-y przy odrobinie przyzwoitości mają słownik online. Podobnie Linux. Słownik to lista znanych słów w pliku o nazwie słowa, położony w /usr/share/dykt. Aby szybko sprawdzić poprawność pisowni słowa, nie jest potrzebna żadna aplikacja graficzna:


William: ~> grep pinguin /usr/share/dict/words


William: ~> grep penguin /usr/share/dict/words

pingwiny pingwiny

William: ~> grep pinguin /usr/share/dict/words


William: ~> grep penguin /usr/share/dict/words

pingwiny pingwiny


obrazSłownik a lista słów

Niektóre dystrybucje oferują DICT polecenie, które oferuje więcej funkcji niż zwykłe wyszukiwanie słów na liście.

Kto jest właścicielem tego katalogu domowego obok mojego? Hej, tu jest jego numer telefonu!


Lisa: ~> grep gdbruyne /etc/passwd

gdbruyne:x:981:981:Guy Debruyne, tel. 203234:/home/gdbruyne:/bin/bash

Lisa: ~> grep gdbruyne /etc/passwd

gdbruyne:x:981:981:Guy Debruyne, tel. 203234:/home/gdbruyne:/bin/bash


A jaki był adres e-mail Arno?


serge:~/mail> grep -i Arno *

wysłany e-mail: Do:[email chroniony]>

wysłany e-mail: W poniedziałek, 24 grudnia 2001 r., [email chroniony] napisał:

serge:~/mail> grep -i Arno *

wysłany e-mail: Do:[email chroniony]>

wysłany e-mail: W poniedziałek, 24 grudnia 2001 r., [email chroniony] napisał:

Znajdź i zlokalizuj są często używane w połączeniu z grep w celu zdefiniowania niektórych poważnych zapytań. Więcej informacji można znaleźć w rozdziale 5 dotyczącym przekierowania we/wy.


obraz

3.3.3.4.2. Znaki specjalne


Muszą być znaki, które mają specjalne znaczenie dla powłoki uciekł. Znakiem ucieczki w Bash jest ukośnik odwrotny, jak w większości powłok; odbiera to specjalne znaczenie następującemu znakowi. Powłoka zna kilka znaków specjalnych, wśród których najczęściej spotykane są /, ., ? I *. Pełną listę można znaleźć na stronach informacyjnych i w dokumentacji powłoki.


Załóżmy na przykład, że chcesz wyświetlić plik „*” zamiast wszystkich plików w katalogu, musiałbyś użyć


mniej \*


Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: