سؤال لماذا لا تقبل Ubuntu Terminal حرف "\"؟


لا استطيع الحصول على شل بلدي محطة لقبول أ \ عندما اكتبه. لا يحدث شيء. لقد غوغلد ولكن لم أر أي شيء يبدو لمعالجة هذا. ليس لدي أي فكرة عن أين سأبدأ في حل المشاكل.

تصحيح:

يمكنني استخدام الكسوف \ في أي محرر نصوص (بما في ذلك أدوات نانو أو غيرها من سطر الأوامر). الأمر المحدد في السؤال هو:

find -type f -exec chmod -x {} \;    

إذا قمت بنسخ هذا السطر ولصقه في ، \ يختفي الحرف. إذا حاولت ثم اكتب في ، لا يحدث شيء.

المكان الوحيد لهذه المشكلة هو int سطر الأوامر shell الفعلي.

شكر.

تحرير اثنين:

يبدو أن هناك بعض الارتباك. إذا قمت بنسخ الأمر المذكور أعلاه في سطر الأوامر الخاص بي ، دون الدخول إلى ENTER (I.E لا يتم تنفيذه) ، فهذا ما هو موجود في shell الخاص بي:

$find -type f -exec chmod -x {} ;    

إذا حاولت ثم أدخل \ للهروب من ; الرمز لا يظهر. إذا قمت بالضغط على Enter في أي وقت أثناء إدخال هذا الأمر في الظروف المذكورة أعلاه ، فإنه يفشل في التنفيذ ، بسبب لا يتم تمريرها إلى الأمر.

تحرير 3:

أنا أستخدم جنوم 3.4.1.1 على Ubuntu 12.04 LTS


4
2017-09-09 16:51


الأصل


ماذا عن أي محرر نصوص؟ هل تعمل بشكل جيد ..؟ - Saurav Kumar
مرحبًا بك في اسأل أوبونتو! ما الذي تقصده بالضبط "لا تستطيع أن تقبل المطراف \"؟ ماذا تقصد ب "لا يحدث شيء"؟ ما هو بالضبط الأمر الذي تحاول القيام به؟ - Alaa Ali
هل تقول أنه عندما تضغط على \ المفتاح فإنه لا يدخل الحرف؟ أو أي شيء آخر؟ هل تقبل النوافذ الأخرى الضغط على المفاتيح وتعرض المفتاح \ key؟ هل البرامج الأخرى؟ - Thomas Ward♦
ثُم ، راجع التعديلات. - user2757729
الآن! هذا يجعل بعض المعنى .. :) - Saurav Kumar


الأجوبة:


أحد الاحتمالات هو أن مفتاح الخط المائل العكسي أصبح مرتبطًا ببعض أوامر القراءة (readline هي المكتبة التي تسمح بتحرير أوامر shell في الموقع ، على سبيل المثال الربط السيطرة+ح الى backward-delete-char عمل).

لاختبار ما إذا كانت هذه هي الحالة ، يمكنك محاولة بدء تشغيل bash subshell مع تعطيل تعديل القارئ

bash --noediting

إذا كان مفتاح الخط المائل العكسي يعمل في ذلك المستند الفرعي ، فستكون الأماكن التي تبحث عن تعريف رابط المفتاح المارقة /etc/inputrc للتكوين العام و ~/.inputrc لتكوين لكل مستخدم. يمكنك أيضًا تجربة الطباعة والبحث عن المفاتيح الأساسية المحددة حاليًا من سطر الأوامر باستخدام

bind -P | grep '\\\\'

الشرطات المائلة العكسية الإضافية مطلوبة لأن الخط المائل العكسي الحرفي سيظهر في تكوين القراءة كما \\، كل واحد منهم يحتاج إلى مزيد من الهروب في وعاء. من الواضح أنه يمكنك القيام بذلك فقط في subshell ، إذا كان يتم ربط الخط المائل العكسي في shell العادي.

لمعلوماتك هناك bind خيار الأوامر لإزالة ملزم ، ولكن ليس من الواضح كيفية إدخال keyseq حجة عندما تكون ملزمة بالفعل

-r  keyseq         Remove the binding for KEYSEQ.

لمزيد من المعلومات انظر help bind في سطر الأوامر bash


3
2017-09-10 00:12





\ يهرب أي حرف يتبع ذلك. ; ينهي صراحة أمر. \; يعني الهروب ; ونمررها إلى الأمر الذي تستدعيه داخل البحث (كل شيء بعد -exec. مع \ منقوطة تنطبق على chmod في حين دون \ منقوطة ستنطبق على find.

الجهاز الخاص بك لا يعترف \. عندما تكتبه في الجهاز الخاص بك ، فإنك تخبر الطرفية الخاصة بك للهروب من الحرف التالي - الذي لا تقدمه.

إذا كنت ترغب في عرض \ كحرف ، فقم بالهروب منه. اكتب \\.


1
2017-09-09 18:01



عذرا ، أنا لا أعتقد أنك تفهم. ليس الأمر أنني أستطيع الدخول إلى الأمر ، وكل شيء يعمل. شخصية الهروب لا تجعلها في المحطة. انظر الجولة الثانية من التعديلات. - user2757729
أه آسف. هل تستخدم Gnome Terminal؟ - Jack
أنا على أوبونتو 12.04 ، الاشياء الافتراضية. أعتقد أن هذا غنوم؟ كيف يمكنني التحقق. - user2757729
في القائمة ، انقر فوق تعليمات -> حول. - Jack
تمت إضافة هذه التفاصيل إلى quesiton كـ edit 3. - user2757729


لا توجد فكرة عما إذا كان هذا هو السبب الرئيسي في حالتك ولكن يمكنني إعادة إنتاج سلوك مماثل عن طريق إدخال هذا الأمر:

stty eof \\

يمكن تصحيحه مع:

stty sane

قد ترغب في تجربة الأمر الأخير لمعرفة ما إذا كان ذلك سيؤدي إلى حل مشكلتك.


0
2017-09-09 19:34



شكرا ، أعطى ذلك طلقة. لا حظ. - user2757729


أعمل على "macBook Air" 2015 ، مع "Parallels 11" ، وجهاز ظاهري "Ubuntu". لوحة المفاتيح الخاصة بي هي "أبل" اللاسلكية المخفضة. لقد اخترت ، "ماكنتوش الفرنسية" (لأنني فرنسي ...!) ل keybord في القائمة ، ولكن في محطة أوبونتو ، في البداية ، لم أتمكن من جعل "\" ولا "|". لذا أذهب إلى "Paramètres Système" ، و "Saisie de texte" ("text typing"؟) وانقر على زر "Paramètres du clavier" (معلمات لوحة المفاتيح) في الزاوية السفلية اليمنى من النافذة. في النافذة الجديدة الثانية ، أختار "Saisie" ("Typing"؟) ثم السطر "Touche de caractères alternatifs" ("مفتاح الحرف البديل") ؛ الآن بالضغط على الطرف الأيمن من هذا الخط ، من الممكن الاختيار بين العديد من المفاتيح الخاصة ... في حالتي ، لم يتم تحديد أي مفتاح في البداية ، وقمت بتحديد "Alt Left" لمضاهاة الإجراء العادي ضمن Mac نظام التشغيل العاشر طويلة لشرح ، ولكن سريعة وسهلة للقيام! جاي دي بيرنون


0
2018-02-02 15:24