Linux vs Windows vs MacOS для работы. Какой ЛИНУКС выбрать в 2020 для рабочего компьютера?
İçindekiler:
- Grep Komut Sözdizimi
grepdosyalarda bir dize aramak için nasıl kullanılır- Eşleşmeyi Ters Çevir (Hariç Tut)
- Komut Çıktısında Dize Aramak İçin Grep Nasıl Kullanılır
- Yinelemeli Arama
- Yalnızca Dosya Adını Göster
- Büyük / Küçük Harfe Duyarsız Arama
- Tam Kelimeleri Arama
- Satır Numaralarını Göster
- Maçları Say
- Birden Çok Dizgiyi Arama (Desenler)
- Sessiz mod
- Temel Düzenli İfade
- Genişletilmiş Düzenli İfadeler
- Maçtan Önce Satırları Yazdır
- Maçtan Sonra Satırları Yazdır
- Sonuç
“Global düzenli ifade baskısı” anlamına gelen
grep
komutu, Linux'ta en güçlü ve yaygın olarak kullanılan komutlardan biridir.
Grep, bir veya daha fazla girdi dosyasında belirli bir desenle eşleşen satırları arar ve eşleşen her satırı standart çıktıya yazar. Hiçbir dosya belirtilmezse,
grep
genellikle başka bir komutun çıktısı olan standart girişten okur.
Bu öğreticide, pratik örnekler ve en yaygın GNU
grep
seçeneklerinin ayrıntılı açıklamaları ile
grep
komutunun nasıl kullanılacağını göstereceğiz.
Grep Komut Sözdizimi
grep
komutunun nasıl kullanılacağına başlamadan önce, temel sözdizimini inceleyerek başlayalım.
grep
yardımcı programı ifadeleri aşağıdaki formu alır:
grep PATTERN
Köşeli parantez içindeki öğeler isteğe bağlıdır.
-
OPTIONS- Sıfır veya daha fazla seçenek. Grep, davranışını kontrol eden bir dizi seçenek sunar.PATTERN- Arama modeli.FILE- Sıfır veya daha fazla girdi dosyası adı.
Dosyayı arayabilmek için, komutu çalıştıran kullanıcının dosyaya okuma erişimi olmalıdır.
grep
dosyalarda bir dize aramak için nasıl kullanılır
grep
komutunun en temel kullanımı bir dosyada dize (metin) aramaktır.
Örneğin,
bash
dizesini içeren
/etc/passwd
dosyasındaki satırları görüntülemek için aşağıdaki komutu kullanabilirsiniz:
grep bash /etc/passwd
Çıktı şöyle görünmelidir:
root:x:0:0:root:/root:/bin/bash linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
Dize boşluk içeriyorsa, tek veya çift tırnak işaretleri içine almanız gerekir:
grep "Gnome Display Manager" /etc/passwd
Eşleşmeyi Ters Çevir (Hariç Tut)
Bir kalıpla eşleşmeyen çizgileri görüntülemek için
-v
(veya
--invert-match
) seçeneğini kullanın.
Örneğin,
/etc/passwd
dosyasındaki
nologin
dizesini içermeyen satırları görüntülemek için aşağıdaki komutu kullanabilirsiniz:
grep -v nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash colord:x:124:124::/var/lib/colord:/bin/false git:x:994:994:git daemon user:/:/usr/bin/git-shell linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
Komut Çıktısında Dize Aramak İçin Grep Nasıl Kullanılır
Giriş dosyalarını belirtmek yerine, başka bir komutun çıktısını
grep
ve daha sonra yalnızca belirli bir desenle eşleşen satırları görüntüleyebilirsiniz.
Örneğin, sisteminizde kullanıcı
www-data
olarak hangi işlemlerin çalıştığını bulmak için aşağıdaki
ps
komutunu kullanabilirsiniz:
ps -ef | grep www-data
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
Komutla çoklu boruları da zincirleyebilirsiniz. Yukarıdaki çıktıda görebileceğiniz gibi,
grep
sürecini içeren bir çizgi de vardır. Bu satırın gösterilmesini istemiyorsanız, çıktıyı aşağıda gösterildiği gibi başka bir
grep
örneğine
grep
.
ps -ef | grep www-data | grep -v grep
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
Yinelemeli Arama
Bir kalıbı özyinelemeli olarak aramak için,
-r
seçeneğini (veya
--recursive
) kullanın. Bu, yinelenen bir şekilde karşılaşılan sembolik bağlantıları atlayarak belirtilen dizindeki tüm dosyaları arar. Tüm sembolik bağlantıları takip etmek için
-R
seçeneğini (veya
--dereference-recursive
) kullanın.
Aşağıdaki örnekte,
/etc
dizini içindeki tüm dosyalarda
linuxize.com
dizesini
linuxize.com
:
grep -r linuxize.com /etc
Komut, dosyanın tam yolu tarafından önekle eşleşen eşleşen satırları yazdırır.
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com;
Bunun yerine
-r
seçeneğini kullanırsanız
-R
seçeneği
grep
tüm sembolik bağlantıları izler:
grep -R linuxize.com /etc
Çıktının son satırına dikkat edin. Nginx'in
sites-enabled
dizindeki dosyalar,
sites-available
dizinin içindeki yapılandırma dosyalarına sembolik olduğundan, bu örnek yukarıdaki örnekte basılmamıştır.
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com; /etc/nginx/sites-enabled/linuxize.com: server_name linuxize.com www.linuxize.com;
Yalnızca Dosya Adını Göster
Varsayılan
grep
çıktısını bastırmak ve yalnızca eşleşen deseni içeren dosyaların adlarını yazdırmak için
-l
(veya -
--files-with-matches
) seçeneğini kullanabilirsiniz.
Örneğin, geçerli çalışma dizininde
.conf
ile biten tüm dosyaları aramak ve yalnızca
linuxize.com
türünü içeren dosyaların adlarını yazdırmak için:
grep -l linuxize.com *.conf
Çıktı şöyle görünecektir:
tmux.conf haproxy.conf
-l
seçeneği genellikle
-R
özyinelemeli seçenekle birlikte kullanılır:
Büyük / Küçük Harfe Duyarsız Arama
Varsayılan olarak,
grep
komutu büyük / küçük harfe duyarlıdır. Bu, büyük ve küçük harf karakterlerine farklı davranıldığı anlamına gelir.
Arama yaparken büyük / küçük harfleri yoksaymak için
-i
seçeneğini (veya
--ignore-case
) kullanın.
Örneğin, herhangi bir seçenek olmadan
Zebra
ararken, aşağıdaki komut herhangi bir çıktı göstermez, yani eşleşen satırlar vardır:
grep Zebra /usr/share/words
Ancak,
-i
seçeneğini kullanarak büyük / küçük harf duyarlı olmayan bir arama yaparsanız, hem büyük hem de küçük harflerle eşleşir:
grep -i Zebra /usr/share/words
“Zebra” belirtilmesi, “zebra”, “ZEbrA” ya da o dizenin büyük ve küçük harflerinin herhangi bir kombinasyonuyla eşleşir.
Tam Kelimeleri Arama
“Gnu” ararken,
grep
ayrıca “gnu” nun “cygnus” veya “magnum” gibi daha büyük sözcüklerle gömülü olduğu satırları da yazdıracaktır.
grep gnu /usr/share/words
cygnus gnu interregnum lgnu9d lignum magnum magnuson sphagnum wingnut
Yalnızca belirtilen dizenin tam bir kelime olduğu satırları döndürmek için (sözcük olmayan karakterlerle çevrelenir),
-w
(veya
--word-regexp
) seçeneğini kullanın.
az
,
AZ
ve
0-9
) ve alt çizgileri (
_
) içerir. Diğer tüm karakterler sözcük olmayan karakterler olarak kabul edilir.
grep -w gnu /usr/share/words
Satır Numaralarını Göster
Bir kalıpla eşleşen bir dize içeren satırların sayısını göstermek için
-n
(veya
--line-number
) seçeneğini kullanın. Bu seçenek kullanıldığında,
grep
, eşleşmeleri bulunduğu satır numarasının önüne eklenmiş standart çıktıya yazdıracaktır.
Örneğin,
/etc/services
dosyasından eşleşen satır numarası ile ön ekli
bash
dizesini içeren satırları görüntülemek için aşağıdaki komutu kullanabilirsiniz:
grep -n 10000 /etc/services
Aşağıdaki çıktı, eşleşmelerin 10423 ve 10424 satırlarında bulunduğunu göstermektedir.
10423:ndmp 10000/tcp 10424:ndmp 10000/udp
Maçları Say
Standart çıkışa uygun sayıda satır yazdırmak için
-c
(veya
--count
) seçeneğini kullanın.
Aşağıdaki örnekte,
/usr/bin/zsh
olan hesapların sayısını kabuk olarak sayıyoruz.
grep -c '/usr/bin/zsh' /etc/passwd
Birden Çok Dizgiyi Arama (Desenler)
OR operatörü
|
.
Varsayılan olarak
grep
, kalıbı
|
gibi meta karakterlerin bulunduğu temel bir normal ifade olarak yorumlar. özel anlamlarını yitirir ve ters eğik sürümleri kullanılmalıdır.
Aşağıdaki örnekte Nginx günlük hatası dosyasında
fatal
,
error
ve
critical
kelimelerin tüm örneklerini araştırıyoruz:
grep 'fatal\|error\|critical' /var/log/nginx/error.log
grep -E 'fatal|error|critical' /var/log/nginx/error.log
Sessiz mod
-q
(veya
--quiet
)
--quiet
terminale bir şey
--quiet
söyler (standart çıktı). Bir eşleşme bulunursa, komut
0
durumuyla çıkar. Bu, bir dosyanın bir dize içerip içermediğini kontrol etmek ve sonuca bağlı olarak belirli bir eylemi gerçekleştirmek istediğiniz kabuk komut dosyalarında
grep
kullanırken yararlıdır.
Aşağıda,
if
ifadesinde bir test komutu olarak sessiz modda
grep
kullanma örneği:
if grep -q PATTERN filename then echo pattern found else echo pattern not found fi
Temel Düzenli İfade
GNU Grep, Temel ve Genişletilmiş olmak üzere iki normal ifade özellik kümesine sahiptir. Varsayılan olarak
grep
, kalıbı temel bir normal ifade olarak yorumlar.
Temel normal ifade modunda kullanıldığında, meta karakterler dışındaki diğer tüm karakterler aslında kendileriyle eşleşen normal ifadelerdir. Aşağıda en sık kullanılan meta karakterlerin bir listesi verilmiştir:
-
Satırın başlangıcındaki ifadeyle eşleştirmek için
^(düzeltme) sembolünü kullanın. Aşağıdaki örnekte,^kangaroodizesi yalnızca bir satırın en başında gerçekleşirse eşleşir.grep "^kangaroo" file.txtSatırın sonundaki ifadeyle eşleşmek için
$(dolar) sembolünü kullanın. Aşağıdaki örnekte,kangaroo$dizesi yalnızca satırın en sonunda gerçekleşirse eşleşir.grep "kangaroo$" file.txtKullanın
.(nokta) sembolü. Örneğin,kanile başlayan ve iki karakter içeren ve dizerooile biten herhangi bir şeyi eşleştirmek için aşağıdaki deseni kullanabilirsiniz:grep "kan..roo" file.txtkullanım
(köşeli parantez), köşeli parantez içindeki herhangi bir tek karakterle eşleşecek şekilde. Örneğin,acceptveya “accentiçeren satırları bulun, aşağıdaki deseni kullanabilirsiniz:grep "accet" file.txtkullanım
(köşeli parantez), köşeli parantez içindeki herhangi bir tek karakterle eşleşecek şekilde. Aşağıdaki desen,coca,cobaltvb. Gibico(any_letter_except_l)aiçeren herhangi bir dizgi kombinasyonuyla eşleşir, ancakcolaiçeren satırlarla eşleşmez,grep "coa" file.txt
Bir sonraki karakterin özel anlamından kaçmak için
\
(ters eğik çizgi) sembolünü kullanın.
Genişletilmiş Düzenli İfadeler
Deseni genişletilmiş normal ifade olarak yorumlamak için
-E
(veya
--extended-regexp
) seçeneğini kullanın. Genişletilmiş düzenli ifadeler, tüm temel meta karakterlerin yanı sıra daha karmaşık ve güçlü arama kalıpları oluşturmak için ek meta karakterleri içerir. Aşağıda bazı örnekler verilmiştir:
-
Belirli bir dosyadaki tüm e-posta adreslerini eşleştirin ve çıkarın:
grep -E -o "\b+@+\.{2, 6}\b" file.txtBelirli bir dosyadaki tüm geçerli IP adreslerini eşleştirin ve çıkarın:
grep -E -o '(25|2|??)\.(25|2|??)\.(25|2|??)\.(25|2|??)' file.txt
-o
seçeneği yalnızca eşleşen dizeyi yazdırmak için kullanılır.
Maçtan Önce Satırları Yazdır
Çizgileri eşleştirmeden önce belirli sayıda satırı yazdırmak için
-B
(veya
--before-context
) seçeneğini kullanın.
Örneğin, satırları eşleştirmeden önce beş satır ara bağlamı görüntülemek için aşağıdaki komutu kullanırsınız:
Maçtan Sonra Satırları Yazdır
Satırları eşleştirdikten sonra belirli sayıda satırı yazdırmak için
-A
(veya
--after-context
) seçeneğini kullanın.
Örneğin, satırları eşleştirdikten sonra beş satır sonu bağlamı görüntülemek için aşağıdaki komutu kullanırsınız:
Sonuç
grep
komutu, dosyaların içinde bir desen aramanıza olanak tanır. Bir eşleşme bulunursa, grep belirtilen deseni içeren satırları yazdıracaktır.
Grep Kullanım Kılavuzu sayfasında Grep hakkında öğrenilecek çok şey var.
grep terminaliMetin Dosyaları Bilgi Bul Dosya Dosyaları Lite
Dizin Dosya Arama Kelimeler Lite kendi Google gibi… Ancak birçok metin dosyaları için Sabit diskinizde.
İNcelemenin bir zevkini sunan zarif bir metin editörüdür. İnceleme: Sublime Text 2, özel bir arayüz ve metin editörü hassasiyetleriyle, Sublime ile
Kullanmaktan keyif alan bir rafine metin editörüdür. Metin 2, tanıdıklığı rahatlık ve hız ile ödüllendiren parlak bir düzenleme deneyimi sunar.
Ms kelimesinde sözcükten sonra metin dizesi eklemek için bul ve değiştir seçeneğini
Bir sözcüğün ardından bir metin dizesi eklemek ve hızlı ve daha iyi arama yapmak için Microsoft Word'deki bul ve değiştir aracını kullanabileceğinizi biliyor muydunuz? Nasıl olduğunu gör.







