
دستور history برای دیدن دستوراتی هست که شما قبلا در ترمینال نوشته اید
با زدن history به تنهایی لیست تمام دستوراتی که قبلا نوشته اید رو میاره
مثلا قسمتی از history سیستم من
کد:
root@debian:/# history
3 echo "4+10" | bc
4 echo "obase=15;5+9" | bc
5 sudo
6 halt
7 cd /
8 ls /etc
9 nano pam.conf
10 cd pam.conf
11 nano pam.conf
12 cd pam.d
13 cd pam.d
14 nano pam.d
15 nano /etc/pam.conf
16 cd /etc/pam.d
17 ls
18 man pam
19 PAM
20 man PAM
21 ls
22 nano su
23 ls
24 cp su /etc/pam.d/su.save
25 ls
26 nano su
27 login
28 ls
29 mkdir test
30 cd /
31 nano /etc/passwd
32 login
33 nano /etc/passwd
34 nano /etc/passwd
35 sudo
36 login
37 cd /
38 ls
39 nano /etc/passwd
40 login
41 ls
42 login
43 nano /etc/passwd
44 login
45 cd /
46 mkdir /home/khodam
47 login
48 cd /
49 groupadd
50 groupadd
51 gropadd limit
52 gruopadd limit
53 groupadd
54 groupadd limit
55 useradd -g {limit} khodam
56 useradd -g limit khodam
57 passwd khodam]
58 passwd khodam
59 usermod khodam
60 chage
61 chage khodam
62 usermod --help
63 ls
64 ls /home
65 login
66 nano /etc/security/limits.conf
67 nano /etc/security/limits.conf
68 cd /etc/sudoers
69 cd /etc/sudoers
70 cd /etc
71 ls
72 cd sudoers
73 cd sudoers
74 ls sudoers
75 nano sudoers
76 visudo
77 nano /etc/security/limits.conf
78 visudo
79 apt-get install squid
80 squid
81 nano /etc/squid.conf
82 cd /etc/squid
83 nano squid.conf
84 nano squid.conf
85 /etc/init.d/squid restart
86 cd /
87 nano /etc/squid/squid.conf
88 /etc/init.d/squid restart
89 nano /etc/squid/squid.conf
90 /etc/init.d/squid restart
91 /etc/init.d/squid restart
92 nano /etc/shels
93 ls /etc/shels
94 cd etc
95 ls
96 cd /
97 cd etc
98 ls
99 cd shells
100 nano shells
101 chsh
102 chsh khodam
103 nano shells
104 chsh khodam
105 nano shells
106 apt-get install lshel
107 apt-get install lshell
108 ch
109 cd security
110 ls
111 nano access.conf
112 visudo
113 visudo
114 visudo
115 visudo
116 cd /
117 upime
118 uptime
119 aptget install sudo debianutils coreutils
120 apt-get install debianutils coreutils
121 apt-get install coreutils
122 cd /usr/local/sbin
123 wget http://www.fuschlberger.net/programs/sshscpsftpchrootjail/make_chroot_jail.sh
124 wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
125 chmod 700
126 chmod 700 make_chroot_jail.sh
127 nano make_chroot_jail.sh
128 useradd
129 useradd ansary
130 passwd ansary
131 cd /home
132 ls
133 ln s . home
134 ln s . home
135 ls
136 ln s . home
137 ls
138 mkidir gailed
جستوجو در history
برای جستو جو در history کلید ترکیبی Control+R بزنید بعد کلمهی کلیدی مورد نظر رو وارد کنین این جوری دستور قبلی که توش اون کلمه کلیدی بوده رو میاره وشما بازدن enter میتونین اونو اجرا کنین
مثلا در زیر با دادن کلمه کلیدی red دستور قبلی که توش کلمهی red بوده رو میاره ((cat /etc/redhat-release))
کد:
# [Press Ctrl+R from the command prompt,
which will display the reverse-i-search prompt]
(reverse-i-search)`red': cat /etc/redhat-release
[Note: Press enter when you see your command,
which will execute the command from the history]
# cat /etc/redhat-release
Fedora release 9 (Sulphur)
اگه وقتی که کلمه کلیدی خودتونو دادین و دستور مورد نظرتون امد و خاستین توش تغییری ایجاد کنین قبل از اجرا قبل از اینکه enter رو بزنین کلید چب یا راستو از روی کیبوردتون بزنین ((left arrow or right arrow))
مثلا در زیر stop رو به start تغییر میدیم
کد:
# [Press Ctrl+R from the command prompt,
which will display the reverse-i-search prompt]
(reverse-i-search)`httpd': service httpd stop
[Note: Press either left arrow or right arrow key when you see your
command, which will display the command for you to edit, before executing it]
# service httpd start
تکرار کردن دستور قبلی به 4 روش
1-با زدن دکمه بالا ((up arrow)) دستور قبلی نشون داده میشه . برای اجرا enter را بزنین
2- بنویسین !! اینجوری دستور قبلی بدون اینکه نشون داده بشه و احتیاج به زدن enter باشه خودش اجرا میشه
3-بنویسین !-1 اینجوری دستور قبلی بدون اینکه نشون داده بشه و احتیاج به زدن enter باشه خودش اجرا میشه ((اگر بنویسین 2-! 2 دستوری که قبل از دستور قبلی نوشتینو اجرا میکنه یعنی دستور قبل از 1-! اجرا میکنه ))
4- Control+P دستور قبلب رو نشون میده برای اجرا کردنش enter رو بزنین
اجرا کردن دستور به وسیله شماره اون در history
اگه خروجی دستور history در بالا رو نگاه کنین میبینین که هر دستوری برای خودش یک شماره ای داره حالا اگر بخایم دستور شماره ی 517 رو اجرا کنیم دستور به این شکل میشه
مثلا
کد:
501 cd /
502 history
503 history --help
504 ls -a
505 ls -a
506 ls -a
507 history |more
508 history
509 history
510 history
511 top
512 ls -l
513 top
514 ls-1
515 ls-1
516 history
517 last |grep ppp |grep still
518 sudo netstat -na
519 history
520 ls -a /var/log
521 nano /etc/pam.d
522 halt --help
523 history
کد:
root@debian:/# !517
last |grep ppp |grep still
root@debian:/#
چون دستورش خروجی نداشت چیزی نشون نداد
اجرا کردن دستوری که با کلمه ی خاصی شروع میشه
مثلا در بالا میخایم دستور 518 رو اجرا کنیم ولی شمارشو نمیدو نیم ولی اولشو می دونیم دستورو اینجوری می زنیم ((علامت تعجب وبدون فاصله در ادامه علامت تعجب قسمتی از دستور مورد نظر ))
تغییر تعداد دستورات قابل ذخیره شدن
برای این کار فلدر bash_profile. که در دایرکتوری خانگیتون هست رو با یک ادیتور باز کنین و مقادیر رو مثل پایین تغییر بدین
کد:
# vi ~/.bash_profile
HISTSIZE=100
HISTFILESIZE=100
ذخیره نکردن بعضی دستورات
برای این که history بعضی دستوراتو ذخیره نکنه فلدر bash_profile. باز کنین و این خطو اضافه کنین
کد:
HISTCONTROL=ignorespace
حالا دستوراتی که اولشون یک space داشته باشه ذخیره نمیشه
مثلا
کد:
# ls -ltr
# pwd
# service httpd stop [Note that there is a space at the beginning of service,
to ignore this command from history]
# history | tail -3
67 ls -ltr
68 pwd
69 history | tail -3
برای پاک کردن history این دستورو بزنین
منبع : 15 Examples To Master Linux Command Line History
چند مثال دیگه تو منبع هست که نگفتم