LINUX 学习第5天 一些补充

来源:互联网 发布:数据库闩定 编辑:程序博客网 时间:2024/06/08 07:42

一些零散的知识

什么是shell

shell简称脚本。主要是指通过命令与内核进行交互。

windows : doc 、power shell

linux:bash 、 sh、cshell、zsh、特别特别多

环境变量

vim /etc/profile


exportWANGYAN=hemei#导入变量
source /etc/profile#立即生效

特殊符号


*#通配符
?#任意的一个字符
##代表注释
\#代表转移
|#管道符,把前面的结果给后面的操作当成参数来使用。

文本相关的命令

grep

grep

语法: grep  [-cinvABC]  'word'  filename

-c :打印符合要求的行数

-i :忽略大小写

-n :在输出符合要求的行的同时连同行号一起输出

-v :打印不符合要求的行

-A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行

-B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行

-C :后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行

常用示例


grep -n 'root' /etc/passwd #过滤出带有某个关键词的行并输出行号
grep -nv 'nologin' /etc/passwd #过滤不带有某个关键词的行,并输出行号
grep '[0-9]' /etc/inittab #过滤出所有包含数字的行
grep -v '[0-9]' /etc/inittab #过滤出所有不包含数字的行
grep -v '^#' /etc/inittab #把所有以 ‘#’ 开头的行去除
grep -v '^#' /etc/crontab |grep -v '^$' #去除所有空行和以 ‘#’ 开头的行
grep 'r..o' /etc/passwd #过滤任意一个字符与重复字符
grep 'ooo*' /etc/passwd #‘ooo*’ 表示oo, ooo, oooo ... 或者更多的 ‘o’
grep '.*' /etc/passwd |wc -l #‘.*’ 表示零个或多个任意字符,空行也包含在内。
grep 'o\{2\}' /etc/passwd #指定要过滤字符出现的次数

egrep 是grep的扩展,功能更丰富

sed

sed

sed是可以修改的

删除修改必须要加-i才能进行实际操作

常用命令


sed -n '2'p /etc/passwd#打印某行
sed -n '1,$'p test.txt#把所有的行都打印出来
sed -n '1,3'p test.txt#指定区间打印行
sed -n '/root/'p test.txt#打印包含某个字符的行,grep中使用的特殊字符,如 ^ $ . * 等同样也能在sed中使用
sed -e '1'p -e '/111/'p -n test.txt#-e可以实现多个操作
sed '1'd test.txt#删除某行或者多行
sed '1,2s/ot/to/g' test.txt#替换字符或字符串
#上例中的 ‘s’ 就是替换的命令, ‘g’ 为本行中全局替换,如果不加 ‘g’ 只换该行中出现的第一个。除了可以使用 ‘/’ 作为分隔符外,还可以使用其他特殊字符例如 ‘#’ 或者 ‘@’ 都没有问题。
sed 's/[0-9]//g' test.txt#删除文档中的所有数字和字母
sed 's/\(rot\)\(.*\)\(bash\)/\3\2\1/' test.txt#调换两个字符的位置

awk (一本书)

awk和sed一样是流式编辑器,它也是针对文档中的行来操作的,一行一行的去执行

非常牛逼的文档编辑器


head -n2 /etc/passwd | awk -F ':' '{print $0 $1 $2}' #-F指定分隔符,$0代表整行,$1代表分割后的第一个参数,以此类推

head -n2 /etc/passwd | awk -F ':' '{print $1"-"$2}' #双引号可以进行字符间隔

awk /root/ /etc/passwd #匹配root字符

awk -F ':' '$1 ~/root/' /etc/passwd #匹配格式

awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' /etc/passwd #多次匹配,并打印匹配的行

awk -F ':' '$3==0' /etc/passwd #参数匹配你懂的

awk -F ':' '$7!="/sbin/nologin"' /etc/passwd

awk -F ':' '$3<$4' /etc/passwd

awk -F ':' '$3>"5" && $3<"7"' /etc/passwd

awk -F ':' '$3>"5" || $7=="/bin/bash"' /etc/passwd

head -n3 /etc/passwd | awk -F ':' '{print NF}' #用分隔符分割后有多少段

head -n3 /etc/passwd | awk -F ':' '{print NR}' #用分隔符行号

awk -F ':' 'NR>1 && $1 ~ /ssh/' /etc/passwd #筛选打印

head -n 3 /etc/passwd |awk -F ':' '$1="root"' #修改值

head -n2 /etc/passwd |awk -F ':' '{$7=$3+$4}' #加减运算

head -n2 /etc/passwd |awk -F ':' '{$7=$3+$4; print $0}' #运算

awk -F ':' '{(tot=tot+$3)}; END {print tot}' /etc/passwd #计算某个字段的总和

linux系统里面日常管理的一些知识

w

时间 开机时间 登录用户数 系统负载平均值

1分钟之内 5分钟之内的 15分钟之内的

每个值不要超过1,其实cpu的数量


cat /proc/cpuinfo#查看cpu的信息
grep -c 'processor' /proc/cpuinfo

vmstat

  1. procs 显示进程相关信息r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了;
  2. memory 内存相关信息swpd :表示切换到交换分区中的内存数量 ;free :当前空闲的内存数量;buff :缓冲大小,(即将写入磁盘的);cache :缓存大小,(从磁盘中读取的);
  3. swap 内存交换情况si :由交换区写入到内存的数据量;so :由内存写入到交换区的数据量;
  4. io 磁盘使用情况(input/output)bi :从块设备读取数据的量(读磁盘);bo: 从块设备写入数据的量(写磁盘);
  5. system 显示采集间隔内发生的中断次数.in :表示在某一时间间隔中观测到的每秒设备中断数;cs :表示每秒产生的上下文切换次数;
  6. CPU 显示cpu的使用状态us :显示了用户下所花费 cpu 时间的百分比;sy :显示系统花费cpu时间百分比;id :表示cpu处于空闲状态的时间百分比;wa :表示I/O等待所占用cpu时间百分比;st :表示被偷走的cpu所占百分比(一般都为0,不用关注);


原创粉丝点击