පර්යන්තය 'අප්‍රසිද්ධ ප්‍රකාරය'?


236

මම ටර්මිනලය බොහෝ දේ භාවිතා කරමි, සමහර විට මම විධානයන් ක්‍රියාත්මක කරමි, ඒවා අන් අයට දැකීමට මා අකමැති දේවල් නොවේ, නමුත් තවත් විධානයන් මා අහම්බෙන් ඊතල කොට අහම්බෙන් ක්‍රියාත්මක කළහොත් බොහෝ කරදර ඇති වේ.

ඒ නිසා මම කල්පනා කරනවා, යම් විධානයක් ක්‍රියාත්මක කිරීමෙන් පසු, මගේ ඉතිහාසය පටිගත කිරීම නවත්වන්න, පසුව මම පටිගත කිරීම ආරම්භ කිරීමට ඉඩ සලසන යම් ආකාරයක පර්යන්ත 'අප්‍රසිද්ධ මාදිලියක්' තිබේද? ඉතිහාසය නැවත පටිගත කිරීම අරඹා 'නොපැහැදිලි ප්‍රකාරයෙන්' පිටවන්න, නැතහොත් මම ටර්මිනලය නැවත ආරම්භ කරන්නද?

මක්නිසාද යත්, පසුව මගේ දේවල් ඉවත් කර ඉවත් කිරීම ගැන මට පෙනී යන .bash_historyහෙයින්, එය මුලින් පටිගත කිරීම නැවැත්විය හැකිව තිබුනේ නම් හෝ එය අවම වශයෙන් එය කොතැනක හෝ පටිගත කිරීමට උත්සාහ කළහොත් එය වඩාත් පහසු වනු ඇත. එයට ඉඩ දී ඇති අතර එය පටිගත නොකිරීමෙන් අවසන් වේ.


6
හොඳයි, අනුමාන ඔබ paranoid ඔබගේ ඉතිහාසයේ අන් අය විසින් කියවිය බව?
ස්පාර්හෝක්

6
P ස්පාර්හෝක්: හොඳයි, එය අර්ධ වශයෙන්, සහ මම අනාගතයේ දී ඊතල එල්ල කරන විට අහම්බෙන් මාරාන්තික නඩත්තු විධානයක් ක්‍රියාත්මක කිරීමට මට අවශ්‍ය නැත! : D

19
එකතු කිරීම සඳහා, ඔබ ඔබම සාධාරණීකරණය කළ යුතු නැත : "ඒවා අන් අය දැකීමට මා අකමැති දේවල් නොවේ" . එය මටද හොඳ හේතුවක් වනු ඇත. (විශේෂයෙන් “සැඟවිය යුතු දේවල්” තිබීම නිසා ඔබ වරදකරුවෙකු බවට පත් කිරීමට සෑම කෙනෙක්ම උත්සාහ කරන මේ කාලය හා වයස තුළ)
ereOn

2
ඔබ ටැබ් දෙකක් විවෘත කළහොත්, පළමුවැන්න තුළ දේවල් කරන්න, දෙවැන්න තුළ දේවල් කරන්න, ඉන්පසු පළමුවැන්නාට පෙර දෙවැන්න වසා දමන්න, පළමුවැන්නාගේ ඉතිහාසය පමණක් ලියා ඇති බව පෙනේ .bash_history. (උබුන්ටු 15.04 විනාශ වූ පර්යන්තය, වාසනාවන්ත මෙය සජීවී USB ය.)
Hitechcomputergeek

Answers:


272

ඉතිහාසයේ සඳහන් නොකර විධානයක් ක්‍රියාත්මක කරන්න:

විධානයට පෙර ඉඩක් තබන්න. පෙර සැකසූ ඉඩක් සහිත විධාන බාෂ් විසින් නොසලකා හරිනු ඇත:

උදාහරණයක්: Spaceecho "Some secret text"

සටහන: මෙය ක්‍රියාත්මක වන්නේ HISTCONTROLවිචල්‍යය සකසා ignorespaceඇත්නම් හෝ ignoreboth.


