FAlinux01-1基础

一通配符

* 零个,所有字符

? 有且仅有单个字符

[0-9] 匹配单个  0-9

[abc] 匹配abc任意个字符

[^abc]  除abc的字符

[[:lower:]] 匹配单个小写字母 upper 大写   digit 数字

二变量      $ 调用变量 引用变量

unset D 取消变量

本地变量 仅在当前终端有用

/etc/profile 定义全局环境变量  登陆时候默认读取该文件  对所有用户有效

用户环境变量  ~/.bash_profile 只对当前用户有效,如有用户定义了,以用户为主,他会覆盖了全局变量

PATH变量   命令存放路录  命令执行只会搜索执行当前目录          /bin/bash 命令解释器

三shell脚本 运维 管理 .sh结尾

#!/bin/bash      声明用bash shell    开头

四 重定向  管道

命令 重定向符号 文件

> 输出重定向  覆盖原文件

>> 追加   

管道符 |

命令1 | 命令2  | ...

命令1结果作为命令2的输入

五文本处理工具

cat    |grep 过滤     查看文件内容

ls -IR 文件 |more  分页显示 

head -n  5 文件  显示文件的前5行  默认显示前10行

tail -n 5 文件   显示文件的后5行    默认后10行

grep 选项 关键字 

grep 关键字 文件 过滤关键字 -w  word  单词  -i  忽略大小写 -iw  -A after后多少行  -B 前多少行 before

|grep /bin/bash$ 过滤 以$什么结尾的 

|grep -v ^';' |grep -v ^# |grep -v '#'   过滤掉以; # 开头的行 ,包含#  

-v 反向选择  ^#过滤以#开头  ^$空行

|awk  '{print $5}’ 以列为过滤单位 第五列 -F: 紧跟分割符号:,分割、

|sed 's/%//'   sed 查找替换    s搜索 % 替换为空

/var/log 日志 追加方式 定位文件

tail -f /var/log/*    实时查看文件后10行

tail -f /var/log/* |grep -iE -A3 -B3 '(warn|err)' 排错

需求:

1. 截取系统中可以登录的用户,将这些用户导出到/root/userlist.txt文件中

cat /etc/passwd |grep /bin/bash$ |awk -F: '{print $1}' >> /root/userlist.txt

2. 过滤/etc/samba/smb.conf中,所有非注释行,非空行,导出至/root/smb.conf文件中

cat /etc/samba/smb.conf |grep -v ^';' |grep -v '#' |grep -v ^$ > /root/smb.conf

cat /etc/samba/smb.conf |grep -vE '(^;|#|^$)' >> /root/smb.conf


猜你喜欢

转载自blog.51cto.com/14234935/2595621