Ting du ikke kan gjøre med et GUI: Finne ting på Linux

Hva er bedre, et grafisk grensesnitt eller Linux kommandolinjen? Begge to. De blander sømløst på Linux, slik at du ikke trenger å velge. En god grafisk brukergrensesnitt (GUI) har en logisk, ryddig flyt, hjelper guide deg til å gjøre de riktige kommando valg, og er rimelig rask og effektiv. Siden dette beskriver et mindretall av alle GUI, jeg bor fortsatt på kommandolinjen mye. CLI har tre fordeler: det er raskere for mange operasjoner, er det prosedyre, og det er mange ganger mer fleksibel. Linux er Unix arv betyr at du kan sette sammen kommandoer på utallige måter, slik at de gjør akkurat det du vil.

Her er en samling av noen av mine favoritt funn--ting kommandolinje besvergelser.

filoperasjoner

I grafiske fil ledere som Dolphin og Nautilus du kan høyreklikke på en mappe og velg Egenskaper for å se hvor stort det er. Men selv på min quad-core super-duper-systemet det tar tid, og for meg er det raskere å skrive DF eller dh kommandoer enn å åpne en filbehandler, navigere til en katalog, og deretter spisse-clicky. Hvor stort er mitt hjemmeområde?

 $ du -hs ~ 748G /home /Carla 

Hvor mye plass det er igjen på harddisken eller stasjoner? Denne spesielle besvergelse er en av mine favoritter fordi den bruker egrep å utelukke midlertidige kataloger, og viser filsystem typer:

 $ df -hT | egrep -i " fil | ^ /" Filesystem Type Størrelse brukt Nytte Bruk% Montert på /dev /sda2 ext4 51g 3,6 g 32G 11% //dev /sda3 ext4 136g 2,3 g 127 g 2% /home /dev /sda1 ext3 244G 114g 70G 63% /home /Carla /photoshare /dev /sdb2 ext3 54G 5.8G 45G 12% /home /Carla /musikk 

Hva filene ble endret på denne dagen, i den gjeldende katalogen?

 $ ls -lrt | awk '{print $ 6 " " $ 7 " " $ 9} | grep 'Kan 22' Kan 22 file_a.txtMay 22 file_b.txt 

Ved hjelp av en enkel grep søke viser fullstendig filinformasjon:

 $ ls -lrt | grep 'Kan 22' -rw-r - r-- 1 Carla Carla 383244 22 mai 20:21 file_a.txt-rw-r - r-- 1 Carla Carla 395709 22 mai 20:23 file_b.txt 

eller alle filene fra en tidligere år:

ls -LR | grep 2006

Kjør komplekse kommandoer én del om gangen for å se hvordan de fungerer; for eksempel starte med ls -lrt, så ls -lrt | awk '{print $ 6 " " $ 7 " " $ 9}, og så videre. For å unngå problemer med store og små case filnavn, bruk grep-for en case-insensitive søk.

Lyst til å sortere filer etter opprettelsesdato? Du kan ikke i Linux, men du kan i FreeBSD. Ønsker å spesifisere en annen mappe? Bruk ls -lrt Katalog.

Hvilke filer ble endret i løpet av de siste tre minuttene? Dette er rask sleip måte å se hva som er endret etter at endringer i systemet:

finne /-mmin -3

Du kan angi en tidsperiode, som hva endret i gjeldende mappe mellom tre- og seks minutter siden?

finne. -mmin 3 -mmin -6

prikk betyr gjeldende katalog.

Trenger du å spore opp diskplass svin? Dette er trolig en av de ti beste oppgavene selv i denne tid med terabyte-harddisker. Dette viser de fem største kataloger eller filer i den navngitte katalogen, inkludert øverste nivå katalogen:

 $ du -a Katalog | sorter -NR | head -n 5119216208 .55389884 ./photos40650788 ./Photos37020884 ./photos/200720188284 ./carla 

Utelat -a muligheten til å liste bare kataloger.

Biggest filer

