alias命令

功能:设置指令的别名

语法:alias [别名]=[指令名称]

参数:若不加任何参数,则列出所有别名的设置

说明:alias仅作用于当前登录的shell。若要永久使用别名,可在/etc/profile或用户家目录下~/.bashrc中设定指令的别名。

如果想给每一位用户都生效的别名,需要在/etc/bashrc最后追加。例如

echo "lftps='lftp 172.168.0.1'" > /etc/bashrc

grep命令

功能:打印符合模式的行

语法:grep [OPTIONS] PATTERN [FILE....]

参数:-v ,--invert-match select non-matching lines

-E,--extended-regexp 匹配扩展的正则表达式

举例:显示/etc/passwd中不以/bin/bash结束的行

grep -v "/bin/bash$" /etc/passwd

找出/etc/passwd文件中,包括二位数字或三位数字的行

grep -E "[0-9]{2,3}" /etc/passwd

显示/proc/meminfo文件中以大写或小写S开头的行

grep -E ^[s,S] /proc/meminfo
sed -r -n '/^[s,S]/p' /proc/meminfo
cat /proc/meminfo | awk '/^[s,S]/ '

sed命令的-r选项表示启动扩展的正则表达式

egrep实现dirname功能

echo /etc/nginx/conf.d/vhosts/a.com.conf | egrep "^/.*/"

/etc/nginx/conf.d/vhosts/a.com.conf

过滤ifconfig结果中的IP地址

ifconfig | awk '/inet[6]?/ {print $2}'

192.168.2.104

fe80::20c:29ff:fe30:eed7

127.0.0.1

::1

vi自定义功能

set autoindent
#自动缩进
set tabstop=4
#一个tab占4个space字符
set shiftwidth=4
#自动缩进4个字符
function AddTitle()
#定义标题
call setline(1,"#!/bin/bash")
call append(1,"#====================================================")
call append(2,"# Author: feng_land@163.com")
call append(3,"# Create Date: " . strftime("%Y-%m-%d"))
call append(4,"# Description: ")
call append(5,"#====================================================")
endf
map <F4> :call AddTitle()<cr>
#在vim屏幕中按F4键可唤出此输出
# 脚本实现自动添加3个用户,并计算3个用户的UID之和
#!/bin/bash
#====================================================
# Author: feng_land@163.com
# Create Date: 2018-12-02
# Description:自动添加三个用户,并计算三个用户uid之和
#====================================================
SUM_UID=0 for ((i=1;i<=3; ));do
USERNAME=user$RANDOM
if id $USERNAME 2> /dev/null;then
continue
else
adduser $USERNAME
USERID=`id -u $USERNAME`
SUM_UID=$[ $SUM_UID + $USERID ]
let i++
fi done
echo $SUM_UID

find命令详解

功能:在目录层级中查找文件

语法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

工作方式:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应的操作

1.根据文件名或正则表达式进行搜索

选项-name的参数指定了文件名所必须匹配的字符串。可以将通配符作为参数使用。.txt能够匹配所有以.txt结束的文件名。选项-print在终端中打印出符合条件的文件名或文件路径,这些匹配条件通过find命令的选项给出。

find /home/slynux -name "
.txt" -print

find命令有一个选项-iname(忽略字符大小写),与-name类似,只不过在匹配名字时会忽略大小写。

例如

find . -name "example" -print

如果想匹配多个条件中的一个,可以采用OR条件:

