Linux'ta seq Komutu Nasıl Kullanılır
Yayınlanan: 2022-01-29
Linux seq komutu, göz açıp kapayıncaya kadar sayı listeleri oluşturur. Ancak bu işlevsellik pratik kullanıma nasıl konulabilir? seq'in sizin için nasıl kullanışlı olabileceğini size göstereceğiz.
seq Komutu
İlk bakışta, Linux seq komutu bir tuhaflık gibi görünüyor. Hızlı bir şekilde sayı dizileri oluşturmanıza olanak tanır ve hepsi bu kadar! Ancak buradaki anahtar kelime “hızlı” dır. Birazdan, bu küçük komutun ne kadar hızlı çalışabileceğini göreceksiniz.
Yine de, nasıl üretildiklerine bakılmaksızın, bir sayı listesi ne kadar yararlıdır? seq komutu, 1985'te Unix'in 8. baskısına eklendi. O zamandan beri oradaydı, bu yüzden değerli bir şey yapması gerekiyor.
Unix'in felsefesi, bir şeyi yapan ve onu iyi yapan küçük yardımcı programlarla dolu olmasıdır. Bu felsefenin temel ilkelerinden biri, diğer programlardan girdi kabul eden programlar yazmaktır. Tabii ki, bu aynı zamanda bu programların diğer programlar tarafından girdi olarak kullanılabilecek çıktılar üretmesi gerektiği anlamına gelir.
seq komutu, çıktısını kullanan diğer komutlarla birlikte kullanıldığında, borular veya komut satırı genişletmesi yoluyla kendi başına gelir.
Temel Liste Oluşturma
seq komut satırı parametresi olarak tek bir sayı ile başlatırsanız, birden o sayıya kadar sayar. Ardından terminal penceresindeki sayıları aşağıda gösterildiği gibi satır başına bir sayı olacak şekilde yazdırır:
sıra 6

Komut satırına iki sayı yazarsanız, aşağıda gösterildiği gibi, ilki başlangıç numarası, ikincisi ise bitiş numarası olacaktır:
sıra 4 10

Üçüncü bir sayı ekleyerek bir adım boyutu belirleyebilirsiniz. Başlangıç ve bitiş numaraları arasında oturur. seq altı ile başlayan, 48 ile biten ve altı basamak kullanan bir sayı listesi oluşturmasını istemek için aşağıdakini yazıyoruz:
sıra 6 6 48

Geriye Sayma
Ayrıca seq en yüksekten en düşüğe bir sayı listesi oluşturmasını isteyebiliriz. Ancak bunu yapmak için olumsuz bir adım sağlamalıyız.
Aşağıdaki komut, adımı negatif bir sayı olarak yazdığımız için 6'lık adımlarla 24'ten 12'ye kadar sayan bir liste oluşturur:
sıra 24 -6 12

Ondalık Sayılarla Sayma
Başlangıç, bitiş ve adım numaraları da ondalık sayılar olabilir. Sayılardan herhangi biri ondalık ise, diğerleri de ondalık sayı olarak kabul edilir. Aşağıdaki komut, 0,2 adımlı bir sayı listesi oluşturur:
sıra 1 0.2 2

seq hızı
seq cayır cayır yanan hızlıdır—tek darboğaz, komutu terminal penceresine yazmanız için geçen süredir. Hızını test etmek için 250.000 rakamlık bir liste isteyelim.
İşlemin ne kadar sürede tamamlandığını görmek için time komutunu kullanarak şunu yazıyoruz:
zaman sırası 250000

Sonuçlar listenin altında görüntülenir. Orta düzeyde güçlü test PC'mizde bile, seq şaşırtıcı derecede hızlıdır.

Tüm liste saniyenin 1/3'ü kadar bir sürede oluşturuldu ve ekrana yazıldı. Listeyi bir dosyaya yönlendirirsek, terminal penceresine yazmanın ek yükünden bile kurtulabiliriz.
Bunu yapmak için aşağıdakileri yazıyoruz:
zaman dizisi 250000 > sayılar.txt

Listeyi tamamlamak ve dosyayı oluşturmak için geçen süre artık saniyenin 1/7'si kadardır.
Ayırıcı Kullanmak
Yeni bir satır karakteri, bir listedeki her numara arasında görüntülenen varsayılan karakterdir. Bu nedenle, her sayı kendi satırında olacak şekilde dikey bir liste olarak görünürler. Gerekirse, başka bir ayırıcı sağlayabilirsiniz.
Örneğin, virgülle ayrılmış bir liste, iki nokta üst üste ile bölünmüş bir liste veya başka bir noktalama işareti veya sembolü oluşturmanız gerektiğini varsayalım. Sınırlayıcı aslında bir dizedir, bu nedenle birden fazla karakter kullanabilirsiniz.
-s (ayırıcı) seçeneğini kullanacağız. Aşağıdaki komut, virgülle ayrılmış bir liste oluşturacaktır:
sıra s, 6 6 36
Bu komut, ayırıcı olarak iki nokta üst üste (:) kullanır :
sıra -s: 6 6 36
Bu komut, seq ayırıcı olarak iki tire ( - ) kullanmasını söyler:
sıra -s-- 6 6 36

