【shell脚本攻略学习】

来源:互联网 发布:人工神经网络5年数据 编辑:程序博客网 时间:2024/05/21 04:37
1.普通数组
array_var=(1 2 3 4 5 6)定义一个数组
echo ${array_var[*]}
echo ${array_var[@]}
echo ${array_var[index]}
echo ${#array_var[*]}
2.关联数组
先声明
declare -A ass_array
利用内嵌“索引-值”添加元素,ass_array=([apple]='100 dollars' [orange]='150 dollars')
利用独立的“索引-值”赋值,
3.shell是命令解释器。将用户发出的命令变成二进制语言传给Linux内核,并将Linux的处理结果(二进制)翻译成用户可见可读的显示。
4./etc/shells 中可查看可支持的shell语言。
5.父shell可以调用子shell,可以调用多层的子shell。
6.echo -e 用来调整输出格式,,可以识别\t,\n,\b,\x
7.alias查看系统当中已经生效的命令
alias rm='rm -i';以后再敲rm相当于敲rm -i这个命令
8..bashrc文件中可以添加命令的别名,并且可以永久生效,但要重启后才会永久生效。此时可用source .bashrc命令不重启调用bashrc文件,使自己的设置生效。
9.unalias rm可以删除rm这个别名
10.命令生效的优先顺序:别名的优先级高于bash的内部命令,也高于path设置的环境变量中找到的外部命令。
11.快捷键:
ctrl c 强制终止命令
ctrl l 清屏
ctrl a跳到命令行首
ctrl e调到命令行尾
ctrl u删除整行命令
ctrl z把命令放入后台运行
ctrl r搜索历史命令
12.多命令顺序执行:
13.管道符:将前一命令的输出作为下一命令的操作对象
netstat -an | grep ESTABLISHED | wc -l
14.通配符&特殊符号
通配符:
*匹配任意多个字符
?匹配任意1个字符
[]匹配满足中括号条件的一个字符
特殊符号:
''里面的$,\等都不是特殊符号 如aa=123;echo '$aa',的输出是$aa
“”里面的$,\都是特殊符号,如aa=123;echo "$aa"的输出是123
$ 取值符号,\转义符号,··反引号和$()是同样的效果,如aa=`ls`是将ls的结果赋值给aa
15.bash变量
默认存的都是字符串变量。
变量的分类:
用户自定义变量,最自由的变量,是自己定义的。变量名=变量值,变量名和变量值和等于号中间都没有空格,调用变量,在变量前加$
环境变量,也可以自定义,但是对系统生效的变量名和变量的作用是固定的。
预定义变量,不能自己定义,只能改变变量的值,变量名和变量的作用都是固定不可变的。
16.语系变量
locale命令:查看当前的全部语系变量。
LANG:定义主语系的变量
LC_ALL:定义当前语系的变量
locale -a | more查看linux支持的所有语系
LANG里保存的是当前系统的语系,,/etc/sysconfig/i18n里保存的是系统下次启动时的语系环境。
17.位置参数变量:
$n: $0表示命令本事,$1-$9表示命令后面的第1-9个参数
$*,$@ 返回的是具体每个参数的值,,$#返回的参数的个数(一共有几个参数)
$* 把命令后面的全部参数看成一个整体,$@把命令后面的全部参数区分看待
18.预定义变量
$?:最后一次执行命令的返回状态,正确执行是0,非正常执行返回值是非0
$$:返回当前进程的PID
$!:返回后台进程的PID
19.接收键盘输入:
read 【选项】【变量名】
-p:提示输入信息
-t:表示等待时间
-s:表示输入隐藏信息
-n:字符数,read命令只接受指定的字符数就会执行
20.declare [-/+] 【选项】【变量】给变量声明类型,-号是声明变量,+号是取消声明变量
declare -i cc=$aa+$bb
declare -p:显示-p后面声明的变量的属性。
declare -a:声明数组
declare -x:声明环境变量
declare -rx:声明变量是只读的环境变量
21.数组的作用是在一个变量中保存多个值,多个值用下标来区分。
调用数组时要用${movie[下标]},${movie[*]}列出全部数组的内容。
22.数学运算:
使用sum=$(expr $变量1 + $变量2)来求和
ee=$(expr $aa + $bb); echo $ee
使用sum=$(($aa+$bb))
23.运算符的优先级
24.环境变量配置文件:
source命令:source 配置文件或.配置文件
修改环境变量文件时,要注销重新登录才能起作用。用source命令可以不用注销就可以直接生效。
环境变量文件主要有:
/etc/bashrc /etc/bashrc_profile ./bashrc ./bashrc_profile
在etc目录下对所有用户生效,在home家目录下只对当前目录生效。
25.环境登录时加载文件流程:
26.其他环境配置文件
shell本地终端登录消息:/etc/issue
27.正则表达式:
用于字符串的分割,查找,替换,匹配
28.通配符:*代表任意多个字符,?代表任意1个字符,[]代表任意满足中括号条件的1个字符
通配符主要的作用是用来匹配文件名称的。正则是用来匹配文件当中的数据。
通配符是完全匹配,完全一模一样。正则是模糊匹配。
29.正则表达式是用来匹配文件中的字符串。正则是包含匹配。
* 匹配前一个字符0次或多次 “a*”匹配a0次或多次,,“aa*”最少可匹配有一个a的字符串
. 匹配除了换行符外任意一个字符,..是匹配除了换行符外的任意二个字符。
^M匹配以M开头的所有字符串,,N$匹配以N结尾的所有字符串。^$用来匹配空白行
[]用来匹配中括号中指定的任意一个字符,,只匹配一个字符。[0-9]匹配有数字的字符串,^[0-9]匹配以数字开头的字符串
[^]匹配除了中括号里的字符以外的任意一个字符,^[^a-z]匹配的是不以小写字母开头的行,^[^a-zA-Z]匹配的是不以字母开头的行
\ 转义字符,,“\.$”匹配以.结尾的行
\{n\} 表示匹配重复它前面的字母n次的行,,如果只匹配n次就需要加定界符,使两个字母之间恰好有n个字符。
\{n,\}表示匹配至少重复它前面的字母n次,,
\{n,m\}表示匹配重复它前面的字母大于等于n次小于等于m次的行
30.字符截取命令:
grep 是行提取命令。cut是列提取命令。
cut -d ":" -f 1,3 /etc/passwd;以冒号将/etc/passwd文件,截取出第一列和第三列
cut -f 第几列 -d 以什么分隔符分开;默认是以制表符分隔开
31.printf命令输出
printf '输出类型 输出格式' 输出内容


0 0
原创粉丝点击