Het Gebruik van Alle Linux Commando ‘ s Zoeken

0
497

Linux biedt zes verschillende manieren om te zoeken, en elk heeft zijn verdiensten. We zullen demonstreren hoe u het vinden, vinden, die, whereis, whatis en apropos. Elke blinkt uit op verschillende taken; hier is hoe om te kiezen van de juiste tool voor de job.

Je bent verwend als het gaat om opdrachten voor het zoeken en vinden in Linux. Waarom zo veel? Goed, ze hebben elk hun specialiteiten zijn en beter presteren dan de anderen in bepaalde omstandigheden. Je kan ze beschouwen als een soort van Zwitsers zakmes voor het zoeken. We gaan kijken naar elk mes in zetten en ontdekken hun eigen sterke punten.

De Opdracht

Het gedrag van het find commando is moeilijk te bepalen door trial and error. Zodra u inzicht in de syntaxis, je begint te genieten van de flexibiliteit en kracht.

De eenvoudigste manier om te zoeken is om gewoon op type zoeken en druk op enter.

zoeken

Op deze manier gebruikt wordt vinden gedraagt zich als ls, maar het geeft een lijst van alle bestanden in de huidige map en die in submappen.

Sommige implementaties van vinden het nodig zijn om de . voor de huidige directory. Als dit het geval is met uw versie van Linux, gebruik je het volgende commando:

te vinden .

Om vind-zoektocht van de root map zou je dit commando gebruiken:

vinden /

Om te beginnen met het zoeken van uw home map gebruik je dit commando:

vind ~

Zoeken Met een Bestand Patronen

Voor het vinden van iets meer dan een auto-recursing versie van ls, moeten wij het met iets te zoeken. Wij kunnen bestandsnamen of het bestand patronen. Patronen maken gebruik van wildcards als * betekent een string van karakters en ? betekent elk enkel karakter.

Patronen moeten worden aangehaald om correct te werken. Het is gemakkelijk om te vergeten om dit te doen, maar als je niet citeren de wildcard patroon vinden zal niet in staat zijn om de juiste uitvoering van de opdracht die u heeft opgegeven.

Met deze opdracht gaan we het zoeken in de huidige map voor bestanden die overeenkomen met het patroon “*.*s”. Dit betekent een bestandsnaam die is een bestand met extensie die eindigt met “s”. We gebruiken de naam van de optie om te vertellen vinden we zowel in het voorbijgaan een bestandsnaam of een bestandsnaam patroon.

te vinden . -naam “*.*s”

vinden geeft het volgende overeenkomende bestanden.

Merk op dat twee van de bestandsextensies zijn twee tekens lang zijn en één is drie tekens lang zijn. Dit is omdat we gebruikte het patroon “*.*s”. Als we willen alleen maar wilde dat de twee karakter van bestandsextensies, we zouden hebben gebruikt “*.?s”.

Als we wisten van tevoren dat we op zoek waren naar JavaScript “.js” – bestanden kunnen we meer specifiek in ons bestand patroon. Ook kunt u gebruik enkele aanhalingstekens wikkel de patroon als u de voorkeur geeft.

te vinden . -name ‘*.js’

Dit keer alleen rapporten over de JavaScript-bestanden.

Het negeren van het Geval Met het vinden van

Als u weet dat de naam van het bestand dat u wilt zoeken om te vinden, kunt u doorgeven dat te vinden is in plaats van een patroon. U hoeft niet te wrap de bestandsnaam tussen aanhalingstekens als er geen wildcards in, maar het is een goede praktijk om het te doen de hele tijd. Dit te doen, zal je niet vergeten om ze te gebruiken wanneer u ze nodig hebt.

te vinden . -naam ‘Yelp.js’

Dat niet alles. Maar het is vreemd, we weten dat bestand moet er zijn. Laten we het opnieuw proberen en vertel vinden om te negeren geval. We doen dat met behulp van de-iname optie (hoofdlettergevoelig naam)

te vinden. -iname ‘Yelp.js’

Dat was het probleem, de bestandsnaam begint met een kleine letter “y”, en wij zochten, met een hoofdletter “J”

Recursing Submappen met vinden

Een groot ding over te vinden is de manier waarop het zoekt recursief door submappen. Laten we zoeken naar alle bestanden die beginnen met “kaart.”

te vinden . -naam “kaart*.*”

De overeenkomende bestanden worden vermeld. Merk op dat dit allemaal in een submap.

Zoeken naar Mappen Met vinden

Het pad optie maakt het vinden kijk voor mappen. Laten we zoeken naar een map die kunnen we niet precies herinneren de naam van, maar we weten dat het eindigt met de letters “over”.

