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.
| kullanılır. Kısa sözdizimi:
<komut> | <pipe-komutu> [parametreler] [ | <pipe-komutu> [parametreler] … ]Komut Özeti
| Komut | Ne yapar | Yazım |
|---|---|---|
grep | Kalıba uyan satırları geçirir | Tek bir kalıp alır; parametre almaz |
wc | Satır, kelime ve karakter sayar | Serbest parametre |
sort | Satırları sıralar | Serbest parametre |
head | İlk satırları gösterir | Serbest parametre |
tail | Son satırları gösterir | Serbest parametre |
uniq | Ardışık tekrarlanan satırları teke indirir | Serbest parametre |
cut | Satırlardan alan ya da karakter keser | Serbest parametre |
tr | Karakterleri çevirir ya da siler | Serbest parametre |
paste | Satırları yan yana birleştirir | Serbest parametre |
jq | JSON çıktısını işler ve süzer | Serbest parametre; . ile başlayan filtre reddedilir |
column | Çıktıyı hizalı sütunlara dizer | Serbest parametre |
nl | Satırlara numara ekler | Serbest parametre |
tac | Satır sırasını ters çevirir | Serbest parametre |
to-file | Çıktıyı geçici bir dosyaya yazar | Dosya 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
| Konu | Davranış |
|---|---|
| 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ıra | Zincir 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ışır | Pipe 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ır | Bir 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. |
| Durdurma | Ctrl+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 komutlar | telnet, frr-console ve extend-data-disk sonrasında pipe kullanılamaz: İnteraktif komutlardan sonra "pipe" operatörüne izin verilmemektedir. |
| Kayıt | sys-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
| Kural | Açıklama | Örnek |
|---|---|---|
Tırnak içinde | yok | Satır, tırnaklardan önce | işaretlerinden bölünür; tırnak içindeki | de pipe sayılır. | — |
| Boşluklu parametre | Tek 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 sonda | to-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ıra | Alan | Durum | Değer |
|---|---|---|---|
| 1 | Kalıp | Zorunlu | Aranacak 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 |
| Konu | Davranış |
|---|---|
| Tek kalıp | grep 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ıp | Reddedilir: FIX: invalid grep pattern. Kalıp yazılmazsa FIX: no grep pattern. |
| Büyük / küçük harf | Ayrım yapılır. Her iki yazımı yakalamak için karakter kümesi kullanılır: grep '[Ee]stab'. |
| Düzenli ifade | Kalı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. |
| Renk | Eşleşen kısım renkli işaretlenir. Renk kodları sonraki pipe komutlarına ve to-file ile yazılan dosyaya da geçer. |
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ıra | Alan | Durum | Değer |
|---|---|---|---|
| 1 | Dosya adı | Zorunlu | Yalnı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 |
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--append | Aynı adlı dosya varsa üzerine yazmak yerine sonuna ekler | Değer yazılmaz |
--stdout | Dosyaya yazarken çıktıyı ekranda da gösterir | Değer yazılmaz |
| Konu | Davranış |
|---|---|
| Varsayılan | Çıktı yalnız dosyaya yazılır, ekrana bir şey gelmez. Aynı adlı dosya varsa üzerine yazılır. |
tcpdump ile | sys-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 dolarsa | Geç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. |
jq
JSON üreten bir komutun çıktısını işler: alan seçer, sayar, biçimler.
| Konu | Davranış |
|---|---|
. ile başlayan filtre | Dosya 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 filtre | Aynı kural nedeniyle yazılamaz. |
| Parametreler | -r metni tırnaksız yazar, -c her sonucu tek satıra sıkıştırır. |
Süzme ve Biçimleme Komutları
| Komut | Sı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 |
nl | Parametresiz satırlara numara ekler; -b a boş satırları da numaralar | … | nl |
tac | Parametre 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
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 contentile görülür. - Satır sayısına başlık da girer. Tablo biçiminde çıktı veren komutlarda
wc -lbaşlık satırlarını da sayar. - Renkli çıktı.
grepve 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.
