Answers:
ඉතිහාසයේ සුරැකීමකින් තොරව විධානයක් ක්රියාත්මක කිරීමට ඔබට අවශ්ය නම්, එය අමතර ඉඩක් සමඟ සූදානම් කරන්න
prompt$ echo saved
prompt$ echo not saved \
> # ^ extra space
මෙය ක්රියාත්මක කිරීම සදහා ඔබ එක්කෝ අවශ්ය ignorespace
හෝ ignoreboth
දී HISTCONTROL
. උදාහරණයක් ලෙස, ධාවනය කරන්න
HISTCONTROL=ignorespace
මෙම සැකසුම නොනවත්වා කිරීමට, එය ඔබගේ තුළට දමන්න .bashrc
.
ඔබ දැනටමත් විධානය ක්රියාත්මක කර එය ඉතිහාසයෙන් ඉවත් කිරීමට අවශ්ය නම් පළමුව භාවිතා කරන්න
history
ඔබගේ ඉතිහාසයේ විධාන ලැයිස්තුව පෙන්වීමට. ඔබට මැකීමට අවශ්ය අංකයට යාබද අංකය සොයාගෙන (උදා: 1234) ධාවනය කරන්න
history -d 1234
මීට අමතරව, ඔබට මැකීමට අවශ්ය රේඛාව දැනටමත් ඔබේ $ HISTFILE වෙත ලියා තිබේ නම් (සාමාන්යයෙන් ඔබ සැසියක් පෙරනිමියෙන් අවසන් කරන විට සිදු වේ), ඔබට නැවත $ HISTFILE වෙත ලිවීමට අවශ්ය වනු ඇත, නැතහොත් ඔබ නවයක් විවෘත කරන විට රේඛාව නැවත දිස්වනු ඇත. වාරය:
history -w
bash
කවචය ක්රියාත්මක වන විට සියලුම සැකසුම් RAM තුළ ගබඩා කර ඇත. මෙම rc
ගොනු ඉදිරි කාලය ෂෙල් ආරම්භ කිරීම සඳහා දිගටම පවතින සැකසුම් ගබඩා කිරීම සඳහා පමණි.
history -a
සාමාන්ය වින්යාසය යටතේ පිටවීම වෙනුවට PROMPT_COMMAND ලෙස සකසා ඇත්තෙමි . නිශ්චිතවම: mywiki.wooledge.org/BashFAQ/088
ඔබගේ සියලු ඉතිහාසය ඉවත් කිරීමට, භාවිතා කරන්න
history -c
තනි පේළියක් මකා දැමීමට, භාවිතා කරන්න
history -d linenumber
මා සතුව මෙය ඇත ~/.bashrc
, එමඟින් විධානය මඟින් $ forget
පෙර විධානය ඉතිහාසයෙන් මකා දැමිය හැකිය
function forget() {
history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);
}
history -d $( history | tail -n 1 | cut -f 1 -d " " )
සරල විය?
history | tail -n1
යනු history
විධානයම වන බැවින් එම අංකය මකා දැමීමෙන් වැරදි ඇතුළත් වේ. කෙසේ වෙතත්, history -d $( history | awk 'END{print $1-1}' )
රේඛා තේරීම, ක්ෂේත්ර තේරීම සහ අඩු කිරීම ඒකාබද්ධ කරයි.
ඔබට සෑම විටම ~/.bash_history
එක් ප්රවේශයක් හෝ එක් ප්රවේශයකට වඩා ඉවත් කිරීමට අවශ්ය විට ප්රයෝජනවත් වන ප්රවේශයන් සංස්කරණය කර ඉවත් කළ හැකිය
ඔබට සම්පූර්ණ බැෂ් සැසිය අමතක කිරීමට අවශ්ය නම්, ඔබට kill
වත්මන් බැෂ් ක්රියාවලිය කළ හැකිය. විචල්යය වත්මන් කවචයේ $$
රඳවා ඇති බැවින් pid
ඔබට මෙය කළ හැකිය:
kill -9 $$
$HISTFILE
.
$HISTFILE
මෙය ක්රියාත්මක විය යුතුය. මා සැලකිල්ලට ගත් එකම අදහස එයයි $HISTFILE
. ඔබ සැලකිලිමත් වීමට හේතු වන (මගේ යෝජනාව සමඟ) ඔබට ඇති අත්දැකීම් මොනවාද?
$HISTFILE
වත්මන් සැසියේදී ලියා ඇති ඉතිහාසයට බලපාන්නේ නැත, එබැවින් එම ප්රකාශය වැරදි ලෙස අර්ථකථනය කරන්නේ කෙසේදැයි මම නොදනිමි. ඔබේ පිළිතුරට ඔබ එකතු කළ යුතු එකම දෙය නම් දී ඇති විසඳුම ගැටළුව විසඳන උපකල්පන ය. ඇත්ත වශයෙන්ම ඇත්තේ එක් උපකල්පනයක් පමණි, එනම් ඉතිහාසයෙන් ඉවත් කළ යුතු විධානය තවමත් ලියා නැත $HISTFILE
. එවිට ඔබ කුමක් කොන්දේසි ආඥාව යටතේ විස්තර සඳහන් කිරීමට ඔබට අවශ්ය විය හැක බව සටහන් කර ඇත $HISTFILE
.
ඔබ ඉතිහාසය හිස් කළ පසු වෙනස්කම් ලිවිය යුතුය. ඔබේ ඉතිහාසය තුළ ඉතිහාසය පිසදැමීමේ විධානය ලබා ගැනීමට ඔබ අකමැති නම්, ඔබ එවැනි විධානයක් ක්රියාත්මක කළ යුතුය:
history -c && history -w && logout
වාසනාව.
ඉතිහාස ගොනුවෙන් තනි පේළියක් ඉවත් කිරීමට, -d විකල්පය භාවිතා කරන්න. උදාහරණයක් ලෙස, ඉහත අවස්ථාවෙහිදී මෙන් ඔබට පැහැදිලි-මුරපදය ඇතුළත් කළ විධානයක් ඉවත් කිරීමට අවශ්ය නම්, ඉතිහාස ගොනුවේ පේළි අංකය සොයාගෙන මෙම විධානය ක්රියාත්මක කරන්න.
$ history -d 2038
Bash ඉතිහාසයෙන් සියලුම ඇතුළත් කිරීම් මකා දැමීමට හෝ ඉවත් කිරීමට, -c විකල්පය සමඟ පහත ඉතිහාස විධානය භාවිතා කරන්න.
$ history -c
විකල්පයක් ලෙස, ගොනුවේ ස්ථිරවම අවසන් වරට ක්රියාත්මක කරන ලද සියලුම විධානයන්හි ඉතිහාසය මකා දැමීමට ඔබට පහත විධානය භාවිතා කළ හැකිය.
$ cat /dev/null > ~/.bash_history
Bash 5 සමඟින්, ඔබට පරාසයක් මකා දැමිය හැකිය
history -d 511-520
1- බැෂ් ටර්මිනල් වර්ගයේ
history
# මෙය ඉතිහාසයේ සියලුම විධාන ලැයිස්තුගත කරනු ඇත .bash_history ගොනුව රේඛා අංක සමඟ
උදා:
...
987 cd
988 ssh x@127.0.0.1
990 exit
991 cd
2- ඔබට මැකීමට අවශ්ය CMD රේඛා අංකය තෝරන්න
history -d 988
සටහන: ඔබට අවසාන CMD 3 මකා දැමීමට අවශ්ය නම්, පහළ ex: 988 වෙතින් තුන්වන පේළියේ අංකය තෝරා CMD history -d 988
අනුපිළිවෙලින් 3 වතාවක් නැවත කරන්න .
history
විධානය භාවිතා කළ විධාන ලැයිස්තුගත කළ විට මට එය පැහැදිලි කිරීමට අවශ්ය විය !
ඉක්මන් පියවර:
echo $HISTFILE
history
ඔබේ පර්යන්තය තුළ විධානය ක්රියාත්මක කිරීමෙන් ඔබට එය වලංගු කළ හැකියඋබුන්ටු වල (නමුත් මට විශ්වාසයි, එය වෙනත් ලිනක්ස් බෙදාහැරීම් සඳහා මෙන්ම මැකෝස් එකම ආකාරයකින් ක්රියා කරනු ඇත) බාෂ් ඉතිහාස ගොනුව අත්තනෝමතික පෙළ සංස්කාරකයකින් සරලව සංස්කරණය කළ හැකිය:
$ nano ~/.bash_history
ඔබ නොදන්නේ නම්, එය ගබඩා කර ඇති ස්ථානය, ඔබට එය පහත පරිදි සොයාගත හැකිය:
$ echo $HISTFILE
නැතහොත් ඔබට එය තව ටිකක් සාමාන්ය ආකාරයකින් කළ හැකිය:
$ nano $HISTFILE
ඔබට ඉතිහාස රේඛා පරාසයක් මකා දැමීමට අවශ්ය නම්, ඔබට පහත පිටපත භාවිතා කළ හැකිය.
මෙම උදාහරණය මඟින් 1 වන පේළියේ සිට 150 වන පේළිය දක්වා ඉතිහාස ප්රතිදානය මකා දැමෙනු ඇත.
for i in `history | awk 'NR > 1 && NR <=150{print $1}'`; do history -d $i; done