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.