20161114学习笔记

变量的取用:只是需要在变量名称前面加上 $ , 或者是以 ${variable} 的方式来取用都可以

env列出目前Shell环境下所有环境变量。

set列出当前shell环境下所有的变量。

让使用者由键盘输入一内容,将该内容变成 atest 变量
[root@linux ~]# read atest
This is a test
[root@linux ~]# echo $atest
This is a test
数组的设定方式:var[index]=content读取的时候建议使用${数组}的方式。

ulimit限制使用者的某些系统资源

 给指令起个别名 alias rm = 'rm -i'          //unalias取消变量别名        

/etc/sysconfig/i18n  //系统语系设定文件

数据流导向:将某个指令执行后应该要出现在屏幕上的数据,给他传输到其它地方,例如档案或者装置(例如打印机之类的)

1. 标准输入(stdin) :代码为 0 ,使用 < 或 << ;
2. 标准输出(stdout):代码为 1 ,使用 > 或 >> ;
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;

find /home -name testing > list_right 2> list_error  //错误信息都会跑到 list_error 这个档案中,至于正确的输出数据则会存到 list_right 这个档案中

grep [-acinv] '搜寻字符串' filename  //grep 可以解析一行文字,取得关键词,若该行有存在关键词, 就会整行列出来

sort [-fbMnrtuk] [file or stdin]

cat /etc/passwd | sort -t ':' -k 3 -n     

/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序

 参数代换xargs:

这个玩意儿就是在产生某个指令的参数的意思! xargs 可以读入 stdin 的数据,并且以空格符或断行字符作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空格符作为分隔,所以,如果有一些档名或者是其它意义的名词内含有空格符的时候, xargs 可能就会误判了

正规表示法就是用在字符串的处理上面的一项『表示式』

然正规表示法是处理字符串的一个标准表示方式,他需要支持的工具程序来辅助,

grep 在数据中查寻一个字符串时,是以 "整行" 为单位来进行数据的撷取的

sed 可以分析 Standard Input (STDIN) 的数据, 然后将数据经过处理后,再将他输出到 standrad out (STDOUT) 的一个工具

sed 后面接的动作,请务必以 '' 两个单引号括住喔!

sed [-nefr] [动作]

sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个『字段』来处理。因此,awk 相当的适合处理小型的数据数据处理呢!awk 通常运作的模式是这样[root@linux ~]# awk '条件类型1{动作1} 条件类型2{动作2} ...' filename

awk的内建变量:

NF每一行 ($0) 拥有的字段总数
NR目前 awk 所处理的是『第几行』数据
FS目前的分隔字符,预设是空格键


管理一部主机每天要进行的任务就有: 查询登录档、追踪流量、监控使用者使用主机状态、主机各项硬设备状态、 主机软件更新查询、应付其它使用者的突然要求了

当我们的系统有异状时,大多会将这些异状记录在系统记录器,也就是我们常提到的『系统登录文件』, 那么我们可以在固定的几分钟内主动的去分析系统登录文件,若察觉有问题,就立刻通报管理员, 或者是立刻加强防火墙的设定规则,如此一来,您的主机可就能够达到『自我保护』的聪明学习功能啦~ 举例来说,我们可以通过 shell script 去分析『当该封包尝试几次还是联机失败之后,就予以抵挡住该 IP』之类的

注意事项:1. 如同前面 bash command 提到的,指令与参数间的多个空白会被忽略掉;
2. 而空白行也将被忽略掉!,并且 [tab] 也是不会被理会的!
3. 如果读取到一个 Enter 符号 ( CR )),就尝试开始执行该行命令;
4. 至于如果一行的内容太多,则可以使用 \[Enter] 来延伸至下一行;
5. 此外,使用最多的 # 可做为批注!任何加在 # 后面的字,将全部被视为批注文字而被忽略!

shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上, 就不够好了因为:Shell scripts 的速度较慢, 且使用的 CPU 资源较多,造成主机资源的分配不良。

shell script 其实就是纯文字文件 (ASCII) ,我们可以编辑这个档案, 然后让这个档案来帮我们一次执行多个指令,或者是利用一些运算与逻辑判断来帮我们达成某些功能。

 请建立一支 script ,当你执行该 script 的时候,该 script 可以显示: 1. 你目前的身份 (用 whoami ) 2. 你目前所在的目录 (用 pwd)

[ling@localhost ~]$ vi li.sh
#!/bin/bash
echo -e "Your name is ==>`whoami`"
echo -e "The current directory is ==>`pwd`"

[ling@localhost ~]$ sh li.sh
Your name is ==>ling
The current directory is ==>/home/ling

useradd/usermod/userdel

posted @ 2016-11-14 10:08  ZERO1224  阅读(157)  评论(0编辑  收藏  举报