一、命令及命令历史
history:查看命令历史,默认最多保留1000行,配置文件.bash_history
history-c可以清空历史命令
!!:刚执行的上一个命令
!555:历史命令555号再次执行
!vi:最近一次以vi开头的命令再次执行
【插】
1.命令补全tab,tab-tab可以显示以相同字符开头的文件
2.alias永久生效,修改/root/.bashrc
如myssh=’ssh -i /root/.ssh/1.txt’
二、特殊符号
# :1.表示注释 2.表示脱义(替换,查询)
*:匹配任意长字符
?:匹配一个字符
>:重定向,将信息输入到指定文件
>>:追加输入
!:组合有!$(上一次命令的最后一个参数)
$ :1.表示结尾 2.表示引用变量 3.表示后台任务 4.表示登录方式为普通用户 5.*表示第几字段(AWK)
;:表示命令之间的并列
~ :表示用户的家目录
^ :以字符开头
| :管道符,上一次命令的输出作为下一命令的输入
&:并且(见应用)
&&:前一个执行成功才会执行下一个
|| :前一个执行不成功才会执行下一个
【应用】
- 清空文件: > filename
- 察看文件:cat < 1.txt = cat 1.txt
- 发送以文件为内容的邮件:mail -s "title" < 1.txt
- 生成日志并输入正确或错误的信息:sh x.sh > 1.log 2>1.log(或2>&1),1> 和 2> 分别表示正确或错误输出的结果
- 按行显示文件:ls |xargs
- 将an文件重名为an.txt:ls a* | xargs -i mv {} {}.txt \
- 命令逻辑:1&&2(1成功执行2)、1||2(1或2或者12执行成功)、1;2(按照1->2的顺序执行命令)
- 把命令执行放到后台:./startserver.sh &
- 选择字符范围:[1,3] [1] [1-4]
三、作业控制
1、终止任务ctrl+c,暂停任务放置后台ctrl+z,查看后台任务jobs
2、切换任务
fg [id]:将后台任务调至前台执行
bg [id]:将前台任务调至后台
其中+-指程序的优先级,+最高,-其次
四、shell变量与环境变量
1、定义规则
Ø 系统变量通常是大写字母的,如HOSTNAME、PS1,用户变量一般为小写字母的
Ø 变量只能以字母和下划线开头,由数字、字母和下划线命名,格式为 parameter=value,用分号可以一次设置多个变量,如a=1;b=2
Ø 查看系统变量env,查看全部变量set
Ø 变量赋值只会作为临时变量,全局变量需要在变量名前加export,且变量可以在子shell中生效,使变量加入env中,使用unset取消此全局变量
2、引用规则
“”:双引号中表示普通字符串,特殊符号会解析
‘’:去义成为文本字符,强烈推荐使用
``:不去义,引用命令结果
【实例】
Ø a=1
b=`echo $a`
b=’echo $a’
Ø a=1;b=$a”123”à1123
c=$a$b à11123
b1=$a”$a”à11
b2=$a’$a’à1$a
Ø $(*)=’*’
Ø ` ` 反引号引用命令的结果
# rpm -qf `which vi`
vim-minimal-7.2.411-1.8.el6.x86_64
3、环境变量
四个文件:
系统级/etc/profile,/etc/bashrc
用户级~/.bshrc,~/.bash_profile
profile文件在登录后加载,bashrc在运行用户shell环境执行,bashrc优先于profile。
【插】
Ø history长度定义HISTSIZE在/etc/profile里;
Ø $PS1为命令行前的提示用户字段:
结构[\u@\h \W]\$ ,u=user,h=hostname,W表示相对路径,表示绝对路径,\$表示登录的是root还是普通用户;
Ø . ~/.bashrc指source ~/.bashrc,在shell中调用其他程序
五、shell的统计命令
1、cut 截取字段
-d 指定分隔符
-f 截取列
-c 截取字符位
范围表示N N-M -MN- N,M
2、sort 排序
默认排序规则是ASCII码
-t 指定分隔符
-k 排序的列
-n 按照数字顺序排序
-r 反转顺序
-u unique,去除重复的行
[补充]
-d :按照字典顺序排序
-h :按照文件大小顺序排序
-M :按照文件月份顺序排序
举例:cut -d ‘:’-f3 [file]|sort -n
3、wc 统计
-c 输出字节数
-m 输出字符数
-l 输出行数(包括空行)
-L 输出最大行的长度,以字符计算(不包括cat -A的段落标记)
-w 输出单词数,单词按照空格分隔计算
4、tee
作用:读取标准输出写出到屏幕和指定文件
-a:append 追加写入文件
例:cat -A4.txt |tee 1.log
5、tr 替换字符
例:tr ‘a-z’ ‘A-Z’小写换成大写
6、uniq = sort -u
-c:除去重复的行,显示统计次数
7、split切割文件,常用于日志
(1)分隔方式
-b:按大小切分
-l:按行分隔
(2)参数
-a :指定分隔文件以什么开头(不支持后缀)