ඉතිහාසය තාවකාලිකව අබල කරන්න:

  • ඉතිහාසය ධාවනය Spaceset +o historyහෝ Spaceshopt -uo historyඅක්‍රීය කිරීමට.
  • නැවත ධාවනය set -o historyහෝ ක්‍රියාත්මක shopt -so historyකිරීමට.

වත්මන් සැසිය සඳහා ඉතිහාසය අක්‍රීය කරන්න (සැසියේ කිසිදු විධානයක් මතක නැත):

unset HISTFILE

සටහන: ඔබ Upටර්මිනලය වැසෙන තුරු විධාන එබීම ඔබට දැකගත හැකිය .


ඉතිහාසයෙන් විධානයක් ඉවත් කරන්න:

දුවන්න Spacehistory | grep "part of your secret command"

මෙම ආකෘතියෙන් කලින් ධාවනය කළ විධාන ලැයිස්තුවක් එය පෙන්වනු ඇත:

casa@portátil:~$  history | grep pkill
  302  pkill $$
  467  pkill gone-cal
  468  pkill actionaz
  500  pkill chrome
  550  pkill super

විධානයේ වම්පස ඇති ඇතුල්වීමේ අංකය තෝරන්න. ඔබට එය Ctrl+ Shift+ සමඟ පිටපත් කළ හැකියC

ප්‍රවේශය ඉවත් කිරීමට ප්‍රවේශ අංකය Spacehistory -d <number>කොහේදැයි ධාවනය කරන්න <number>.
ඔබට එම අංකය Ctrl+ Shift+ සමඟ ඇලවිය හැකියV


වෙනත් රසවත් පිළිතුරු:


7
ඔබ history -dරේඛාවක් ඉවත් කිරීමට භාවිතා කරන්නේ නම් , මෙය රේඛාවේ අන්තර්ගතය ඉවත් කරනු ඇත, නමුත් ඔබ දිව ගිය කාරණය ඔබට කිසි විටෙකත් ඉවත් කළ නොහැක history -d(ඔබ set +o historyධාවනය කිරීමට පෙර භාවිතා නොකළේ නම් history -d)
AJFaraday

1
එය මට සුපිරි වාරණ තර්කනය මතක් කර දුන්නේය,
එපමණයි

4
(OT) වාරණ යනු යම් දෙයක් ප්‍රකාශයට පත් කිරීමෙන් මිනිසුන් වළක්වන නීතිමය ලේඛනයකි. සුපිරි වාරණ නියෝගයක් මඟින් ප්‍රකාශයට පත්කිරීමේ හැකියාව ඔවුන්ට අහිමි විය. සමහර තොරතුරු ප්‍රකාශයට පත් කිරීමේ හැකියාව ඔවුන්ට අහිමි වූ බව ප්‍රකාශයට පත් කළ හැකිදැයි සමහර තාර්කික තර්ක අසයි. එවිට එය චක්‍රීය තර්කයක් බවට පත්වේ.
AJFaraday

1
El හෙලියෝ මම සිතන්නේ පරිශීලකයින්ට පිටපත් කිරීමට “නිසි” ක්‍රමය දැන ගැනීම වඩා හොඳය - විශේෂයෙන් ඔවුන් අහම්බෙන් ගොස් යම් පෙළක් තෝරා ගන්නේ නම්. අවකාශය කරන්නේ කෙසේදැයි මට විශ්වාස නැත, සමහර විට අවකාශය ඇති බව තවත් පැහැදිලි කර ගත හැකිද? [අවකාශය] මට ටිකක් අවුල් සහගතයි ...
ටිම්

3
මෙම unset HISTFILEප්රවේශය ද ලියා නොවූ සියලු විධාන සඳහා ලහිලහියේ වැඩ .bash_historyතවමත්.
කැස්පර්ඩ්

42

වැඩ කිරීමෙන් පසු විධානයක් එක් කිරීමෙන් ඔබට එක් විශේෂිත පර්යන්ත සැසියක ඉතිහාසය මකා දැමිය හැකිය history -cw.

