ພະລັງງານຂອງ Linux "ຄຳ ສັ່ງປະຫວັດສາດ" ໃນ Bash Shell
ພວກເຮົາໃຊ້ ຄຳ ສັ່ງ ປະຫວັດສາດ ເລື້ອຍໆໃນວຽກປະ ຈຳ ວັນຂອງພວກເຮົາເພື່ອກວດກາປະຫວັດຂອງ ຄຳ ສັ່ງຫລືຮັບຂໍ້ມູນກ່ຽວກັບ ຄຳ ສັ່ງທີ່ ດຳ ເນີນການໂດຍຜູ້ໃຊ້. ໃນຂໍ້ຄວາມນີ້, ພວກເຮົາຈະເຫັນວິທີທີ່ພວກເຮົາສາມາດ ນຳ ໃຊ້ ຄຳ ສັ່ງປະຫວັດສາດຢ່າງມີປະສິດຕິຜົນເພື່ອສະກັດ ຄຳ ສັ່ງທີ່ຖືກປະຕິບັດໂດຍຜູ້ໃຊ້ໃນ Bash shell ນີ້ອາດຈະເປັນປະໂຫຍດ ສຳ ລັບຈຸດປະສົງການກວດສອບຫຼືຊອກຫາ ຄຳ ສັ່ງໃດທີ່ປະຕິບັດໃນວັນທີແລະເວລາໃດ.
ໂດຍ ກຳ ນົດວັນທີແລະເວລາ ກຳ ນົດຈະບໍ່ເຫັນໃນຂະນະທີ່ປະຕິບັດ ຄຳ ສັ່ງປະຫວັດສາດ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ເປືອກ bash ສະ ໜອງ ເຄື່ອງມື CLI ສຳ ລັບແກ້ໄຂປະຫວັດ ຄຳ ສັ່ງຂອງຜູ້ໃຊ້. ໃຫ້ເບິ່ງບາງ ຄຳ ແນະ ນຳ ທີ່ງ່າຍໆແລະເຄັດລັບແລະ ອຳ ນາດຂອງ ຄຳ ສັ່ງ ປະຫວັດສາດ .
ລາຍຊື່ ຄຳ ສັ່ງສຸດທ້າຍ/ທຸກ ຄຳ ສັ່ງທີ່ປະຕິບັດໃນ Linux
ການປະຕິບັດ ຄຳ ສັ່ງ ປະຫວັດສາດ ທີ່ງ່າຍດາຍຈາກປາຍທາງຈະສະແດງໃຫ້ທ່ານເຫັນບັນຊີ ຄຳ ສັ່ງທີ່ຖືກປະຕິບັດຄັ້ງສຸດທ້າຍພ້ອມດ້ວຍເບີໂທ.
[[email ~]$ history 1 PS1='\e[1;35m[\[email \h \w]$ \e[m ' 2 PS1="\e[0;32m[\[email \h \W]$ \e[m " 3 PS1="\[email \h:\w [\j]$ " 4 ping google.com 5 echo $PS1 6 tail -f /var/log/messages 7 tail -f /var/log/messages 8 exit 9 clear 10 history 11 clear 12 history
2. ຂຽນທຸກ ຄຳ ສັ່ງພ້ອມດ້ວຍວັນແລະເວລາ
ວິທີການຊອກຫາ ວັນທີ ແລະ ກຳ ນົດເວລາ ທີ່ຢູ່ຕໍ່ກັບ ຄຳ ສັ່ງ? ດ້ວຍ ຄຳ ສັ່ງ 'ສົ່ງອອກ ທີ່ມີຕົວແປຈະສະແດງ ຄຳ ສັ່ງປະຫວັດສາດກັບເວລາທີ່ກົງກັນເມື່ອ ຄຳ ສັ່ງປະຕິບັດ.
[[email ~]$ export HISTTIMEFORMAT='%F %T ' 1 2013-06-09 10:40:12 cat /etc/issue 2 2013-06-09 10:40:12 clear 3 2013-06-09 10:40:12 find /etc -name *.conf 4 2013-06-09 10:40:12 clear 5 2013-06-09 10:40:12 history 6 2013-06-09 10:40:12 PS1='\e[1;35m[\[email \h \w]$ \e[m ' 7 2013-06-09 10:40:12 PS1="\e[0;32m[\[email \h \W]$ \e[m " 8 2013-06-09 10:40:12 PS1="\[email \h:\w [\j]$ " 9 2013-06-09 10:40:12 ping google.com 10 2013-06-09 10:40:12 echo $PS1
%F Equivalent to %Y - %m - %d %T Replaced by the time ( %H : %M : %S )
3. ກັ່ນຕອງ ຄຳ ສັ່ງໃນປະຫວັດສາດ
ດັ່ງທີ່ພວກເຮົາສາມາດເຫັນ ຄຳ ສັ່ງດຽວກັນ ກຳ ລັງຖືກເຮັດຊ້ ຳ ອີກເທື່ອ ໜຶ່ງ ໃນຜົນຜະລິດຂ້າງເທິງ. ວິທີການກັ່ນຕອງ ຄຳ ສັ່ງທີ່ ທຳ ລາຍງ່າຍໆຫຼືບໍ່ ທຳ ລາຍໃນປະຫວັດສາດ?. ໃຊ້ ຄຳ ສັ່ງ ‘ສົ່ງອອກ’ ຕໍ່ໄປນີ້ໂດຍການ ກຳ ນົດ ຄຳ ສັ່ງໃນ HISTIGNORE = 'l-l: pwd: ວັນທີ:' ຈະບໍ່ຖືກບັນທຶກໂດຍລະບົບແລະບໍ່ຖືກສະແດງໃນ ຄຳ ສັ່ງປະຫວັດສາດ.
[[email ~]$ export HISTIGNORE='ls -l:pwd:date:'
4. ບໍ່ສົນໃຈ ຄຳ ສັ່ງຊ້ ຳ ໃນປະຫວັດສາດ
ດ້ວຍ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ຈະຊ່ວຍໃຫ້ພວກເຮົາບໍ່ສົນໃຈ ຄຳ ສັ່ງຊ້ ຳ ທີ່ເຮັດໂດຍຜູ້ໃຊ້. ມີພຽງແຕ່ການເຂົ້າດຽວເທົ່ານັ້ນທີ່ຈະຖືກສະແດງໃນປະຫວັດສາດ, ຖ້າຜູ້ໃຊ້ປະຕິບັດ ຄຳ ສັ່ງດຽວກັນຫຼາຍຄັ້ງໃນ Bash Prompt.
[[email ~]$ export HISTCONTROL=ignoredups
5. ຄຳ ສັ່ງສົ່ງອອກທີ່ບໍ່ ກຳ ນົດ
ຍົກເລີກ ຄຳ ສັ່ງສົ່ງອອກໃນເວລາບິນ. ປະຕິບັດ ຄຳ ສັ່ງ ສົ່ງອອກ ທີ່ຢູ່ກັບຕົວແປ ໜຶ່ງ ຕໍ່ ໜຶ່ງ ຄຳ ສັ່ງໃດໆທີ່ຖືກສົ່ງອອກໂດຍ ສົ່ງອອກ ຄຳ ສັ່ງ.
[[email ~]$ unset export HISTCONTROL
6. ບັນທຶກ ຄຳ ສັ່ງສົ່ງອອກຢ່າງຖາວອນ
ເຮັດການປ້ອນຂໍ້ມູນດັ່ງຕໍ່ໄປນີ້ໃນ .bash_profile ເພື່ອບັນທຶກ ສົ່ງອອກ ຄຳ ສັ່ງຖາວອນ.
[[email ~]$ vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export PATH
ລາຍຊື່ ຄຳ ສັ່ງການບໍລິຫານຂອງຜູ້ໃຊ້ສະເພາະ
ວິທີການເບິ່ງປະຫວັດ ຄຳ ສັ່ງທີ່ ດຳ ເນີນການໂດຍຜູ້ໃຊ້ສະເພາະ. Bash ເກັບບັນທຶກປະຫວັດສາດໄວ້ໃນເອກະສານ '~/.bash_history' . ພວກເຮົາສາມາດເບິ່ງຫລືເປີດເອກະສານເພື່ອເບິ່ງປະຫວັດ ຄຳ ສັ່ງ.
[[email ~]$ vi .bash_history cd /tmp/ cd logstalgia-1.0.3/ ./configure sudo passwd root apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ./configure make apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc++ apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install make mysql -u root -p apt-get install grsync apt-get install unison unison
8. ປິດການເກັບຮັກສາປະຫວັດສາດຂອງ ຄຳ ສັ່ງ
ບາງອົງກອນບໍ່ເກັບຮັກສາປະຫວັດສາດຂອງ ຄຳ ສັ່ງເນື່ອງຈາກວ່ານະໂຍບາຍຄວາມປອດໄພຂອງອົງກອນ. ໃນກໍລະນີນີ້, ພວກເຮົາສາມາດດັດແກ້ .bash_profile (ມັນຖືກເຊື່ອງໄວ້) ຂອງຜູ້ໃຊ້ແລະເຮັດການປ້ອນຂໍ້ມູນດັ່ງລຸ່ມນີ້.
[[email ~]$ vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin HISTSIZE=0 export PATH .bash_profile (END)
ບັນທຶກເອກະສານແລະໂຫລດການປ່ຽນແປງດ້ວຍ ຄຳ ສັ່ງດ້ານລຸ່ມ.
[[email ~]$ source .bash_profile
ໝາຍ ເຫດ: ຖ້າທ່ານບໍ່ຕ້ອງການໃຫ້ລະບົບຈື່ ຄຳ ສັ່ງທີ່ທ່ານພິມ, ທ່ານພຽງແຕ່ປະຕິບັດຢູ່ລຸ່ມ ຄຳ ສັ່ງທີ່ຈະປິດໃຊ້ງານຫຼືຢຸດການບັນທຶກປະຫວັດການບິນ.
[[email ~]$ export HISTSIZE=0
ຄຳ ແນະ ນຳ: ຄົ້ນຫາ 'ຄວາມຮອບຄອບ' ແລະດັດແກ້ໃນເອກະສານ ‘/ etc/profile’ ກັບຊ່າງ Superuser. ການປ່ຽນແປງຂອງເອກະສານດັ່ງກ່າວຈະມີຜົນໃນທົ່ວໂລກ.
9. ລົບລ້າງຫຼືລຶບລ້າງປະຫວັດສາດຂອງ ຄຳ ສັ່ງ
ດ້ວຍລູກສອນຂຶ້ນແລະລົງ, ພວກເຮົາສາມາດເຫັນ ຄຳ ສັ່ງທີ່ຖືກໃຊ້ຜ່ານມາເຊິ່ງອາດຈະເປັນປະໂຫຍດຫຼືອາດເຮັດໃຫ້ທ່ານໃຈຮ້າຍ. ລຶບຫຼືລຶບບັນດາຂໍ້ມູນທັງ ໝົດ ຈາກລາຍການປະຫວັດສາດທີ່ແຕກຕ່າງກັນດ້ວຍຕົວເລືອກ '-c'.
[[email ~]$ history -c
10. ຄົ້ນຫາ ຄຳ ສັ່ງໃນປະຫວັດສາດໂດຍໃຊ້ ຄຳ ສັ່ງ Grep
ຄົ້ນຫາ ຄຳ ສັ່ງຜ່ານ '.bash_history' ໂດຍການຮວບຮວມເອກະສານປະຫວັດສາດຂອງທ່ານໃຫ້ເປັນ 'grep' ດັ່ງລຸ່ມນີ້. ຕົວຢ່າງ, ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ຈະຄົ້ນຫາແລະຊອກຫາ ຄຳ ສັ່ງ 'pwd' ຈາກລາຍຊື່ປະຫວັດສາດ.
[[email ~]$ history | grep pwd 113 2013-06-09 10:40:12 pwd 141 2013-06-09 10:40:12 pwd 198 2013-06-09 15:46:23 history | grep pwd 202 2013-06-09 15:47:39 history | grep pwd
ຄົ້ນຫາ ຄຳ ສັ່ງບໍລິຫານສຸດທ້າຍ
ຄົ້ນຫາ ຄຳ ສັ່ງທີ່ ດຳ ເນີນການກ່ອນ ໜ້າ ນີ້ດ້ວຍ ຄຳ ສັ່ງ 'Ctrl + r' . ເມື່ອທ່ານໄດ້ພົບ ຄຳ ສັ່ງທີ່ທ່ານ ກຳ ລັງຊອກຫາ, ກົດປຸ່ມ 'Enter' ເພື່ອປະຕິບັດການກົດປຸ່ມແບບດຽວກັນເພື່ອຍົກເລີກມັນ.
(reverse-i-search)`source ': source .bash_profile
12. ລະລຶກ ຄຳ ສັ່ງປະຕິບັດງານຄັ້ງສຸດທ້າຍ
ຈື່ ຈຳ ຄຳ ສັ່ງສະເພາະທີ່ໃຊ້ຜ່ານມາ. ການປະສົມປະສານຂອງ ຄຳ ສັ່ງ Bang ແລະ 8 (! 8) ຈະຈື່ ຄຳ ສັ່ງເລກທີ 8 ທີ່ທ່ານໄດ້ປະຕິບັດ.
[[email ~]$ !8
13. ທວນຄືນ ຄຳ ສັ່ງສະເພາະທີ່ປະຕິບັດງານຄັ້ງສຸດທ້າຍ
ຈື່ ຈຳ ຄຳ ສັ່ງທີ່ໃຊ້ຜ່ານມາ (netstat -np | grep 22) ດ້ວຍ ‘!’ ແລະຕິດຕາມດ້ວຍຕົວອັກສອນບາງ ຄຳ ຂອງ ຄຳ ສັ່ງສະເພາະນັ້ນ.
[[email ~]$ !net netstat -np | grep 22 (No info could be read for "-p": geteuid()=501 but you should be root.) tcp 0 68 192.168.50.2:22 192.168.50.1:1857 ESTABLISHED - tcp 0 0 192.168.50.2:22 192.168.50.1:2516 ESTABLISHED - unix 2 [ ] DGRAM 12284 - @/org/freedesktop/hal/udev_event unix 3 [ ] STREAM CONNECTED 14522 - unix 2 [ ] DGRAM 13622 - unix 3 [ ] STREAM CONNECTED 12250 - @/var/run/hald/dbus-ujAjOMNa0g unix 3 [ ] STREAM CONNECTED 12249 - unix 3 [ ] STREAM CONNECTED 12228 - /var/run/dbus/system_bus_socket unix 3 [ ] STREAM CONNECTED 12227 -
ພວກເຮົາໄດ້ພະຍາຍາມຊີ້ໃຫ້ເຫັນ ອຳ ນາດຂອງ ຄຳ ສັ່ງປະຫວັດສາດ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ນີ້ບໍ່ແມ່ນຈຸດຈົບຂອງມັນ. ກະລຸນາແບ່ງປັນປະສົບການຂອງທ່ານກ່ຽວກັບ ຄຳ ສັ່ງປະຫວັດສາດກັບພວກເຮົາຜ່ານຊ່ອງ ຄຳ ເຫັນຂອງພວກເຮົາຂ້າງລຸ່ມນີ້.