find . ( -name "
.txt" -o -name ".pdf" ) -print

选项-path的参数可以使用通配符来匹配文件路径。-name总是用给定的文件名进行匹配,-path则将文件路径作为一个整体 进行匹配。例如

find / -path "
/slynux" -print

正则表达式是通配符的高级形式,它可以指定文本模式。

2.否定参数

find也可以使用!否定参数的含义。例如:

find . ! -name "
.txt" -print

可以打印不以.txt结尾的文件名。

3.基于目录尝试搜索

find在使用时会遍历所有的子目录。可以深度选项-maxdepth和mindepth来限制find命令遍历的目录深度。

使用下列命令将find命令向下的最大深度限制为1

find . -maxdepth 1 -name "f*" -print

该命令打印当前目录下所有以f开头的文件。即使有子目录,也不会遍历。与之类似,-maxdepth 2最多向下遍历两级子目录 。

4.根据文件类型搜索

Unix将一切都视为文件。文件具有不同的类型,例如普通文件、目录、字符设备、块设备、符号链接、硬链接、套接字以及FIFO等。

-type可以对文件类型进行过滤,例如只列出目录 :

find . -type d -print

可以按照下表的内容用type参数来匹配所需要的文件类型

文件类型 类型参数
普通文件 f
符号链接 l
目录 d
字符设备 c
块设备 b
套接字 s
FIFO p

5.根据文件时间进行索引

Unix/Linux文件系统中的每一个文件都有三种时间戳,如下所示:

访问时间(-atime):最近一次访问时间。

修改时间(-mtime):最后一次被修改时间。

变化时间(-ctime):文件元数据( 如权限所所属主)最后一次被修改时间。

在Unix中并没有所谓“创建时间”的概念

-atime、-mtime、-ctime可作为find的时间选项。它们可以用整数值指定,单位是天,通常还有-或+,-表示小于,+表示大于。

打印出最近7天内被访问过的所有文件:

find . -tyep f -atime -7 -print

打印出刚好在7天前被访问过的所有文件:

find .-type f -atime 7 -print

打印访问时间超过7天的所有文件

find . -type f -atime +7 -print

-atime、-mtime、-ctime都是基于时间的参数,其计量单位是天。还有一个基于时间的参数是以分钟作为计量单位的。这些参数包括:

-amin(访问时间)

-mmin(修改时间)

-cmin(变化时间)

find另一个特性是-newer参数。使用-newer,可以指定一个用于比较时间戳的参考文件,然后找出比参考文件更新的所有文件。例如查找 比find.txt修改时间更近的所有文件:

find . -type f -newer file.txt -print

6.基于文件的大小搜索

使用-size选项可以根据文件的大小进行搜索

find . -type f -size +2K

大于2K的文件

find . -type f -size 2K

等于2K的文件

find . -type f -size -2K

小于2K的文件

除了K之外还可以用其他文件大小单元。

b--块(512字节)

c--字节

w--字

k--1024字节

M--1024K字节

G--1024M字节

7.删除匹配的文件

-delete可以用来删除find查找到的匹配文件

删除当前目录下所有的.swp文件:

find . -type f -name "*.swp" -delete

8.基于文件权限和所有权的匹配

-perm指明find应该只匹配具有特定权限值的文件

find . -type -perm 644 -print

打印出权限为644的文件

-user USER能够找出由某个特定用户所拥有的文件。参数USER可以是用户名或UID。例如,打印也用户slynux拥有的所有文件:

find . -type f -user slynux -print

9.利用find执行命令或动作

find命令可以借助-exec与其他命令进行组合。示例如下:

find . -type -user root -exec chown slynux {} ;

在这个命令中{}是一个与-exec选项搭配使用的特殊字符串。对于每一个匹配的文件,{}会被替换成相应的文件名。

Linux中实现文本过滤的更多相关文章

  1. 在 Linux 中安装 Oracle JDK 8 以及 JVM 的类加载机制

    参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找 ...

  2. Linux中find常见用法示例

    ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数: pathname: find命 ...

  3. Linux中检索文件

    1 , Use locate command It is a fast way to find the files location, but if a file just created ,it w ...

  4. 如何在Linux中搭建禅道8.4.1(httpd+php+mysql)

    1.安装httpd 命令:yum install httpd 然后一路y即可 2.安装php 命令:yum install php   3.安装php-mysql 命令:yum install php ...

  5. Linux中的用户和用户组

      在Linux中,有三种用户: Root 用户:也称为超级用户,对系统拥有完全的控制权限.超级用户可以不受限制的运行任何命令.Root 用户可以看做是系统管理员. 系统用户:系统用户是Linux运行 ...

  6. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  7. 在linux中设置静态ip地址

    在linux中设置静态ip地址1.在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.开始编辑,填写ip地址.子网掩码.网关.DNS等[root ...

  8. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  9. linux 中部署ant编译的包中缺少问题

    今天遇到在window上部署ant编译的包,能运行正常,但部署在linux中出现跳不进jsp中,出现404问题,后来经过排查在jsp中<%@taglib prefix="c" ...

随机推荐

  1. python_函数式编程

    函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式).在面向过程编程中,我们见到过函数(function):在面向对象编程中,我们见过对象(object).函数和对象的根本目的是以 ...

  2. 浅谈react的初步试用

    现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑. React 起源于 Face ...

  3. 记录Js 文本框验证 与 IE兼容性

    最近的日常就是将测试小姐姐提交的bug进行修改,想来这种事情还是比较好开展的,毕竟此项目已上线一年多,现在只是一些前端的问题需要改正.实际上手的时候并不是这样,原项目是在谷歌上运行,后来由于要新增一个 ...

  4. usb鼠标制作调试记录

    2010-07-26 20:07:00 制作调试过程 1,串口通信硬件设计.焊接了串口通信电路实验.由于我的usb转串口线是不能配max232的.而是要配一个反向器.于是自己焊接了74ls00.并且把 ...

  5. 正则表达式 re.findall 用法

    正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组)语法: findall(pattern, string, flags=0) import ...

  6. Python+OpenCV图像处理(十四)—— 直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  7. jquery简易tab切换

    切换tab 使用eq()函数 eq() 方法将匹配元素集缩减值指定 index 上的一个. //为项目 3 设置红色背景 <ul> <li>list item 1</li ...

  8. php在cli模式下取得命令行中的参数的方法-getopt命令行可传递数组-简单自定义方法取命令行参数

    在cli模式下执行PHP时,自动给脚本文件传递了一个变量$argv,其值即是一个命令中所有值组成的数组(以空格区分),在PHP程序中接收参数有3种方法1.直接使用argv变量数组. 2.使用$_SER ...

  9. Shell if条件语句

    1.if条件语句:设定一个条件如果怎么,然后怎么样. (1)-gt大于.-lt小于.-ge大于等于.-le小于等于.-eq等于.-ne不等于. (2)[]内是包括变量时所使用的. (3)-f文件.-n ...

  10. img 兼容问题 css图片与图片之间总是会存在缝隙

    解决方案: 法宝一:定义图片img标签vertical-align:bottom,vertical-align:middle,vertical-align:top. img{vertical-alig ...