ටර්මිනල් කවුළු විවෘත කර ඒවායේ විධාන ක්‍රියාත්මක කරන ස්ක්‍රිප්ටයක් සාදා ගන්නේ කෙසේද?


159

මගේ උබුන්ටු යන්ත්‍රය ආරම්භ කරන විට ධාවනය කිරීමට අවශ්‍ය ස්ක්‍රිප්ට් තුනක් මා සතුව ඇත, ඒවා මගේ සංවර්ධන පරිසරය තුළ මා භාවිතා කරන සේවාවන් ආරම්භ කරයි.

එය සිදු කිරීම සඳහා, මම අතින් අතින් ටර්මිනල් තුනක් විවෘත කර විධාන ටයිප් කරන්න.

ටර්මිනල් තුනක් විවෘත කර එක් විධානයක් ක්‍රියාත්මක කරන ස්ක්‍රිප්ටයක් නිර්මාණය කිරීමට ක්‍රමයක් තිබේද? (සෑම විධානයක්ම වෙනම පර්යන්ත කවුළුවක තිබිය යුතුය, එවිට ඒවායේ ප්‍රතිදානය මට දැකගත හැකිය).

Answers:


156
gnome-terminal -e command

හෝ

xterm -e command

හෝ

konsole -e command

ගොඩක් හොඳයි

terminal -e command

විධානය පිටවන විට පර්යන්තය රැඳී සිටීමට:

කොන්සෝල් හි --nocloseධජයක් ඇත.

Xterm හි -holdධජයක් ඇත.

තුළ gnome-terminal, සංස්කරණය -> පැතිකඩ මනාපයන් -> මාතෘකාව වෙත යන්න . විධාන පටිත්ත ක්ලික් කරන්න . විධාන පිටවන විට ලේබල් කරන ලද පතන මෙනුවෙන් ටර්මිනලය රඳවා ගන්න තෝරන්න . ඒ සඳහා ඔබ නව පැතිකඩක් සාදා එය ක්‍රියාත්මක කළ යුතුය

gnome-terminal --window-with-profile = NAMEOFTHEPROFILE -e විධානය

2
මම ටර්මිනලය රඳවා ගැනීමට උත්සාහ කළහොත්, "ළමා ක්‍රියාවලිය සාමාන්‍යයෙන් තත්ව කේතය 127 සමඟ
දර්ශන් චෞද්රි

