"অ্যাপটি-ইনস্টল ইনস্টল করুন" কী করে এবং কীভাবে এটি কার্যকর হয়?


54

আমি কেউ টাইপ করতে দেখেছি

apt-get install !!

তিনি এটি কয়েকবার করেছিলেন এবং প্রতিবারই একটি আলাদা প্রোগ্রাম ইনস্টল করা হয়েছিল। দেখে মনে হচ্ছে এটি পরবর্তী কী প্রয়োজন তা স্বয়ংক্রিয়ভাবে বের হয়ে গেছে।

যাইহোক, আমি যখন এটি আমার উবুন্টু 14.04.1 এলটিএস ভার্চুয়াল মেশিনে চেষ্টা করেছি তখন এটি কিছু ব্যবহারের নির্দেশাবলী দেখিয়েছে। গুগলিং apt-get install !!খুব ভাল কাজ করে না বলে মনে হচ্ছে। অনেকগুলি অনুসন্ধানের ফলাফলগুলিতে দ্বিগুণ উদ্দীপনা চিহ্ন থাকে না।

apt-get install !!আমার মেশিনে এটি কাজ করে না এমনটি কী করবে এবং কী অনুপস্থিত হতে পারে?


উত্তর:


74

!! বাশের একটি শর্টকাট মানে শেষ আদেশটি কার্যকর করা হয়।

এটা চেষ্টা কর:

 echo hello
 !!

এ প্রসঙ্গে !!অন্য সম্প্রসারিত হবে echo hello

আমি কল্পনা করেছিলাম কী ঘটেছিল তাদের কমান্ড চালানোর চেষ্টা করা হয়েছিল এবং এটি ব্যর্থ হয়েছিল এবং অভিযোগ করে যে এটি ইনস্টল করা হয়নি। সুতরাং তারা টাইপ করেছিল sudo apt-get install !!কারণ প্যাকেজটির নামটি কাকতালীয়ভাবে যে কমান্ডটি চালানোর চেষ্টা করেছিল তার নামের সাথে একই ছিল। ফলস্বরূপ কমান্ড একই নামে একটি প্যাকেজ ইনস্টল করার চেষ্টা করবে যা তারা সবেমাত্র চালানোর চেষ্টা করেছিল had


10
হ্যাঁ, এটি সম্ভবত যদি আমি চালনা করি lynxতবে দেখুন apt-get install !!এটি ইনস্টল করা নেই এবং তারপরে এটি লিংক ইনস্টল করে চালায় । এটি আমার পক্ষে কার্যকর হয়নি, কারণ আমি apt-get install !!একমাত্র আদেশ হিসাবে চেষ্টা করেছি ।
থমাস ওয়েলার 19

4
আর একটি সাধারণ ব্যবহার হ'ল যখন কোনও কিছু চালানো উচিত ছিল sudo, যেমন apt-get installকোনও কিছু যুক্ত করা।
এমবিরেডলি 25:25

6
@ ওল: আপনি প্রথম টাইপ করেন apt-get install some-programএবং যখন আপনি বুঝতে পারেন আপনার কোনও অধিকার নেই, আপনি কেবল sudo !!, যা প্রসারিত হয় sudo apt-get install some-program
mgarciaisaia

3
!!!-1বাশার ইতিহাসের শেষ আইটেমটির অর্থ হ'ল একটি উপাধি । !-2পেনাল্টিমেট এবং অন্যান্য।
টিম

41

!!এর সাথে কিছু করার নেই apt-get। এটি একটি শেল কীওয়ার্ড যা পূর্ববর্তী কমান্ডটিতে প্রসারিত হবে। বর্তমান কমান্ডটি ব্যাখ্যা করার আগে শেল দ্বারা এই সম্প্রসারণ করা হয়।

থেকে man bash:

!! পূর্ববর্তী কমান্ড পড়ুন। এটি `! -1 'এর প্রতিশব্দ।

উদাহরণস্বরূপ, আপনি যদি একটি আদেশ চালনা করেন:

echo "foo"

তারপরে যদি আপনি চালান:

sudo apt-get install !!

এটি প্রসারিত হবে:

sudo apt-get install echo foo

আপনি দেখতে পাচ্ছেন এটি দুটি প্যাকেজের মধ্যে বিস্তৃত হয় echoএবং অন্যটি foo। নামে কোনও স্ট্যান্ডেলোন প্যাকেজ নেই fooএবং echo। এছাড়াও শেল থেকে builtin echoআছে /bin/echoএক্সিকিউটেবল যে গনুহ-coreutils প্যাকেজের একটি অংশ। সুতরাং, আপনি ত্রুটিগুলি পেয়ে যাবেন যে এই জাতীয় কোনও প্যাকেজ উপলব্ধ নেই।

অন্যদিকে অন্য ব্যক্তি হয়ত এরকম কিছু করছেন:

$ cowsay
The program 'cowsay' is currently not installed. You can install it by typing:
sudo apt-get install cowsay

$ sudo apt-get install !!
sudo apt-get install cowsay
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  filters
The following NEW packages will be installed:
  cowsay
0 upgraded, 1 newly installed, 0 to remove and 119 not upgraded.
Need to get 18.5 kB of archives.

আপনি দেখতে পারেন cowsayইনস্টল করা হচ্ছে।

আমি আপনাকে এটি না করার পরামর্শ দিচ্ছি (যদি না আপনি নিশ্চিত হন) তবে সুস্পষ্ট হওয়া ক্ষতি করে না।


2
জন্য মহান ব্যাখ্যা !!। আমি এর অর্থ কী তা জানতাম তবে আপনি এটি বর্ণনা করার পদ্ধতিটি পছন্দ করি।
টেরেন্স

1
এই ঘরে বসে চেষ্টা না করার জন্য সতর্কতার জন্য +1।
শাদুর

16

!!: পূর্ববর্তী কমান্ড দেখুন। এটি !-1( উত্স ) এর প্রতিশব্দ ।

উদাহরণস্বরূপ, যদি আমি কার্যকর করি:

./test

তারপরে মনে রাখবেন যে আমার রুট হওয়া দরকার, তবে আমি কেবল টাইপ করতে পারি:

sudo !!

এটি টাইপ করার মতোই:

sudo ./test

এটি কার্যকর যখন আপনার শেষ কমান্ডটিতে প্রচুর অক্ষর থাকে।


1
উজ্জ্বল! আমি sudo !!আদেশ সম্পর্কে কখনও ভাবি নি ; আমি বছরের পর বছর যা করে যাচ্ছি তা হ'ল আপ কীটি একবার টিপুন, তারপরে কার্সারটিকে পুরো বাম দিকে সরান এবং যুক্ত করুন sudo
আইকিউআন্দ্রিয়াস

1
@ আইকিউআন্দ্রেয়াস আপনার উপায় আপনাকে আদেশটি ডাবল-চেক করার সুযোগ দেয় যা দৌড়ানোর সময় কোনও খারাপ জিনিস নয় sudo
ম্যাট নর্ডহফ

1
আমি সবসময় "সুডো !!" পড়ে থাকি হিসাবে "আমার অর্থ চ *** এর জন্য সুডো"
ভিক্টর মেলগ্রেন 25'15

1
@ ভিক্সেন: সেক্ষেত্রে, থফও আপনার জন্য কিছু হতে পারে
টমাস ওয়েলারের

@ আইকিউআন্দ্রেয়াস সমস্তভাবে বাম দিকে কার্সারটি সরানো খুব বিরক্তিকর বলে মনে হচ্ছে। শুধু Ctrl+Aবা কমপক্ষে কেন নয় Home?
রুসলান

2

প্রশ্নের ইতিমধ্যে উত্তর দেওয়া হয়েছে, তাই আমি পুনরাবৃত্তি করব না। তবে আমি উল্লেখ করতে চাই যে বিভিন্ন শেলের মধ্যে এমন অসংখ্য শর্টকাট রয়েছে যা আদেশগুলি পুনরাবৃত্তি / সন্ধান / সম্পাদনা করতে সহায়তা করে। আমি যেগুলি ব্যবহার করি তার মধ্যে কয়েকটি হ'ল:

  1. !$এর পরে ENTERশেষ কমান্ডের শেষ শব্দটি টাইপ করবে। উদাহরণ স্বরূপ,

    ls -l /let/me/in
    cd !$
    

এটি আপনাকে অবতরণ করবে /let/me/in

  1. Ctrl- Rএবং তারপরে পূর্ববর্তী কমান্ড থেকে কয়েকটি শব্দ লিখুন। উদাহরণস্বরূপ, যদি আপনার দ্বারা টাইপ করা vi /home/mycoolproject.shএবং এটি অনুসৃত মত কিছু র্যান্ডম কমান্ড সহ ls, cd, pwd, ইত্যাদি তারপর টাইপ Ctrl- Rদ্বারা অনুসরণ coolযে ধরে টেনে তুলবো viকমান্ড।

কেবল বাশ (বা সিএসএস বা যাই হোক না কেন) কীবোর্ড শর্টকাটগুলি অনুসন্ধান করুন এবং এটি আপনি আজ সেরা কাজ করবেন!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.