কমান্ড লাইন [বন্ধ] ব্যবহার করে জিনোম-টার্মিনালে একটি নতুন ট্যাব খুলুন


122

আমি উবুন্টু 9.04 এক্স 64 ব্যবহার করছি এবং যখন আমি লিখি:

gnome-terminal --tab

টার্মিনালে, আমি এটি একই টার্মিনাল উইন্ডোতে একটি নতুন ট্যাব খুলতে আশা করি। তবে এটি পরিবর্তে একটি নতুন উইন্ডো খোলে।

আমি জানতে পেরেছিলাম যে এর উদ্দেশ্যটি একটি নতুন উইন্ডোতে একটি নতুন ট্যাব খোলার অর্থ, যদি আমি লিখি:

gnome-terminal --tab --tab

এটি দুটি ট্যাব সহ একটি নতুন উইন্ডো খুলবে।

সুতরাং, প্রশ্নটি হল, আমি কীভাবে একটি কমান্ড ব্যবহার করে বর্তমান উইন্ডোতে একটি নতুন ট্যাব খুলতে পারি gnome-terminal?


4
আপনি যদি যাইহোক জিনোম-টার্মিনাল লিখতে থাকেন তবে নতুন ট্যাব খোলার জন্য কেন আপনি কেবল
সিটিআরএল

13
এবং Ctrl+Shift+Tযখন স্ক্রিপ্ট ফাইল থেকে কমান্ডটি চালানো হচ্ছে তখন আমি কীভাবে টিপব ? (শুনেছি ডি-বাস নামে কিছু এটি করতে পারে)!
বিক্রত চৌধুরী চৌধুরী

19
যখনই আমি আমার পিসি শুরু করি, আমার জিনোম-টার্মিনালে আমার কয়েকটি ট্যাব খুলতে হবে। এবং স্বয়ংক্রিয়করণ যা আমাকে নিজেকে আরও কিছুটা বোকা বানাবে। (যেমন তারা বলে) অলসতা একটি প্রোগ্রামারের বৈশিষ্ট্য।
বিক্রত চৌধুরী চৌধুরী


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

উত্তর:


70
#!/bin/sh

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID

এটি সম্পর্কিত টার্মিনালটি স্বয়ংক্রিয়ভাবে নির্ধারণ করবে এবং তদনুসারে ট্যাবটি খুলবে।


3
ধন্যবাদ, ভাল কাজ করে। যথাযথ ফর্মে -WID= xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}'; xdotool windowfocus $WID; xdotool key ctrl+shift+t $WID
বিক্রান্ত চৌধুরী চৌধুরী

6
সমাধানের জন্য ধন্যবাদ। যদিও, আমি কীভাবে বিভিন্ন ট্যাবে বিভিন্ন কমান্ড প্রয়োগ করতে পারি তা আমার কাছে পরিষ্কার নয়। আমি যেখানে কমান্ডগুলি যুক্ত করব তা সেগুলিই প্রথম ট্যাবে কার্যকর করা হবে। আপনি কি এর জন্য একটি সমাধান অন্তর্ভুক্ত করতে পারেন?
কলিন 21

10
ক্যালিন sleep 1; xdotool type --delay 1 --clearmodifiers "your Command"; xdotool key Return;একটি কমান্ড চালাতে ব্যবহার করুন ।
ব্যবহারকারী 13107

2
WID এবং উইন্ডো ফোকাস বিট কেন? উইন্ডো ইতিমধ্যে ফোকাস করা হবে না?
ক্রিস মরগান

1
আমি এই স্ক্রিপ্টটি কোথায় রাখব?
দাউদজি

69

আপনি প্রতিটি ট্যাবে একটি সেট কমান্ড চালাতে পারেন।

gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"

11
আমি পেয়েছি 'এই টার্মিনালের জন্য শিশু প্রক্রিয়া তৈরি করতে একটি ত্রুটি হয়েছিল' এর প্রতিক্রিয়ায়gnome-terminal --tab -e "cd /tmp"
হেজেহগ

3
@Hedgehog, আমি জন্য একটি উপায় করেছি: gnome-terminal --tab --working-directory="/home/user/X/Y/"। আমি না কেন, কিন্তু "~/X/Y/"কাজ হয়নি।
glarrain

