GNS Network

SEO için Komut Satırı Kılavuzu

SEO için Komut Satırı Kılavuzu

Temel bir beceri olmasa da, SEO'da kodlamanın yaygınlaşması, görevlerin tamamlanma hızı üzerinde harika bir etkiye sahip oldu. Bununla birlikte, kodlamayı öğrenmeden önce ustalaşmaya değer bazı temel beceriler vardır. Bunu yapmak, yolculuğunuza başladığınızda kendinizi çok daha güvende hissetmenizi sağlayacaktır - ve bazı durumlarda, bu yaklaşımları kullanarak görevleri tamamlamanın yine de daha kolay olduğunu göreceksiniz! Bu kılavuzda, bir komut satırı arabirimi (CLI) hızlandırılmış kursu alıyoruz.

Komut Satırı SEO'da Nasıl Yardımcı Olur?

SEO için komut satırını kullanmak size daha kolay yardımcı olabilir:

  • Verileri işlemek istediğinizde dosya yapısını tanımlayın.
  • Site bir servis çalışanı kullandığında durum kodunu doğrulayın.
  • Büyük dosyaları daha yönetilebilir parçalara ayırın.
  • Verileri doğrudan bir sunucuya indirin veya aktarın.
  • Büyük bir dosyada belirli bir karakter dizisini arayın.
  • Verileri alanlara göre dilimleyin ve yeni bir dosyaya çıktı alın.
  • Ve aşağıda öğreneceğiniz çok daha fazlası.

Spesifik olarak, bir Grafik Kullanıcı Arayüzüne (GUI) güvenmeden bir dosya sisteminde nasıl gezinileceğini ve dosya ve dizinlerin nasıl oluşturulacağını ve değiştirileceğini, verilerin nasıl değiştirileceğini ve hatta web ile nasıl etkileşime girileceğini ele alacağız. Şunlar için komutları öğreneceksiniz:

  • Dizin Değiştirme
  • Dosyaları Listeleme
  • Dosya
  • Dizin Oluşturma
  • Dosyaları ve Dizinleri Taşıma
  • Dosyaları ve Dizinleri Kaldırma
  • Dokunma
  • kopyala
  • Kuyruk
  • Birleştir (Kedi)
  • Sözcük sayısı
  • Grep
  • Çeşit
  • Bölmek
  • Kesmek
  • Akış Düzenleyici
  • awk
  • kıvırmak
  • Wget
  • Açık

Komut Satırı nedir?

Terminal, komut istemi veya konsol olarak da bilinen komut satırı arabirimi, bir bilgisayarın işletim sistemiyle (OS) etkileşim kurmak için kullanılabilen metin tabanlı bir arabirimdir. CLI'ler, grafik arayüzlerin tanıtımından önce gelir. Bu, bir bilgisayarın dosyalarında gezinmeniz ve bunları etkinleştirmeniz için komutların yazılması gerektiği çok uzak olmayan geçmişimizin yaşayan bir kalıntısıdır. Peki, şimdi SEO için bu arkaik etkileşim yönteminde ustalaşmayı öğrenmekten ne gibi olası avantajlar elde edilebilir? Adil soru! GUI yerine komut satırı kullanmanın aşağıdakiler de dahil olmak üzere kesin avantajları vardır:

  • Hız: Bir GUI, işleri daha kullanıcı dostu hale getirmek için bir CLI'nin üzerine oturan bir sunum katmanıdır. Sonuç olarak bu, hiçbir zaman bu kadar hızlı olmayacağı ve görevlerin yerine getirilmesinin önemli ölçüde daha uzun sürebileceği anlamına gelir.
  • Gereklilik: Bazen uzak bir sunucuyla yalnızca bir CLI aracılığıyla etkileşim kurmak mümkündür. Aynısı, bir GUI oluşturmak için fazladan çaba sarf etmediğiniz sürece, komut dosyalarını çalıştırmak için de geçerlidir.

Komut Satırına Erişim

Komut satırına erişme şekliniz büyük ölçüde işletim sisteminize bağlıdır. Mac'te komut satırına terminal denir ve bunu Applications > Utilities altında bulabilirsiniz . Windows'ta komut satırı, komut istemidir ve gezinme çubuğunda cmd aratılarak bulunabilir. Windows ve Mac/Linux'un birçok komutta hem ad hem de işlevsellik açısından farklılık gösterdiğine dikkat etmek önemlidir . Bunun nedeni, Mac ve Linux'un her ikisinin de UNIX tabanlı işletim sistemleri olması, oysa Windows'un… iyi… Windows olmasıdır. Komut satırı Windows eşdeğerinden çok daha gelişmiş olduğundan ( PowerShell kullanmadığınız sürece ) UNIX'e odaklanacağız, çünkü Windows her zaman yoğun olarak GUI'sine odaklanmıştır. Windows kullanıcısıysanız, takip etmek için şunlardan birini yapmanız gerekir:

  • Linux için Windows Alt Sistemini Etkinleştir .
  • Git Bash veya Cgywin gibi bir emülatör kurun.

