Skip to content
Smarter by Design.Simpler for Business

Pipe Commands ​

Pipe Commands, WEB-CLI'de bir komutun ekrana yazdığı çıktıyı | işaretiyle bir sonraki komuta aktaran komutlardır. Çıktı satırlara göre süzülür, sayılır, sıralanır, biçimlenir ya da to-file ile geçici bir dosyaya yazılır. Pipe yalnız sys-cmd araçlarından sonra değil, lb service list gibi API komutlarından ve help, history gibi yerleşik komutlardan sonra da kullanılır.

14 komut
grep · wc · sort · to-file…
Satır süzme, sayma, sıralama, alan kesme, JSON işleme ve dosyaya yazma.
En çok 8 pipe
Tek satırda
Bir komut satırında en çok sekiz | kullanılır.
Cihazda çalışır
Bağlamdan bağımsız
Seçili v-device ve route table ne olursa olsun süzme cihazın kendisinde yapılır.
to-file
Geçici dosya
Zincirin çıktısı indirilebilir bir dosyaya yazılır.

Kısa sözdizimi:

<komut> | <pipe-komutu> [parametreler] [ | <pipe-komutu> [parametreler] … ]

Komut Özeti ​

TR7 WEB-CLI · pipe
# komuttan sonra | yazıp Tab: pipe komutları
admin@TR7LBWAF01> sys-cmd ss -tan |
column    cut       grep      head      jq        nl        paste
sort      tac       tail      to-file   tr        uniq      wc
 
# API komutlarından sonra da aynı liste gelir
admin@TR7LBWAF01> lb service list |
column    cut       grep      head      jq        nl        paste
sort      tac       tail      to-file   tr        uniq      wc
admin@TR7LBWAF01>  
KomutNe yaparYazım
grepKalıba uyan satırları geçirirTek bir kalıp alır; parametre almaz
wcSatır, kelime ve karakter sayarSerbest parametre
sortSatırları sıralarSerbest parametre
headİlk satırları gösterirSerbest parametre
tailSon satırları gösterirSerbest parametre
uniqArdışık tekrarlanan satırları teke indirirSerbest parametre
cutSatırlardan alan ya da karakter keserSerbest parametre
trKarakterleri çevirir ya da silerSerbest parametre
pasteSatırları yan yana birleştirirSerbest parametre
jqJSON çıktısını işler ve süzerSerbest parametre; . ile başlayan filtre reddedilir
columnÇıktıyı hizalı sütunlara dizerSerbest parametre
nlSatırlara numara eklerSerbest parametre
tacSatır sırasını ters çevirirSerbest parametre
to-fileÇıktıyı geçici bir dosyaya yazarDosya adı zorunlu; --append, --stdout; zincirin sonunda

Serbest parametreli pipe komutlarında komut adından sonra yazılanlar araca olduğu gibi aktarılır; Tab yalnız sıradaki parametrenin yerini <wc-parameter-1> biçiminde gösterir.

Nasıl Çalışır ​

KonuDavranış
Hangi komutlardan sonraÇıktı yazan her komuttan sonra: sys-cmd araçları, API komutları (lb service list, settings dns show…) ve help, history gibi yerleşik komutlar.
SıraZincir soldan sağa işler; her komutun çıktısı bir sonrakinin girdisidir. Ekranda yalnız son komutun çıktısı görünür.
Nerede çalışırPipe komutları her zaman cihazın kendisinde çalışır. Soldaki sys-cmd aracı seçili v-device ve route table içinden çalışsa da süzme ve dosyaya yazma cihazda yapılır.
SınırBir satırda en çok 8 pipe kullanılır; fazlası Pipe limiti aşıldı: 9>8 (İngilizce arayüzde Maximum pipe exceeded: 9>8) hatası verir.
Erken bitişSağdaki komut kapandığında soldaki komutlar durdurulur. Örneğin sys-cmd ping 10.20.0.15 | head -n 3 üç satırdan sonra ping'i de sonlandırır.
DurdurmaCtrl+C zinciri durdurur.
Hata çıktısıPipe komutlarının hata iletileri kırmızı yazılır. Soldaki sys-cmd aracının kendi hata çıktısı pipe'a aktarılmaz ve ekrana gelmez.
Etkileşimli komutlartelnet, frr-console ve extend-data-disk sonrasında pipe kullanılamaz: İnteraktif komutlardan sonra "pipe" operatörüne izin verilmemektedir.
Kayıtsys-cmd ile başlayan satırlar, pipe bölümleriyle birlikte kullanıcı loglarına Sistem komutu çalıştırıldı olarak yazılır.

Yazım Kuralları ve Kısıtlar ​