1
আমার কমান্ডগুলির সাথে আমার সমস্যা হচ্ছে, আমি যদি কেবলমাত্র --tab ব্যবহার করি তবে এটি কাজ করে তবে যদি আমি --tab -e "my_bash_shorcut" ব্যবহার করি তবে এটি কার্যকর হয় না। তুমি কি জানো কেন?
অ্যাড্রিয়ান মাত্তিও

@ অ্যাড্রিয়ানম্যাটিও কিছুটা দেরী করেছে, তবে আমি মনে করি এটি জেনে ফেলেছি: আপনি যদি গীবেরিশ দিয়ে দুটি ফাইল তৈরি করেন এবং এই কমান্ডটি চালান gnome-terminal --tab -e "tail -f file_a" --tab -e "tail -f file_b", তবে জিনোম টার্মিনালটি দুটি ট্যাব দিয়ে খোলা হবে যেখানে প্রতিটি ট্যাব সম্পর্কিত ফাইলের বিষয়বস্তু রাখবে, তবে এটি বন্ধ করে দেবে মুহূর্তে আপনি সি পাঠান। এটি আপনাকে কার্যকর করে কেন এটি কাজ করে না, তবে কীভাবে এটি প্রতিকার করতে হয় তা আমি জানি না।
IDDQD


8

আমি সবচেয়ে সহজ উপায় খুঁজে পেয়েছি:

gnome-terminal --tab -e 'command 1' --tab -e 'command 2'

আমি tmuxসরাসরি টার্মিনাল ব্যবহার করার পরিবর্তে ব্যবহার করি । তাই আমি যা চাই তা হ'ল envবেশ কয়েকটি tmuxউইন্ডো দিয়ে বিকাশের জন্য একটি একক এবং সাধারণ কমান্ড / শেল ফাইল । শেল কোডটি নীচে রয়েছে:

#!/bin/bash
tabs="adb ana repo"
gen_params() {

    local params=""
    for tab in ${tabs}
    do  
        params="${params} --tab -e 'tmux -u attach-session -t ${tab}'"
    done
    echo "${params}"
}
cmd="gnome-terminal $(gen_params)"
eval $cmd

এই উক্তিগুলি 'command 1'ডাবল উদ্ধৃতিগুলির চেয়ে আরও ভাল কাজ করে যা কেবলমাত্র আমার জন্য যখন আমি নির্দিষ্ট করে তাও কাজ করে--working-directory="/some/path/"
ব্যারি স্টায়েস

4

কিছুটা আরও বিস্তৃত সংস্করণ (অন্য উইন্ডো থেকে ব্যবহার করতে):

#!/bin/bash

DELAY=3

TERM_PID=$(echo `ps -C gnome-terminal -o pid= | head -1`) # get first gnome-terminal's PID
WID=$(wmctrl -lp | awk -v pid=$TERM_PID '$3==pid{print $1;exit;}') # get window id

xdotool windowfocus $WID
xdotool key alt+t # my key map
xdotool sleep $DELAY # it may take a while to start new shell :(
xdotool type --delay 1 --clearmodifiers "$@"
xdotool key Return

wmctrl -i -a $WID # go to that window (WID is numeric)

# vim:ai
# EOF #

2

শুধু ক্ষেত্রে, আপনি খুলতে চান

  • একটি নতুন উইন্ডো
  • দুটি ট্যাব সহ
  • এবং সেখানে কমান্ড কার্যকর
  • এবং তাদের উন্মুক্ত থাকতে ...

আপনি এখানে যান:

gnome-terminal --geometry=73x16+0+0 --window \
  --working-directory=/depot --title='A' --command="bash -c ls;bash" \
  --tab --working-directory=/depot/kn --title='B' --command="bash -c ls;bash"

( mate-terminalবিটিডব্লিউর জন্যও একই )


xfce4-terminalবিটিডব্লিউর জন্য একই কাজ করে । এর মধ্যে কোন আদেশটি মূলত দায়ী and having them stay open...? xfce4-terminal
আই এম

1

উপরের অনেকগুলি বিভিন্ন পয়েন্ট একসাথে আনতে, এখানে একটি স্ক্রিপ্ট রয়েছে যা স্ক্রিপ্টে পাস হওয়া কোনও আর্গুমেন্ট চালাবে vim new_tab.sh:

#!/bin/bash
#
# Dependencies:
#   sudo apt install xdotool

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
sleep 1; xdotool type --delay 1 --clearmodifiers "$@"; xdotool key Return;

পরবর্তী এটি সম্পাদনযোগ্য করুন: chmod +x new_tab.sh