Komut Satırı ve Kabuk Arasındaki Fark Nedir?

Açıklamaya değer son bir nüans, komut satırı ve kabuk arasındaki farktır. Komut satırı esasen komut göndermek ve çıktıyı görüntülemek için kullanılan bir arabirimdir, oysa kabuk arkasında oturan ve komutları işleyen yorumlayıcıdır. UNIX'in bir dizi farklı kabuğu vardır, Bash en yaygın kullanılanıdır (ve tarihsel olarak, aynı zamanda, Catalina'nın piyasaya sürüldüğü 2019'da Zsh'a geçilene kadar macOS'ta varsayılan kabuktur).

Dosyalarda ve Dizinlerde Gezinme

Windows olmayan bir CLI'yi ilk kez yüklemek göz korkutucu olabilir. Tamamen metin tabanlı olmasının yanı sıra, mevcut çalışma dizininiz, yani şu anda bulunduğunuz yer hakkında sınırlı bilgi sağlar. Bunu bulmak için girin pwd(çalışma dizinini yazdırın).


Benim durumumda, yaklaşık işaretiyle (~) gösterilen ana dizinimin /c/Users/WilliamN.BV olduğunu görebilirsiniz. Komut dosyalarını ve komut satırı yardımcı programlarını çalıştırmayı kolaylaştırmak için, ana dizininizdeki alt dizinlerde dosyaları depolamak en iyisidir. Bu, ihtiyaç duyduğunuz dosyalara gitmeyi mümkün olduğunca kolay hale getirir.

Dizin Değiştirme

Cd (dizini değiştir) en sık kullanılan komutlardan biridir ve hem Windows hem de Unix işletim sistemlerinde evrenseldir. Geçerli dizininizdeki bir dizine gitmek için şunu yazmanız yeterlidir:

cd [dizin]

Bunun altında bulunan bir alt dizine erişmek için dosya yolunu girin:

cd [dizin]/[alt dizin]

Daha önce bulunduğunuz dizine geri dönmeniz mi gerekiyor? Kısa çizgi kullanarak ona gidin:

cd -

Veya bir tilde girerek ana dizininize gidin:

cd ~

UNIX tabanlı bir işletim sisteminde, içinde bulunduğunuz dizin tek bir nokta ile temsil edilir, bu nedenle belirtme cd .işlemi çalışır ancak hiçbir şey yapmaz. Ancak iki nokta ana dizini temsil eder ve mevcut konumunuzun üzerindeki dizinlere verimli bir şekilde gitmek için kullanılabilir. Geçerli dizininizin üzerindeki dizine gidin:

cd..

Geçerli dizininizin üzerinde iki düzey gezinin:

cd ../../

Yukarıdaki dizinde bir dizine gidin:

cd ../[dizin]

Örnek olarak, /c/Users içinde bir “Public” klasörüm var ve giriş yaparak bu klasöre gidebilirim. cd ../Public.


Unutulmaması gereken son bir şey, cd kullanılırken yoldaki boşlukları olan dizinlerden kaçılması gerektiğidir. Bunu başarmanın en kolay yolu, klasörü tırnak işaretleri veya kesme işaretleri içine almaktır.

cd 'dizinim'

Dosyaları Listeleme

Şimdiye kadar, dizin ağacımızda nerede olduğumuzu bulmayı ve etrafında gezinmeyi başardık, peki ya belirli dosya ve dizinlerin nerede olduğunu bilmiyorsak? Bu gibi durumlarda list komutunu kullanmamız gerekir.

ls [dizin]


Tam biçimlendirme, kullandığınız komut satırı yorumlayıcısına bağlı olarak değişecektir, ancak neredeyse evrensel olarak farklı dosya türleri için bazı farklılıklar vardır. Yukarıdaki resimde görebileceğiniz gibi, Git Bash'de dizinler mavidir ve sonunda bir eğik çizgi bulunur. Bir alt dizinin içeriğini listeleyin:

ls [dizin]/[alt dizin]

Yalnızca geçerli dizininizdeki dizinleri listeleyin:

ls -d */

