shell基础

一、命令及命令历史

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 :指定分隔文件以什么开头(不支持后缀)

 

 

 

 

 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章