Contents:
Khi mới làm quen với Linux, việc nhớ cũng như cách sử dụng các lệnh trong Linux không phải dễ dàng nếu bạn không sử dụng lệnh đó 1 cách thường xuyên. Một cách để tra cứu lại những lệnh đã thực thi, hoặc copy lại những lệnh quá dài đó là lệnh history.
Bài viết này sẽ giới thiệu với các bạn một số thao tác với lệnh history trên Linux.
Xem thêm loạt bài tổng hợp câu lệnh trên Linux:
Làm việc với tập tin định dạng TEXT
Khi bạn gõ lệnh history, hệ thống sẽ in ra màn hình lịch sử những câu lệnh mà user hiện tại đã thực hiện trước đó.
Ví dụ:
[user@centos7 ~]$ history 1 ip a 2 exit 3 ls -la 4 pwd [user@centos7 ~]#
Nếu chỉ muốn in một số lượng dòng nhất định, các bạn thêm tham số sau lệnh history. Nó sẽ in ra số dòng mà bạn thực thi gần nhất.
Ví dụ:
[user@centos7 ~]$ history 3 16 passwd 17 getenforce 18 history 3
Để thực thi lại câu lệnh gần nhất, các bạn gõ 2 dấu “!”
Ví dụ:
[root@centos7 ~]# date Wed Feb 27 01:55:48 UTC 2019 [root@centos7 ~]# !! date Wed Feb 27 01:56:03 UTC 2019 [root@centos7 ~]#
Để thực hiện lại câu lệnh thứ “n” trong lịch sử câu lệnh các bạn sử dụng cú pháp !n
Ví dụ:
[root@centos7 ~]# history 2 101 date 102 history 2 [root@centos7 ~]# !101 date Wed Feb 27 01:55:48 UTC 2019
Để thực hiện lại câu lệnh cuối cùng bắt đầu bằng một chuỗi kí tự xác định. bạn dùng cú pháp !string
Ví dụ:
[root@centos7 ~]# systemctl start httpd [root@centos7 ~]# systemctl stop firewalld [root@centos7 ~]# systemctl restart httpd [root@centos7 ~]# !systemctl systemctl restart httpd
Khi muốn xem lịch sử câu lệnh về một vấn đề cụ thể, chúng ta có thể kết hợp lệnh history và grep.
Ví dụ:
[root@centos7 ~]# history | grep httpd 65 yum install httpd -y 106 systemctl stop httpd 107 systemctl start httpd 117 history | grep httpd
Khi thực hiện câu lệnh ghi lịch sử ra file, hệ thống sẽ ghi vào file users ~/.bash_history với option “w”
[root@centos7 ~]# history -w
Để xóa lịch sử câu lệnh đã thực thi các bạn dùng lệnh sau:
[root@centos7 ~]# history -c
Để xóa một dòng nào đó các bạn dùng cú pháp history -d n
Ví dụ:
[root@centos7 ~]# history | grep password 121 Wed 27 Feb 2019 01:56:03 AM PDT mysql -u root -p oops_this_is_my_password 122 Wed 27 Feb 2019 01:56:03 AM PDT history | grep password [root@centos7 ~]# history -d 121 [root@centos7 ~]# history | grep password 121 Wed 27 Feb 2019 01:56:03 AM PDT history | grep password 123 Wed 27 Feb 2019 01:56:03 AM PDT history | grep password
Bạn có thể thực thi lệnh mà không muốn bị lưu vào lịch sử câu lệnh bằng cách sau:
[root@centos7 ~]# echo "secret command";history -d $(history 1) secret command
Mặc định hệ thống sẽ lưu lại 1000 dòng lệnh đã thực hiện, để tăng khả năng lưu trữ các bạn làm như sau:
Mở file ~/.bashrc và thêm vào 2 dòng sau:
HISTSIZE=2000 HISTFILESIZE=2000
Sau đó logout và login lại là được.
Kiểm tra xem kích thước hiện tại như sau:
[root@centos7 ~]# echo $HISTFILESIZE 2000 [root@centos7 ~]# echo $HISTSIZE 2000
Để thêm thời gian vào lịch sử câu lệnh, các bạn sử dụng câu lệnh sau:
echo 'export HISTTIMEFORMAT="%c "' >> ~/.bashrc
Sau đó logout và login trở lại và kiểm tra
[root@centos7 ~]# history 5 39 Wed 27 Feb 2019 01:46:03 AM PDT firewall-cmd --add-service=http --permanent 40 Wed 27 Feb 2019 01:48:03 AM PDT firewall-cmd --reload 41 Wed 27 Feb 2019 01:50:03 AM PDT tailf /var/log/messages 42 Wed 27 Feb 2019 01:52:03 AM PDT restorecon -v /var/www/html/index.html 43 Wed 27 Feb 2019 01:56:03 AM PDT history 5
Để tìm kiếm lịch sử câu lệnh các bạn bấm tổ hợp phím Ctrl + R sau đó gõ chuỗi kí tự cần tìm kiếm.
Ví dụ:
(reverse-i-search)`cat': cat /etc/*release root@ITFROMZERO:~# cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic
Để không cho hệ thống lưu lại một lệnh cụ thể các bạn làm theo ví dụ sau:
root@ITFROMZERO:~# cd /home/ root@ITFROMZERO:/home# cd /root/ root@ITFROMZERO:~# export HISTCONTROL=ignorespace root@ITFROMZERO:~# ls -l total 0 root@ITFROMZERO:~# history 5 140 Wed 27 Feb 2019 01:56:03 clear 141 Wed 27 Feb 2019 01:56:03 cd /home/ 142 Wed 27 Feb 2019 01:56:03 cd /root/ 143 Wed 27 Feb 2019 01:56:03 export HISTCONTROL=ignorespace 144 Wed 27 Feb 2019 01:56:03 history 5 root@ITFROMZERO:~#
Ở ví dụ trên mình đã không cho lưu lệnh “ls -l” bằng cách bỏ qua lưu lệnh đó với khoảng cách phía trước câu lệnh (export HISTCONTROL=ignorespace)
Trong ví dụ sau, !cp:2 tìm kiếm những lệnh trong history bắt đầu bằng cp và lấy tham số thứ hai sau đó điền vào ls -l
root@ITFROMZERO:~# cp test.txt /home/test.csv root@ITFROMZERO:~# ls -l !cp:2 ls -l /home/test.csv -rw-r–r– 1 root root 292 2019-02-26 15:02 /home/test.csv
Trên đây là một số thao tác với câu lệnh history trên Linux. Chúc các bạn thành công.
Như các bạn đã biết thì Telegram là một dịch vụ tin nhắn tuyệt vời…
Apache Tomcat là gì? Apache Tomcat là một web server HTTP được phát triển bởi…
20 triệu có lẽ là một mức chi phí khá lý tưởng cho một máy…
Micosoft chính thức phát hành Microsoft Edge Chromium Microsoft đã chính thức tung ra trình…
CentOS 8 đã phát hành ngày 25/09/2019, phiên bản 8 lần này có những thay đổi…
Thời buổi công nghệ phát triển, phần lớn công việc của con người đều có…
Leave a Comment