te vinden . -pad ‘*over’

De map wordt gevonden, het heet gewoon “over,” en het is genest in een andere map in de huidige directory.

Er is een ipath (negeren geval pad) optie die u toelaat om te zoeken naar wegen en te negeren geval, vergelijkbaar met de –iname optie hierboven besproken.

Met behulp van File-Attributen met het vinden van

vinden kunt zoeken naar bestanden die de kenmerken hebben die overeenkomen met de zoekopdracht idee. U kunt bijvoorbeeld zoeken naar bestanden die zijn leeg met behulp van de optie lege, ongeacht wat ze genoemd.

te vinden . -leeg

Een nul byte lengte-bestanden worden weergegeven in de zoekresultaten.

De -uitvoerbare optie vindt elk bestand dat kan worden uitgevoerd, zoals een programma of een script.

te vinden . -uitvoerbaar

De lijst met resultaten een bestand met de naam “fix_aptget.sh”.

Ze bevatten ook drie mappen, inclusief ‘.’, de huidige directory. De mappen zijn opgenomen in de resultaten omdat de execute-bit is ingesteld in het bestand machtigingen. Zonder dit, zou u niet in staat om te veranderen in (“uitvoeren”) deze mappen.

De Optie type

Het type optie kunt u zoeken op het type object dat u zoekt. We gaan zorgen dat de indicator van het type “f” als parameter aan het type optie, want we willen zoeken om te zoeken naar bestanden.

te vinden . uitvoerbaar-type f

Dit keer is de subdirectory ‘ s worden niet vermeld. De uitvoerbaar script bestand is het enige item in de resultaten.

We kunnen ook vragen vinden om alleen mappen in de resultaten. Om een lijst van alle mappen, kunnen we gebruik maken van de optie type met de indicator van het type “d”.

te vinden . type -d

Alleen mappen en submappen worden weergegeven in de resultaten.

Het gebruik van Andere Commando ‘ s zoeken

U kunt het uitvoeren van een aantal aanvullende maatregelen op de gevonden bestanden. U kunt de bestanden hebt doorgegeven, op zijn beurt, naar een andere opdracht.

Als we het nodig om ervoor te zorgen dat er geen uitvoerbare bestanden in de huidige map en submappen, kunnen we gebruik maken van het volgende commando:

te vinden . -naam “fix_aptget.sh” -exec chmod -x ‘{}’ ;

De opdracht houdt in:

  • Zoeken in de huidige directory voor een object met de naam naam “fix_aptget.sh”.
  • Als het uitvoeren van de opdracht chmod.
  • De parameters die worden doorgegeven aan chmod zijn -x te verwijderen uitvoerbaar machtigingen en ‘ {}’; dit is de bestandsnaam van het bestand.
  • De laatste puntkomma markeert het einde van de parameters die worden doorgegeven aan chmod. Dit is ‘ontsnapt’ door hier een ” backslash”.

Zodra deze opdracht is uitgevoerd, kunnen we zoeken naar uitvoerbare bestanden als voorheen, en deze keer zal er geen bestanden in de lijst.

Tot het uitbrengen van onze netto breder, we konden gebruik maken van een bestand patroon in plaats van de bestandsnaam gebruiken we in ons voorbeeld.

Deze flexibiliteit kunt u zoeken op opgegeven bestandstypen, of met de bestandsnaam patronen, en een actie uitgevoerd op de bijbehorende bestanden.

Heeft vele andere opties, zoals het zoeken naar bestanden door hun gemodificeerde datum, bestanden die eigendom zijn van een gebruiker of een groep bestanden die leesbaar is, of dat bestanden met een specifieke set van bestandsrechten.

De zoek En mlocate Opdrachten

Veel Linux distributies gebruikt om een kopie van het lokaliseren opgenomen met hen. Deze werd vervangen door de mlocate opdracht, die een verbeterde en bijgewerkte versie van zoek.

Wanneer mlocate is geïnstalleerd op een systeem, het wijzigt de zoek-opdracht, zodat u daadwerkelijk gebruik maken van mlocate, zelfs als u type vinden.

De huidige versies van Ubuntu, Fedora, en Manjaro werden gecontroleerd om te zien of ze had versies van deze commando ‘ s vooraf zijn geïnstalleerd. Ubuntu en Fedora opgenomen mlocate. Het moest worden geïnstalleerd op Manjaro, met deze opdracht:

sudo pacman -Syu mlocate

Op Ubuntu, kunt u gebruik maken van zoek en mlocate door elkaar. Op Fedora en Manjaro moet u het type zoeken , maar de opdracht is uitgevoerd voor u door mlocate.