KuralAçıklamaÖrnek
Tırnak içinde | yokSatır, tırnaklardan önce | işaretlerinden bölünür; tırnak içindeki | de pipe sayılır.—
Boşluklu parametreTek ya da çift tırnak içine alınır.tr -s ' ' · grep "GET /health"
Dosya yolu yasağıgrep ve to-file dışındaki pipe komutlarında / ya da .. içeren, ~ veya . ile başlayan parametre reddedilir: File path arguments are not allowed in pipe commands. Pipe komutları soldan gelen çıktıyı işlemek içindir.jq '(.status)'
to-file en sondato-file zincirin son komutu olmalıdır; değilse to-file must be the last pipe process hatası verir.… | grep 443 | to-file baglantilar.txt
Kabuk işleçleri yok>, >>, ;, && kullanılamaz (Invalid command); dosyaya yazmak için to-file kullanılır.| to-file cikti.txt --append

grep ​

Soldan gelen çıktıdan yalnız kalıba uyan satırları geçirir. Canlı akışlarda (tcpdump, ping) satırlar geldikçe süzülür.

SıraAlanDurumDeğer
1KalıpZorunluAranacak metin ya da düzenli ifade; alan adı yazılmadan doğrudan yazılır. Boşluk içeriyorsa tırnak içine alınır. Tab yerini <grep-pattern> olarak gösterir
KonuDavranış
Tek kalıpgrep yalnız bir kalıp alır, -i, -v, -c gibi parametreleri kabul etmez. grep -i estab satırı Command not found: estab hatası verir.
- ile başlayan kalıpReddedilir: FIX: invalid grep pattern. Kalıp yazılmazsa FIX: no grep pattern.
Büyük / küçük harfAyrım yapılır. Her iki yazımı yakalamak için karakter kümesi kullanılır: grep '[Ee]stab'.
Düzenli ifadeKalıp düzenli ifade olarak yorumlanır; . her karakterle eşleşir. grep 10.20 hem 10.20 hem 10120 içeren satırı geçirir.
RenkEşleşen kısım renkli işaretlenir. Renk kodları sonraki pipe komutlarına ve to-file ile yazılan dosyaya da geçer.
TR7 WEB-CLI · grep
admin@TR7LBWAF01> sys-cmd ss -tan | grep ESTAB
admin@TR7LBWAF01> sys-cmd tcpdump -nn -i any port 53 | grep example.com
admin@TR7LBWAF01> lb service list | grep <vservice-adı>
admin@TR7LBWAF01> help | grep file
admin@TR7LBWAF01>  

to-file ​

Zincirin çıktısını cihazın geçici dosya alanına yazar. Dosyalar sys-cmd file list ile görülür, Link sütunundan indirilir ve sys-cmd file delete ile silinir.

SıraAlanDurumDeğer
1Dosya adıZorunluYalnız harf, rakam, -, _ ve . içerir; .. ve dizin içeremez, aksi hâlde Invalid filename. Alan adı yazılmadan doğrudan yazılır. Tab yerini <file-name> olarak gösterir
AlanNe yaparArkasına ne yazılır
--appendAynı adlı dosya varsa üzerine yazmak yerine sonuna eklerDeğer yazılmaz
--stdoutDosyaya yazarken çıktıyı ekranda da gösterirDeğer yazılmaz
KonuDavranış
VarsayılanÇıktı yalnız dosyaya yazılır, ekrana bir şey gelmez. Aynı adlı dosya varsa üzerine yazılır.
tcpdump ilesys-cmd tcpdump … | to-file <ad>.pcap satırında paketler Wireshark'ta açılabilen pcap biçiminde yazılır. Bu durumda --stdout kullanılmaz; ikili veri ekranda okunmaz. Ayrıntı: tcpdump.
Alan dolarsaGeçici alanın boyutu ve doluluğu sys-cmd file disk show ile görülür; yer file delete ile açılır ya da file disk change-size ile alan büyütülür.
TR7 WEB-CLI · to-file
# yalnız dosyaya
admin@TR7LBWAF01> sys-cmd dig app.example.com A +short | to-file dig-app.txt
# hem ekranda göster hem kaydet
admin@TR7LBWAF01> sys-cmd ss -tan state established | to-file baglantilar.txt --stdout
# her çalıştırmada sona ekle
admin@TR7LBWAF01> sys-cmd ss -tan state established | grep 10.20.0.30 | to-file backend-baglantilari.txt --append
# API komutunun çıktısını kaydet
admin@TR7LBWAF01> settings dns show | to-file dns-ayarlari.txt
admin@TR7LBWAF01>  

jq ​

JSON üreten bir komutun çıktısını işler: alan seçer, sayar, biçimler.

