Ketika saya grep tidak ada file tertentu terminal berhenti bekerja


0

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 desktopdan 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?


1
Tekan Ctrl-C. Ini bukan pertanyaan pemrograman.
Sean Bright

Jawaban:


3

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 saja grep pattern, ia membaca input dari konsol. Ini adalah pola yang sangat umum di antara utilitas Unix dan Linux. Ketika Anda mengetik exit, 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.


2

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 -adan cari untuk eof = ...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 dan login:prompt muncul lagi. Dengan kata lain, Anda keluar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.