Android

Utos ng kasaysayan sa linux (kasaysayan ng bash)

Linux Commands for Beginners 15 - Bash History

Linux Commands for Beginners 15 - Bash History

Talaan ng mga Nilalaman:

Anonim

, pag-uusapan natin ang tungkol sa utos ng history , na nagbibigay-daan sa iyo upang tingnan ang isang listahan ng mga naunang naisagawa na mga utos, maghanap sa listahan, at manipulahin ang file ng kasaysayan.

Gamit ang history Komisyon at Pagpapalawak ng Kasaysayan

history ay isang shell builtin, at ang pag-uugali nito ay maaaring bahagyang naiiba mula sa shell sa shell. Sakupin namin ang bersyon ng history ng Bash builtin.

Sa pinakasimpleng porma, kapag hinihiling nang walang anumang pagpipilian o argumento, ipinapakita ng utos ng history ang buong listahan ng kasaysayan na may mga numero ng linya.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Pagta-type !n isinasagawa ang utos n-ika mula sa listahan ng kasaysayan, at !-n ang mga utos ng utos. Sa mga sumusunod na halimbawa na ginagawa namin ang utos sa linya 467 :

!467

Ang isa pang paraan upang magsagawa ng isang utos ay ang paggamit !word Pagpapalawak ng !word . tinutukoy ng word ang pinakahuling utos na nagsisimula sa 'salita'.

Karaniwan, ipinapakita ng history maraming mga linya ng output na hindi umaangkop sa screen. Upang matingnan ang output ng isang pahina nang sabay-sabay, i-pipe ito sa isang pager program tulad ng more o less utos:

history | less

Upang maipakita ang mga huling n linya, ipasa ang bilang bilang isang argument sa utos. Halimbawa, upang makita lamang ang huling limang linya mula sa listahan ng kasaysayan na iyong mai-type:

history -5

Gamitin ang up at down arrow key upang mag-navigate sa mga entry sa listahan. Kapag ang utos na iyong hinanap ay ipinapakita pindutin ang Enter upang maisagawa ito.

Uri !! upang maisagawa ang nakaraang utos:

!!

Lalo na itong kapaki-pakinabang kapag nakalimutan mong magpatuloy ng isang utos na may sudo , at sa halip na muling mag-type ng utos maaari kang mag-type:

sudo !!

!-1 pareho din !! at isinasagawa ang huling utos mula sa listahan ng kasaysayan, ! !-2 segundo hanggang sa huli, at iba pa.

^word1^word2^ nagpapahintulot sa iyo na muling patakbuhin ang huling utos na pinapalitan ang "word1" sa "word2". Kung hindi mo sinasadyang na-type ang sduo command halip na sduo command ng sudo command maaari mong ulitin ang utos gamit ang tamang salita gamit ang:

^sduo^sudo^

Gumamit ng utos ng grep upang salain ang output. Halimbawa, upang tingnan ang lahat ng mga utos kabilang ang "nano" tatakbo ka:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Ngayon, kung nais mong muling patakbuhin ang utos ng nano setup.py -type lamang:

!356

Ang isa pang paraan upang maghanap sa kasaysayan ng utos ay sa pamamagitan ng pagpindot sa Ctrl-R . Ang prompt ay magbabago sa mga sumusunod, at maaari mong simulan ang paghahanap para sa isang naunang naisagawa na utos.

(reverse-i-search)`':

Ang shell ay magpapakita ng isang linya ng pagtutugma. Upang lumipat sa susunod na pagtutugma ng mungkahi, pindutin muli ang Ctrl-R .

Suriin ang manu-manong Bash para sa karagdagang impormasyon tungkol sa Pagpapalawak ng Kasaysayan, mga modifier, at mga tagadisenyo.

Pag-save ng Listahan ng Kasaysayan

Bilang default, kapag nagsisimula ng isang bagong session, binabasa ni Bash ang listahan ng kasaysayan mula sa .bash_history file. Ang listahan ng mga utos na naisakatuparan sa kasalukuyang sesyon ay pinapanatili sa memorya at nai-save sa file kapag ang session ay sarado.

Pinapayagan ka ng isang -a opsyon na i-save ang kasalukuyang listahan ng kasaysayan ng sesyon sa .bash_history file:

history -a

Ang pagpipilian ng -w nagsusulat ng kumpletong listahan ng kasaysayan sa file ng kasaysayan.

history -w

Paglilinis ng Kasaysayan

Pinapayagan ka ng utos ng history na i-clear ang kumpletong listahan ng kasaysayan o alisin ang ilang mga bahagi.

Upang i-clear ang listahan ng kasaysayan, gamitin ang pagpipilian na -c :

history -c

Upang tanggalin ang isang tukoy na linya o linya sa pagitan ng mga posisyon ng pagsisimula at pagtatapos mula sa listahan ng kasaysayan, gamitin ang pagpipilian na -d .

Halimbawa, upang alisin ang mga linya sa pagitan ng 365 at 375 (kasama ang mga linya na iyon), mai-type mo:

history -d 365 375

Kapag ginamit ang isang negatibong integer, ang mga linya ay nabibilang mula sa dulo ng listahan ng kasaysayan.

Ang mga utos sa itaas ay malinaw na ang listahan ng kasaysayan, na pinapanatili sa memorya, ngunit hindi tinanggal ang mga entry mula sa .bash_history file sa disk. Upang i-clear ang file, kailangan mong isulat ang listahan ng kasaysayan sa file:

history -c history -w

Pagbabago ng Pag-uugali sa Kasaysayan

Ang pag-uugali ng kasaysayan ng Bash ay maaaring tukuyin gamit ang maraming iba't ibang mga variable ng kapaligiran. Kapag binago ang pag-uugali ng kasaysayan, itakda ang mga variable sa ~/.bashrc o anumang iba pang file ng pagsasaayos na nai-load kapag nag-log ang gumagamit.

Sa pamamagitan ng default ay pinapanatili ng Bash ang 500 linya sa listahan ng kasaysayan ng command. Pinapayagan ka ng variable na HISTSIZE na baguhin mo ang halagang ito. Upang itakda ito sa 10000 idagdag ang sumusunod na linya sa iyong .bashrc file:

HISTSIZE=10000

Ang HISTCONTROL variable ay tumatanggap ng isang hiwalay na listahan ng mga halaga ng colon na tumutukoy kung paano nai-save ang mga utos sa listahan ng kasaysayan:

  • ignorespace - ang mga utos na nagsisimula sa puwang ay hindi nai-save sa listahan ng kasaysayan. ignoredups - ang mga dobleng utos ay hindi nai-save. ignoreboth - ay isang shorthand, kabilang ang parehong ignorespace - ignoredups at hindi ignoredups .

HISTCONTROL=ignoreboth

Kapag HISTTIMEFORMAT variable ng HISTTIMEFORMAT , naghahanda ang Bash ng isang timestamp ng pagpapatupad para sa utos sa bawat linya.

Halimbawa, kung nagtakda ka:

HISTTIMEFORMAT="%F %T: "

Ang kasaysayan ay ipapakita sa sumusunod na format:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Konklusyon

Ipinapakita ng utos ng history isang listahan ng mga naunang naisagawa na mga utos. Halimbawa, maaari mong gamitin ang kasaysayan upang matingnan ang isang mahabang utos na ginamit mo bago mo hindi maalala.

terminal ng kasaysayan