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


39

আমি জানতে চাই যে কীভাবে Execএকটি নতুন টার্মিনাল খোলার জন্য একটি .ডেস্কটপ ফাইলের কমান্ডটি লিখতে হবে এবং এতে একটি শেল স্ক্রিপ্ট কার্যকর করতে হবে। শেল স্ক্রিপ্টটি সমস্ত ব্যবহারকারীর দ্বারা কাজ করা এবং অ্যাক্সেসযোগ্য। টার্মিনাল থেকে স্ক্রিপ্ট আরম্ভ করার সময় সমস্ত কিছু কাজ করে, কিন্তু একটি .ডেস্কটপ ফাইল থেকে স্ক্রিপ্ট চালু করার চেষ্টা করার সময় এটি হয় না।

এখানে ইতিমধ্যে কয়েকটি সংমিশ্রণ চেষ্টা করেছি:

Exec=gnome-terminal -x sh -c 'echo hello'
Exec=sh -c 'gnome-terminal echo hello'
Exec=sh -c 'echo hello'
Exec=echo hello

.ডেস্কটপ টার্মিনাল বিকল্পটি সত্য হিসাবে সেট করা আছে।

উত্তর:


46

আপনার ডেস্কটপ ফাইলের সামগ্রীটি দেখতে দেখতে ( পাঠ্য সম্পাদক ব্যবহার করে একটি .ডেস্কটপ ফাইল কীভাবে তৈরি করবেন তা দেখুন ):

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=gnome-terminal -e "bash -c 'echo hello;$SHELL'"
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Application;

বা:

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=bash -c 'echo hello;$SHELL'
Icon=utilities-terminal
Terminal=true 
Type=Application
Categories=Application;

প্রথম ক্ষেত্রে, Terminalক্ষেত্রটি সেট করা হয়েছে false(সম্ভবত আপনার প্রত্যাশার বিপরীতে) এবং দ্বিতীয় ক্ষেত্রে সেট করা আছে true, তবে ফলাফল উভয় ক্ষেত্রেই একই।


1
প্রথম সমাধানটি আমার পক্ষে কাজ করে, তাই আমি এটিতে আছি। আপনি কি জানেন যে কেন সেখানে EL শেল করা উচিত?
প্যারাডিজস্টাব

1
@Thibaut হ্যাঁ, অবশ্যই
রাদু রেডানু

এটি আমার পক্ষে কাজ করেছে, তবে আমি sudo দিয়ে একটি কমান্ড চালু করতে চাই, তারপরে যখন ব্যবহারের প্রবর্তক তৈরি হবে এটি আমাকে পাসওয়ার্ডের জন্য জিজ্ঞাসা করে টার্মিনালটি খুলবে। আমি কীভাবে একটি আদেশ চালু করব এবং এই আচরণটি আটকাব?
ই_এঞ্জেল

1
@ ইলিয়াসআলভস কিছুটা দেরি করে, তবে অন্য কারও জন্য এটি পড়ার জন্য: আপনি নিজেকে প্রমাণীকরণের প্রয়োজন ছাড়াই মূল কমান্ডগুলির চালনার আশা করতে পারবেন না যেগুলির জন্য রুট সুবিধাগুলি প্রয়োজন। (যদি না আপনি আপনার সিস্টেমকে স্পষ্টরূপে এটি করার জন্য কনফিগার করেন তবে এটি সাধারণত একটি খারাপ ধারণা
code

আমি মনে করি প্রশ্নটি হল: টার্মিনালটি যাতে নিশ্চিত হয়ে যায় যাতে টার্মিনালটি অদৃশ্য না হয় যাতে আমরা শংসাপত্রগুলি প্রবেশ করতে পারি
রকসায়েন্স

2
!#/bin/bash

gnome-terminal -e YOUR_COMMANDS

উপরের ফাইলটি তৈরি করুন। ভুলে যাবেন নাsudo chmod +x filename.sh


1
এই সমাধানটির সাথে সমস্যাটি হ'ল, টার্মিনালটি সাথে সাথে অদৃশ্য হয়ে যায় এবং কোনও ব্যবহারকারী কোনও কিছু প্রবেশ করতে সক্ষম হয় না enter
প্যারাডিজস্টাব

একে কী বলা হয় আমি তা ভুলে গিয়েছিলাম তবে আমি মনে করি টার্মিনালটি ধরে রাখার একটি বিকল্প আছে। এটি হতে পারেhold
মিঃলাই

2

সহজভাবে যুক্ত করুন

;$SHELL 

আপনার কমান্ড শেষে।

আমার জন্য পছন্দ snapdহ'ল যে কোনও সময় আমি রাতে কাজ করি না কেন স্ন্যাপগুলি সতেজ করতে সিস্টেমের পূর্ণ ব্যান্ডউইথথ ব্যবহার করে না।

সুতরাং এটি আমার জন্য একটি .shফাইলের সাথে লিঙ্কযুক্ত একটি ফাইল তৈরি করতে কাজ করেছিল .desktop। ফাইলের
বিষয়বস্তু .shছিল

echo <your password> | sudo -S systemctl stop snapd.service
sudo systemctl disable snapd.service;$SHELL

-Sপ্রথম লাইনে .shফাইল পাঠাতে ব্যবহার করা হয় STDINPUTকরতে sudoকমান্ড অর্থ পাসওয়ার্ড না লিখে সরাসরি চালানো।

.desktopফাইলের বিষয়বস্তুগুলি ছিল:

[Desktop Entry]
Version=1.0
Name=Test
Comment=Test the terminal running a command inside it
Exec=gnome-terminal -e "/scripts/disable_snap.sh"
Icon=terminal
Terminal=true
Type=Application
Categories=Application;

0

আমি এটা করি. পাঠ্য ফাইলের প্রথম লাইনটি হ'ল # / বিন / বাশ

পাঠ্য ফাইলের পরবর্তী লাইনগুলি হ'ল আদেশগুলি (শেল স্ক্রিপ্ট)।

ফাইল কে কিছু হিসাবে সংরক্ষণ করুন Save

ফাইলের বৈশিষ্ট্যগুলি খুলুন এবং একটি প্রোগ্রাম হিসাবে রান ফাইল সক্ষম করুন।

এখন, যখন ফাইলটি ডাবল ক্লিক করা হয়, আমি এটি চালানোর বিকল্প পাই।


2
এখানে একই, টার্মিনাল অবিলম্বে অদৃশ্য হয়ে যায়।
প্যারাডিজস্টাব

এটি আমার কোনও সমস্যা নেই। শেল স্ক্রিপ্ট তৈরি করুন, প্রথম লাইন হিসাবে লাইন যুক্ত করুন! # / বিন / বাশ এক্সিকিউটেবল হিসাবে ফাইলটি চালানোর অনুমতি দিন। ডাবল ক্লিক করুন এবং টার্মিনালে রান নির্বাচন করুন। এটা ঠিক কাজ করে।
হ্যাটারম্যান

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