මෙම විධානය ලබා දීමට පෙර පර්යන්තය වසා නොගන්න.


මෙය සියලු ඉතිහාසය ඉවත් නොකරන්නේද?
හීලියෝ

6
මෙය ඉවත් කරනු ලබන්නේ එම විශේෂිත පර්යන්ත සැසියේ ඉතිහාසය පමණි.
මොයිතිල් බිස්වාස්

29

shopt -uo history එය හොඳම දේ කළ යුතුයි.

HISTFILE(සහ වෙනත්) විචල්‍යයන් නිරුවත් කිරීමෙන් ඔබගේ Upඉතිහාසය ලොග් වීම නවත්වන්නේ නැත , එය එය තැටියට තල්ලු නොකරයි. මෙය ඔබට ධනාත්මක දෙයක් විය හැකිය හෝ නොවිය හැකිය, නමුත් ඔබ එය සඳහන් කළහොත්, ඔබට වඩා හොඳ යමක් අවශ්‍ය යැයි මම සිතමි. shoptඉතිහාස සැකසුම වෙනස් කිරීම සමස්ත ඉතිහාස යාන්ත්‍රණය අවුලුවාලීම වළක්වයි.

ඔබ සමඟ නැවත ප්රවිෂ්ට වීම හැරී හැකි shopt -so history(මෙම -sසහ -uපිළිවෙළින් කට්ටලයක් හා ශූන්යය වේ).

විධානයම ලොග් වී ඇති බව සලකන්න, ඔබ විචල්‍යය ඉවත් කිරීමට පෙර එය ඉතිහාසයට එක් කිරීම නැවැත්වීමට ඉඩක් සමඟ එය සූදානම් කරන්න.


17

ඉතිහාස ගොනුවට ලොග් නොවී වත්මන් කවචය kill ාතනය කළ හැකි තවත් ක්‍රමයක් නම්:

kill -9 $$

මෙය සිග්කිල් සං signal ාව තමා වෙත යැවීමට බාෂ් (සහ බොහෝ විට වෙනත් ෂෙල් වෙඩි) ද හේතු වන අතර, එය එම ස්ථානයේදීම මරා දමා තැටියට කිසිවක් ලිවීම වළක්වයි.


7
aka 'හිසට වෙඩි තියන්න' :). විධාන ලිවීමට පෙර කිසිවක් කිරීමට මතක තබා ගැනීමට අවශ්‍ය නොවන වාසිය මෙයයි.
ගයිඩෝ

3
වර්ධක ඉතිහාස ලිවීම් සමඟ මම zsh භාවිතා කරමි, එබැවින් මෙය මගේ නඩුවේදී ක්‍රියාත්මක වේ යැයි මම සැක කරමි
වේන් වර්නර්

13

වත්මන් සැසිය සඳහා විධාන ඉතිහාසය තාවකාලිකව අක්‍රිය කිරීමට, ඔබට තාවකාලිකව HISTFILE පරිසර විචල්‍යය සැකසිය නොහැක.

unset HISTFILE

සැසිය සක්‍රියව තිබියදී ඔබට සුපුරුදු පරිදි ඉතිහාසයට පිවිසිය හැකිය, නමුත් එය තැටියට සුරැකෙන්නේ නැත.

එකම සැසියක ආපසු හැරවීමට (සියලු වෙනස්කම් සටහන් වනු ඇත)

HISTFILE=$HOME/.bash_history

1
වර්තමාන සැසියේදී මෙය ආපසු හැරවීමට සහ එය ඉදිරියට ගෙන යාමට පහසු ක්‍රමයක් තිබේද?

ArParanoidPanda වත්මන් සැසියේදී ආපසු හැරවීම සඳහා මම විධානයක් එක් කළෙමි.
un නි

1
Ar පරනොයිඩ් පැන්ඩා: HISTFILEවත්මන් සැසිය නැවත සැකසීමට ඔබට විධානයක් අවශ්‍ය වන්නේ ඇයි ? ඔබ වෙනස අහෝසි කළහොත් (රහස් විධාන ක්‍රියාත්මක කිරීමෙන් පසුව පවා) ඔබ පිටවන විට ඒවා ඉතිහාසයේ ගබඩා වේ.
හීලියෝ

