টার্মিনাল প্রতিস্থাপন! একটি কমান্ড সহ একটি নম্বর পরে


12

আমি আমার উবুন্টু টার্মিনাল অধিবেশন সম্পর্কে খুব বিভ্রান্ত হয়েছি, মনে হচ্ছে কমান্ডগুলিতে এমন কিছু বিভাগ প্রতিস্থাপন করা হবে !যা প্রথমে কিছুটা আপাতদৃষ্টিতে এলোমেলো কমান্ডের সাহায্যে শুরু করা হবে। এটা আছে যে সঙ্গে !87সঙ্গে এটি প্রতিস্থাপন screen -lএবং সঙ্গে !88সঙ্গে এটি প্রতিস্থাপিত ls

কেন এমনটি হচ্ছে এমন কোনও ধারণাগুলি অনেক প্রশংসিত হবে।


উত্তর:


20

এটি bashইতিহাসের প্রসার, যেমন

!87

ইতিহাস লাইন থেকে কমান্ডটি পুনরায় কার্যকর করে 87

আপনি এই বৈশিষ্ট্যের বিবরণটি man bash"ইতিহাসের বিবরণ " বিভাগে পাবেন:

       An  event  designator  is  a  reference  to a command line entry in the
       history list.  Unless the reference is absolute, events are relative to
       the current position in the history list.

       !      Start  a  history substitution, except when followed by a blank,
              newline, carriage return, = or ( (when the extglob shell  option
              is enabled using the shopt builtin).
       !n     Refer to command line n.
       !-n    Refer to the current command minus n.

সুতরাং দ্রুত শেষ কমান্ড কল করতে, !-1এবং পঞ্চম শেষ কমান্ড জন্য !-5। এর একটি সহজ প্রতিশব্দ !-1হ'ল !!- যদি আপনি যেমন ডাকে apt install somethingএবং ভুলে যান তবে sudoকেবল মৃত্যুদন্ড কার্যকর করুন sudo !!এবং আপনি ভাল।

কেবল ব্যাকস্ল্যাশ ( \ ) এবং একক উদ্ধৃতিই ইতিহাসের সম্প্রসারণের চরিত্রটি উদ্ধৃত করতে পারে।

ইতিহাসের প্রসার এড়াতে, আপনাকে হয় ব্যাকস্ল্যাশ ( \!) সহ বিস্মৃত চিহ্নটি থেকে বাঁচতে হবে বা একক উদ্ধৃতি ( '!') ব্যবহার করতে হবে ।


3
!আপনার কমান্ডগুলিতে একটি আধ্যাত্মিক উত্তরণ এবং ইতিহাসের প্রসার এড়াতে আপনাকে একক-উক্তি বা এড়াতে হবে: foo '!87'বা foo \!87। (ডাবল-কোটগুলি তাদের বিষয়বস্তুতে সম্প্রসারণও করবে))
কুইসোটিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.