මම .sh ගොනුවක් විවෘත කරන සෑම විටම එය ටර්මිනලය වෙනුවට gedit වලින් විවෘත කරයි. මම සමාන විකල්ප සොයා ගත නොහැකි රයිට් ක්ලික් කරන්න → විවෘත සමග → වෙනත් යෙදුම් ... → පර්යන්තය .
මෙම ගොනුව ටර්මිනලයේ විවෘත කරන්නේ කෙසේද?
ruby foo.rb
මම .sh ගොනුවක් විවෘත කරන සෑම විටම එය ටර්මිනලය වෙනුවට gedit වලින් විවෘත කරයි. මම සමාන විකල්ප සොයා ගත නොහැකි රයිට් ක්ලික් කරන්න → විවෘත සමග → වෙනත් යෙදුම් ... → පර්යන්තය .
මෙම ගොනුව ටර්මිනලයේ විවෘත කරන්නේ කෙසේද?
ruby foo.rb
Answers:
ඔබගේ ස්ක්රිප්ටයට ක්රියාත්මක කිරීමට අවසර දෙන්න:
chmod +x /path/to/yourscript.sh
ඔබේ ස්ක්රිප්ට් ධාවනය කිරීමට:
/path/to/yourscript.sh
.
වත්මන් නාමාවලිය වෙත යොමු වන බැවින් : වත්මන් නාමාවලියෙහි තිබේ නම් yourscript.sh
, ඔබට මෙය සරල කළ හැකිය:
./yourscript.sh
bash /path/to/yourscript.sh
නම් ඔබට අවශ්ය නැතchmod +x
. /path/to/yourscript.sh
ස්ක්රිප්ටයට සමහර පරිසර විචල්යයන් සැකසීමට අවශ්ය නම් ඔබට භාවිතා කළ හැකිය .
./path/to/yourscript.sh
(පසු අවකාශය නොමැතිව .
)? එකක් භාවිතා කිරීම සරලම හා පහසුම බව මට පෙනී ගියේය ... නමුත් කෙසේ වෙතත්, මෙන්න මගේ විකල්පය එය කළ යුතු ආකාරයටම කළ යුතුය ./
, නමුත් ඔබ භාවිතා නොකරන්නේ මන්දැයි මට නොපෙනේ ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... FILENAME
ඔබේ රුචිකත්වයට සංස්කරණය කරන්න . sh
විකල්පයක් නොමැති නම් එය භාවිතා කරන බව සලකන්න .
ගොනු කළමණාකරු වෙතින් ක්රියාත්මක කිරීම සඳහා ඔබ ෂෙල් ස්ක්රිප්ට් ක්රියාත්මක කළ හැකි ලෙස සලකුණු කළ යුතුය:
ඔබගේ .sh
ගොනුව මත දකුණු ක්ලික් කර ගුණාංග තෝරන්න :
තුළ අවසර ටැබය, චෙක් වැඩසටහනක් ලෙස ගොනු ක්රියාත්මක ඉඩ දෙන්න :
ගුණාංග කවුළුව වසා ගොනුව දෙවරක් ක්ලික් කරන්න. ටර්මිනලය තුළ ස්ක්රිප්ට් ධාවනය කිරීමට විකල්පයක් ලබා දෙමින් සංවාදයක් උත්පතන වනු ඇත:
ටර්මිනලයක් විවෘත කර .sh
ගොනුව පිහිටා ඇති ෆෝල්ඩරයට යන්න . ඉන්පසු ටයිප් කරන්න:
sh <name of file>.sh
ඔබට .sh ගොනුව ධාවනය කිරීමට පෙර, ඔබ එය ක්රියාත්මක කළ යුතුය:
ඔබ ගොනුව ලබා ගත් ප්රභවය විශ්වාස කරන බවට වග බලා ගන්න. එය වෛරසයක් විය හැකිය .
මෙය ගැටළුවක් ඇත. පර්යන්තය වහාම වැසෙන අතර ඔබට ප්රතිදානය දැකගත නොහැකි වනු ඇත.
.Sh ගොනුව කොහේදැයි සොයා බලන්න
ls
සහ cd
විධාන භාවිතා කරන්නls
වත්මන් ෆෝල්ඩරයේ ගොනු සහ ෆෝල්ඩර ලැයිස්තුගත කරයි . එය උත්සාහ කර බලන්න: "ls" ටයිප් කර Enter ඔබන්න.cd
, පසුව අවකාශයක්, පසුව ෆෝල්ඩරයේ නමක් ඇතcd ..
පිවිසෙන්නේ නම්, එක් මට්ටමකට ඉහළට දිව යන්න.Sh ගොනුව ධාවනය කරන්න
මෙය ක්රියාත්මක කිරීම script1.sh
සමඟ උදාහරණයක් ලෙස ඔබට දැක ගත හැකි වූ පසු ls
:
./script.sh
ටර්මිනලය සතුව විධාන ටයිප් කිරීමෙන් ප්රවේශ විය හැකි ප්රබල මෙවලම් සමූහයක් ඇත. වෘත්තිකයන් ටයිප් විසින් .sh ගොනුව සොයා ls
හා cd
. ඔබ නිවැරදි වත්මන් ෆෝල්ඩරයට ගිය පසු ඔබට මේ ආකාරයෙන් ස්ක්රිප්ට් ධාවනය කළ හැකිය:
./script1.sh
නැතහොත් ඔබට ප්රතිදානය ගොනුවකට ධාවනය කර හරවා යැවිය හැකිය:
./script1.sh > out.txt
හෝ ඔබට මූල පද සඳහා ප්රතිදානය පෙරහන් කළ හැකිය (උදා: "ඇපල්") පසුව ගොනුවකට හරවා යැවිය හැකිය:
./script1.sh | grep apples > ./only-apples
විධාන කිහිපයක් ටයිප් කිරීමෙන් ඔබට එම ගොනුවට කළ හැකි දේවල් දහස් ගණනක් ඇත.
තවත් එකක්, ඔබට එක් සරල විධානයකින් අන්තර්ජාලයෙන් ගොනුවක් බාගත කළ හැකිය:
wget www.google.com/images/logos/ps_logo2.png
ඉන්පසු ගොනුව මේ ආකාරයට විවෘත කරන්න:
shotwell ps_logo2.png
උබුන්ටු 13.04 හි නාටිලස් හි විවෘත කළ හැකි ගොනු දැන් පෙරනිමියෙන් ගෙඩිට් වලින් විවෘත කර ඇත. සම්භාව්ය හැසිරීම සක්රීය කිරීම සඳහා ඔබ මනාපයන් වෙනස් කළ යුතුය:
නාටිලස් menu මෙනුව සංස්කරණය කරන්න → මනාපයන් → චර්යා පටිත්ත As අසන්න අසල ඇති රේඩියෝ බොත්තම ක්ලික් කරන්න.
.sh
භාවිතා කරමින් ගොනුව ඇති නාමාවලියට යන්න cd
. මෙම උදාහරණයේ දී මම මගේ sh
ගොනුව ගබඩා කර ඇත~/Desktop/shell_practice/test.sh
මුලින්ම pwd
ඔබ සිටින්නේ කොහේදැයි සොයා බලන්න, එය නැවත පැමිණියහොත් /home/username
( username
ඔබේ සැබෑ පරිශීලක නාමය කොහේද ), ඔබට ධාවනය කළ හැකිය
cd Desktop/shell/practice
ඔබ වෙනත් තැනක සිටින බවක් පෙනේ නම්, ඔබට නිරපේක්ෂ මාර්ගය භාවිතා කළ හැකිය
cd ~/Desktop/shell/practice
හෝ
cd $HOME/Desktop/shell/practice
හෝ පවා
cd /home/$USER/Desktop/shell/practice
මේ සියල්ල එකම ස්ථානය විස්තර කිරීමේ ක්රම වේ. ඔබගේ ස්ක්රිප්ටයේ ස්ථානයට ඔබ එය ඇතුළත් කළ පසු ටයිප් කරන්න
ls
ඔබට sh
ප්රතිදානය තුළ ගොනුව දැකිය හැකි නම් , ඔබට chmod
එය ක්රියාත්මක කළ හැකිය. මගේ නඩුවේදී, මතක තබා ගන්න, ගොනු නාමය test.sh
, එබැවින් මම ධාවනය කරමි
chmod u+x test.sh
දැන් අපි ස්ක්රිප්ටයේ එකම ඩිරෙක්ටරියේ සිටින බැවින්, ගොනුව එහි පිහිටීම ලබා දීමෙන් එය ක්රියාත්මක කිරීමට අවශ්ය ෂෙල් එකට නියම කළ යුතුය ./
(වත්මන් ඩිරෙක්ටරිය අනුගමනය කරන මාර්ග බෙදුම්කරුවෙකු, එය ගොනු නාමයෙන් වෙන්කර හඳුනා ගැනීම සඳහා). මගේ ගොනුව ධාවනය කිරීම සඳහා මම ටයිප් කරන්නෙමි:
./test.sh
ඔබේ ස්ක්රිප්ට් එක නිවැරදිව ලියා ඇත්නම් එය දෝෂයකින් තොරව ක්රියාත්මක වේ ...
ප්රධාන පියවර 2 ක්.
ටර්මිනලයේ, ඩෙස්ක්ටොප් එකට ".sh" දිගුව සමඟ ස්ක්රිප්ට් ලිවීමට සහ සුරැකීමට gedit භාවිතා කරන්න. (නමුත් ඕනෑම පෙළ සංස්කාරකයක් භාවිතා කළ හැකිය)
Nautilus විවෘත කර script.sh ගොනුව දකුණු ක්ලික් කරන්න.
ගුණාංග යටතේ, කොටුව "ගොනුව ක්රියාත්මක කිරීමට ඉඩ දෙන්න .."
Nautilus මෙනුවේ, ගොනුව ක්ලික් කරන්න, පසුව මනාපයන්, පසුව හැසිරීම
"ක්රියාත්මක කළ හැකි පෙළ ගොනු විවෘත කළ විට ඒවා ක්රියාත්මක කරන්න" පරීක්ෂා කරන්න.
දැන්, ඔබ ඩෙස්ක්ටොප් එකේ ගොනුව දෙවරක් ක්ලික් කළ විට එය ක්රියාත්මක විය යුතුය. අවශ්ය නැත .
හෝ./
මෙය කිරීමට ක්රම කිහිපයක් තිබේ.
පර්යන්තය තුළ, Bash ගොනුව භාවිතා කරන නාමාවලියට ප්රවේශ වන්න cd
(නාමාවලිය වෙනස් කරන්න).
උදා. cd Downloads
දුවන්න bash <filename>.sh
මෙය .run ගොනු සමඟ ද ක්රියා කරයි. රිදම්බොක්ස් යාවත්කාලීන කිරීමේදී මෙම වෙබ් පිටුවේ මෙම භාවිතය පිළිබඳ උදාහරණයක් තිබේ .
පර්යන්තය තුළ, bash ගොනුව ඇති නාමාවලියට යන්න.
දුවන්න chmod +x <filename>.sh
Nautilus හි, ගොනුව විවෘත කරන්න.
.sh
ගොනුව මත දකුණු-ක්ලික් කර එය ක්රියාත්මක කළ හැකිය.
පර්යන්තයක් විවෘත කරන්න ( Ctrl+ Alt+ T).
.sh
ගොනුව පර්යන්ත කවුළුව තුළට ඇදගෙන ගොස් බියෙන් බලා සිටින්න.
සඳහා උබුන්ටු 18,04 ඔබ උත්පතන සංවාද ලබා නැහැ ලෙස, එහි, ටිකක් වෙනස් වේ.
එබැවින් ඔබ කළ යුත්තේ:
ගොනු මත රයිට් ක්ලික් කරන්න, මනාපයන් තෝරන්න> චර්යා පටිත්ත තෝරන්න> ක්රියාත්මක කළ හැකි පෙළ ගොනුව යටතේ 'කුමක් කළ යුතුදැයි අසන්න' විකල්පය සලකුණු කරන්න.
දැන්, ඔබ ඕනෑම .sh ගොනුවක් මත දෙවරක් ක්ලික් කළ විට, ඔබට උත්පතන ලැබෙනු ඇත, එහිදී ඔබට ඔබේ .sh ගොනුව ධාවනය කිරීම සඳහා "ටර්මිනල් ධාවනය" විකල්පය තෝරා ගත හැකිය.
උබුන්ටු 16.04 හි මෙය පර්යන්තයෙන් විවෘත කරන්නේ කෙසේද:
යන්න මේ File Manager > Edit > Preferences > Behavior
සඳහා Executable Text Files
තෝරා Ask each time
.
ගැටළුව වන්නේ එය පෙරනිමියෙන් සකසා View Executable Files when they are opened
තිබීමයි.
ඔබ ඔබේ ෂෙල් ස්ක්රිප්ට් හෝ වෙනත් ක්රියාත්මක කළ හැකි / usr / local / bin තුළ තැබුවහොත් එය විධාන රේඛාවේ ෆෝල්ඩර මාර්ගයක් ලබා නොදී හෝ නමට ./ එකතු නොකර එය සොයාගෙන ක්රියාත්මක කරනු ඇත. උදාහරණයක් ලෙස තැටි UUIDs පෙන්වීම සඳහා මම පහත සරල 3 පේළි බැෂ් ස්ක්රිප්ට් නිර්මාණය කළෙමි:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
මම ගොනුව uuid අමතා / usr / local / bin තුළ තැබුවෙමි. විධාන රේඛාවට මට ඇතුළත් කිරීමට අවශ්ය වන්නේ:
uuid
හොඳයි, මමත් එකම ගැටලුවකට මුහුණ දුන්නා. මට .sh ගොනුව ක්රියාත්මක කිරීමට අවශ්ය වූ අතර එය සෙන්ටිස් 7 හි ගෙඩිට් සමඟ විවෘත විය. එබැවින් මා කළ දේ මෙන්න:
.sh
ක්රියාත්මක කිරීමට අවශ්ය ගොනුවේ මාර්ගයට මම ගමන් කළෙමි.බෙදාහැරීම් කිහිපයකින් මා සොයාගෙන ඇති ගැටළුව නම් ඔවුන් නාටිලස් හි මනාප විකල්පය සඟවා ඇති නමුත් උබුන්ටු සහ ග්නෝම් 3 භාවිතයෙන් වෙනත් බෙදාහැරීම් වලදී එය නිවැරදි කිරීම සමාන වේ (වචනාර්ථයෙන් මෙහි ෆෙඩෝරා අනුවාදය කර මට මතක් කර දීම සඳහා සත්ය විසඳුම පළ කිරීම අනාගතයේදී).
ස්ථාපනය කරන්න dconf-editor
sudo apt-get install dconf-editor
dconf-editor
ඔබට මෙය අවශ්ය පරිශීලක ගිණුම භාවිතයෙන් ධාවනය කරන්න , එනම් root නොවේ
dconf-editor
පහත දැක්වෙන ක්රමයට සංචාලනය කරන්න:
org.gnome.nautilus.preferences
පෙරනිමියෙන් විවෘත නොවන ලෙස පෙරනිමි විකල්පය වෙනස් කරන්න:
සොයන්න executable-text-activation
වචනය ක්ලික් කරන්න display
සහ වෙනස්ask
එමඟින් ඉදිරියට යන ගොනුව සංස්කරණය කිරීමට, බැලීමට හෝ ක්රියාත්මක කිරීමට ඔබට අවස්ථාව ලැබේ
මම ලිනක්ස් හි නොබියෙක් වන අතර මට ඇත්තේ එකම ගැටලුවකි. අනෙක් සියල්ල අසමත් වුවහොත්:
.
වෙනත් පිළිතුරු යෝජනා කිරීමත් සමඟ ඔබට උපක්රම භාවිතා කළ හැකිය .
උදාහරණයක් වශයෙන්:
chmod +x filename.sh
, ඔබ දැනටමත් ගොනු කිරීමේ මාවතට ගොස් ඇතැයි උපකල්පනය කර මෙම ඕනෑම විධානයකින් ගොනුව ධාවනය කරන්න:
sh filename.sh
./filename.sh
. filename.sh