2
gnome-terminal ට තවදුරටත් මාතෘකාව විකල්පයක් නොමැත :(
törzsmókus

1
2017 törzsmókus එය සැබවින්ම 2017 වේ! LTS නිකුතුවලට වසර 5 ක සහායක ජීවිතයක් ඇත. 14.04 2019 අප්‍රේල් දක්වා අවසන් නොවේ. Wiki.ubuntu.com/Releases
bhass1

1
gnome-terminal -e commandcommandඋපුටා දක්වන්නේ නම් පමණක් ක්‍රියාත්මක වේ. එබැවින් මෙය ක්‍රියාත්මක නොවේ: gnome-terminal -e "echo hello world; sleep 3"නමුත් මෙය සිදු කරයි : gnome-terminal -e "bash -c 'echo hello world; sleep 3'". සැනසුම් සුසුමක්.
bgoodr

2
දැන් භාවිතා කිරීම සලකා බලන්න: gnome-terminal -- command
dallonsi

65

ඒ වෙනුවට දැඩි ගණයට අයත් gnome-terminal, konsole, පට ආදිය එම විකල්ප පද්ධතිය භාවිතා කරන්න. පෙරනිමි පර්යන්ත ඉමුලේටරය ක්‍රියාත්මක කරන වැඩසටහන:

x-terminal-emulator

මගේ පද්ධතියේ, මම මෙම විධානය ක්‍රියාත්මක කරන සෑම අවස්ථාවකම එය කොන්සෝල් හි නව අවස්ථාවක් විවෘත කරයි.

වාසනාවකට මෙන්, ටර්මිනල්ස් -eවිධානයක් ක්‍රියාත්මක කිරීමේ විකල්පයට සහය දක්වන බව පෙනේ (මම එය සත්‍යාපනය කළේ konsoleසහ gnome-terminal). විධානයෙන් පසු තර්ක ආයාචිත විධානය වෙත යොමු කරනු ලැබේ. මගේ පර්යන්තය තුළ විවෘතව සිටීම බාෂ් ප්‍රතික්ෂේප කරයි, ටර්මිනලයක් ලබා ගැනීමට අමතර පිටපතක් අවශ්‍ය වේ:

#!/bin/sh
"$@"
exec "$SHELL"

ඔබ පෙර ස්ක්‍රිප්ට් එක ලෙස සුරකින අතර /home/user/hackyඑය ක්‍රියාත්මක කළ හැකි නම්, ඔබ ඔබේ ස්ක්‍රිප්ට් ක්‍රියාත්මක කරන්නේ:

x-terminal-emulator -e /home/user/hacky your-script optional arguments here

සම්පූර්ණ මාර්ගය අවශ්‍ය වන අතර /home/user/hackyඑය ක්‍රියාත්මක කළ යුතුය.

නව පර්යන්ත කවුළුවක ස්ක්‍රිප්ට් එකක් ධාවනය කිරීමට මා කලින් දැරූ උත්සාහය # 2 වන සංශෝධනයෙන් සොයාගත හැකිය x-terminal-emulator.


මෙම අවස්ථාවෙහිදී, ඉල්ලුම්කරුට සියලු පර්යන්ත වලට සමාන නොවන දෙයක් කිරීමට අවශ්‍ය බැවින් එය බොහෝ සෙයින් උපකාරී නොවේ.
nickguletskii

උත්සාහය # 3: මෙය පර්යන්තය විවෘතව තබාගෙන විකල්ප තර්ක සමඟ වැඩසටහන ක්‍රියාත්මක කළ යුතුය.
ලෙකන්ස්ටයින්

1
මම gnome විකල්පය භාවිතා කළෙමි, කෙසේ වෙතත්, මම මගේ ස්ක්‍රිප්ට් ධාවනය කළ පසු, ප්‍රධාන පර්යන්තය වැසෙයි !! .. යම් අදහසක් ඇයි?
මැක්ලන්

3
@ සුඩා.නෙස් යනු සැලසුම අනුව, “ටර්මිනලය” ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කළ විට එය අත්හරිනු ඇත. ඔබට විධාන ( bash) ක්‍රියාත්මක කළ හැකි හෝ වැනි රේඛාවක් ඇති කවචයක් යෙදීමෙන් ඔබට මෙය "නිවැරදි" කළ හැකිය read -p "Press Return to continue".
ලෙකන්ස්ටයින්

1
ටර්මිනලයේ එක් විධානයකට වඩා ක්‍රියාත්මක කරන්නේ කෙසේද? උදාහරණයක් ලෙස cd xxx && start.sh. පරිවර්තකයා && විධානයේ දෙවන කොටස ලෙස දකිනවා (එය තාර්කිකයි), නමුත් මම එය උපුටා දක්වන්නේ නම්, එය සියල්ලම විශාල තර්කයක් ලෙස ක්‍රියාත්මක කිරීමට උත්සාහ කරයි
රිචඩ්

10

ඉතා සරලව-

#!/bin/bash

/etc/init.d/ccpd status

ටර්මිනලයේ කිසිවක් ප්‍රදර්ශනය කිරීමට අවශ්‍ය නොවන වෙනත් විධානයන් සඳහා මෙය ප්‍රමාණවත් වේ. නමුත් මෙහිදී යමෙකුට දර්ශනය වන තත්වය දැක ගත යුතුය.
එබැවින්, එය පර්යන්ත කවුළුවක ධාවනය කිරීමට අවශ්ය වේ

#!/bin/bash

gnome-terminal -e "/etc/init.d/ccpd status"  --window-with-profile=NAMEOFTHEPROFILE

අනෙක් තනතුර[] ස්ථානගත කරන්නෙකු වීමට අදහස් කරයි

මෙහි "NAMEOFTHEPROFILE" වෙනුවට "විධානය පිටවන විට පර්යන්තය රඳවා තබා ගනී" යන පැතිකඩෙහි නම ආදේශ කළ යුතුය.

රූප විස්තරය මෙහි ඇතුළත් කරන්න

රූප විස්තරය මෙහි ඇතුළත් කරන්න


1
@cipricus මම විශ්වාස කරන්නේ []නිකම්ම නිකම් ස්ථානගත කරන්නෙක්
කාර්තික් ටී

තේරුම් ගත්තා ද. නමුත් මට ටර්මිනලය එතරම් වේගයෙන් වසා නොගත යුතුය. මම හිතන්නේ එය සම්බන්ධිත ප්‍රශ්නයේ ද ඇත

@cipricus ඔබ පැතිකඩ එකක් උත්සාහ කර තිබේද? --window-with-profile=NAMEOFTHEPROFILEමා ලබා දී ඇති දේට එකතු කිරීමට අවශ්‍යයි
කාර්තික් ටී

1
@cipricus වඩා හොඳ උපදෙස් ලබා දීම සඳහා මට ආපසු ගෙදර යාමට සිදුවනු ඇත, නමුත් අදහස වන්නේ එම විකල්ප කට්ටලය සමඟ විශේෂ පැතිකඩක් නිර්මාණය කිරීම සහ ඉහත ස්ථානයේ ඇති විශේෂ පැතිකඩෙහි නම භාවිතා කිරීමයි.
කාර්තික් ටී

2
@cipricus එය ඔබට ප්‍රමාණවත් නම් එය හරි. පැතිකඩ යනු සැකසුම් සමූහයකට වඩා වැඩි දෙයක් නොවේ. ඔබගේ ස්ක්‍රිප්ටයේ භාවිතය සඳහා පමණක් ඔබට සැකසුම් සැකසිය හැකි අතර එය සියලු පර්යන්තවල භාවිතා කිරීමට අවශ්‍ය නොවේ. ඔබ සතුව ඇති සියලුම පැතිකඩ බැලීමට ඔබට සංස්කරණය -> පැතිකඩ දැක ගත හැකි අතර, ඔබ සම්බන්ධ කළ
ලිපියේ

8

යාවත්කාලීන කිරීම 17 FEB 2020: මෙම පිළිතුර දැන් යල්පැන ඇත.

මෙම සබැඳිය ක්ලික් කර ඒ වෙනුවට මෙම වෙනත් පිළිතුර භාවිතා කරන්න: බහු ටැබ් සහිත පර්යන්තය විවෘත කර යෙදුම ක්‍රියාත්මක කරන්න .


ආධාරය ඇතිව @ nickguletskii පිළිතුර , සහ ඔහුගේ පිළිතුර යටතේ මගේ අදහස්, මගේ ප්රකාශයක් @ grabantot ගේ upvote දේවානුභාවයෙන්, මෙහි මම ඒ නිසා මම නම් එය හස්තීය ලෙස භාවිතා කළ හැකි පර්යන්තයක් විවෘත ඉන්න ඕනේ විශේෂයෙන් විට, එය ඉටු කිරීමට මා වඩාත් කැමති මාර්ගය.

උදා. භාවිතය: ඔබේ ආරම්භක වැඩසටහන් වලට එක් කිරීමට මෙය සැබවින්ම ප්‍රයෝජනවත් වන අතර එමඟින් මෙම ස්ක්‍රිප්ට් ක්‍රියාත්මක වනු ඇත, ටර්මිනලයක් විවෘත කරයි, ටර්මිනලයේ ටැබ් එකක් සාදන්න සහ නම් කරන්න, සහ ඔබ වෙනුවෙන් විධානයක් ක්‍රියාත්මක කරන්න. නැතහොත්, ඔබට මෙම ස්ක්‍රිප්ටයට සිම්ලින්ක් එකක් ඔබේ ඩෙස්ක්ටොප් එකට එක් කළ හැකිය. මම මේ ආකාරයේ ප්‍රවේශයක් භාවිතා කරමි, එවිට මගේ ඩෙස්ක්ටොප් එකේ තනි අයිකනයක් දෙවරක් ක්ලික් කර ටර්මිනල් පොකුරක් විවෘත කළ හැකිය (විවිධ ටැබ් සහිතව මම ඔවුන් තුළ කරන්නේ කුමක්ද යන්න අනුව) සහ සැකසීමට වැඩසටහන් මගේ වැඩසටහන්කරණ පරිසරය, උදාහරණයක් ලෙස, දෛනික වැඩ සඳහා.

මෙන්න ටැබ් එකක් විවෘත කර එය "ටෙස්ට්" ලෙස නම් කර cd /etc; lsඑය තුළ ඇති සරල විධානය ක්‍රියාත්මක කරන ප්‍රතිවිරුද්ධ උදාහරණයකි . අවසානයේ ඇති $SHELLකොටස ෂෙල් එක විවෘතව තබා ගැනීමට බල කරයි, එවිට ඔබට එහි ප්‍රතිදානය දැක එය දිගටම භාවිතා කළ හැකිය (මම මෙය වෙනත් තැනක ඉගෙන ගත්තේ Stack Overflow):

gnome-terminal --tab --title="test" --command="bash -c 'cd /etc; ls; $SHELL'"

එකම ග්නෝම්-පර්යන්තයේ වෙනම ටැබ් 3 ක් විවෘත කරන වඩාත් සංකීර්ණ උදාහරණයක් මෙන්න. මගේ ඩෙස්ක්ටොප් කෙටිමඟ හරියටම කරන්නේ මෙයයි, එවිට මට එකවර වැඩසටහන් කවුළු කිහිපයක් විවෘත කළ හැකිය:

gnome-terminal --tab --title="tab 1" --command="bash -c 'cd /etc; ls; $SHELL'" --tab --title="tab 2" --command="bash -c 'cd ~; ls; $SHELL'" --tab --title="tab 3" --command="bash -c 'cd ~/temp3; ls; $SHELL'"

ඉහත එම විධානයේ බිඳවැටීමක් මෙන්න:

  • gnome-terminal = ග්නෝම්-පර්යන්තයක් විවෘත කරන්න
  • --tab = ඊළඟට එන දේ සඳහා අද්විතීය පටිත්තක් විවෘත කරන්න
  • --title="tab 1" = මෙම පටිත්ත "ටැබ් 1" ලෙස නම් කරන්න
  • --command="bash -c 'cd /etc; ls; $SHELL'"= bash -c 'cd /etc; ls; $SHELL'විධානය ක්‍රියාත්මක කරන්න, එය මම උදාහරණයක් ලෙස සාදන ලද විධානයකි; මෙන්න එය කරන්නේ:
    • bash -c එය බාෂ් කෝමන්ඩ් එකක් යැයි පවසයි
    • cd /etc = '/ etc' මාර්ගයට 'ඩිරෙක්ටරිය' වෙනස් කරන්න
    • ls = 'මම මෙම නාමාවලියෙහි අන්තර්ගතය නොවේ
    • $SHELL= ෂෙල් එක විවෘතව තබා ගැනීමට මෙම ගුප්ත තොරතුරු අවශ්‍ය වන අතර එවිට ඔබට එය සමඟ වැඩ කළ හැකිය. ඔබට කවචය විවෘත කිරීමට අවශ්‍ය නම්, ඔබේ විධානය ක්‍රියාත්මක කරන්න, පසුව වසා දමන්න, මෙම කොටස ඉවත් කරන්න. කෙසේ වෙතත්, මට අවශ්‍ය වන්නේ ටැබ් එක විවෘතව තිබීමයි, එවිට මට ක්‍රමලේඛ මැජික් කිරීමට හැකිය. :)
  • අපි පසුව --tabටැබ් 2 නිෂ්පාදනය කිරීම සඳහා නැවත ආරම්භ කරමු , ඉන්පසු නැවතත් ටැබ් 3 සඳහා. ඔබේ හදවතේ අන්තර්ගතයට රිසිකරණය කරන්න.

