BASH හි ප්‍රතිලෝම-අයි-සෙවුම් හරහා චක්‍රීය කරන්නේ කෙසේද?


511

ටර්මිනලයේ, CTRL-Rමීට පෙර BASH හි ටයිප් කළ ගැලපෙන විධානයක් සෙවීමට මට ටයිප් කළ හැකිය . උදා: මම වර්ගය නම් CTRL-Rඑවිට grepමගේ පසුගිය ලැයිස්තු වේ grepවිධානය, මම එය භාවිතා කිරීමට ඇතුල් පහර හැක. මෙය ලබා දෙන්නේ එක් යෝජනාවක් පමණි. කලින් ටයිප් කළ ගැලපෙන විධාන හරහා චක්‍රීය වීමට ක්‍රමයක් තිබේද?

Answers:


687

මම ප්‍රශ්නය නිවැරදිව තේරුම් ගත්තා නම්, ඔබට නැවත නැවත පහර දීමෙන් විකල්ප හරහා චක්‍රීය වීමට හැකි විය යුතුය Ctrl+R.

උදා:

Ctrl+R grep Ctrl+R Ctrl+R ...

එය ඔබගේ ඉතිහාසය හරහා පසුපසට සොයයි. ඒ වෙනුවට ඉදිරියට සෙවීම සඳහා, භාවිතා කරන්න Ctrl+S, නමුත් ඔබ විසින් සැකසීමට අවශ්‍ය විය හැකිය: stty -ixon( .bash_profileඊට පෙර හෝ අතින්) XON / XOFF විශේෂාංගය අක්‍රිය කිරීමට පෙර Ctrl+s. (වැඩි විස්තර මෙතැනින් .)


23
+1 - FYI - මෙම StackOverflow පිළිතුර අනුව ඔබට ඉදිරියට සෙවිය හැකිය .
ජෝර්දාන් ආර්සෙනෝ

8
ඔබ පසුකර ගියහොත් ප්‍රතිලෝම අනුචලනය සඳහා Ctrl + Shift + r භාවිතා කරන්න.
wiswit

23
is විස්විට් CTRL+SHIFT+rමට වැඩ කරන්නේ නැහැ.
මැක්සිම් සුස්ලොව්

11
AMaximSuslov මෙම ප්‍රශ්නය බලන්න: stackoverflow.com/questions/791765/… ඔබට [[ $- == *i* ]] && stty -ixonඔබේ .bashrc වෙත එකතු කළ හැකි අතර පසුව CTRL+sප්‍රතිලෝම ලෙස ක්‍රියා කරනු ඇතCTRL+r
gla3dr

9
Ord ජෝර්දාන් ආර්සෙනෝ “මම තවම ටයිප් කර නැති විධානයන් සෙවීම” යන්නෙහි අර්ථය “ඉදිරියට යන්න”
ජොෂ් ජොන්සන්

254

විධානය නිතර භාවිතා වන බව ඔබට හැඟේ නම්, ඔබට ටැගයක් එක් කළ හැකිය

විධානය # භාවිතා කරන්න

ඉන්පසු

ctrl+r #useful

මෙය ක්‍රියාත්මක #වන්නේ අදහස් දැක්වීමේ පරිසීමකය, එනම් සංකේතයෙන් පසුව එන සෑම දෙයක්ම විධානයක් ලෙස අර්ථ නිරූපණය නොකිරීමයි. කෙසේ වෙතත්, එය ඉතිහාසයේ පටිගත කෙරෙන අතර එමඟින් සෙවිය හැකිය.


6
සාමාන්යයෙන් මම මේ ආකාරයේ ටැගින් කිරීමට කැමතියි. #trg_bld #open_log
මාකේෂ්

1
මෙම ටැගය එකතු කරන්නේ කොහෙන්ද?
සුදීප් භන්දාරි

6
UdSudipBhandari ඔබේ අණට පසුව ය. # අදහස් දැක්වීමක් ආරම්භ කරයි. උදා ls -lah #useful
Andrei

7
සිසිල් වීමට පෙර යුනික්ස් සතුව හැෂ් ටැග් තිබුනි :)))
බොබී මැරිනොෆ්

51

Lines / .inputrc වෙත මෙම රේඛා එක් කිරීමෙන් තරමක් වෙනස් සෙවීමක් කිරීමට ඔබට ඉහළ සහ පහළ ඊතල සැකසිය හැකිය.

"\e[A": history-search-backward
"\e[B": history-search-forward

විධානයෙහි ඕනෑම තැනක උපස්ථරයක් සෙවීම වෙනුවට (වැනි Ctrl-r ) එය කර්සරයේ වම්පස ඇති පෙළෙන් ආරම්භ වන විධානයක් සොයනු ඇත . උදාහරණයක් ලෙස, මම මෙම විධානයන් ක්‍රියාත්මක කරන්නේ නම්:

$ ls bart
$ ls fools

ඉන්පසු දෙවරක් ටයිප් lsකර ඔබන්න Up, එය පෙන්වනු ls bartඇති අතර කර්සරය එකම ස්ථානයේ. Ctrl- සමඟ සසඳන්න r, එය lsඅවසාන පේළියේ දෙවරක් සොයාගත හැකි බැවින් පෙර පේළිය සොයා ගැනීමට ඔබට එය නැවත වරක් එබිය යුතුය.

මෙම ප්‍රවේශයන් දෙකටම ඔවුන්ගේ ශක්තීන් ඇති අතර ඒ දෙකම බොහෝ කාලයක් ඉතිරි කර ගත හැකිය.


3
මෙය OS X හි ද සම්මත වේ, එබැවින් ඔබට ~/.inputrcඑම පේළි දෙක සෑදීමට හා එකතු කිරීමට අවශ්‍ය නොවේ .
දස්කාජා

1
ෆැල්කොනෙපි මෙම පිළිතුරේ අදහස් දැක්වීමේදී ලියා ඇති පරිදි , උබුන්ටු හි ~/.inputrcඉතිහාසය සෙවීම ඇතුළු පේළි දෙකෙහි ඔබ එකඟ නොවිය යුතුය. *
ආර්පාඩ් හෝර්වාත්

මෙම පිළිතුර පිළිබඳ වැඩි විස්තර සඳහා ඔබට මෙම ලිපිය දෙස බැලිය හැකිය: codeinthehole.com/writing/…
ඇන්ඩ්‍රි

1
මෙය මගේ මැකෝස් (10.13) හි සම්මත නොවේ. මට සෑම විටම මෙම ක්‍රියාකාරිත්වය මග හැරී ඇත!
forthrin

1
මේ පිළිබඳ හොඳ දෙයක් නම්, ඉතිහාසය හරහා නිතිපතා
හීන

4

බිල්ට් ආදේශනයක් තියෙනවා Ctrl + Rනම් hstr . සියලු සෙවුම් ටෝකන එකවර ගැලපෙන විධාන ඉතිහාසය සෙවීමට (වෙනත් දේ අතර), සහ ඊතල යතුරු භාවිතයෙන් ප්‍රති result ල හරහා චක්‍රය කිරීමට එය ඉඩ දෙයි:

උදාහරණයක්

මෙන්න ආදර්ශන තිර විකාශනයකි .

එය ඩේබියන්-පවුලේ මෙහෙයුම් පද්ධතියක ස්ථාපනය කළ හැකිය:

add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr

hstr --show-configuration >> ~/.bashrc

ඉන්පසු භාවිතා කරන්න Ctrl + R(පර්යන්තය නැවත විවෘත කිරීමෙන් පසුව).

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.