আমি কি আমার নিজস্ব আদেশগুলি তৈরি করতে পারি?


12

আমি ভাবছিলাম যে আমি কমান্ড লাইনে 'সঙ্গীত' টাইপ করতে চাইলে নিজের কমান্ডগুলি তৈরি করতে পারি কিনা, আমার ভিএলসি আমার প্লেলিস্টটি প্লে করা শুরু করবে playing ভিএলসি জিনিসটি কেবল একটি উদাহরণ তবে প্রশ্ন থেকেই যায়।

আমি কি আমার নিজস্ব আদেশগুলি তৈরি করতে পারি? যদি হ্যাঁ, কিভাবে?


আপনি স্ক্রিপ্ট তৈরি করতে পারেন, আপনি যদি চান তা যদি হয়?
আলভার

উত্তর:


19

হ্যাঁ - সংগীত নামক একটি ফাইল তৈরি করুন এবং এর মধ্যে নিম্নলিখিতটি রাখুন:

#!/bin/bash
echo "Hello world"

এরপরে, টাইপ করুন chmod +x music- এটি ফাইলটি কার্যকর করতে সক্ষম করে। আপনি এখন ./musicএই স্ক্রিপ্টটি চালাতে টাইপ করতে পারেন ।

echo $PATHএই ডিরেক্টরিগুলির মধ্যে একটিতে স্ক্রিপ্টটি টাইপ করে অনুলিপি করা ভাল ধারণা । আমি $HOME/binআপনার প্যাথ এটিকে তৈরি বা যুক্ত করার পরামর্শ দেব ~/.bash_profileবা এর মাধ্যমে ~/.profile। এই (ঐ ফাইল এক) যোগ করে করা সম্ভব: export PATH="$HOME/bin:$PATH"। এরপরে source .bash_profileএটি পুনরায় লোড করার জন্য আপনাকে চালনা করতে হবে (ধরে নেওয়া উচিত যে আপনি সেই ফাইলটিতে রেখেছেন)।

আরেকটি বিকল্প হ'ল বাশ ওরফে হিসাবে চালাতে চান কমান্ডটি যুক্ত করা। আপনি .bash_aliasesআপনার হোম ডিরেক্টরিতে নামের একটি ফাইলের সাথে নিম্নলিখিতগুলি যুক্ত করে এটি করতে পারেন :

alias music='vlc --some-option --foo'

রান source ~/.bash_aliasesবা লগআউট এবং লগইন এবং এটি কাজ করা উচিত :-)


3

এটি করার সর্বোত্তম উপায় হ'ল .bash_aliasesআপনার বাড়ির ফোল্ডারে কোনও ফাইলকে সংশোধন করা (বা তৈরি করা) ।

সিনট্যাক্স মোটামুটি সহজ:

alias install='sudo apt-get -y install'

এই কমান্ডের সাহায্যে, যদি আপনি installএকটি টার্মিনাল টাইপ করেন, তবে পরিবর্তে এটি ব্যাখ্যা করা হবে

sudo apt-get -y install

তবে এই কমান্ডগুলি টার্মিনালের বাইরে কোথাও কাজ করবে না।


1

আপনার পাথের ডিরেক্টরিতে যে কোনও এক্সিকিউটেবল ফাইল "কমান্ড" হতে পারে। এটি অন্যান্য উত্তরের পরামর্শ অনুসারে স্ক্রিপ্ট হতে পারে তবে এটি আপনি যে কোনও समर्थित ভাষাতে একটি সংকলিত প্রোগ্রামও হতে পারেন।

উপনামগুলিও কাজ করবে, তবে সীমাবদ্ধ কারণ তারা "ওয়ান-লাইনার" যাতে তাদের সাথে জটিল কিছু করা দ্রুত কোড তৈরি করে যা পড়া খুব কঠিন। এছাড়াও, যেহেতু তারা আপনি যে টাইপের শেলটি টাইপ করেন তেমন একই পরিবর্তনশীল স্কোপে কার্যকর করে, তাদের সহজেই অনিচ্ছাকৃত পার্শ্ব প্রতিক্রিয়া থাকতে পারে যেমন আপনাকে অন্য ডিরেক্টরিতে রেখে দেওয়া বা ভেরিয়েবলগুলি সংজ্ঞায়িত করা যেতে পারে যা কেবলমাত্র ওরফে সম্পাদন করা কার্য দ্বারা প্রয়োজনীয়। (অবশ্যই, কখনও কখনও আপনি সম্ভবত একটি উপনামটি সঠিকভাবে ব্যবহার করতে চাইতে পারেন কারণ এটির পছন্দসই পার্শ্ব প্রতিক্রিয়া রয়েছে))

আপনি যদি আপনার নতুন কমান্ডগুলি আপনার ডিরেক্টরিতে একটি ডিরেক্টরিতে রেখে দেন তবে সেগুলি শেলটি দ্বারা পাওয়া যায় এবং সম্পাদিত হতে পারে। এগুলি রাখার সর্বাধিক সাধারণ জায়গা হ'ল / হোম / বিন in যদি এই ডিরেক্টরিটি বিদ্যমান থাকে তবে এটি প্রায়শই স্বয়ংক্রিয়ভাবে আপনার পথে যুক্ত হবে।

এটি সেট আপ করার সময় দুটি বিষয় মনে রাখা উচিত: 1) আপনার কমান্ডগুলির জন্য অনন্য নামগুলি ব্যবহার করা ভাল that যা আপনার সিস্টেমে ইতিমধ্যে সংজ্ঞায়িত কোনওটির সাথে মেলে না। এটি নিয়ে অনেক বিতর্ক রয়েছে, তবে মূল কথাটি হ'ল পরিচিত কমান্ডগুলির অপ্রত্যাশিত ফলাফলগুলি হওয়া উচিত নয় যদি অন্য কেউ আপনার সিস্টেম ব্যবহার করে থাকে এবং সাধারণ কমান্ডের সাথে বিশেষ কিছু করার অভ্যাস করা আপনি অন্য সিস্টেমে কাজ করার সময় সমস্যায় পড়তে পারেন যেখানে এটি সেভাবে সংজ্ঞায়িত করা হয়নি।

২) আপনি আপনার পথের শুরু বা শেষের দিকে (বা এর মধ্যে যে কোনও জায়গায়, তবে এটি সাধারণত সম্পন্ন হয় না) $ হোম / বিন যোগ করতে পারেন।

আপনার পথের সামনের অংশে এটি যুক্ত করা সবচেয়ে সুবিধাজনক পছন্দ কারণ আপনার কমান্ডের সংস্করণ সর্বদা কার্যকর হবে এবং এটি দ্রুত পাওয়া যাবে। এটি একটি সুরক্ষিত দুর্বলতাও কারণ যে কেউ আপনার / বাড়ি / বিনে লেখার অনুমতি পেতে পারে (মূল অ্যাক্সেস পাওয়ার চেয়ে অনেক সহজ) খুব সহজেই সাধারণ কমান্ডগুলি সম্ভাব্য দূষিত কোডের সাথে প্রতিস্থাপন করতে পারে। এছাড়াও, যদি আপনাকে কখনও আপনার সিস্টেমটি জানেন না এমন কারও কাছ থেকে সহায়তা চাইতে হয়, তবে আপনি কেবলমাত্র শীর্ষে সমস্ত কিছু ব্যাখ্যা করার জন্য অতিরিক্ত প্রচেষ্টা ব্যয় না করলে আপনার কাস্টম কমান্ডগুলির বিশেষ আচরণে তাদের বিভ্রান্ত হওয়ার সম্ভাবনা রয়েছে then আপনার প্রশ্ন জিজ্ঞাসা

আপনার পথের বিবৃতিটির শেষে এটি যুক্ত করা কিছুটা নিরাপদ কারণ আপনার পথে আগে থেকেই আপনার আদেশ অনুসারে একই নামের কোনও কমান্ড পাওয়া যাবে এবং তার পরিবর্তে চালানো হবে - এবং প্রত্যাশার মতো সেই আদেশের উপর নির্ভর করে অন্য যে কোনও কিছু এখনও কাজ করবে ।

এগুলি এড়াতে (কিছুটা অতিরিক্ত টাইপ করার ব্যয়ে), আপনি আপনার কমান্ডটি এমন কোনও ডিরেক্টরিতেও রাখতে পারেন যা আপনার পথে নেই তবে এটি অজ্ঞাতসারে কখনও চালানো হবে না কারণ আপনাকে এটির পুরো পথের নামটি টাইপ করতে হবে চালাও এটা.

লিনাক্সের বেশিরভাগ জিনিসের মতো, নতুন কমান্ড তৈরি ও ব্যবহার করার বিভিন্ন উপায় রয়েছে এবং সেগুলির প্রতিটি নিজস্ব সুবিধা এবং সীমাবদ্ধতা রয়েছে।

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