Shell编程——shell特性

来源:互联网 发布:免费个人资料档案软件 编辑:程序博客网 时间:2024/06/07 02:20
Linux会默认记录1000条历史记录,可通过#echo $HISTSIZE 查看,如果讲HISTSIZE更改为2000,那么会默认保存2000条。1000条记录保存在家目录的 .bash_history 中,仅当用户正常退出当前shell时,当前shell中运行的命令才会保存到 .bash_history 文件中,如果删除家目录下的.bash_history,会吧所有用户的历史命令记录删除。
#history 【查看当前历史命令记录,记录会实时跟新】
#history -c 【清除当前用户在当前终端所有执行的命令】
#!! 【执行上一条指令】
#!n 【n表示命令历史中第n条指令】
#!字符串 【字符串大于等于1,!pw表示执行命令历史中最近一次以“pw”开头的命令】
#last 【查看历史登录信息,history查看历史命令信息】

tab 会补全文件名、路径、指令
连续两次 tab ,会把所有命令或者文件名列出来
[root@thinkpad ~]# init 连按两次tab
init initctl

alias 别名
#alias 【列出所有预设alias】
alias cp='cp -i'
alias mv='mv -i'
语法:
alias [别名]=['具体命令']
unalias [别名] 【解除别名】

通配符
* 通配符,匹配一个或者多个字符
?通配符,匹配一个字符

| 管道符
把前面的命令运行的结果丢给后面的命令
#cat /etc/passwd |wc -l 【wc -l 的意思是显示当前文档的行数,需要反向重定向wc -l < 1.txt】
#cat /etc/passwd >> 1.txt

作业控制:
Ctrl+z 暂停
fg 恢复暂停的命令
bg 切换至后台运行
Ctrl+c 终止
示例:
# vi 1.txt
输入内容sadsfdfadfadfafdasdf
按 ESC ,使用Ctrl+z 暂停
#vi 1.txt
[1]+ stopped vi 1.txt 【vi命令已经停止】
使用 fg 命令恢复,回到bi窗口。
再次暂停,
#jobs 【查看被暂停或者后台运行的任务】
[1]+ stopped vi 1.txt
#bg 【暂停的命令去后台运行】
[1]+ vi 1.txt &
[1]+ Stopped vi 1.txt
vi命令不支持后台运行
#vmstat 1 > /tmp/1.log
^Z 【暂停命令】
[2]+ Stopped vmstat 1 > /tmp/1.log
#jobs
[1] - stopped vi 1.txt
[2]+ Stopped vmstat 1 > /tmp/1.log +表示优先级更高
#bg 2
[2]+ vmstat 1 > /tmp/1.log &
多个被暂停的任务会有编号,jobs可以查看所有任务,那么使用fg,bg的时候就需要有编号。bg2 把第二个被暂停的任务丢到后台跑起来,丢入后台需要使用在命令后加一个&符号,中间有个空格。

如何关闭后台的命令
1、fg 编号
Ctrl + C
2、关闭了当前的shell,打开其他shell使用jobs不能显示后台或者暂停的命令。
#ps aux |grep vmstat
root 9433 0.0 0.0 6180....................................... vmstat 1
root 9435 0.0 0.0 103308 ................................. grep vmstat 【红色为pid号码】
#kill 9433 【ps aux 可以找到所有进程,并显示pid号码,使用kill pid可以杀死进程】
#kill -p [pid] -p 强制终止

注:
#vmstat 1 >/tmp/1.log & 【&的作用是放入后台,并且显示pid号码】
#vmstat 1 > /tmp/1.log 2>&1 &    
检测到的状态,正确的信息输入到1.log, 错误的信息也输入到1.log文件内,&1表示前面的文件1.log, 最后的 & 表示放到后台运行。
如果不加最后的 &会一直在前台运行,没办法输入其他命令,所以一定要加上。
0 0
原创粉丝点击