3、!字符串(字符串大于等于一),列:!pw表示执行历史命令中最近一次以pw开头的命令。
[root@localhost ~]# !pw
pwd
/root
二、命令和文件名补全
tab键可以补全一个指令、一个路径或者一个文件名。连续按两次tab键,系统就会把所有的文件名和命令都列出来。
三、别名
alias可以把常用且长的命令,另取一个简单易记的指令。
1、直接执行alias命令可以看到预设的命令
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
2、自定义命令的别名,格式为 alias[命令别名]=[‘具体的别名’]
[root@localhost ~]# alias gjzh='pwd' 定义pwd为gjzh
[root@localhost ~]# gjzh 输出pwd的结果
/root
[root@localhost ~]# unalias gjzh 解除别名
[root@localhost ~]# gjzh 再次输入,无果
-bash: gjzh: command not found
四、通配符
可以使用*来匹配零个或多个字符,用?来匹配一个字符
[root@localhost ~]# ls -d /tmp/4_6/test*
ls: cannot access /tmp/4_6/test*: Not a directory
[root@localhost ~]# ls -d /tmp/4_6/t*
ls: cannot access /tmp/4_6/t*: Not a directory
[root@localhost ~]# ls -d /tmp/4_6/*
ls: cannot access /tmp/4_6/*: Not a directory
[root@localhost ~]# ls -d /tmp/*
/tmp/4_6
/tmp/systemd-private-faa5b212d40e431683cdcfc7b9e1305e-vgauthd.service-hb4DRA
/tmp/systemd-private-faa5b212d40e431683cdcfc7b9e1305e-vmtoolsd.service-Orw4NX
[root@localhost ~]# touch /tmp/11
[root@localhost ~]# ls -d /tmp/??
/tmp/11
五、输入 |输出重定向
输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向常用,常用于将命令的结果输入到文件中,而不是屏幕上。
输入重定向的命令为 <
错误重定向命令为2>
[root@localhost ~]# mkdir /tmp/10
[root@localhost ~]# cd /tmp/10
[root@localhost 10]# ll
total 0
输出重定向命令为 >
[root@localhost 10]# echo '123' > 1.txt
[root@localhost 10]# ll
total 4
-rw-r--r--. 1 root root 4 Apr 15 10:19 1.txt
[root@localhost 10]# cat 1.txt
123
追加重定向命令为 >>
[root@localhost 10]# echo '986' >> 1.txt
[root@localhost 10]# cat 1.txt
123
986
六、管道符
管道符 | ,用于将前一个指令的输出作为后一个指令的输入
[root@localhost ~]# cat /etc/passwd |grep wc -l
21
七、作业控制
当运行进程时,
1、ctrl+Z可以暂停当前进程
2、fg 可以恢复当前进程
3、bg可以使它到后台运行,也可以ctrl+C结束进程
4、jobs可以看到被暂停或后台运行的任务。注意:当使用jobs命令可以看到两个以上命令时,使用fg和bg命令就要加上编号。
创建一个进程
[root@localhost ~]# vi test
gjzh zaishanhelingzhong 随便编写
按Esc键后,使用ctrl+Z暂停当前进程
[1]+ Stopped vi test
查看刚才的进程
[root@localhost ~]# jobs
[1]+ Stopped vi test
按fg恢复当前进程
[root@localhost ~]# fg
vi test
gjzh zaishanhelingzhong
[1]+ Stopped vi test (ctrl+Z)
bg在后台运行
[root@localhost ~]# bg
[1]+ vi test &
[1]+ Stopped vi test
[root@localhost ~]# bg 1 进程中的编号为1的后台运行
[1]+ vi test &
[root@localhost ~]# jobs 1
[1]+ Stopped vi test
[root@localhost ~]# cat test >1.txt
[root@localhost ~]# ll
total 16
-rw-r--r--. 1 root root 83 Apr 15 14:43 1.txt
-rw-------. 1 root root 1316 Oct 30 00:06 anaconda-ks.cfg
-rw-r--r--. 1 root root 106 Apr 14 15:13 student.txt
-rw-r--r--. 1 root root 83 Apr 15 11:19 test
[root@localhost ~]# vmstat 1 > /tmp/1.log
^Z (ctrl+Z暂停)
[2]+ Stopped vmstat 1 > /tmp/1.log
[root@localhost ~]# jobs 查看进程列表
[1]- Stopped vi test
[2]+ Stopped vmstat 1 > /tmp/1.log
[root@localhost ~]# bg 1 指定后台运行
[1]- vi test &
[root@localhost ~]# jobs 查看进程列表
[1]+ Stopped vi test
[2]- Stopped vmstat 1 > /tmp/1.log
5、有些进程是使用jobs不会显示出来,而想要关闭这些进程则早就先知道他们的pid,知道pid的两种方法:
后面的&符是显示出pid的意思
[root@localhost ~]# vmstat 1 > /tmp/1.log &
[3] 9080
[root@localhost ~]# ps aux |grep vmstat
root 9079 0.0 0.0 148316 1344 pts/0 T 14:49 0:00 vmstat 1
root 9080 0.0 0.0 148316 1340 pts/0 S 14:51 0:00 vmstat 1
root 9082 0.0 0.0 112660 968 pts/0 S+ 14:51 0:00 grep --color=auto vmstat
使用kill命令结束进程
[root@localhost ~]# vmstat 1 > /tmp/1.log &
[4] 9101
[root@localhost ~]# kill 9101