තිර රුව:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


1
මට උදව් කිරීම ගැන සතුටුයි) මට ස්ක්‍රිප්ට් ද ඇත, මට ක්ලික් කර ව්‍යාපෘතියේ වැඩ ආරම්භ කළ හැකිය. ඔවුන් සමඟ ගැටලු දෙකක් ඇති විය: ටර්මිනල් කවුළු ගොඩක් (ඒවා සඳහා වෙනම තිරයක් තිබුණි) සහ සේවාදායක බිඳවැටීමෙන් පසු කවුළු වැසීම. එම පිළිතුර --tab + $ SHELL සමඟ මගේ ගැටලු දෙකම විසඳයි. නියමයි
ග්‍රැපන්ටොට්

1

ලෙකන්ස්ටයින් විසින් පිළිතුර සඳහා අදහස් දැක්වීම. මෙය පැරණි පෝස්ට් එකක් බව මම දනිමි, නමුත් මෙය ප්‍රයෝජනවත් යැයි සිතන ඕනෑම කෙනෙකුට (මා කළ පරිදි) වෙනත් "හැක් ස්ක්‍රිප්ට්" එකක් වෙනුවට ඔබ අමතන ස්ක්‍රිප්ට් එක තුළ ශ්‍රිතයක් තබන්න

hacky_function()
{
"$@"
exec "$SHELL"
}

ඔබේ ස්ක්‍රිප්ට් එක "x-terminal-emulator -e / path / to / script hacky_function විකල්ප තර්ක සමඟ අමතන්න"

පිටපත අවසානයේ "$ @" දැමීමට අමතක නොකරන්න


-2

දැනට පවතින තිර සැසියකින් තිර විධානය සහ -d වෙන් කිරීම භාවිතා කරන්න , සහ මෙහි නැවත සම්බන්ධ කරන්න -m නව තිර සැසියකට බල කරන්න - පෙරනිමි නම භාවිතා කිරීම වෙනුවට නම් කරන ලද සැසියක් සාදන්න


1
මෙම පිළිතුර කිසිසේත් පැහැදිලි නැත, කරුණාකර වඩාත් අවබෝධ කර ගැනීමට සැලකිලිමත් වන්න
azerafati

@azerafati ඇත්ත වශයෙන්ම, තිරය කිසිදු පර්යන්ත කවුළුවක් විවෘත නොකරයි ... එම පුදුමාකාර පැකේජයෙන් පවා අදහස් නොකෙරේ ...
m3nda
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.