CLI adalah digunakan setiap kali kosakata besar perintah atau query, ditambah dengan kisaran (atau sewenang-wenang) macam pilihan, dapat dimasukkan lebih cepat sebagai teks dibandingkan dengan GUI murni. Ini biasanya terjadi dengan kerang perintah sistem operasi. CLIs juga digunakan oleh sistem dengan sumber daya yang cukup untuk mendukung antarmuka pengguna grafis. Beberapa sistem bahasa komputer (seperti Python, Forth, LISP dan banyak dialek BASIC) memberikan modus baris perintah interaktif untuk memungkinkan untuk bereksperimen.
CLIs sering digunakan oleh programmer dan administrator sistem, dalam lingkungan rekayasa dan ilmiah, dan teknis canggih pengguna komputer pribadi. CLIs juga populer di kalangan orang-orang dengan kecacatan visual, karena perintah dan masukan dapat ditampilkan menggunakan Braille display refreshable.
Sebuah program yang mengimplementasikan antarmuka teks seperti sering disebut command-line interpreter, prosesor perintah atau shell, shell dimana istilah, sering digunakan untuk menggambarkan juru baris perintah, dapat pada prinsipnya setiap program yang merupakan antarmuka pengguna, termasuk yang-untuk sepenuhnya berorientasi grafis misalnya, default Windows GUI diciptakan oleh program shell bernama explorer.exe, sebagaimana didefinisikan dalam garis = SHELL explorer.exe dalam file konfigurasi WIN.INI. Contoh command-line interpreter meliputi berbagai kerang Unix (sh, ksh, csh, tcsh, bash, dll), CP / M sejarah PKC, dan COMMAND.COM MS-DOS/IBM-DOS/DR-DOS 's, sebagai serta OS / 2 dan Windows cmd.exe program, kelompok terakhir ini berdasarkan berat pada DEC RSX dan RSTS CLIs.
Dalam sebagian besar sistem operasi, adalah mungkin untuk menggantikan program shell default dengan alternatif yang lebih khusus atau kuat, beberapa contoh luas termasuk 4DOS untuk DOS, 4OS2 untuk OS / 2, dan 4NT atau Take Perintah untuk Windows.Pada bulan November 2006, Microsoft merilis versi 1.0 dari Windows PowerShell (sebelumnya CODEC Monad), yang dikombinasikan fitur dari kerang Unix tradisional dengan berorientasi objek Kerangka mereka. NET. MinGW dan Cygwin terbuka-sumber paket untuk Windows yang menawarkan CLI seperti Unix. Microsoft menyediakan MKS Inc 's implementasi MKS ksh Korn shell untuk Windows melalui Layanan mereka untuk UNIX pengaya.
Versi terbaru dari sistem operasi Macintosh didasarkan pada variasi Unix yang disebut Darwin. Pada komputer ini, pengguna dapat mengakses Unix command-line interface yang disebut Terminal ditemukan dalam folder Utilities. (Terminal ini menggunakan pesta secara default.)
Screenshot dari 7,4 antarmuka baris perintah Matlab dan GUI.
Beberapa aplikasi menyediakan baik CLI dan GUI. Rekayasa / ilmiah perhitungan numerik MATLAB tidak menyediakan paket GUI untuk beberapa perhitungan, tetapi CLI dapat menangani perhitungan apapun. Tiga-dimensi-program pemodelan 3D Badak menyediakan CLI serta bahasa scripting yang berbeda. Dalam beberapa lingkungan komputasi, seperti Oberon atau antarmuka pengguna Smalltalk, sebagian besar dari teks yang muncul pada layar dapat digunakan untuk memberikan perintah.
Anatomi CLI shell
CLI Sebuah umumnya dapat dianggap sebagai terdiri dari sintaks dan semantik. Sintaksnya adalah tata bahasa yang semua perintah harus diikuti. Dalam kasus sistem operasi (OS), MS-DOS dan Unix masing-masing menetapkan sendiri mendefinisikan aturan bahwa semua perintah harus diikuti. Dalam kasus embedded system, setiap vendor, seperti Nortel, Juniper Networks atau Cisco Systems, mendefinisikan menetapkan milik mereka sendiri aturan bahwa semua perintah dalam CLI mereka sesuai dengan. Aturan-aturan ini juga menentukan bagaimana pengguna menavigasi melalui sistem perintah. Semantik mendefinisikan apa jenis operasi yang mungkin, pada apa jenis data operasi ini dapat dilakukan, dan bagaimana tata bahasa mewakili operasi ini dan data-makna simbolis dalam sintaks.
Dua CLIs berbeda dapat setuju di kedua sintaks atau semantik, tetapi hanya bila mereka setuju pada kedua bahwa mereka dapat dianggap cukup mirip untuk memungkinkan pengguna untuk menggunakan kedua CLIs tanpa perlu mempelajari apa pun, serta untuk mengaktifkan kembali penggunaan script .
Sebuah CLI sederhana akan menampilkan prompt, menerima "baris perintah" diketik oleh pengguna dihentikan oleh tombol Enter, kemudian jalankan perintah yang ditentukan dan memberikan hasil tampilan tekstual atau pesan kesalahan. Lanjutan CLIs akan memvalidasi, menafsirkan dan parameter-memperluas baris perintah sebelum menjalankan perintah yang ditentukan, dan opsional menangkap atau mengarahkan output.
Tidak seperti tombol atau item menu di GUI, baris perintah biasanya mendokumentasikan diri, menyatakan apa yang pengguna ingin lakukan. Selain itu, baris perintah default biasanya mencakup banyak yang dapat diubah untuk menyesuaikan hasil. Berguna baris perintah dapat disimpan dengan menetapkan string karakter atau alias untuk mewakili perintah penuh, atau beberapa perintah dapat dikelompokkan untuk melakukan urutan lebih kompleks - misalnya, mengkompilasi program, install, dan menjalankannya - menciptakan sebuah entitas tunggal , disebut prosedur perintah atau script yang sendiri dapat diperlakukan sebagai perintah. Keuntungan ini berarti bahwa pengguna harus mencari tahu perintah kompleks atau serangkaian perintah hanya sekali, karena mereka dapat disimpan, untuk digunakan lagi.
Perintah yang diberikan ke shell CLI sering dalam salah satu bentuk berikut:
* DoSomething bagaimana toFiles
* DoSomething bagaimana sourceFile destinationFile
* DoSomething bagaimana <inputfile> outputfile
* DoSomething bagaimana | doSomething bagaimana | lakukan Sesuatu bagaimana> outputfile
mana doSomething adalah, pada dasarnya, kata kerja, bagaimana sebuah kata keterangan (misalnya, seharusnya perintah dijalankan "verbosely" atau "tenang") dan toFiles obyek atau benda (biasanya satu atau lebih file) yang perintah harus bertindak. The '>' dalam contoh ketiga adalah operator redirection, mengatakan penafsir baris perintah untuk mengirim output dari perintah untuk tidak layar tetapi ke file bernama di sebelah kanan dari '>'. Ini akan menimpa file. Menggunakan '>>' akan mengarahkan output dan tambahkan ke file. Operator lain pengalihan adalah ('|'), bar vertikal yang menciptakan pipa di mana output dari satu perintah menjadi input ke perintah berikutnya.
CLI dan sumber daya perlindungan
Dalam beberapa CLIs, perintah yang dikeluarkan tidak digabungkan ke tempat konseptual dalam hirarki perintah. Seorang pengguna dapat menentukan path relatif atau absolut untuk setiap perintah atau data. Contoh ini meliputi DOS, OS / 2, Windows, dan UNIX, yang memberikan bentuk perintah direktori perubahan yang memungkinkan akses ke direktori manapun dalam sistem. Dalam beberapa sistem, perlindungan sumber daya disediakan oleh sistem kepemilikan sumber daya oleh kelompok istimewa, dan account pengguna yang dilindungi sandi yang menjadi anggota dari kelompok tertentu. MS-DOS/PC-DOS tidak memberikan perlindungan sumber daya tersebut, juga tidak versi Windows sebelum Windows NT keluarga. (Kedua dirancang sebagai sistem single-user, di mana diasumsikan bahwa pemiliknya hanya akan tidak mengizinkan orang-orang bahwa dia / dia tidak sepenuhnya percaya untuk memiliki akses fisik ke komputer di semua UNIX,. Sebaliknya, berasal sebagai time-sharing sistem di lingkungan perusahaan dan universitas. Demikian pula, serentak CP / M, DOS serentak, Multiuser DOS, REAL/32 dan anggota keluarga menawarkan berbagai DR-DOS pengguna serta file / direktori yang berorientasi skema perlindungan baik.)
CLIs lain (seperti yang di router jaringan) membatasi seperangkat perintah bahwa seorang pengguna dapat melakukan ke sebuah subset, ditentukan oleh lokasi dalam hirarki perintah, dikelompokkan oleh asosiasi dengan keamanan, sistem, antarmuka, dll lokasi di dalam hirarki ini dan pilihan yang tersedia sering disebut sebagai modus. Dalam sistem ini pengguna mungkin melintasi melalui serangkaian sub-hirarki, masing-masing dengan subset mereka sendiri perintah. Sebagai contoh, jika CLI memiliki dua mode antarmuka dan sistem yang disebut, pengguna akan masukkan 'antarmuka' kata pada command prompt dan kemudian masuk mode antarmuka, di mana subset tertentu dari perintah dan data yang tersedia. Pada titik ini perintah sistem tidak dapat diakses dan tidak akan dapat diakses sampai pengguna keluar secara eksplisit modus antarmuka dan memasuki modus sistem.
Command prompt
Perintah prompt (atau hanya prompt) adalah urutan (satu atau lebih) karakter yang digunakan dalam antarmuka baris perintah untuk menunjukkan kesediaan untuk menerima perintah. Niat adalah untuk harfiah meminta pengguna untuk mengambil tindakan. Sebuah prompt biasanya berakhir dengan salah satu karakter $,%, #,:,> dan sering kali berisi informasi lainnya, seperti jalur direktori kerja saat ini.
Pada banyak sistem dan derivatif sistem Unix, itu adalah umum bagi prompt berakhir pada karakter $ atau% jika pengguna adalah user biasa, tapi dalam karakter # jika pengguna adalah superuser ("akar" dalam Unix terminologi).
Hal ini umum untuk meminta dapat dimodifikasi oleh pengguna. Tergantung pada lingkungan, mereka mungkin termasuk warna, karakter khusus, dan elemen lain seperti variabel dan fungsi untuk ini, pengguna nomor waktu saat ini, shell atau direktori kerja, dalam rangka, misalnya, untuk membuat menyenangkan lebih informatif atau visual prompt, untuk membedakan berbagai sesi pada mesin, atau untuk mengindikasikan tingkat penangkaran perintah. Pada beberapa sistem, token khusus dalam definisi prompt dapat digunakan untuk menyebabkan program eksternal untuk dipanggil oleh interpreter baris perintah sementara menampilkan prompt.
Dalam COMMAND.COM DOS dan baris perintah cmd.exe juru Windows NT adalah prompt dimodifikasi dengan mengeluarkan perintah prompt atau dengan langsung mengubah nilai dari variabel% PROMPT% lingkungan yang sesuai. Default sistem paling modern, C: \> gaya diperoleh, misalnya, dengan "prompt $ P $ G". Default dari sistem DOS yang lebih tua, C> diperoleh dengan hanya "prompt", meskipun pada beberapa sistem ini menghasilkan lebih baru C: \> gaya, kecuali digunakan pada floppy drive A: atau B:; pada sistem-sistem "prompt $ N $ G "dapat digunakan untuk mengesampingkan default otomatis dan eksplisit beralih ke gaya yang lebih tua.
Pada sistem Unix banyak, variabel $ PS1 dapat digunakan, meskipun variabel lain mungkin juga berdampak pada prompt (tergantung pada apa shell sedang digunakan). Pada shell bash, prompt dari bentuk
[Waktu] user @ host: work_dir $
dapat ditetapkan dengan menerbitkan perintah
ekspor PS1 = '[\ t] \ u @ \ H: \ W $'
Dalam zsh variabel $ RPROMPT kontrol sebuah "prompt" opsional pada sisi kanan layar. Ini bukan sebuah prompt nyata di lokasi entri teks tidak berubah. Hal ini digunakan untuk menampilkan informasi pada baris yang sama dengan prompt, tapi benar dibenarkan.
Dalam RISC OS, command prompt adalah '*' simbol, dan dengan demikian (OS) CLI perintah yang sering disebut sebagai "perintah bintang" [1]. Hal ini juga memungkinkan untuk mengakses perintah yang sama dari baris perintah lainnya (seperti BBC BASIC baris perintah), dengan mendahului perintah dengan '*'.
Argumen-argumen
Sebuah argumen command-line atau parameter argumen dikirim ke program yang disebut. Pada prinsipnya program dapat mengambil banyak argumen baris perintah, arti dan pentingnya yang tergantung sepenuhnya pada program.
Ketika sebuah prosesor perintah aktif program biasanya dipanggil dengan mengetikkan namanya diikuti dengan argumen baris perintah (jika ada). Sebagai contoh, dalam Unix dan Unix-seperti lingkungan, contoh argumen command-line adalah:
rm file.s
"File.s" adalah argumen baris perintah yang memberitahu rm program untuk menghapus file "file.s".
Bahasa pemrograman seperti C, C + + dan Java memungkinkan program untuk menafsirkan argumen baris perintah dengan menangani mereka sebagai parameter string dalam fungsi utama.
Command-line pilihan
Sebuah pilihan baris perintah atau hanya pilihan (juga dikenal sebagai bendera atau switch) memodifikasi operasi perintah; efek ditentukan oleh program perintah itu. Pilihan mengikuti nama perintah pada baris perintah, dipisahkan dengan spasi. Sebuah ruang sebelum pilihan pertama tidak selalu diperlukan.
Sebagai contoh, dalam sistem operasi OpenVMS, direktori Perintah ini digunakan untuk daftar file di dalam direktori. Secara default-yaitu, ketika pengguna direktori hanya jenis-akan hanya daftar nama-nama file. Dengan menambahkan opsi / pemilik (untuk membentuk direktori perintah / pemilik), pengguna dapat menginstruksikan perintah direktori untuk juga menampilkan kepemilikan dari file.
Format pilihan bervariasi antara sistem operasi. Dalam kebanyakan kasus sintaks adalah dengan konvensi daripada persyaratan sistem operasi, seluruh baris perintah adalah hanya string dilewatkan ke sebuah program, yang dapat memproses dalam cara apapun programmer inginkan.
Kadang-kadang program yang berbeda menggunakan sintaks yang berbeda dalam sistem operasi yang sama. Sebagai contoh:
* Pilihan dapat diindikasikan oleh -,, / atau baik.
* Mereka mungkin atau mungkin tidak kasus-sensitif
* Kadang-kadang pilihan dan argumen mereka dijalankan bersama-sama, kadang-kadang dipisahkan oleh spasi, dan kadang-kadang oleh sebuah karakter, biasanya: atau =. Jadi "Prog-fFilename", "Prog-f Filename", "Prog-f: Filename", "Prog-f = Filename".
* Beberapa program memungkinkan karakter tunggal pilihan untuk digabungkan, yang lainnya tidak. Saklar "-fA" bisa berarti sama dengan "-f-A", atau mungkin salah, atau bahkan mungkin menjadi parameter yang valid tapi berbeda.
Dalam Unix-seperti sistem, tanda hubung dikurangi-ASCII umumnya digunakan untuk menentukan pilihan. Karakter ini biasanya diikuti oleh satu atau lebih huruf. Argumen itu adalah tanda hubung minus tunggal dengan sendirinya tanpa ada surat-surat biasanya menetapkan bahwa program harus menangani data yang berasal dari masukan standar atau mengirim data ke output standar. Dua tanda hubung-minus karakter (-) digunakan pada beberapa program untuk menentukan "pilihan panjang" di mana nama pilihan yang lebih deskriptif yang digunakan. Ini adalah fitur umum dari perangkat lunak GNU.
Di DOS, OS / 2 dan Windows garis miring ('/') yang lebih menonjol, meskipun hyphen-minus juga kadang-kadang digunakan di sana. Dalam banyak versi DOS (MS-DOS/PC-DOS 2.xx dan lebih tinggi, semua versi DR-DOS sejak 5.0, serta di PTS-DOS dan FreeDOS) karakter beralih saat ini untuk digunakan didefinisikan oleh nilai kembali dari panggilan sistem (INT 37h 21/AH =). Para karakter default dikembalikan oleh API ini adalah '/', tetapi dapat diubah ke minus tanda hubung-pada semua sistem yang disebutkan di atas (kecuali untuk MS-DOS/PC-DOS 5.0 dan lebih tinggi). Dalam beberapa sistem (MS-DOS/PC-DOS 2.xx/3.xx, DR-DOS 7.02 dan lebih tinggi, dan FreeDOS), pengaturan tidak hanya bisa dikontrol oleh program, tetapi juga pra-dikonfigurasi oleh SWITCHAR direktif di CONFIG.SYS. Sedangkan aplikasi harus mengambil pengaturan ini sebelum parsing argumen baris perintah, program yang ada banyak yang tidak mematuhi standar ini dan didesain untuk menggunakan '/' saja. Di bawah DR-DOS, jika pengaturan telah berubah dari '/', pemisah direktori pertama '\' dalam tampilan parameter PROMPT $ G akan berubah menjadi '/' garis miring (juga pemisah direktori yang valid di DOS, OS / 2 dan Windows) sebagai petunjuk visual untuk menunjukkan perubahan. Beberapa command-line interpreter (termasuk versi terbaru dari DR-DOS COMMAND.COM dan 4DOS) juga menyediakan pseudo-variabel lingkungan bernama% /% atau%% SWITCHAR untuk memungkinkan batchjobs portabel untuk ditulis.
Tidak mungkin untuk mengetahui apa argumen yang dapat mengenali sebuah program, dan apa sintaks untuk digunakan tanpa dokumentasi program konsultasi. Ini adalah biasa untuk sebuah program untuk menampilkan ringkasan singkat tentang parameter ketika dipanggil dengan sebuah baris-perintah yang biasanya salah satu dari:??? Tidak ada parameter;, -;-jam; /; / jam;-membantu; atau - membantu. Memasukkan nama program tanpa parameter dengan harapan bahwa itu akan menampilkan parameter dapat berbahaya, karena beberapa program dan script mengeksekusi tanpa basa-basi.
karakter spasi
Di banyak daerah komputasi, tetapi khususnya pada command line, karakter ruang dapat menyebabkan masalah karena memiliki dua fungsi berbeda dan tidak kompatibel: sebagai bagian dari perintah atau parameter, atau sebagai parameter atau pemisah nama. Ambiguitas dapat dicegah baik dengan melarang spasi tertanam dalam file dan direktori-nama di tempat pertama (misalnya, dengan mengganti mereka dengan menggarisbawahi'_'), atau, jika didukung oleh interpreter baris perintah dan program mengambil parameter sebagai argumen, dengan melampirkan nama dengan spasi tertanam antara kutipan karakter. Sebagai contoh
Path / nama lama program Parameter Parameter panjang satu dua ...
adalah ambigu (adalah "nama program" bagian dari nama program, atau dua parameter?);
Long_path / Long_program_name Parameter_one Parameter_two ...,
LongPath / LongProgramName ParameterOne ParameterTwo ...
dan
"Panjang jalur / nama program Panjang" "Parameter satu" "Parameter dua" ...
tidak. Unix-sistem operasi berbasis cenderung untuk tidak menggunakan spasi tertanam; Microsoft Windows cenderung menggunakan tanda kutip.
Command-line interpreter
RT-11 berjalan pada UKNC
Seorang juru baris perintah (juga disebut garis perintah shell, perintah juru bahasa, atau disingkat CLI) adalah sebuah program komputer yang membaca baris teks yang dimasukkan oleh pengguna dan menafsirkan mereka dalam konteks sistem operasi yang diberikan atau bahasa pemrograman.
Command-line interpreter memungkinkan pengguna untuk mengeluarkan berbagai perintah dalam cara (dan sering singkat) yang sangat efisien. Hal ini mengharuskan pengguna untuk mengetahui nama dari perintah dan parameter mereka, dan sintaks dari bahasa yang diinterpretasikan.
Sejarah Awal
Dari 1960 dan seterusnya, interaksi pengguna dengan komputer terutama dengan cara command-line interface, awalnya pada mesin seperti ASR Teletype Model 33, tapi kemudian pada awal CRT terminal berbasis komputer seperti VT52.
Semua perangkat ini murni berbasis teks, dengan tidak ada kemampuan untuk menampilkan grafis atau gambar [2] Untuk program aplikasi bisnis, berbasis teks menu yang digunakan, tetapi untuk interaksi yang lebih umum baris perintah adalah antarmuka..
Dari awal 1970-an sistem operasi Unix pada minicomputer memelopori konsep lingkungan command-line yang kuat, yang Unix disebut "shell", dengan kemampuan untuk "pipa" output dari satu perintah sebagai masukan untuk yang lain, dan untuk menyimpan dan kembali menjalankan perintah sebagai string "shell script" yang bertindak seperti perintah kustom.
Perintah-line juga antarmuka utama untuk komputer rumah awal seperti Commodore PET, Apple II dan BBC Mikro - hampir selalu dalam bentuk BASIC. Ketika mikrokomputer bisnis yang lebih kuat berorientasi tiba dengan CP / M dan kemudian MSDOS komputer seperti IBM PC, perintah-baris mulai meminjam beberapa sintaks dan fitur dari kerang Unix seperti globbing dan pipa output. Baris perintah pertama serius ditantang oleh pendekatan GUI yang baru pada tahun 1984 dengan Apple Macintosh 128K, tapi butuh sampai 1990 dan Windows 3.0 sebelum pengguna yang paling dikonversi.
Sementara kebanyakan pengguna komputer sekarang menggunakan GUI hampir secara eksklusif, pengguna yang lebih maju memiliki akses ke baris perintah kuat lingkungan:
* MS Windows pengguna memiliki cmd.exe klasik "DOS"-seperti lingkungan, tetapi juga antarmuka PowerShell baru
* Apple [3] (Mac OS X) dan pengguna Linux memiliki Unix klasik shell bash
* Router dari Cisco [4] Juniper Networks [5] dan banyak lainnya biasanya dikonfigurasi dari baris perintah.