Bir dizinin ve alt dizinlerinin içeriğini listeleyin:

ls *

Kalıp eşleştirmeyi kullanarak belirli bir dosya türünü listeleyin:

ls *.[dosya uzantısı]

Seçenekler

Bu noktaya kadar, çalıştırdığımız komutlar nispeten basit olduğundan, minimum isteğe bağlı argüman kullanımıyla idare ettik. Ancak list gibi birçok komut, bir komutun nasıl çalıştığını değiştirmek için belirtilebilecek çok sayıda değerli seçeneğe sahiptir. Bunları bir komut için bulmanın en kolay yolu şunu yazmaktır:

[komut] --help

ls için faydalı seçenekler şunları içerir: Tüm gizli dosyaları göster (adın önünde bir nokta bulunan):

ls -a

Dosyaların boyutunu görüntüleyin:

ls -s

Dosyaları uzun liste biçiminde görüntüleyin (dosya adları, izinler, sahip, boyut ve değiştirilme tarihi/zamanı):

ls -l

Dosya boyutuna göre sırala:

ls -S

Değişiklik zamanına göre sırala:

ls -t

Uzantıya göre sırala:

ls -X

İsterseniz, bunları tekil bir argümanda birleştirerek veya katları belirterek seçenekleri yığmak da mümkündür. Örneğin, aşağıdakilerden herhangi birinin girilmesi, dosyaları - gizli dosyalar da dahil olmak üzere - boyuta göre sıralanmış uzun listeleme biçiminde görüntüler.

ls -aSl

ls -a -S -l


File

Uzun listeleme biçimindeki ls, tek tek dosyalar hakkında üst düzey bilgi sağlarken, dosya türü hakkında ayrıntılı bilgi sağlamaz. Dosya komutunun geldiği yer burasıdır. Bir dosyanın insan tarafından okunabilir türünü bulun:

file [dosya adı]

Bir klasörün tamamı için dosya türlerini bulun:

file *

Belirli bir uzantı için dosya türünü bulun:

file *.[dosya uzantısı]

Bir dosyanın mime türünü bulun:

file -i [dosya adı]

Dosya komutu için iyi bir SEO kullanım örneği, CSV'lerin beklenen biçimde olup olmadığını belirlemektir. CSV'leri Excel'de açmak ve kaydetmek, özel karakterlerle hasara neden olabilir. Dosyayı kullanarak dosyaların UTF-8, ASCII veya başka bir şeyle kodlanıp kodlanmadığını belirlemek kolaydır.

Oluşturma ve Düzenleme

Dizin Oluşturma

Bir GUI ile metin tabanlı bir arayüz arasında sürekli geçiş yapmak acı verici olabilir. Neyse ki, bunun için de bir komut var. Bir dizin oluşturun:

mkdir [yeni dizin]

Birden çok dizin oluşturun:

mkdir {bir, iki, üç}

Bir üst dizin ve alt dizinler oluşturun:

mkdir –p dizin/dizin-2/dizin-3

-p seçeneği, kullanıcıların bir dizin yapısı tanımlamasını sağlar ve buna uyması için gereken tüm eksik klasörleri oluşturur. Örnek olarak, bazı sıkıştırılmış günlük dosyalarını indirmek için bir dizin, sıkıştırılmamış günlükler için ikinci bir dizin ve Googlebot istekleri için üçüncü bir klasör oluşturmak istersek şunları çalıştırabiliriz:

mkdir -p logs-new/uncompressed_logs/googlebot_requests


Yukarıdaki resimde oluşturulan dizin ağacı yapısını görüntülemek için Ls -R logları kullanılmaktadır.

Dosyaları ve Dizinleri Taşıma

Taşı komutu (mv) dosyaları ve dizinleri taşımak için kullanılmasının yanı sıra yeniden adlandırmak için de kullanılır ve bu nedenle daha fazla sinir bozucu tıklamalardan kaçınmayı hatırlamakta fayda var. Bir dosyayı taşıyın:

mv [dosya adı] [dizin]

Dosyayı yeniden adlandır:

mv [dosya1] [dosya2]

Birden çok dosyayı taşıyın:

mv [dosya-1] [dosya-2] [dizin]

Dizini taşı:

mv [dizin-1] [dizin-2]

Belirli bir uzantıya sahip dosyaları taşıyın:

mv *.[dosya uzantısı] [dizin]

Varolan bir dosyanın üzerine yazmadan önce bir bilgi istemi sağlamak için -i parametresini ve bir dosyanın üzerine yazılmasını önlemek için -n parametresini ekleyin. Dosyaları ve klasörleri dizin yapısında yukarı taşımak için daha önce öğrendiğimiz yaklaşık ve nokta operatörleri gibi kısayollardan da yararlanılabilir.

