1. find

find path –option [-print] [-exec command] {} \;

find . -maxdepth 1 -name aa
find . -maxdepth 1 -perm 777
find . -maxdepth 1 -user root
find . -maxdepth 1 -group root
find . -maxdepth 1 -mtime(atime, ctime) -4(+4, 4)( +4 4天以前, -4 4天以内, 4 刚好之前的第4天
find . -nogroup
find . -nouser
find . -newer f1
find . -type b/d/c/p/l/f   #块设备,目录,字符设备, 管道, 符号链接, 普通文件
find . -maxdepth 1 -size +4096(4096, -4096) #+大于4096, -4096小于4096, 4096等于4096
find . -name "*.txt"
find . -name "[A-Z]*"
find . -name "[a-z][a-z][0-9][0-9].txt" -print
find . -type f -exec ls -l {} \;
find . -mtime + 5 -exec rm -rf {} \; 等于 find . -mtime + 5 | xargs rm –rf

grep 查找

sed 编辑

awk 数据分析, 可编程

2. sed

作用于 1 行

sed    文本处理工具,本身是一个管道命令, 主要是以行为单位处理, 可以根据行    常用option:-n slient
        进行 替换, 删除, 新增, 选取 等工作    常用option: -f 直接将sed动作写在一个文档内 -f filename
        sed[-nefri] command 输入文本    常用option:  -i直接修改读取档案内容,而不是输出到屏幕
        例子:                       
        a 新增, c取代, d删除, i插入, p打印, s搭配正则表达式
        sed '2d' abc
        sed '2,$d' abc
        sed '/test/'d abc
        sed '1,2a asdf' abc
        sed '1,2s/old/new/g' abc
        sed 's/被替换内容/要替换内容/g' file (sed ‘1,20s/old/new/g’)

sed本身也是一个管线命令,可以分析 standard input, 还可以将数据进行取代,删除,新增,截取特定行

nl /etc/passwd | sed '2,5d' 删除2-5 行

sed '2a drink tea' 增加新行

nl /etc/passwd | sde '2,5c No 2-5 number' 替换

nl /etc/passwd | sed -n '5,7p' 打印5-7行,安静模式

sed '1,2c zz' test.txt

nl test.txt | sed '1,2c zz'

以上两种方法都可以替换

同样,以下增加和删除还有 s级别替换也都可以类似以上两种方法

sed '1,2d' test.txt

sed '1,2a asdf' test.txt ( 在两行后边会增加 asdf, 显示的时候会另起一行,以方便查看,但实际上是在前两行末尾增加内容,而不是新增加行 ) 实际档案并未修改,只是显示时像修改

sed '1,2s/old/new/g'

sed [-nefr] [动作]

-n : 使用安静(silent)模式,在一般 sed 的用法中,所有来自 stdin的数据一般都会被列出在屏幕上,但是如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。

-e : 直接在指令列模式上进行 sed 的动作编辑

-f : 直接将 sed 的动作卸载一个档案内, -f filename

-r : sed 动作支持延伸正则表达式

动作说明

[n1,n2] function

n1,n2 代表选择行, 有时候不存在, 例如 [10,20]

function 代表动作:

a 新增: 会在新行出现, 目前行的下一行

c 取代 : 取代之前选中的行

d 删除 :

i 插入, 会在新行出现, 目前行的上一行

p 打印, 通常 p 会参与 sed –n

s 取代, 正则表达式 1,20s/old/new/g

sed 可以直接修改档案, 不过这样一般比较危险

sed –i ‘s/\.$/\!/g’ regular

3. awk

相比于 sed 作用于一行, awk 比较倾向于一行中分成数个【字段】.

awk ‘条件类型1{动作1}条件类型2{动作2}…’ filename 比较常用

awk 可以直接处理后续档案, 也可以读取来自指令的 standard output

last –n 5 | awk ‘{print $1 “\t” $3}’

1. 读入第一行, 并将第一行的资料填入 $0, $1, $2… 等变量中

2. 依据”条件类型”的限制, 判断是否进行后面的”动作”

3. 做完所有的动作与条件类型;

4. 若还有后续的行, 重复上边1~3的步骤, 直到所有数据都读完.

内置变量

NF 每一行的字段总数

NR 目前awk 所处理的是第几行

FS 目前的分隔符, 默认是空格键

last –n 5 | awk ‘{print $1 “\t lines:” NR “\t columes:” NF}’

awk 逻辑运算符

> >= < <= == !=

cat /etc/passwd | awk ‘BEGIN{FS=”:”}$3 < 10{print $1 “\t” $3}’

cat pay.txt | awk ‘NR ==1 {printf “%10s 10%s %10s %10s\n”, $1,$2,$3,$4, “Total”}

NR >= 2 {total = $2 + $3 + $5 printf”%10s %10d %10d %10.2f\n”, $1, $2, $3, $5, total}’

cat pay.txt | awk ‘{if(NR==1) printf“%10s 10%s %10s %10s\n”, $1,$2,$3,$4, “Total”} NR>=2{printf ”%10s %10d %10d %10.2f\n”, $1, $2, $3, $5, total}’

awk    使用方法    awk '{pattern + action}' {filenames}           
    调用方式 3 种    1. 命令行 awk [-F field-separator] 'command' imput-files            
                     2. awk 脚本 这种可以把所有的awk命令放到一个文件中, 并把文件头改为 #!/bin/awk            
                     3. 将所有的 awk 命令插入到一个单独文件, 然后调用. Awk -f awk-script-file input-files            
                     last -n 5 | awk '{print $1}'           
    流程             读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。

默认域分隔符是"空白键" 或 "[tab]键".            
                     cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'            
                     cat /etc/passwd |awk -F ':' ' BEGIN{print "name,shell"} {print $1","$7} END {print "blue, /bin/nosh"}'           
    流程             先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,

$0则表示所有域,$1表示第一个域,$n表示第n个域,            
                     随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。            
                     awk -F ':' '/root/' /etc/passwd  搜索包含 root 的行, 支持正则表达式           
    awk 编程         用; 分隔执行语句    awk '{count++; print &0;} END{print "user count is", count}' /etc/passwd           
    编程借鉴了c语言的, if语句, for循环 等等

Linux 比较重要且难掌握命令 集合的更多相关文章

  1. Linux系统-解压缩命令集合

    Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...

  2. linux常见命令集合(下)

    1. tar zcvf backup-$(date "+%Y-%m-%d").tar.gz demo01dir 常用命令集合 echo helloworld date “+%y-% ...

  3. linux(Ubuntu/Centos) iproute 路由IP地址等命令集合,查看端口链接

    原 linux(Ubuntu/Centos) iproute 路由IP地址等命令集合,查看端口链接 2017年03月20日 16:55:57 风来了- 阅读数:2291 标签: centoslinux ...

  4. 【Linux】CentOS7 常用命令集合

    CentOS7 常用命令集合 常用命令 文件与目录 操作命令解析 cd /home 进入 ‘/home’ 目录cd .. 返回上一级目录cd ../.. 返回上两级目录cd - 返回上次所在目录cp ...

  5. Linux就该这么学--命令集合4(文件目录管理命令)

    1.touch命令用于创建空白文件与修改文件时间:(touch [选项] [文件]) 对于在Linux中的文件有三种时间: 更改时间(mtime):内容修改时间(不包括权限的) 更改权限(ctime) ...

  6. linux绝大部分命令集合(自己需要的时候方便查找)

    原网页:https://www.linuxidc.com/Linux/2018-04/151726.htm 系统信息显示命令arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构 ...

  7. Linux必学的60个命令

    inux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想 ...

  8. 【转】linux 必须掌握的60个命令

    Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要 ...

  9. 总结:liunx常见命令集合

    没有系统学习过liunx,把工作中遇到的liunx命令集合信息如下: 1.nc传送文件 之前总是用rsync, 今天遇到了一个从阿里云服务器传送文件到我们公司的内网服务器,这就不能传了,又想用一致的文 ...

随机推荐

  1. pytimechart使用

    参考网站:http://pythonhosted.org/pytimechart/userguide.html 安装: sudo apt-get install python-chaco python ...

  2. Synergy – 教你在局域网中用一套键盘/鼠标控制多台电脑

    想必很多人都拥有多台电脑,譬如台式机+笔记本,很多时候我们都会同时打开它们工作.可是你有没发现,如果桌子上摆放着多台电脑多套键盘鼠标,不停来回切换使用是否很累呢?如果说现在可以只用一套键鼠,就能同时控 ...

  3. x-forwarded-for之深度挖掘

    如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的地方,本文要说的就是在通过CDN 后到达nginx做负载均衡时请求头中的X-Forwarded-For项到底发生了什 ...

  4. linux基础-第十九单元_nfs服务

    #服务端部署 介绍: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的 ...

  5. mipmap of unity

    遇到个奇怪的事情 mipmap generation 0级不压缩 1级 4个合1个 在unity里面 明显开了 mipmapgenerate之后 level0变糊了 ================ ...

  6. Python下opencv使用笔记(二)(简单几何图像绘制)

    简单几何图像一般包含点.直线.矩阵.圆.椭圆.多边形等等.首先认识一下opencv对像素点的定义. 图像的一个像素点有1或者3个值.对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值.他们表现出 ...

  7. POJ 3077-Rounders(水题乱搞)

    Rounders Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7697   Accepted: 4984 Descript ...

  8. jQuery--百度百科

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Oper ...

  9. VC 使用json cpp 静态库 问题解决

    release使用 json 静态库 提示 fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_writer ...

  10. 利用pandas进行数据分析之一:pandas数据结构Series

    Series是一种类似于一维数组的对象,又一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即是索引)组成. 可以将Series看成是一个定长的有序字段,因为它是索引值到数据值的一个映射. ...