KonuDavranış
. ile başlayan filtreDosya yolu yasağına takılır ve reddedilir: jq '.status' satırı File path arguments are not allowed in pipe commands hatası verir. Filtre parantez içine alınarak yazılır: jq '(.status)'.
/ ya da .. içeren filtreAynı kural nedeniyle yazılamaz.
Parametreler-r metni tırnaksız yazar, -c her sonucu tek satıra sıkıştırır.
TR7 WEB-CLI · jq
admin@TR7LBWAF01> sys-cmd curl -s http://10.20.0.30/api/status | jq '(.status)'
admin@TR7LBWAF01> sys-cmd curl -s http://10.20.0.30/api/status | jq -r '(.version)'
admin@TR7LBWAF01>  

Süzme ve Biçimleme Komutları ​

KomutSık kullanılan parametrelerÖrnek
wc-l satır · -w kelime · -c bayt sayısı… | wc -l
sort-n sayısal · -r ters · -k <n> n. alana göre · -t <ayraç> alan ayracı · -u tekrarsız… | sort -rn
head-n <sayı> ilk satır sayısı… | head -n 20
tail-n <sayı> son satır sayısı… | tail -n 5
uniq-c tekrar sayısını başa yazar · -d yalnız tekrar edenler · -u yalnız bir kez geçenler. Yalnız ardışık tekrarları birleştirir; bu yüzden önce sort kullanılır… | sort | uniq -c
cut-d <ayraç> alan ayracı · -f <n> alan numarası · -c <aralık> karakter aralığı… | cut -d ':' -f 1
tr-s <küme> tekrarlanan karakteri teke indirir · -d <küme> siler · <küme1> <küme2> çevirir… | tr -s ' '
paste-s bütün satırları tek satıra birleştirir · -d <ayraç> birleştirme ayracı · - - satırları ikişer ikişer yan yana dizer… | paste - -
column-t boşlukla ayrılmış alanları tablo gibi hizalar · -s <ayraç> alan ayracı… | column -t
nlParametresiz satırlara numara ekler; -b a boş satırları da numaralar… | nl
tacParametre almaz; son satır başa gelir… | tac

Tablo sık kullanılan parametreleri özetler; tam liste ve davranış aracın cihazdaki sürümüne bağlıdır.

Örnek Zincirler ​

TR7 WEB-CLI · A) Bir backend'e açık bağlantı sayısı
admin@TR7LBWAF01> sys-cmd ss -tn state established dst 10.20.0.30 | wc -l
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) En çok bağlantı açan 10 istemci adresi
admin@TR7LBWAF01> sys-cmd ss -tn state established | tr -s ' ' | cut -d ' ' -f 4 | cut -d ':' -f 1 | sort | uniq -c | sort -rn | head -n 10
admin@TR7LBWAF01>  
TR7 WEB-CLI · C) Uzun bir ping'in yalnız özeti
admin@TR7LBWAF01> sys-cmd ping -c 50 10.20.0.15 | tail -n 2
admin@TR7LBWAF01>  
TR7 WEB-CLI · D) Canlı akışın ilk 20 satırı
# 20 satır gelince tcpdump da durdurulur
admin@TR7LBWAF01> sys-cmd tcpdump -nn -i any port 53 | head -n 20
admin@TR7LBWAF01>  
TR7 WEB-CLI · E) API çıktısında arama ve numaralandırma
admin@TR7LBWAF01> lb service list | grep <vservice-adı>
admin@TR7LBWAF01> history | tail -n 10 | nl
admin@TR7LBWAF01>  
TR7 WEB-CLI · F) Süzülmüş çıktıyı biriktirme
admin@TR7LBWAF01> sys-cmd ss -tn state established | grep 10.20.0.30 | to-file backend-baglantilari.txt --append
admin@TR7LBWAF01> sys-cmd file list
admin@TR7LBWAF01>  

Bilinmesi Gerekenler ​

  • Pipe komutları soldan gelen çıktıyı işlemek içindir. Dosya yolu içeren parametreler reddedilir; geçici dosya alanındaki bir dosyanın içeriği sys-cmd file content ile görülür.
  • Satır sayısına başlık da girer. Tablo biçiminde çıktı veren komutlarda wc -l başlık satırlarını da sayar.
  • Renkli çıktı. grep ve renkli çıktı üreten komutların renk kodları dosyaya da yazılır; dosya bir metin düzenleyicide açıldığında bu kodlar görünebilir.
  • Araç sürümleri. Serbest parametreli pipe komutlarının parametreleri cihazdaki araç sürümüne bağlıdır.
  • Sistem komutları ve bağlam için System Commands, API komutlarının çıktı biçimleri için API Commands sayfasına bakılabilir.