Dosyaları ve Dizinleri Kaldırma

Move komutunun tersi, sözdizimi neredeyse aynı olduğu için hatırlanması kolay olan remove komutudur (rm). Bir dizini kaldır komutu (rmdir) de mevcuttur, ancak bu, yalnızca boş dizinlerde çalıştığı için özellikle yararlı değildir. Bir dosyayı kaldırın:

rm [dosya adı]

Birden çok dosyayı kaldırın:

rm [dosya-1] [dosya-2] [dosya-3]

Belirli bir uzantıya sahip birden çok dosyayı kaldırın:

rm *.[dosya uzantısı]

Boş bir dizini kaldırın:

rm -d [dizin]

Boş olmayan bir dizini ve dosyaları kaldırın:

rm -r [dizin]

Yine, -i parametresi, dosya bazında kaldırmadan önce bir bilgi istemi sağlamak için belirtilebilir. Üç veya daha fazla dosya listeleniyorsa, -i bunu tek bir istemde birleştirir.

Touch

Touch komutu, zaman damgalarını değiştirmek ve boş dosyalar oluşturmak için kullanılabilir. İçeriği olmayan yeni bir dosya oluşturun:

touch [file-name]

Dosyaları son erişim zamanını güncelleyin:

touch -a [file-name]

Dosyaları son değiştirilme zamanını güncelleyin:

touch -m [file-name]

Belirli bir erişim ve değişiklik zamanı ayarlayın:

touch -c -t YYDDHHMM [file-name]


Yukarıda, 15 Aralık 2018'de 22:59'a ayarlanmış örnek bir zaman damgası verilmiştir.

kopyala

UNIX CLI'de, kopya komutu (cp) yalnızca bir dosya veya dizini bir yerden diğerine kopyalamak için kullanılır. Bu, kopya komutunun dosyaları birleştirmek için de kullanılabileceği Windows komut istemine daha aşina olanlar için akılda tutulmaya değer. Bir dosyanın kopyasını oluşturun:

cp [dosya adı] [yeni dosya adı]

Dosyayı dizine kopyalayın:

cp [dosya adı] [dizin adı]

Birden çok dosyayı dizine kopyalayın:

cp [dosya adı] [başka bir dosya adı] [dizin adı]

Tüm dosyaları hedef dizine kopyalayın:

 cp -r [mevcut dizin] [yeni dizin]

Belirli bir uzantıya sahip tüm dosyaları kopyalayın:

cp *.[dosya uzantısı] [dizin adı]

Bir kez daha -i, bir dosyanın üzerine yazılmadan önce bir bilgi istemi sağlamak için kullanılabilir ve -n bunu tamamen önlemek için kullanılabilir.

Görüntüleme ve Manipülasyon

Kuyruk

GUI kullanırken büyük dosyaların yüklenmesi uzun zaman alabilir - eğer yüklenirlerse… Burası, ilk veya sonuncuyu önizlemenize olanak tanıyan head ve tail komutlarının devreye girdiği yerdir! – (n) veri satırları. Bir tür veri manipülasyonu yapmak üzereyseniz ancak üzerinde çalıştığınız dosyanın nasıl yapılandırıldığından emin değilseniz, bu inanılmaz derecede yararlıdır. Bir dosyanın başlangıcını önizleyin:

head [dosya adı]

Bir dosyanın sonunu önizleyin:

tail [dosya adı]

Her iki komut da varsayılan olarak -n seçeneği kullanılarak değiştirilebilen 10 satır veri görüntüler.

head/tail -n 5 [dosya adı]

Kayda değer bir nüans, tail komutunun, verileri sondan ziyade belirli bir satırdan başlayarak yazdıran bir artı seçeneğiyle gelmesidir.

tail +5 [dosya adı]


Cat

cat komutu - concatenate için kısa - dosyaları okumak, birleştirmek ve yazmak için kullanılır. Bir dosyanın içeriğini yazdırın:

cat [dosya adı]

Birden çok dosyayı birleştirilmiş bir dosyada birleştirin:

cat [dosya-1] [dosya-2] [dosya-3] > [birleştirilmiş dosya]

Aynı uzantıya sahip birden çok dosyayı birleştirin:

cat *.[dosya uzantısı] > [birleştirilmiş dosya]

Yukarıda, yeniden yönlendirme operatörü (>), çıktının yeni bir dosya olarak kaydedilmesi (veya mevcut dosyanın üzerine yazılması) gerektiğini belirtir. Bir dosyadaki mevcut verilerin üzerine yazılmasını önlemek için >> belirtin. Yeni bir dosya oluşturmadan iki dosyayı birleştirin:

cat file1 >> file2

Cat komutu için iyi bir SEO kullanım durumu, bağlantı araştırması yaptığınız zamandır. Bir API kullanmıyorsanız, bu, tümü aynı biçime sahip olacak birden çok dışa aktarmanın indirilmesini gerektirecektir. Birleştirmek için, dışa aktarmaları bir klasöre yerleştirin ve uzantıda desen eşleştirmeli bir cat komutu çalıştırın.


Sözcük sayısı

Tek numara bir midilli olmanın ötesinde, word count komutu aynı zamanda karakterlerin ve daha da önemlisi SEO için satırların sayılmasını da destekler. Bir dosyadaki kelime sayısını sayın:

wc -w [dosya adı]

Bir dosyadaki karakter sayısını sayın:

wc -m [dosya adı]

Bir dosyadaki satır sayısını sayın:

wc -l [dosya adı]

Bu noktada, boru komutunu tanıtmak önemlidir. Tek başına kullanmak yerine, birden çok komut, dikey çizgi (|) karakteri kullanılarak birbirine zincirlenebilir ve bu da kullanıcıların daha karmaşık işlemler gerçekleştirmesini sağlar. İyi kullanıldığında, bu çok güçlü olabilir. Temel bir örnek olarak, bir dizindeki CSV dosyalarının sayısını şu şekilde sayabilirsiniz:

ls *.csv | wc -l

Veya birden çok dosyadaki satır sayısını sayın ve birleştirilmiş toplamı listeleyin:

kedi * | wc -l


Yukarıdakiler, 73 milyon satırlık bir veri kümesindeki satır sayısının <20 saniye sürdüğünü gösterir.

Grep

Grep komutu, belirli bir karakter dizisini aramak için kullanılır. Bu, büyük dosyalardan veri çıkarmanın neredeyse günlük bir olay olduğu SEO için inanılmaz derecede faydalıdır. Örnek olarak, günlük dosyalarını ayrıştırırken. Bir desen içeren her satırı (bu durumda Googlebot) bir dosyadan çıkarın:

grep "Googlebot" [dosya adı]

Belirli bir uzantıya sahip birden çok dosyadan bir desen içeren her satırı ayıklayın:

grep "Googlebot" *.[dosya uzantısı]

Belirli bir uzantıya sahip birden çok dosyadan bir desen içeren her satırı ayıklayın ve yeni bir dosyaya yazın:

grep "Googlebot" *.[dosya uzantısı] > [dosya adı]


İlgili olası dosya boyutları nedeniyle, günlükler neredeyse evrensel olarak bir günlük artışlarla depolanır, bu nedenle birden çok dosyada bir grep gerçekleştirmek için kalıp eşleştirmeyi kullanmak çok normaldir. Grep'in bu örnekteki varsayılan davranışı, her satırın önüne dosyanın adını koymaktır.

access.log-20200623 :66.249.73.221 - - [22/Haziran/2020:07:05:46 +0000] "GET / HTTP/1.1" 200 75339 "-" "Googlebot-Image/1.0" - request_time=24142

Bu bilgi, SEO için günlük dosyası analizi yaparken tamamen alakasızdır ve neyse ki -h seçeneği kullanılarak kaldırılabilir.

grep -h "Googlebot" *.[dosya uzantısı] > [işlenmiş dosya]

Boru komutu kullanılarak satır başına birden çok desen eşleşmesi gerçekleştirilebilir. Bunun için iyi bir kullanım örneği, birden fazla alan adına yönelik isteklerin aynı konumda depolanması ve sizin yalnızca bir tane istemenizdir. Belirli bir uzantıya sahip birden çok dosyadan iki desen içeren her satırı ayıklayın ve yeni bir dosyaya yazın:

grep -h "domain.com" | grep "Googlebot" *.[dosya uzantısı] > [işlenmiş dosya]

Bir dosyadaki bir kalıbın oluşumlarını saymak için -c seçeneğini kullanın. Bu gibi olsa dosya başına sayımını yapacak akılda değer taşıyan bulunuyor wc -l. Birden çok dosyadaki toplam eşleşmeleri elde etmek için cat komutuyla birleştirin.

kedi *.[dosya uzantısı] | grep -c "Googlebot"


Desen içermeyen her satırı bir dosyadan çıkarın:

grep -v "pattern" [file-name]