El හෙලියෝ: ඔහ්, නෑ, මම අදහස් කළේ නැවත පටිගත කිරීම ආරම්භ කරන විධානයක්, නමුත් එය සුරැකීමට මා අකමැති විධාන සුරකින්න.

1
A පරනොයිඩ් පැන්ඩා, පිටවීමේදී ඉතිහාසය සුරකින බැවින් හෙලියෝ මේ පිළිබඳව නිවැරදි බව පෙනේ. මම එය සලකා බැලුවේ නැත.
un නි

10

වත්මන් ෂෙල් සැසියේදී ඔබට ඉතිහාස රේඛා වෙනස් කළ හැකිය. ඔබ ඉතිහාසය හරහා ආපසු ගමන් කළහොත් (උදා: Upහෝ Ctrl+ P) රේඛාවක් ක්‍රියාත්මක නොකර එය වෙනස් කළහොත්, ඉතිරි වන්නේ රේඛාවේ නවීකරණය කරන ලද අනුවාදය පමණි. ඔබට කැමති ආකාරයකින් එය වෙනස් කළ හැකිය; හොඳ තේරීම්වලට රේඛාව මුළුමනින්ම හිස් කිරීමට Ctrl+ Uභාවිතා Esc#කිරීම හෝ #ආරම්භයේ දී විවරණ අක්‍ෂරයක් යෙදීම ඇතුළත් වේ.

රේඛාවක් ක්‍රියාත්මක නොකර එය අතහැර දැමීමට, මතක තබා ගන්න Return( Enter). මා කරන්නේ ඉතිහාසයේ නවතම රේඛාව වෙත ආපසු යාමයි Esc>.

( Escඅනුගමනය කිරීම වෙනුවට >, බොහෝ පර්යන්තවල ඔබට රඳවා තබාගෙන Altඑබිය හැකිය >; ඉහත යෝජනාවටද එයම Esc#වේ.)

සටහන: ඔබට පෙර සැසිවාරයේ ඇතුළත් කිරීම් ස්ථිර ලෙස වෙනස් කළ නොහැක. HISTFILEසැසිවාරය අවසානයේදී එම වෙනස්කම් අදාළ නොවේ .


6

ඔබට .bash_history කියවීමට පමණි. මම පළමුව ගොනුව හිස් කර පසුව කරන්නෙමි:

 chattr +i .bash_history

5

තිර සැසියකදී ඔබට සංවේදී විධාන ක්‍රියාත්මක කළ හැකි අතර, ඔබ අවසන් වූ විට සැසිය විනාශ කරන්න.

විකල්පයක් ලෙස, ඔබට එම තිර සැසිය සජීවීව තබා ගත හැකි නමුත් වෙනත් ආකාරයකින් භයානක විධාන වෙත ඊතලය ඉහළට ඔසවා තැබීමට ඔබට අවශ්‍ය වූ විට පමණක් එයට ප්‍රවේශ විය හැකිය.


1

පුද්ගලිකව මම භාවිතා mkshකරන අතර පෙරනිමියෙන් මෙම කවචයට ඉතිහාස ගොනුවක් නොමැත. එයින් අදහස් කරන්නේ ඔබට පරිශීලකයින්ට දැකීමට අවශ්‍ය නැති විධානය ක්‍රියාත්මක කිරීමට mkshහෝ dash(පෙරනිමියෙන් එන) වැනි විකල්ප කවචයක් දියත් කළ හැකි අතර අවසන් වූ පසු පිටවීමයි. bashඉතිහාසය වාර්තා කරන්නේ ඔබ විකල්ප කවචයක් දියත් කළ බව පමණි.


1

ඔබට tmux, වැනි ටර්මිනල් බහුමාපකය භාවිතා කළ හැකිය screen. එබැවින් යට tmuxහෝ screenඉතිහාසය සුරැකෙන්නේ නැත.

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.