Als je de –versie optie zoek je zult zien dat de opdracht die reageert is eigenlijk mlocate.

zoek –versie

Omdat het zoeken werkt op alle Linux-distributies die werden getest, gebruiken we vinden in onze uitleg hieronder. En het is een minder letter te typen.

De zoek Database

Het grootste voordeel dat zoeken heeft is snelheid.

Wanneer u de opdracht zoeken gebruiken, het streepjes uit en voert u een zoekopdracht in uw bestandssysteem. De zoek opdracht werkt heel anders. Het maakt een database lookup om te bepalen of wat je zoekt is op uw computer. Dat maakt het zoeken een stuk sneller.

Natuurlijk, het roept een voor de hand liggende vraag over de database. Wat zorgt ervoor dat de database up-to-date? Wanneer mlocate is geïnstalleerd (meestal) plaatsen van een vermelding in cron.dagelijks. Deze loopt elke dag (heel vroeg in de ochtend) en de updates van de database.

Om te controleren of deze vermelding bestaat, gebruik je dit commando:

ls /etc/cron.dagelijks/*loc*

Als u niet kunt vinden een vermelding er, je kon instellen van een geautomatiseerde taak dit voor u te doen op het moment dat u kiest.

GERELATEERD: Hoe om Taken te Plannen op Linux: Een Inleiding tot de Crontab Bestanden

Wat als uw computer niet is ingeschakeld op het moment dat de database wordt verondersteld te worden bijgewerkt? U kunt handmatig uitvoeren van de update van de database met de volgende opdracht:

sudo updatedb

Met behulp van zoek

Laten we zoeken naar bestanden met de string “getlatlong”. Met zoek, zoeken automatisch ziet er voor alle wedstrijden die de zoekterm bevatten, overal in de bestandsnaam, dus er is geen noodzaak tot het gebruik van wildcards.

zoek getlatlong

Het is moeilijk over te brengen van de snelheid in een screenshot, maar bijna onmiddellijk de overeenkomstige bestanden worden weergegeven voor ons.

Vertellen zoeken hoeveel Resultaten U Wilt

Soms moet u wellicht weet zijn er veel bestanden van het type dat je zoekt. U hoeft alleen de eerste paar van hen. Misschien wilt u gewoon om te worden herinnerd in welke map ze in, en je hoeft niet alles te zien van de bestandsnamen.

Met behulp van de -n (het aantal) van de optie die u kunt beperken het aantal resultaten dat zoek naar je terug zal keren. In deze opdracht hebben we een limiet van 10 resultaten.

zoek .html -n 10

zoek reageert door een opsomming van de eerste 10 overeenkomende bestandsnamen worden opgehaald uit de database.

Het Tellen Van Overeenkomende Bestanden

Als u alleen wilt weten hoeveel overeenkomende bestanden en je hoeft niet te weten hoe ze heten of waar ze zich op de vaste schijf, gebruikt u de-c (tellen) optie.

zoek -c .html

Zo, nu we weten dat er 431 bestanden met de “.html” uitbreiding op deze computer. Misschien hebben we een kijkje willen trekken, maar we dachten: laten we een kijkje nemen en zie hoeveel er voor het eerst werden. Gewapend met die kennis die we weten, moeten we de output met een pijp door het minder.

zoek .html | minder

En hier zijn ze, of ten minste, hier is de top van de lange lijst van hen.

Het negeren Geval Met zoeken

De -i (hoofdlettergevoelig) veroorzaakt zoek om dat te doen, het negeert hoofdletters en kleine verschillen tussen de zoekopdracht en de bestandsnamen in de database. Als we het proberen en het tellen van de HTML-bestanden weer, maar ten onrechte bieden de zoekterm in hoofdletters krijgen we nul resultaten.

zoek -c .HTML

Door de -i optie kunnen we vinden het negeren van het verschil in het geval dat, en terug te keren ons antwoord dat u verwacht voor deze machine, 431.

zoek -c -i .HTML

De zoek Database Status

Om de status van de database, gebruik je de-s (status) optie. Dit veroorzaakt zoek naar enkele statistieken over de omvang en de inhoud van de database.

zoek -s

De Opdracht die

De commando doorzoekt de mappen in het pad, en probeert te zoeken de opdracht die u zoekt. Hiermee kunt u bepalen welke versie van een programma of opdracht wordt uitgevoerd wanneer u typt de naam op de commandoregel.

Stel dat we een programma had genoemd geoloc. We weten dat het is geïnstalleerd op de computer, maar we weten niet waar het ligt. Het moet in het pad ergens, want als we de naam, het loopt. We gebruiken die om het te zoeken met het commando:

die geoloc

die meldt dat het programma staat in /usr/local/bin.

We kunnen controleren of er geen andere kopieën van het programma op andere locaties binnen het pad met behulp van de-a (alle) optie.

die-een geoloc

Dit toont ons dat we de geoloc programma op twee plaatsen.

Natuurlijk, de versie in /usr/local/bin zal als eerste worden gevonden door de Bash-shell elke keer, dus het hebben van het programma op twee plaatsen is zinloos.

Het verwijderen van de versie in /usr/bin/geoloc bespaart u een beetje van de capaciteit van de harde schijf. Nog belangrijker, het zal ook voorkomen dat problemen gemaakt door iemand van het handmatig bijwerken van het programma, en doen het op de verkeerde plaats. Vervolgens afvragen waarom ze niet zien dat de nieuwe updates wanneer ze het uitvoeren van het programma.

De whereis Opdracht

De whereis opdracht is vergelijkbaar met de die opdracht, maar het is meer informatief.

In aanvulling op de locatie van de opdracht of het programma bestand whereis ook rapporten waar de man (manual) pagina ‘ s en bron code bestanden zich bevinden. In de meeste gevallen, de source code bestanden niet op uw computer, maar als ze er zijn, whereis zal verslag.

De binaire, uitvoerbare, de man pagina ‘ s en de broncode worden vaak aangeduid als het “pakket” voor die opdracht. Als je wilt weten waar de verschillende onderdelen van het pakket voor het commando diff ligt, gebruik je het volgende commando:

whereis diff

whereis reageert, door vermelding van de locatie van het diff-man-pagina ‘ s en de diff binaire bestand.

Om de resultaten te beperken tot alleen de locatie van de binaire (in feite maken whereis werken zoals die ) met de-b (binaire) optie.

whereis -b diff

whereis alleen rapporten over de locatie van het uitvoerbare bestand.

Om het zoeken te beperken om alleen op de man pagina ‘ s met de-m (handmatig) optie. Om het zoeken te beperken om alleen op de source-code van bestanden gebruik de -s (bron) optie.

Om de locaties die whereis zoekt door gebruik van de-l (locaties) optie.

whereis -l

De locaties zijn weergegeven.

Nu we weten wat de locaties whereis zullen zoeken, die we kunnen, moeten we kiezen, de zoekopdracht beperken tot een specifieke locatie of groep van locaties.

De -B (binaire lijst) optie beperkt u het zoeken naar het uitvoerbare bestanden aan de lijst met paden die op de commando-regel. U moet ten minste één locatie voor whereis om doorheen te zoeken. De -f (bestand) optie wordt gebruikt om het signaal van het einde van de locatie laatst het begin van de bestandsnaam.

whereis -B /bin/ -f chmod

whereis ziet in het enkele plaats vroegen we om doorheen te zoeken. Dat gebeurt te zijn waar het bestand zich bevindt.

U kunt ook gebruik maken van de optie-M (handmatige lijst) optie voor het beperken zoekt man pagina ‘ s om de paden die u op de opdrachtregel. De -S (source list (bron overzicht) optie kunt u de zoekopdracht beperken om de broncode-bestanden op dezelfde manier.

Het whatis Commando

Het whatis commando wordt gebruikt om snel te zoeken in de man (manual) pagina ‘ s. Het biedt een volledige lijn samenvattende beschrijvingen van de term die u hebt gevraagd, op te zoeken.

Laten we beginnen met een eenvoudig voorbeeld. Hoewel het lijkt op het uitgangspunt van diep-filosofische debat, we zijn gewoon vragen whatis om ons te vertellen wat de term “man” betekent.

whatis man

whatis vindt twee bijbehorende beschrijvingen. Het drukt een korte beschrijving voor elke wedstrijd. Het bevat ook een lijst met genummerde sectie van de handleiding bevat een volledige beschrijving.

Om de handleiding te openen op het gedeelte dat beschrijft dat het man commando, gebruik je het volgende commando:

man 1 man

De handleiding wordt geopend in paragraaf man(1), op de pagina voor de mens.

Om de handleiding te openen in hoofdstuk 7, op de pagina waarin wordt ingegaan op de macro ‘s die u kunt gebruiken voor het genereren van man-pagina’ s, gebruik je dit commando:

man 7 man

De man pagina voor de man macro ‘ s weergegeven voor u.

Zoeken In Specifieke Secties van de Manual

De -s (sectie) – optie wordt gebruikt om de zoekopdracht te beperken tot de onderdelen van de handleiding waarin u geïnteresseerd bent. De whatis zoeken beperkt tot hoofdstuk 7 van de handleiding en gebruik de volgende opdracht. Let op de aanhalingstekens rond het sectie nummer:

whatis -s “7” man

De resultaten alleen betrekking hebben op hoofdstuk 7 van de handleiding.

Met behulp van whatis Met Jokertekens

U kunt jokertekens gebruiken met whatis. U moet gebruik maken van de -w (wildcard) optie om dat te doen.

whatis -w char*

De resultaten worden vermeld in het terminal-venster.

De apropos Commando

De apropos commando is vergelijkbaar met whatis, maar het heeft een paar meer toeters en bellen. Er wordt gezocht in de man pagina titels en één lijn beschrijvingen op zoek naar de zoekterm. Het bevat de bijpassende man pagina beschrijvingen in het terminal-venster.

Het woord apropos betekent “in verband met” of “over” en het commando apropos heeft zijn naam aan deze. Om te zoeken naar alles wat gerelateerd is aan de groepjes de opdracht, wij kunnen dit commando gebruiken:

apropos groepen

apropos overzicht gegeven van de resultaten naar het terminal venster.

Het Gebruik Van Meer Dan Één Zoekterm

U kunt gebruik maken van meer dan één zoekterm op de commando-regel. apropos zoekt man pagina ‘ s bevatten een van de zoektermen.

apropos chown chmod

De resultaten worden weergegeven als voorheen. In dit geval is er één vermelding voor elk van de zoektermen.

Met Behulp Van Exacte Matches

apropos terug man pagina ‘ s die de zoekterm bevatten, zelfs als de termijn wordt in het midden van een woord. Om apropos alleen exact overeenkomt met de zoekterm, gebruik je de-e (exacte) optie.

Om dit te illustreren, gebruiken we apropos met grep als zoekterm.

apropos grep

Er zijn vele resultaten voor deze, waaronder veel waar grep is opgenomen in een ander woord, zoals bzfgrep.

Laten we dat nog eens proberen en het gebruik van de -e (exacte) optie.

apropos -e grep

We hebben één resultaat voor deze tijd, voor wat we waren eigenlijk op zoek naar.

Het Afstemmen Van Alle Zoektermen

Zoals we eerder al zagen, als u meer dan één zoekterm apropos zoekt man pagina ‘ s bevatten een zoekterm in. Kunnen We dat veranderen van gedrag met behulp van de-een (en) optie. Dit maakt apropos selecteren alleen de wedstrijden die alle zoek keer in hen.

Laten we proberen de opdracht zonder de -a optie, zodat we kunnen zien wat de resultaten apropos geeft.

apropos crontab cron

De resultaten bevatten de man pagina ‘ s die overeenkomen met de ene of de andere van de zoektermen.

Nu gebruiken we de-a optie.

apropos -van een crontab cron

Deze keer is dat de resultaten worden teruggebracht tot deze die beide zoektermen.

Nog Meer Opties

Al deze commando ‘s hebben meer opties, een aantal van hen veel meer opties en u wordt aangemoedigd om, lees de man pagina’ s voor de opdrachten die we besproken hebben in dit artikel.

Hier is een korte samenvatting voor elke opdracht:

  • zoeken: Biedt een feature rijke en gedetailleerde zoekfunctie voor het zoeken naar bestanden en mappen.
  • zoeken naar: Biedt een snelle database-gedreven zoeken naar programma ‘s en commando’ s.
  • waar: Zoekt de $PATH op zoek naar uitvoerbare bestanden
  • whereis: Zoekt de $PATH op zoek naar uitvoerbare bestanden, man pagina ‘ s en broncode.
  • whatis: Zoekt de man op één lijn beschrijvingen voor overeenkomt met de zoekterm.
  • apropos: Zoekt naar de man pagina met meer kwaliteit dan whatis, overeenkomt met de zoekterm of voorwaarden.

Op zoek naar meer Linux terminal informatie? Hier zijn 37 opdrachten die u moet weten.

GERELATEERD: 37 Belangrijke Linux-Commando ‘ s die U Moet Weten

LEES VERDER

  • “Hoe Ziet u Al Uw Opgeslagen Wi-Fi-Wachtwoorden op Windows 10
  • “Hoe Beengeleiding Hoofdtelefoon Werkt?
  • “Het Gebruik van het Linux-type Opdracht
  • “Het Exporteren en Importeren van Uw Linux-Systemen op Windows 10
  • “DisplayPort 2: Wat is het verschil, en Waarom is Dit belangrijk?