Bir dosyadan bir desen içeren her satırı çıkarın (büyük/küçük harfe duyarlı değildir):

grep -i "pattern" [file-name]

Regex kullanarak bir dosyadan bir desen içeren her satırı ayıklayın:

grep -E "regex-pattern" [file-name]

Sort

Tek başına sınırlı kullanımda sort, çıktıyı alfabetik veya sayısal olarak sıralamak için diğer komutlarla birleştirilebilir. Alfabetik olarak sıralayın ve yeni bir dosyaya çıktı alın:

sort [file-name] > [sorted-file]

Sıralamayı ters çevirin ve yeni bir dosyaya çıktı alın:

sort -r [file-name] > [sorted-file]

Sayısal olarak sıralayın ve yeni bir dosyaya çıktı alın:

sort -n [dosya adı] > [sıralanmış dosya]

n sütununda alfabetik olarak sıralayın (bu örnekte 3) ve yeni bir dosyaya çıktı alın:

sort -k3 [dosya adı] > [sıralanmış dosya]

Birden çok sütun kullanarak sipariş verin ve yeni bir dosyaya çıktı alın:

sort -k[sütun-1],[sütun-2] [dosya adı] > [sıralanmış dosya]

Sıralama, yinelenen satırları kaldırmak için de kullanılabilir:

sort -u [dosya-adı] > [sıralanmış-dosya-benzersiz satırlar]

Veya bir dosya içinde benzersiz satırların bir çetelesini almak için kelime sayısıyla istiflenmiş:

sort -u [dosya adı] | wc -l

Split

Bir şeyi açmakta zorlanıyor musunuz? Split komutu, büyük dosyaları daha yönetilebilir parçalara ayırmak için mükemmeldir. Bir dosyayı daha küçük parçalara ayırın (varsayılan olarak 1000 satır):

split [file-name]

Bir dosyayı belirtilen sayıda satırla daha küçük parçalara ayırın:

split -l[sayı] [dosya adı]

Bir dosyayı belirli sayıda parçaya bölün:

split -n[sayı] dosya adı]

Bir dosyayı belirtilen dosya boyutuyla daha küçük parçalara ayırın:

split -b[bayt] [dosya adı]

Dosyalar ayrıca kilobayt, megabayt ve gigabayt bazında bölünebilir:

split -b 100K [dosya adı] 

split -b 10M [dosya adı] 

split -b 10G [dosya adı]

Yukarıdaki komutlar bir dosyayı bölecek olsa da, dosya uzantısını otomatik olarak korumazlar. Bunu yapmak için --additional-suffixseçeneği kullanın. İşte bu seçeneği kullanarak büyük bir CSV dosyasının 100 MB'lık parçalara nasıl bölüneceğine dair daha pratik bir örnek. İçinde -d seçeneğini de belirledik ve özel bir son ek ekledik. Bu, çıktı dosyalarının alfabetik karakterler yerine 'logs_[sayı]' adlandırma kuralını izleyeceği anlamına gelir.

split -d -b 100M --additional-suffix=.csv logs.csv logs_


Bir komut dosyasını test ederken, bir dosyadan rastgele bir veri örneği almak genellikle yardımcı olur. Ne yazık ki, split komutunun bunun için bir seçeneği yoktur. Bunun yerine shuf kullanın.

shuf -n [sayı] [dosya adı] > [yeni dosya]

Kesmek

Cut, bir girdi dosyasının satırlarının bölümlerine erişmenizi ve verileri yeni bir dosyaya çıkarmanızı sağlar. Baytlara ve karakterlere göre dilimlemek için de kullanılabilse de, SEO için en kullanışlı uygulama verileri alanlara göre dilimlemektir. Dosyayı alana göre dilimleyin:

cut -f [sayı] [dosya adı]

Dosyayı birden çok alana göre dilimleyin:

cut -f [sayı-1],[sayı-2] [dosya adı]

Dosyayı bir dizi alana göre dilimleyin:

cut -f [sayı-1]-[sayı-2] [dosya adı]

Dosyayı bir dizi alana göre dilimleyin (seçilen sayıdan satırın sonuna kadar):

cut -f [sayı]- [dosya adı]

Varsayılan olarak sekme sınırlayıcıyı kullanarak dilimleri kesin, ancak bu -d seçeneği (örneğin boşluk) kullanılarak değiştirilebilir:

cut -d " " -f [sayı] [dosya adı]

Birden çok aralığı birlikte istiflemek de mümkündür. Daha pratik bir örnek sağlamak için, aynı formatı paylaşan birden çok bağlantı dosyasından belirli sütunları çıkarmak istiyorsanız:

cut -d "," -f 1,3-5,13-15 *.csv > cut.csv

Sed (Akış Düzenleyici)

sed komutu, filtreleme, bulma ve değiştirme, ekleme ve silme dahil olmak üzere bir dizi yararlı metin dönüştürmesi gerçekleştirebilir. Bir belgenin ortasındaki çizgileri görüntüleyin (bu, baş ve kuyruk tarafından desteklenmez):

sed -n '[sayı-1],[sayı-2]p' [dosya-adı]

Bir bul ve değiştir ve çıktıyı kaydet:

sed 's/[metin-bul]/[değiştir-ile]/g' [dosya-adı] > [yeni dosya]

Bir bul ve değiştir kaydet yerinde gerçekleştir:

sed -i 's/[metin bul]/[ile değiştir]/g' [dosya adı]

Bir bulma gerçekleştirin, hiçbir şeyle değiştirin ve çıktıyı kaydedin:

sed 's/[metin bul]//g' [dosya adı] > [yeni dosya]

Çıktıyı kaydederek belirli bir desene sahip satırları bulun ve silin:

sed '/[metin bul]/d' [dosya adı] > [yeni dosya]

Çıktıyı kaydederek boş satırları bulun ve silin (Regex kullanarak):

sed '/^$/d' [dosya adı] > [yeni dosya]


Metin satırlarının sonundaki boşlukları silin ve çıktıyı kaydedin:

sed 's/[[:blank:]]*$//' [dosya adı] > [yeni dosya]

Bir dosyada birden çok bul ve değiştir komutunu çalıştırın ve çıktıyı kaydedin:

sed -e 's/[find-text]/[replace-with]/g; s/[find-text-2]/[replace-with-2]/g' [file-name] > [new-file]

awk

Komut satırını kullanarak gerçekten yoğun veri işleme için awk'nin nasıl kullanılacağını öğrenin. Awk, başlı başına bir betik dilidir ve bir dizi farklı dönüşüm yapabilir. Bir sütundaki benzersiz değerleri sayın:

awk -F '[delimiter]'  '{print $[column-number]}' [file-name] | sort | uniq -c

Aşağıda bir günlük dosyasındaki durum kodlarının sayısı gösterilmektedir.


Bir sütunda bul ve değiştir işlemini gerçekleştirin ve çıktıyı kaydedin:

awk -F '[delimiter]' '{ gsub("pattern", "new-pattern", $[column-number]) ; print}'

Bir koşulu karşılayan bir sütuna göre satırları filtreleyin (büyüktür):

awk '[delimiter]'  '$[column-number] > [number]' [file-name]

Bir sütunda kalıp eşleştirmeyi kullanarak satırları aşağı doğru filtreleyin (içerir):

awk -F '[delimiter]' '$[column-number] ~ /[pattern]/' [file-name]

Bir dosyadaki kelime sıklığını sayın:

awk 'BEGIN {FS="[^a-zA-Z]+" } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' *

Yukarıdaki örneklerde görebileceğiniz gibi, bir awk sorgusunun sözdizimi, daha önce ele aldıklarımızdan biraz daha karmaşıktır. Awk, if ifadeleri ve döngüler de dahil olmak üzere diğer programlama dillerinden birçok yapıyı destekler, ancak başka bir dile daha aşinaysanız, geçiş yapmaya değer olan karmaşıklık düzeyi bu olabilir. Bununla birlikte, önce bir awk çözümü için hızlı bir arama yapmaya her zaman değer.

Web ile Etkileşim