আপনি এখন নতুন ট্যাবে যা খুশি তা চালানোর জন্য এটি ব্যবহার করতে পারেন: ./new_tab.sh "watch ls -l"


0

আমার জিনোম-টার্মিনাল ইনস্টল করা নেই তবে আপনি কমান্ড-লাইনে dbus-send ব্যবহার করে একটি DBUS কল ব্যবহার করে এটি করতে সক্ষম হবেন ।


0

পরিবর্তে রক্সটার্ম ব্যবহার বিবেচনা করুন।

roxterm --tab

বর্তমান উইন্ডোতে একটি ট্যাব খোলে।


0

কমান্ড লাইনটি ব্যবহার না করে এমন সমাধান খুঁজছেন এমন যে কেউ: ctrl + shift + t t


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

আমি ঠিক তাই খুঁজছিলাম শিরোনামে প্রশ্নটি 'স্বয়ংক্রিয় সমাধানগুলি' @EAGER_STUDENT এর মধ্যে সীমাবদ্ধ নয় এবং সত্যি কথা বলতে, আমি যেখানে একটি জিইউআই স্বয়ংক্রিয় প্রয়োজন সেখানে এমন কোনও ব্যবহারের ক্ষেত্রে উপস্থিত হওয়া আমার পক্ষে কঠিন। এটি মেরুদণ্ডের মাধ্যমে ওপেন হার্ট সার্জারি করার মতো।
স্টিফেন উইঙ্কলার

6
@ স্টেফেন উইঙ্কলার আমি খুশি যে সমাধানটি আপনাকে সহায়তা করেছে। তবে যেহেতু প্রশ্নটি 'কমান্ড লাইন ব্যবহার করে' বলেছিল আমি কিছু স্বয়ংক্রিয় কমান্ড, উচ্চ ভোটের উত্তরের মতো কিছু ব্যবহার করার কথা ধরেছিলাম ... যাইহোক উত্তরটি নিজেই পরিষ্কার করে দেয় 'যে কোনও ব্যক্তি কমান্ড লাইন ব্যবহার না করে এমন সমাধানের সন্ধান করছেন' .... উত্তরের কুদোস .... তাছাড়া, 'এমন একটি ব্যবহারের মামলাটি সামনে আসতে আমার পক্ষে কঠিন মনে হয় যেখানে আমার একটি জিইআইআই স্বয়ংক্রিয় প্রয়োজন। এটি সর্বদা আমার শুরুতে 5 টি ট্যাব খোলার প্রয়োজন। সেক্ষেত্রে এটি কার্যকর হবে। তবে সেক্ষেত্রে আমরা যে কোনও উপায়ে স্বয়ংক্রিয়ভাবে শর্টকাট ব্যবহার করতে পারি;)
মুথু গণপতি নাথান

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

-2

একই টার্মিনাল উইন্ডোতে একাধিক ট্যাব খোলার জন্য আপনি নিম্নলিখিত সমাধান সহ যেতে পারেন।

উদাহরণ লিপি:

pwd='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/bin'
pwdlog='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/logs'
pwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/bin'
logpwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/standalone/log'

osascript -e "tell application \"Terminal\"" \

-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $pwd\" in front window" \
-e "do script \"./startup.sh\" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $pwdlog\" in front window" \
-e "do script \"tail -f catalina.out \" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $pwd1\" in front window" \
-e "do script \"./standalone.sh\" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $logpwd1\" in front window" \
-e "do script \"tail -f core.log \" in front window" \
-e "end tell"
> /dev/null 

1
যখন লিনাক্সের (জিনোম) টার্মিনাল সম্পর্কে প্রশ্নটি স্পষ্টভাবে হয় তখন এর মতো শব্দগুলি খুব OSX কেন্দ্রিক উত্তর। osascriptওএসএক্স (অ্যাপল)
নেমেছে

@ নেহেদ: ধন্যবাদ — যা পৃথিবীতে আমার উত্তরটি দেয় তা ?? এই উত্তরের প্রতিক্রিয়া। পল্লবী: যদিও ম্যাক সম্পর্কে প্রশ্নটি ছিল, নিজের ঘরের পথে হার্ডকোড করা আপনার উত্তরটিকে খুব সহায়ক করে না। আমি আপনাকে $HOMEপরিবেশের পরিবর্তনশীল, বা ওএসএক্স সমতুল্যটি ভিন্ন হলে ব্যবহার করার পরামর্শ দিচ্ছি ।
মাইকেল শ্যাপার 22
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.