কীভাবে কোনও ফাইল (যেমন।। স্ক্রিপ্ট) নির্বাহযোগ্য হয়, যাতে এটি টার্মিনাল থেকে চালানো যায়


245

আমার কাছে স্ক্রিপ্ট.শ ফাইল রয়েছে এবং এই ফাইলের ধরণ হ'ল শেলসক্রিপ্ট ফাইল। আমি এই ফাইলটিকে অ্যাপ্লিকেশন / এক্স-এক্সিকিউটেবল ফাইল হিসাবে তৈরি করতে চাই। আমি কীভাবে এটি তৈরি করতে পারি?




এটি কোনও সদৃশ নয়, কারণ আমি এটি প্রয়োগ / এক্স-এক্সিকিউটেবল করার বিষয়ে বিশেষভাবে জিজ্ঞাসা করেছি। অন্য প্রশ্নটি কেবল টার্মিনালে sh ফাইল খোলার জন্য বলে।
জিয়াদউদ্দিন সাদিগোভ

উত্তর:


326

আপনি এক্সিকিউটেবল হিসাবে ফাইল চিহ্নিত করতে পারেন:

chmod +x filename.sh

তারপরে আপনি এটিকে এভাবে চালিত করতে পারেন:

./filename.sh

যদি আপনি এটি শুরু করতে একটি পৃথক কমান্ড ব্যবহার করতে চান তবে আপনি একটি উপনাম যুক্ত করতে পারেন:

gedit ~/.bashrc

ফাইলের শেষে এটি যুক্ত করুন:

alias <new name>='/home/<full path to script>/filename.sh'

একটি নতুন টার্মিনাল সেশন খুলুন বা source ~/.bashrcপ্রয়োগ করতে আপনার টার্মিনালটিতে টাইপ করুন । তারপরে স্ক্রিপ্টটি শুরু করতে কেবল নতুন নামটি ব্যবহার করুন।


। আপনি কি জানেন কিভাবে যেমন কমান্ড প্রবেশের পর উবুন্টু কমান্ড ব্যবহার করতে না:। "ওরফে command1 = '/home/user_name/dir/script.sh' খনি, এটা উবুন্টু ছাড়া কাজ করে, কিন্তু এটা না
আদিত্য

আপনাকে .bashrc রান সম্পাদনা করার পরে বাশটি পুনরায় চালু করতে হবে: ব্যাশ পুনরায় আরম্ভ করতে এক্সিকিউটিভ ব্যাশ।
সাম্পাথ পেরেরা

2
এক্সিকিউটেবল ফাইলটি কেন ./filename.shএবং কেবল নয় filename.sh?
ব্যবহারকারী 1993

@ ব্যবহারকারী ১৯৯৩ হ্যাঁ, আমি এটিকে কেবল সম্পাদনযোগ্য filenameএবং না করে কার্যকর করার জন্য একটি উপায়ও খুঁজছি./filename
মাইক্রোফডি ২

@ user1993 সাধারণত ./filename.shবর্তমান ডিরেক্টরিতে filename.shএকটি ফাইল নির্দিষ্ট করে এবং বর্তমান ডিরেক্টরিতে বা PATH এর যে কোনও ডিরেক্টরিতে একটি ফাইল নির্দিষ্ট করে । প্রথম ব্যবহারটি কোন ফাইলটি অ্যাক্সেস করেছে তা কোনও অনিশ্চয়তা দূর করে। এই ক্ষেত্রে, আপনি #!/bin/bashকেবল ফাইল নামটি প্রবেশ করে বাশ বা অন্য কোনও অনুবাদক ( আপনার স্ক্রিপ্টের প্রথম লাইন হিসাবে ধরে নেওয়া ) এর সাহায্যে স্ক্রিপ্টটি কার্যকর করার চেষ্টা করছেন । এই ব্যবহারের জন্য ডিরেক্টরি নির্দিষ্ট করা প্রয়োজন। বিকল্পভাবে, আপনি চেষ্টা করতে পারেন bash filename.shযা অনির্দিষ্ট ডিরেক্টরি দিয়ে কাজ করে বলে মনে হচ্ছে।
a505999

37

ফাইলকে এক্সিকিউটেবল করার দুটি উপায় রয়েছে:

জিইউআই পদ্ধতি:

অনুমতি ট্যাবে যান, তারপরে বাক্সটি টিক দিন `সম্পাদন করুন: [] প্রোগ্রাম হিসাবে ফাইলের সম্পাদনা করার অনুমতি দিন।

এখানে চিত্র বর্ণনা লিখুন

টার্মিনাল / কমান্ড পদ্ধতি:

আপনি হয় ব্যবহার করতে পারেন:

cd /to/my/required/directory

তারপরে দৌড়াও

chmod +x filename.extension

অথবা কেবল চালান:

chmod +x /path/to/your/filename.extension

chmod এছাড়াও আরও কিছু উন্নত বিকল্প রয়েছে:

স্পেসগুলি এটিকে বিভক্ত হয়ে গেছে তা দেখানোর জন্য: - rwx --- ---

এর প্রথম সেটটি ---হ'ল ইউজার। দ্বিতীয়টি গ্রুপ এবং শেষটি হ'ল অন্যান্য (অন্য যে কেউ)

r এর অর্থ হ'ল রিড, ডব্লিউ এর জন্য রাইট এবং এক্স এক্সেক্সটের জন্য এক্স।

সুতরাং প্রত্যেককে এটি পড়ার অনুমতি দেওয়ার জন্য, তবে কেবলমাত্র নির্বাহের জন্য গ্রুপ এবং ব্যবহারকারী এটি পড়তে এবং লিখতে (তবে কোনও কারণে কার্যকর করা হয়নি) হবে:

-rw- rx- r-- এটি কমান্ডের সাথে যুক্ত হবে:

chmod +rw-rx-r-- /path/to/file.extension

chmodএছাড়াও সংখ্যা এই করতে পারেন। এটি বাইনারি ভিত্তিক (আমার ধারণা, এটি 1,2 এবং 4 এর মতো)

সুতরাং এই সংখ্যা আছে:

ব্যবহারকারী দ্বারা কার্যকর করা হয় 100। গ্রুপ দ্বারা কার্যকর করা হয় 010। অন্যান্য দ্বারা চালিত হয় 001

ব্যবহারকারী লিখেছেন 200। গ্রুপ দ্বারা লিখুন হয় 020। অন্য লিখেছেন 002

ব্যবহারকারী দ্বারা পড়া হয় 400। গ্রুপ দ্বারা পড়া হয় 040। অন্য দ্বারা পড়া হয় 004

তারপরে আপনি এগুলি যুক্ত করে পছন্দসই সংমিশ্রণটি পেতে পারেন।

সুতরাং প্রত্যেককে এটি পড়ার অনুমতি দেওয়ার জন্য, তবে কেবলমাত্র এটি কার্যকর করার জন্য গোষ্ঠী এবং ব্যবহারকারী এটি লেখার জন্য (তবে কোনও কারণে কার্যকর করা হয়নি) হবে:

400 + 040 + 004এবং 010এবং200

এটি 600 + 050 + 004 = 654 পর্যন্ত যোগ করে।

আপনি তখন কমান্ড চালাতে পারেন।

chmod +654 /path/to/file.extension সেট করতে।

এবং সমস্ত অনুমতি সেট করতে আপনি টাইপ করতে পারেন:

chmod +rwxrwxrwx /path/to/file.extension

অথবা (এটি লেখার জন্য কিছুটা সহজ তবে প্রতিটি মনে রাখা আরও কঠিন):

chmod +777 /path/to/file.extension

অবশেষে, আপনি এটি করতে পারেন:

chmod -777 /path/to/file.extension

সকলের কাছ থেকে সকল অনুমতি নেওয়া।

এবং:

chmod +300 /path/to/file.extension

অন্য কোনও অনুমতি (উদাহরণস্বরূপ অনুমতিগুলি কার্যকর করুন) প্রভাবিত না করে ব্যবহারকারীর জন্য পঠন এবং লিখন যুক্ত করতে।

এই ওয়েবসাইটে একটি খুব দরকারী গ্রিড চেকবক্স জিনিস রয়েছে, যার মাধ্যমে আপনি নিজের পছন্দগুলি পছন্দ করতে পারেন এবং এটি আপনাকে আদেশ দেয়:

এখানে চিত্র বর্ণনা লিখুন

তবে, সমস্ত সম্ভাব্য সংমিশ্রণগুলি ব্যবহার করার জন্য বুদ্ধিমান নয়; প্রধান যেগুলি ব্যবহৃত হয় তা নিম্নলিখিত:

755 - Ownerএর সমস্ত রয়েছে Groupএবং Otherএটি পড়তে এবং সম্পাদন করতে পারে

700 - Ownerসব আছে

644 - Ownerপড়তে এবং লিখতে Groupএবং Otherপড়তে পারে

600 - Ownerপড়া এবং লিখতে পারেন

এবং, যদি আপনি অ-তুচ্ছ ব্যবহারকারী গ্রুপগুলি ব্যবহার করছেন:

775 - Ownerপড়তে এবং লিখতে Groupএবং Otherপড়তে পারে

770 - Ownerএবং Groupসমস্ত রয়েছে এবং Otherপড়তে এবং সম্পাদন করতে পারে

750 - Ownerএর সমস্ত রয়েছে এবং Groupএটি পড়তে এবং সম্পাদন করতে পারে

664 - Ownerএবং Groupপড়তে এবং লিখতে Otherপারে এবং স্রেফ পড়তে পারে

660 - Ownerএবং Groupপড়তে এবং লিখতে পারেন

640 - Ownerপড়তে এবং লিখতে এবং Groupপড়তে পারে

T 777 এবং mp 666 টি কম / টিএমপি বাদে খুব কম ব্যবহৃত হয়।

ইলমারি করোনেনকে সাধারণ ব্যবহারের জন্য নির্দেশ করার জন্য ধন্যবাদ !


এটি বাইনারি (২ ভিত্তিক) এর পরিবর্তে অষ্টাল (8-বেস) ভিত্তিক নয়? বাইনারিতে আপনার কেবল 0 এবং 1 থাকতে পারে, তবে অষ্টালে আপনি 0, 1, ... 6, 7 থাকতে পারেন
জাস্টিনাস

এই 7 = 4 + 2 + 1 - 111 তে জাস্টিনাস বাইনারিটি পড়ুন এবং লিখুন এবং সম্পাদন করুন।
টিম

8

চালান:

chmod +x /path/to/file.sh

এটি কার্যকর না করার জন্য চালনা করুন:

chmod -x /path/to/file.sh

উদাহরণস্বরূপ আমি .shফাইল তৈরি করেছি :

vi tester12.sh

আমি ভিআই এডিটারে কিছু কোড লেখার পরে আমি ভিআই এডিটর থেকে প্রস্থান করব:

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