Curl (İstemci URL'si)

Curl, kullanıcıların bir sunucudan veri indirmesine veya bir sunucuya veri aktarmasına izin veren bir komut satırı yardımcı programıdır. Bu, sürekli olarak durum kodlarını, başlıkları kontrol etmemiz ve sunucu ile istemci tarafı HTML'yi karşılaştırmamız gereken SEO için inanılmaz derecede faydalı olmasını sağlar. Bir URL'nin içeriğini alın:

curl [url]

Bir URL'nin içeriğini bir dosyaya kaydedin:

curl -o [dosya adı] [url]

Bir dosyadan bir URL listesi indirin:

xargs -n 1 curl -O < [url dosyası]

Yalnızca başlıkları ve durum kodunu görüntülemek için -I seçeneğiyle curl kullanın:

curl -I [url]


Curl -I bir site, genellikle tarayıcı uzantılarıyla çakışan bir hizmet çalışanı kullandığında durum kodlarını doğrulamanın harika bir yoludur. Ayrıca , bir siteyi taramaya çalışırken bir CDN'nin bot azaltmasının sorunlara neden olup olmadığını doğrulamak için de mükemmeldir . Eğer öyleyse, neredeyse kesinlikle bir 403 (Yasak) durum kodu alacaksınız. Bir yönlendirme izleme uzantısını tamamen çoğaltmak için, -L seçeneğiyle yönlendirmeleri takip etmeyi etkinleştirin:

curl -LI [url]


Özel bir kullanıcı aracısı kullanarak bir URL'nin içeriğini alın:

curl -A "Kullanıcı Aracısı" [url]

Özel bir başlıkla farklı bir istek yöntemi kullanın:

curl -X POST -H "İçerik türü: application/json" [url]

Bir URL'nin bir protokolü destekleyip desteklemediğini test edin (örneğin, bir sitenin HTTP2'yi destekleyip desteklemediğini veya HTTP2'deki bir sitenin HTTP/1.1 ile geriye dönük uyumlu olup olmadığını):

curl -I --http2 [url] 

curl -I --http1.1 [url]

Wget

Wget, curl için benzer bir işlev gerçekleştirir ancak özyinelemeli indirme özelliğine sahiptir, bu da onu daha fazla sayıda dosya (veya tüm web sitesi!) aktarırken daha iyi bir seçim haline getirir. Wget çoğu dağıtıma otomatik olarak dahil edilir, ancak GIT Bash kullanıyorsanız onu yüklemeniz gerekir . Bir dosya indirin:

wget [url]

Bir metin dosyasındaki URL listesini indirin:

wget -i [dosya adı].txt

Tüm bir web sitesini indirin:

wget -r [url]

Varsayılan olarak, wget sayfaları yalnızca beş düzey derinliğe kadar özyinelemeli olarak indirir. -l seçeneğini kullanarak bunu genişletin:

wget -r -l [sayı] [url]

Veya cesur hissediyorsanız, sonsuz özyinelemeyi etkinleştirin:

wget -r -l inf [url]

Bir sitenin yerel bir kopyasını indirmek istiyorsanız – bağlantılar yerel sürümlere referans verecek şekilde güncellendi – bunun yerine yansıtma seçeneğini kullanın:

wget -m [url]

İndirilen dosya türlerini de kısıtlayabilirsiniz. Örneğin, yalnızca JPG'leri istediyseniz:

wget -r -A jpg,jpeg [url]

Veya bir web sitesindeki tüm görüntüleri, bir CDN'dekiler de dahil olmak üzere, robots.txt dosyasını yok sayarak tek bir dizine indirmek istedi:

wget -r -l inf -nd -H -p -A jpg,jpeg,png,gif -e robots=off [url]


Çıktınızı Temizleme

İşleri bitirmek için, siparişte biraz temizlik var. Komutları takip ediyor ve deniyorsanız, büyük olasılıkla komut satırınız dağınık görünmeye başlıyor. Neyse ki, temizleniyor - ya da bırakılıyor! - arayüz çok basit. Komut satırının çıktısını temizleyin:

clear

Komut satırından çıkın:

exit

İşleri daha ileri götürmek

Yukarıdaki komutlar, komut satırını kullanarak gerçekleştirebileceğiniz görev türleri hakkında size iyi bir fikir verecektir, ancak bu gerçekten sadece bir başlangıç ​​noktasıdır. Komutları birbirine zincirleme yeteneğiyle, olasılıklar neredeyse sonsuzdur - özellikle de Bash komut dosyası oluşturmayı keşfetmeye başlarsanız . Birkaç fikir daha sağlamak için şunları yapabilirsiniz:

  • Screaming Frog'u otomatikleştirin.
  • Run web performans testleri toplu olarak Feneri'nin gibi.
  • Gerçekleştirmek en-toplu halde görüntü sıkıştırma .
  • Veya bir JAMstack mimarisi kullanarak bir web sitesi yayınlayın.

Son olarak, kodlamaya başladığınızda komut satırını kullanarak bir dereceye kadar yetkinlik önemlidir.Bu, komut dosyalarınızda gezinirken ve çalıştırırken sürekli kullanacağınız bir beceridir. Ve GitHub ve Gitlab gibi Git depolarının popülaritesi ile, umarım bunu projelere katkıda bulunmak ve çalışmalarınızı dünya ile paylaşmak için kullanırsınız!

Blog içeriklerinin temel paylaşım amacı o konuyu tartışmaya açmaktır. Sende fikirlerin ile konu hakkında katkıda bulun.
İfadeleri Gösterİfadeleri Gizle