Saya belajar cara menggunakan shell. Dalam bermain-main dengan beberapa perintah dasar saya mengalami masalah. Ini adalah hal yang sangat mendasar dan saya minta maaf jika itu mengganggu beberapa orang.
Di desktop saya ada file bernama "myFirstShellScript.txt". Dalam file itu ada serangkaian teks "show system".
Jadi, jika saat membuka shell saya ketik cd desktop
dan kemudian grep "show system" myFirstShellScript.txt"
shell mengembalikan kalimat tempat string itu muncul. Baik.
Tapi aku ingin main-main. Saya kemudian mengetik grep "show system"
dan menekan enter. Saya bertanya-tanya apakah grep akan mencari seluruh desktop karena itu adalah pwd saya.
Tetapi yang tampaknya terjadi adalah terminal berhenti bekerja. Awalnya saya pikir mungkin hanya sibuk mencari tetapi sudah cukup lama. Saya kemudian memeriksa apakah perintah lain akan berfungsi - pwd - tidak melakukan apa-apa, ketika saya menekan enter kursor hanya bergerak ke baris baru.
Saya kemudian mencoba keluar. Saya mencoba "keluar", "mengakhiri" dan "berhenti". Tidak ada. Jendela terminal tidak merespons seperti yang diharapkan.
Saya tahu saya bisa dengan mudah membuka tab lain tetapi ingin bertanya apa yang telah saya lakukan ke terminal di sini?
Jawaban:
Ketika Anda menjalankan
grep
, jika Anda menyertakan nama file (grep pattern file
), ia mencari file itu. Ketika Anda tidak melakukannya, ia akan mencari input standar (stdin). Jika Anda memasukkannya ke dalam pipa (foo | grep
), itu terbaca dari pipa. Ketika Anda menjalankannya sajagrep pattern
, ia membaca input dari konsol. Ini adalah pola yang sangat umum di antara utilitas Unix dan Linux. Ketika Anda mengetikexit
,end
,quit
, atau apa pun, itu membandingkan dengan pola dan mencetaknya jika cocok, sama seperti jika Anda telah diberikan sebuah file. Coba masukkan garis yang cocok dengan pola - Anda akan melihatnya bergema kembali kepada Anda.Untuk keluar dari ini, tekan Ctrl+ Duntuk memberi sinyal pada akhir file. Ctrl+ Cakan mematikan sebagian besar program, tetapi kurang bersih daripada Ctrl+ D.
sumber
Grep tanpa argumen membaca dari input standar, yang merupakan terminal Anda. Itu akan terus membaca sampai bertemu dengan karakter end-of-file. Karakter akhir file adalah Ctrl-D. Ketik itu, dan grep dilakukan.
Jika itu tidak berhasil, jalankan
stty -a
dan cari untukeof = ...
menemukan karakter Anda.Peringatan Gotcha : jangan mengetik Ctrl-Ddua kali; yang kedua akan dibaca oleh shell Anda. Jika itu shell login Anda, itu akan berpikir Anda sudah selesai dan keluar. Setiap kali shell login Anda keluar (seperti saat Anda mengetik
exit
) sesi login Anda selesai danlogin:
prompt muncul lagi. Dengan kata lain, Anda keluar.sumber