Biçim Dizelerini Kullanma
seq komutu ayrıca C dili stili biçim dizelerini de destekler. Bunlar, çıktıyı yalnızca bir ayırıcı belirtmekten çok daha fazla denetimle biçimlendirmenize olanak tanır. Biçim dizesi kullanmak için -f (biçim) seçeneğini kullanırsınız.
Aşağıdaki komut, seq çıktıyı iki karaktere doldurmak için sıfır kullanmasını söyler:
seq -f "%02g" 6

Dizeyi istediğimiz herhangi bir metinle biçimlendirebilir ve sayıyı dizenin herhangi bir yerine aşağıdaki gibi yerleştirebiliriz:
seq -f "C benzeri bir biçim dizesinde %02g sayısı" 6

Sıfır Dolguyu Ayarlamanın Hızlı Yolu
Sıfır dolguyu ayarlamanın en hızlı yolu -w (eşit genişlik) seçeneğini kullanmaktır. Bu, seq sayıları doldurmak için sıfır kullanmasını söyler, böylece hepsi en büyük sayı ile aynı genişlikte olur.

Aşağıdaki komut, 100'lük adımlarla 0'dan 1.000'e kadar sayar ve tüm sayılar sıfırlarla doldurulur:
sıra -w 0 100 1000

En uzun sayı dört karakter alır, bu nedenle tüm dar sayılar bu genişliğe sıfırlarla doldurulur (0 bile dört sıfırla doldurulur).
bc içine boru sırası
Ayırıcıyı matematiksel bir sembol olarak ayarlayarak ve listeyi bc komutuna bağlayarak o listedeki sayıları değerlendirebiliriz.
Aşağıdaki komut, bir ile başlayan ve altı ile biten, yıldızlarla ( * ) ayrılmış bir sayı listesi oluşturur:
sıra -s* 6
Bu listeyi bc ile beslersek, çarpma sembolleri olarak yıldız işaretlerini ( * ) kullanarak listeyi değerlendirir:
sıra -s* 6 | M.Ö
Bunu diğer sembollerle de yapabiliriz. Aşağıdaki komut, tüm sayıların eklendiği bir liste oluşturmak için bir artı işareti ( + ) kullanır:
sıra -s+ 5
Bunu bc aktarmak ve listeyi değerlendirmek için aşağıdakileri yazıyoruz:
sıra -s+ 5 | M.Ö

seq ile Dosya Oluşturma
touch komutu, dosyalardaki saat ve tarih damgalarını günceller. Dosya yoksa, dokunma onu oluşturur. Tematik olarak adlandırılmış ancak farklı numaralandırılmış dosyalardan oluşan bir koleksiyon oluşturmak için touch ve seq ile komut satırı genişletmeyi kullanabiliriz.
Aynı temel ada ve farklı bir numaraya sahip 10 dosyalık bir set oluşturacağız (dosya-1.txt, dosya-2.txt vb.). Aşağıdakileri yazıyoruz:
$(seq -f "file-%g.txt" öğesine dokunun 1 10)
Ardından, dosyaları kontrol etmek için aşağıdakileri yazıyoruz:
ls dosyası*

Bash Döngülerinde seq kullanma
Bash betiklerinde seq ondalık sayılarla döngüleri kontrol etmek için kullanabiliriz.
Aşağıdaki metni bir düzenleyiciye yazın ve ardından “loops.sh” olarak kaydedin:
#!/bin/bash $(seq 5 0.2 6.6); yapmak echo "Şimdiki değer: $val" tamamlamak
Ardından, yeni betiğimizi çalıştırılabilir hale getirmek için aşağıdakini yazıyoruz:
chmod +x döngü.sh

Komut dosyasını çalıştırdığımızda, terminal penceresinde döngü sayacı yazdırılır. Daha sonra, döngünün her yinelemesinde ondalık döngü sayacı artışını görmek için aşağıdakini yazabiliriz:
./loop.sh

seq geriye doğru da sayabileceğini unutmayın; bunu döngülerde de aynı şekilde kullanabilirsiniz.
Güzel ve Basit
seq ile ilgili bir şey, çok fazla bir öğrenme eğrisinin olmamasıdır. Canlandırıcı kısa bir man sayfası var, ancak yine de onu ilginç şekillerde kullanabilirsiniz.
Genellikle gerçekçi boyutlarda hızlı bir şekilde test dosyaları oluşturmamız gerektiğinden, seq bir format dizesiyle kullanırız. Daha sonra çıktıyı istediğimiz kadar sahte veri satırı içeren bir dosya oluşturmak için yeniden yönlendiririz.
| Linux Komutları | ||
| Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
| süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
| ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar
