সম্পূর্ণ পাথ টাইপ না করে স্ক্রিপ্টগুলি কীভাবে চালানো যায়?


57

আমি পুরো পথটি টাইপ না করে প্রোগ্রাম / শেল স্ক্রিপ্ট চালানোর কোনও উপায় আছে কিনা তা জানতে চাই:

/opt/idea/bin/idea.sh

আপনি সর্বদা ফাইলের পুরো পথ দিতে পারেন।
মুরু

আপনাকে @ মুরু ধন্যবাদ, এটি আমি জানি, তবে এটি এমন একটি প্রোগ্রাম যা আমি প্রায়শই ব্যবহার করি, তাই আমি এটি একটি দীর্ঘ ফাইল পথ নয়, একটি সাধারণ কমান্ড দিয়ে চালাতে সক্ষম হতে চাই।
জনি

nufailm.blogspot.com/2012/05/… এটি ধারণার জন্য সহায়তা করবে :)
ডেডুনুম্যাক্স

উত্তর:


60

আপনি কেবল সিমিলিংক তৈরি করতে পারেন । এটি তৈরি করুন /usr/local/bin। আপনার যা প্রয়োজন তা হ'ল কমান্ড চালানো:

sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command

এর পরে আপনার কার্যকর করা উচিত file:

chmod +x /full/path/to/your/file

এখন name_of_new_commandআপনার টার্মিনালে যে কোনও সময় চালানো উচিত ।

নোট করুন যে এটি শুধুমাত্র লিনাক্সের হোম ব্যবহারের জন্য ভাল সমাধান।


11
মনে রাখবেন যে /usr/local/binকোনও ব্যক্তিগত হোম ফোল্ডারে কোনও স্ক্রিপ্টের প্রতি সেই পয়েন্টগুলিতে আপনার কোনও সিমলিঙ্ক স্থাপন করা উচিত নয় /home/jack/myscript.sh, যেমন কেবলমাত্র ব্যবহারকারী jackসাধারণত এটি কার্যকর করতে সক্ষম হন। সিমলিংকটি অন্যান্য ব্যবহারকারীর জন্য দৃশ্যমান হবে তবে যে ফাইলটি এটি দেখায় তা নয়। একটি একক ব্যবহারকারী সিস্টেমে এটি কোনও ব্যাপার নয় তবে এখনও, সমস্ত ব্যবহারকারী স্ক্রিপ্টগুলি (বা স্ক্রিপ্টগুলির লিঙ্কগুলি) স্থাপন /usr/local/binএবং "ব্যক্তিগত, স্ব-নির্মিত স্ক্রিপ্টগুলি (বা স্ক্রিপ্টগুলির লিঙ্কগুলি) স্থাপন করা " ভাল অনুশীলন "is তাদের ~/binফোল্ডারে একক ব্যবহারকারী ।
মাল্টে স্কোরুপ্পা

/ usr / sbin / এ যে কোনও জায়গা থেকে অ্যাক্সেসযোগ্য করে একটি
সিমিলিংক যুক্ত

28

আপনি /opt/idea/binআপনার PATHপরিবর্তনশীল যুক্ত করতে পারেন :

PATH=/opt/idea/bin:"$PATH"

এর পরে আপনি এটিকে সহজভাবে চালাতে পারেন idea.sh

আপনি সম্ভবত আপনার ~/.bashrcফাইলে এই লাইনটি যুক্ত করতে চান ।


2
এছাড়াও: আপনি যদি স্ক্রিপ্টটিকে সম্পাদনযোগ্য করে তুলেন তবে .sh এক্সটেনশনটি ছেড়ে দেওয়া যেতে পারে (ধরে নিই যে আপনি স্ক্রিপ্টের শীর্ষে শেবাং ব্যবহার করছেন)। কেবল তখনই "ধারণা" যথেষ্ট।
জ্যাকব ভিলিজম

1
@ জ্যাকব: আপনি এক্সটেনশনযোগ্য ফাইলের নাম হিসাবে এটি এক্সটেনশনটি ছেড়ে দিতে পারবেন না (এটি উইন্ডোজ নয়, যেখানে এর মতো যাদু অন্যান্য সমস্যার কারণ হয়ে থাকে)। নামের সাথে স্ক্রিপ্টটি কল করতে idea, আপনাকে idea.shস্ক্রিপ্টের দিকে ইঙ্গিত করে সেই নামের সাথে একটি লিঙ্ক বা ওরফে তৈরি করতে হবে ।
জোনাথন ক্যালেন

2
@ জোনাথনক্যালেন কলেন আপনি অবশ্যই পারবেন! স্ক্রিপ্টটি এক্সিকিউটেবল করুন, ফাইলের নাম এবং এটি চালানোর কমান্ড উভয় থেকে .sh এক্সটেনশনটি সরিয়ে ফেলুন, আপনি যে স্ক্রিপ্টটি শ্যাবাং #! / বিন / বাশ দিয়ে শুরু করেন তা দিয়ে।
জ্যাকব ভিলিজ

1
@ জ্যাকব আমার অর্থ ফাইলটির নাম পরিবর্তন করা ছাড়া , আপনি পারবেন না (এবং এটি বৃহত্তর সফ্টওয়্যার প্যাকেজের অংশ হিসাবে দেখা যাচ্ছে, সুতরাং আপনার কেবল ফাইলের নাম পরিবর্তন করা উচিত নয় )
জোনাথন ক্যালেন

2
ধন্যবাদ @Jacob, লক্ষ্য এটা বলে "স্ক্রিপ্ট সিস্টেম পাথ একটি ডিরেক্টরির মধ্যে ইনস্টল করা যখন"idea.shস্ক্রিপ্ট যেমন স্ক্রিপ্ট নয়, আসলে এটা তার ইনস্টলেশন Dir বাহিরে চলন্ত সম্পূর্ণরূপে অসমর্থিত। দেবিয়ান প্যাকেজিংয়ের নিয়মগুলি এখানে প্রয়োগ হয় না।
জানস

15

আপনি এতে একটি ফাংশন তৈরি করতে পারেন ~/.bashrc:

some-name () {
    /path/to/your/file
    # or:
    #cd /path/to/your
    #./path
}

অথবা আপনি এটি তৈরি করতে পারেন alias:

alias some-name='/path/to/your/file'
# or  
#alias some-name='cd /path/to/your/; ./file'

উভয় ক্ষেত্রে, আপনি কল করে এটি চালাতে পারেন:

$ some-name

যদি ফাইলটি কোথায় চলছে তার উপর নির্ভর না করে, এটি আপনার যুক্ত করার কথা বিবেচনা করুন ~/bin:

mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin

~/binএটি উপস্থিত থাকলে, $PATHস্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায় gets তারপরে আপনি সরাসরি কল করুন file:

$ file

(যদিও নামটি পছন্দ করা ভাল, এটিকে কম জেনেরিক কিছু বলার বিষয়টি বিবেচনা করুন))


@ অলি সর্বদা আমার পাঁচ মিনিট সময় দিন, আমি ইনডেন্ট যুক্ত করার প্রবণতা রাখি। :) এটি কেবলই বিরক্তিকর কারণ আমি দ্বিতীয় স্তরের ইনডেন্টগুলির জন্য সিটিআরএল-কে ব্যবহার করতে সম্পাদককে চালিত করতে হবে।
মুরু

2
fileআপনার যুক্ত করার সমাধানের জন্য বিশেষত +1 করুন ~/binযা আমি সাধারণত যা করি (দীর্ঘ স্ক্রিপ্টগুলির জন্য)। আমি সম্ভবত এটি শীর্ষে রেখেছি :) কিছু নির্দিষ্ট পরামিতি সহ শর্টকাটগুলি কমান্ডের শর্টকাটগুলির জন্য এলিয়াসগুলি ভাল alias l='ls -CF'যদিও আমি উচ্চারণের আরও অনেক দুর্দান্ত ব্যবহার দেখেছি । আমি এতে ফাংশনগুলি ঘোষণার প্রবণতা রাখি না ~/.bashrc(আমি আমার সমস্ত স্ক্রিপ্টগুলি আলাদা আলাদা ফাইলগুলিতে সজ্জিত করতে পছন্দ করি ~/bin)। যদিও এটি সমস্ত স্বাদের বিষয়, তবে আমি অনুমান করি :)
মাল্টে স্কোরুপা্পা

@ মাল্টসকোড়াপ্পা আমি কেবল সেই পদ্ধতিগুলিকেই অগ্রাধিকার দিয়েছি যেগুলি নিজেকে সহজেই ndণ দেয় cd, কারণ স্ক্রিপ্টটি সম্ভবত কার্যনির্বাহী ডিরেক্টরিতে নির্ভর করে। :) অন্যথায়, হ্যাঁ, আমি ~/binনিজের মধ্যে ফাইল রাখার প্রবণতা রাখি।
মুরু

10

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি লঞ্চার তৈরি করতে পারেন:

gnome-desktop-item-edit --create-new <path-where-to-save>। আমি এই উইন্ডোটি খুলব।

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

আপনার পছন্দ মত নাম দিন এবং নিম্নলিখিত কমান্ড বক্স টাইপ করুন

sh -c '/opt/idea/bin/idea.sh' এবং এটি সংরক্ষণ করুন।

এখন আপনি নতুন তৈরি লঞ্চার ব্যবহার করে সেই ফাইলটি চালাতে পারেন

অথবা

আপনি নিম্নলিখিত বিষয়বস্তু সহ একটি .ডেস্কটপ ফাইল তৈরি করতে পারেন

[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'     
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'

এখন এটি .desktopযেকোন জায়গায় এক্সটেনশন সহ সংরক্ষণ করুন।

এই আদেশ দিয়ে এটি সম্পাদনযোগ্য করুন chmod a+x <your-desktop-file>

এখন এটি খুলতে ডাবল ক্লিক করুন।


7

আমরা bindকল করতে কমান্ড ব্যবহার করে একটি ফাংশন এবং একটি অ্যাড হটকি সংজ্ঞায়িত করতে পারি । ~/.bashrcফাইলটি খুলুন এবং এতে এই লাইনটি যুক্ত করুন:

# define function that opens your program in working directory
Openprog(){
    /your-Program/path/here
}

# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'

এখন আপনি যখন টিপবেন তখন F12আপনার প্রোগ্রামটি চালু হবে।

দ্রষ্টব্য: পালানোর কোড নির্ধারণের জন্য একটি দ্রুত উপায়:

আপনার টার্মিনালটি খুলুন এবং Ctrl+ টিপুন V। এখন আপনার প্রিয় কীবোর্ড শর্টকাট টিপুন। সঠিক পালানোর কোডটি উপস্থিত হওয়া উচিত। শুধু প্রতিস্থাপন করতে ভুলবেন না ^[দিয়ে \eশর্টকাট যেমন প্রতিস্থাপন যোগ করার আগে ^[[24~সঙ্গে \e[24~


7

আমরা /opt/idea/bin/idea.shসরাসরি ব্যবহার করে ফাইল চালাতে পারিbash_aliases

~/.bashrcচালিয়ে ফাইল খুলুন ,

gedit ~/.bashrc

#রেখাগুলির আগে সরিয়ে ফেলুন এবং এটি সংরক্ষণ করুন, যাতে লাইনগুলি দেখতে দেখতে,

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

এখন ~/.bash_aliasesফাইল খুলুন ,

gedit ~/.bash_aliases

সেই ফাইলটিতে নীচের লাইনগুলি যুক্ত করুন এবং এটি সংরক্ষণ করুন,

alias idea='cd /opt/idea/bin && sudo ./idea.sh'

শেষ পর্যন্ত ~/.bashrcফাইলটি উত্স করুন,

source ~/.bashrc

এখন আপনি /opt/idea/bin/idea.shসরাসরি ফাইল চালাতে পারবেন ,

idea

4

অন্যান্য ভাল উত্তরের পাশাপাশি, আপনার পাথের ~/.local/binসাথে এই ডিরেক্টরিটি সিলেকিং এবং যুক্ত করার বিষয়টি বিবেচনা করুন ( .bashrcউদাহরণস্বরূপ আপনার মধ্যে থেকে )। এই পদ্ধতিতে বিশেষ অনুমতিের প্রয়োজন নেই ( /usr/local/binউদাহরণস্বরূপ সিলেকিংয়ের বিপরীতে )। এইভাবে, আপনার flood HOM প্লাবন না করে আপনার কাছে স্ট্যান্ডার্ড ডিরেক্টরি স্ট্রাকশন থাকতে পারে। এই https://unix.stackexchange.com/ প্রশ্নগুলিতে এ সম্পর্কে আরও পড়ুন :


1

/usr/binডাইরেক্টোটায়ারের একটি নরম লিঙ্ক তৈরি করুন :

ln -s /usr/bin/idea.sh  /opt/idea/bin/idea.sh

এখন এটি ব্যবহার করে চালান:

idea.sh

0

অথবা আপনি সহজভাবে ব্যবহার করতে পারেন

nano ~/.bashrc

এবং যোগ করুন

PATH=/full/path/to/file:"$PATH"

এর শেষে, তারপরে সংরক্ষণ এবং প্রস্থান করুন। এরপরে, আপনি কেবল ফাইলের নাম টাইপ করতে পারেন।


0

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

ঠিক সংক্ষিপ্তবৃত্তি যাও, জন্য বিশেষ Xubuntu , কিন্তু অন্যান্য জন্য Debian / Ubuntu- পাশাপাশি রূপগুলো আমি এই সহজ টিপস লিখেছিলেন।

(নিম্নলিখিত নির্দেশাবলীতে আমরা ডিরেক্টরি ~ / বিন ব্যবহার করি , কারণ এটি স্বয়ংক্রিয়ভাবে এমন একটি জায়গা যেখানে এই ওএসগুলি আদেশগুলি সন্ধান করে here এখানে দেখুন :

আপনার আদেশটি কাজ করার জন্য মূর্খ-প্রমাণ নির্দেশাবলী:

# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)

# You'll work in your home folder, no need to use sudo for any of this

cd # Go to home directory

mkdir -p bin # Create folder ~/bin if it doesn't exist

# Be careful not to type /bin, that's the bin folder in system root: /

sudo apt install nano # Skip this if you have Nano installed

nano bin/yournewcommand

    # In Nano, type:

    printf "Your new command works! \n" # \n means line break

    # Ctrl+X To leave Nano

    # Ctrl+Y To save the unsaved file

    # Enter to confirm

chmod +x bin/yournewcommand

yournewcommand # If you just created the bin folder, this command might not yet work.

# You must now log out and log back in to make the bin folder noticed (I think)

yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)

# If you add a second file/command, it should work without logging out (at least in my tests)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.