Command line — foydalanuvchi buyruqlarni matn ko‘rinishida kiritib, operatsion tizim yoki dastur bilan ishlaydigan interfeysdir. U odatda shell orqali taqdim etiladi: shell kiritilgan satrni tahlil qiladi, kerakli bajariluvchi faylni topadi, argumentlarni uzatadi va natijani terminalga chiqaradi. Grafik interfeysga qaraganda command line takrorlanadigan ishlarni aniq yozib olish, avtomatlashtirish va masofadagi serverlarni boshqarishda qulay.
Buyruq tuzilishi
Oddiy buyruq dastur nomi, parametrlar va argumentlardan tashkil topadi:
grep -n --ignore-case "error" application.log
Bu yerda grep — dastur, -n va --ignore-case — uning xatti-harakatini o‘zgartiruvchi parametrlar, qolgan qiymatlar esa qidiriladigan matn va fayldir. Bo‘sh joy argumentlarni ajratadi; ichida bo‘sh joy bor qiymat qo‘shtirnoqqa olinadi. Parametr sintaksisi dasturga bog‘liq, shu sababli --help chiqishi yoki manual sahifasi haqiqiy manba hisoblanadi.
Shell wildcard, o‘zgaruvchi va command substitution kabi ifodalarni dastur ishga tushishidan oldin kengaytirishi mumkin. Masalan, *.md mavjud Markdown fayllari ro‘yxatiga aylantiriladi. Bu farq muhim: ba’zan ko‘rilayotgan xato dasturda emas, shell satrni kutilmagan tarzda talqin qilganida yuz beradi.
Oqimlar va kompozitsiya
Command line dasturlari odatda uch standart oqimdan foydalanadi: standard input ma’lumotni qabul qiladi, standard output normal natijani, standard error esa diagnostikani chiqaradi. Pipe bir dasturning outputini boshqasining inputiga bog‘laydi:
journalctl --since today | grep "timeout" | sort | uniq -c
Redirection natijani faylga yozish yoki inputni fayldan olish imkonini beradi. Diagnostika va ma’lumot oqimini ajratish skriptga faqat kerakli natijani qayta ishlash imkonini beradi. Binar ma’lumotni terminalga chiqarish, output formatiga ishonmasdan matnni parslash yoki exit codeni tekshirmaslik esa ishonchsiz avtomatlashtirishga olib keladi.
Interaktiv va avtomatik foydalanish
Interaktiv seansda history, completion va qisqa aliaslar tezlik beradi. Skriptda esa to‘liq parametrlar, oldindan ma’lum muhit va deterministik output afzal. Parolni argumentga yozish xavfli, chunki u process ro‘yxati yoki shell historyda ko‘rinishi mumkin; maxfiy qiymat secret store, himoyalangan fayl descriptor yoki dastur qo‘llaydigan xavfsiz input orqali beriladi.
Buyruqni nusxalab ishlatishdan oldin uning joriy katalogi, foydalanuvchi huquqi va o‘zgartiradigan resursi tekshiriladi. rm, database migration yoki cloud CLI kabi vositalarda dry-run, aniq target va minimal privilege muhim. Audit uchun bajarilgan amal va natija qayd etiladi, ammo token va shaxsiy ma’lumot logdan chiqariladi.
Portativlik va quoting
Bir shell uchun yozilgan buyruq boshqa shell’da aynan ishlamasligi mumkin. POSIX shell, PowerShell va Windows Command Prompt o‘zgaruvchi, escape va pipe semantikasini turlicha talqin qiladi. Skript qaysi interpreterga mo‘ljallanganini shebang yoki loyiha hujjatida aniq bildiradi. Argumentlarni string biriktirish orqali yasash command injection xavfini tug‘diradi. Dastur ichidan process chaqirilganda imkon qadar shell ochilmaydi, executable va argumentlar alohida massiv sifatida uzatiladi. Agar shell sintaksisi zarur bo‘lsa, ishonchsiz qiymat interpreterga mos xavfsiz quoting bilan beriladi. Locale ham output va sort tartibini o‘zgartirishi mumkin; mashina qayta ishlaydigan buyruqda stable format yoki JSON output tanlanadi.
Command completion ham xavfsizlik chegarasi emas: u faqat tanilgan nomlarni taklif qiladi. Buyruqning real ta’siri ishlayotgan account, joriy katalog va server kontekstida tekshiriladi.
Bog‘liq tushunchalar
Shell, Terminal emulator, Argument, Standard streams, Pipe, Exit code, Environment variable