আমি কীভাবে সরাসরি শেল থেকে আমার অজগর প্রোগ্রামটি চালাতে পারি?


10

আমি একটি স্ক্রিপ্ট লিখেছি। এটি শুরু হয়ে গেলে, এটি থামবে না এবং এটি ইন্টারনেট থেকে ডেটা পেতে থাকে। আমি এটিকে এটি বলতে পারি:

cd /User/Desktop/project/internetScanner/
python3 main.py start

তবে আমি গন্তব্যস্থলের মধ্যে সরাসরি টার্মিনাল থেকে এটি কল করতে চাই:

internetScanner start

আমি কীভাবে এটি করতে পারি?


2
আমি আশ্চর্য হয়েছি যদি এর উপর শিরোনামটি পরিবর্তন করা যায় ..
ব্যবহারকারী 606723

@ ব্যবহারকারী 606723 এডিট পরিবর্তন করার জন্য নির্দ্বিধায় মনে হয়। প্রথম শিরোনাম "কীভাবে আমার প্রোগ্রামটি শেল চলতে দেওয়া যায়?" খুব ভাল ছিল না।
স্ল্যাক করুন

উত্তর:


27

আপনি সম্ভবত আপনার ফাইল নামান্তর উচিত main.pyকাছে internetScanner। * নিক্সের এক্সটেনশানগুলি সম্পূর্ণরূপে alচ্ছিক। এখানে বিষয়টি বিবেচনা করা উচিত নয়।

mv main.py internetScanner

তারপরে, শুরুতে ঠিক এই ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন:

#!/usr/bin/env python3

এটি নিশ্চিত করবে যে শেলটি যখন ফাইলটি কার্যকর করে, python3তখন বিষয়বস্তুর ব্যাখ্যার জন্য এটি ব্যবহার করতে হবে । এটি শেবাং নামে পরিচিত । এখন, ফাইলটি সম্পাদনযোগ্য করুন:

chmod +x internetScanner

আপনি এখন থেকে নিজের প্রোগ্রামটি চালাতে পারবেন /User/Desktop/project/internetScanner/:

./internetScanner start

তোমার প্রোগ্রাম ফোরগ্রাউন্ড চালানোর এবং চলমান যতক্ষণ না আপনি টিপুন অব্যাহত থাকবে Ctrl- C। আপনি যদি এটি না চান তবে আপনি কমান্ডের পরে একটি অ্যাম্পারস্যান্ড যুক্ত করে পটভূমিতে প্রোগ্রামটিও শুরু করতে পারেন:

./internetScanner start &

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

আপনি যদি এখন সিস্টেমের যে কোনও জায়গা থেকে প্রোগ্রামটি চালাতে সক্ষম হতে চান তবে আপনার নিজের internetScannerডিরেক্টরিটি যুক্ত করতে হবে PATH: PATH এবং অন্যান্য পরিবেশের পরিবর্তনগুলি কী কী এবং আমি কীভাবে সেগুলি সেট বা ব্যবহার করতে পারি?


ভাল উত্তর. আমি যুক্ত করার পরামর্শ দিচ্ছি যে তিনি সম্ভবত একটি অ্যাম্পারস্যান্ড (&) দিয়ে কমান্ডটি শেষ করতে চান যদি তিনি এটির জন্য অপেক্ষা করতে না চান এবং / অথবা এর আউটপুট এবং ত্রুটি প্রবাহটি কোনও ফাইলে পুনর্নির্দেশ করতে পারেন।
বেন হকিং

@ বেনহকিং ধন্যবাদ, আমি এটি উত্তরে যুক্ত করেছি।
স্লাইক করুন

X &প্রক্রিয়াটি নিয়ন্ত্রণের শেল থেকে বিচ্ছিন্ন করে না, এটি কেবল প্রক্রিয়াটির ব্যাকগ্রাউন্ড করে, অর্থাত্ যদি শেলটি প্রস্থান করে এটি যদি TERM সিগন্যালটি প্রেরণ করে তা পেয়ে যায়; তাই আপনি না চান তাহলে আপনি ব্যবহার করা উচিত আলাদা , detach ./internetScanner start
ড্যান ডি


এটি লক্ষণীয় যে, এটি named PATH- এর কোথাও main.pyসাদৃশ্যযুক্ত হওয়া পর্যন্ত এটির নামকরণ করা যেতে পারে internetScanner
jdd

2

অন্য কোন ফাইল ধরে নেওয়া যাক /User/Desktop/project/internetScanner/প্রয়োজন হয়, আপনি লিঙ্ক (একটি একক ব্যবহারকারীর জন্য ইনস্টল করতে চান তাহলে ln -s) main.pyথেকে $HOME/bin/internetScanner। আপনার সম্ভবত $HOME/binপ্রথমে এমকেডির লাগবে ।

পরের বার আপনি লগ ইন করবেন, $HOME/binসম্ভবত আপনার প্যাথ যোগ করা হবে। আপনি যদি এটি সমস্ত ব্যবহারকারীর জন্য উপলভ্য চান তবে এটিতে অনুলিপি করুন /usr/local/bin

যদি এটি কার্যকর করতে /User/Desktop/project/internetScanner/হয় তবে হয় আমদানি করে osএবং কল করেই শুরু করুন

os.chdir('/User/Desktop/project/internetScanner/') 

বা একটি লঞ্চার স্ক্রিপ্ট তৈরি করুন $HOME/binবা /usr/local/binএটি স্ক্রিপ্টে পরিবর্তন হয় /User/Desktop/project/internetScanner/এবং কার্যকর করে।


0

alias internetScanner "python /User/Desktop/project/internetScanner/main.py".Aliases ফাইল রাখুন (সিএসএসের জন্য)। ব্যাশের জন্য alias internetScanner="python /User/Desktop/project/internetScanner/main.py".bashrc দিন। এর পরে আপনি যে কোনও জায়গা থেকে ইন্টারনেটস্ক্যানার শুরু করতে পারবেন।


আমি কখনও .aliasesফাইলের কথা শুনিনি । এটি কি বাশের জন্য মানক কিছু? অথবা আপনার নিজের মধ্যে এটি স্পষ্টভাবে উত্স করতে হবে .bashrc?
কাজার্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.