Det er vel verdt å bli kjent med finne kommandoen fordi den kan gjøre alt unntatt lage godt øl. Denne kjekke besvergelse finner de fem største filer på systemet ditt, og sorterer dem fra største til minste, i byte:

 # finne /-type f -printf '% s% s \\ n' | sort -NR | hode -51351655936 /home/carla/sda1/carla/.VirtualBox/Machines/ubuntu-hoary/Snapshots/{671041dd-700c-4506-68a8-7edfcd0e3c58}.vdi1332959240 /home/carla/sda1/carla/51mix.wav1061154816 /proc /kcore962682880 /home/carla/sda1/Photos/2007-sept-montana/video_ts/vts_01_4.vob962682880 /home /Carla /sda1 /bilder /2007/2007-sept -montana /VIDEO_TS /vts_01_4.vob 

Du trenger ikke å inkludere /proc pseudo-filsystem, siden det opptar ingen plass på harddisken. Bruk wholename og sviske alternativer for å utelukke det:

finne /-wholename '/proc' -prune -o -type f -printf '% s% s \\ n' | sort -NR | hodet -5

Det er potensial fikser, og det er at finne vil recurse inn alle monterte filsystemer, inkludert eksterne filsystemer. Hvis du ikke vil at den skal gjøre dette så legger -xdev alternativ:

finne /-xdev -wholename '/proc' -prune -o -type f -printf '% s% s \\ n' | sort -NR | hode -5

En annen potensiell fikser med -xdev er å finne bare vil søke i filsystemet kommandoen kjøres fra, og ingen andre filsystem mounts, selv ikke lokale. Så hvis filsystemet er spredt over flere partisjoner eller harddisker på én datamaskin, og du ønsker å søke dem alle, ikke bruk -xdev. Jeg er sikker på at det er en smart måte å skille mellom lokale og eksterne filsystemer, og når jeg finne ut av det vil jeg dele den.

La oss nå sette sammen en fantastisk funn besvergelse for å konvertere disse store ufordøyelige blobs av byte inn i en fin lesbart format:

 # finne /-type f -print0 | xargs -0 ls -s | sorter -rn | awk '{size = $ 1/1024; printf ("% DMB% s \\ n ", størrelse, $ 2);} | hode -51290Mb /home/carla/sda1/carla/.VirtualBox/Machines/ubuntu-hoary/Snapshots/{671041dd-700c-4506-68a8-7edfcd0e3c58}.vdi1272Mb /home/carla/sda1/carla/51mix.wav918Mb /home/carla/sda1/Photos/2007-sept-montana/video_ts/vts_01_4.vob918Mb /home /Carla /sda1 /bilder /2007/2007-sept-montana /VIDEO_TS /vts_01_4.vob918Mb /home/carla/sda1/Photos/2007-sept-montana/video_ts/vts_01_1.vob 

Ja, jeg vet, kan du gjøre mange av disse tingene i grafiske søkeapplikasjoner. For meg de er treg og clunky, og det er mye raskere å spille søk fra min Bash historie, eller kopiere dem fra min jukselapp. Jeg selv har noen alias i Bash, for eksempel jeg bruker det siste lang find besvergelse mye. Så jeg har denne oppføringen aliaser til find5 i min .bashrc:

alias find5 = 'finne /-wholename' /proc '-prune -o -wholename' /sys '-prune -o -type f -print0 | xargs -0 ls -s | sorter -rn | awk '{size = $ 1/1024; printf ("% DMB% s \\ n ", størrelse, $ 2);} | hode -5 '

I dette eksempelet har jeg utelukket både /proc og /sys kataloger.

Fast Lokal Command

Finner er veldig fort fordi det skaper en database over alle dine filnavn. Du må oppdatere den med jevne mellomrom, og mange distroer gjør dette automatisk. For å oppdatere den manuelt bare kjøre updatedb kommandoen som root. finne og grep er kraftig sammen. For eksempel finner alle JPG-filer som er 1024 piksler bred:

finne * .jpg | grep 1 024

Søk etter bildefiler i tre ulike formater for et program:

finne klør-post | grep -dvs " (jpg | gif | ico) "

Vel her er vi på slutten allerede! Takk for lesing, og ta kontakt med den fine mannen sidene for disse kommandoene for å lære hva de ulike alternativene mener. Anmeldelser