热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux的特殊符号与正则表达式

第1章linux的特殊符号1.1通配符*{}1.1.1含义方便查找文件通配符是用来找文件名字的。1.1.2*通过find命令找以.sh结尾的文件,使用*替代文件名字。

第1章 linux的特殊符号

1.1 通配符 * {}

1.1.1 含义

方便查找文件 通配符是用来找文件名字的。

1.1.2  *

通过find 命令找以 .sh 结尾的文件,使用*替代文件名字。

find /oldboy -type f -name "*.sh" -mtime +7 -size +100k -size -10M

查找文件名中,包含有oldboy字节的文件。

[root@znix 20170118]# find -type f -name "*oldboy*"

[root@znix 20170118]# ls -l *oldboy*

1.1.3  {}

{} 用来生成序列

[root@znix 20170118]# echo oldboy{1..3}.txt

oldboy1.txt oldboy2.txt oldboy3.txt

[root@znix 20170118]# echo {a,c,d,f}

a c d f

echo {a..z} {A..Z} 中间需要有空格,表示两个无关的序列

[root@znix 20170118]# echo {a..z} {A..Z}

a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

生成按规则序列{开始..结束..间隔}

[root@znix ~]# echo {1..10..3}

1 4 7 10

备份一个文件的时候使用

[root@znix ~]# cp oldboy.txt{,.bak}

[root@znix ~]# ll oldboy*

-rw-r--r-- 3 root root 241 Aug 30 11:40 oldboy.txt

-rw-r--r-- 1 root root 241 Aug 31 09:38 oldboy.txt.bak

1.2 特殊符号

1.2.1 特殊符号

标准输出重定向,先把内容清空,再向文件里放其他东西

>> 标准追加重定向 向文件内加内容

标准输入    xargs

<< 追加输入    cat>/oldboy.txt<追加多行

当前目录/linux下面的隐藏文件

.. 当前用户的上一级目录

当前用户的家目录

 路径的分割符号

临时取消别名

管道

1&#xff09; vim中强制

2&#xff09; 取反 find awk

3&#xff09; 表示使用你用过的命令 使用历史命令

       &#xff01;可以看历史命令   history 命令

       !ls   &#61;&#61;&#61;&#61;&#61; history |grep ls

[root&#64;znix ~]# history

#   注释

$   取出变量里的内容

&& 并且 前一个命令运行成功&#xff0c;然后再运行后面的命令

    ifdown eth0 && ifup eth0

;   分开多条命令 在同一行里面放入多个命令。

    ls; pwd; hostname

1.2.2 单引号、双引号、不加引号

&#39; &#39;

吃啥吐啥

[root&#64;znix ~]# echo &#39;$LANG $(pwd) &#96;hostname&#96; {1..3}&#39;

$LANG $(pwd) &#96;hostname&#96; {1..3}

" "

把双引号里面的特殊符号进行解析

[root&#64;znix ~]# echo  "$LANG $(pwd) &#96;hostname&#96; {1..3}"

en_US.UTF-8 /root znix {1..3}

不加引号

[root&#64;znix ~]# echo  $LANG $(pwd) &#96;hostname&#96; {1..3}

en_US.UTF-8 /root znix 1 2 3

&#96;  &#96;

反引号 先运行&#xff0c;把结果留下 $()作用相同

[root&#64;znix ~]# du -sh    &#96;find -type d&#96;

764K    .

第2章 正则表达式

2.1 什么是正则

特殊符号表示文字 文本

^      开头

[0-9]  数字

2.2 作用

提高效率 省事

2.3 分类

2.3.1 基础正则表达式

^  $   ^$  .  *  .*  [0-9]  [^0-9]

2.3.2 扩展正则表达式

|  ()  &#43;   {}  ?  

2.4 正则表达式与通配符的区别

1、通配符是用来找文件的。

2、正则表达式用来的文件中找内容、文本。

2.5 基础正则表达式

2.5.1 环境准备

cat -A 在每一行最后加上一个$符号。

[root&#64;znix ~]# oldboy.txt

I am oldboy teacher!$

I teach linux.$

$

I like badminton ball ,billiard ball and chinese chess!$

my blog is http://oldboy.blog.51cto.com$

$

our site is http://www.etiantian.org$

$

my qq num is 49000448.$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY!$

2.5.2 找以m开头的行 ^

^m 表示以m开头&#xff0c;^表示以什么开头。

[root&#64;znix ~]# grep "^m" oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq num is 49000448.

my god ,i am not oldbey,but OLDBOY!

2.5.3 m结尾的行结尾的行 $

m$ 表示以m结尾。

[root&#64;znix ~]# grep "m$" oldboy.txt

my blog is http://oldboy.blog.51cto.com

2.5.4 显示空行&#xff0c;并且加上行号

-n 显示行号

^$ 表示开头和结尾中间没有东西&#xff0c;即空行

[root&#64;znix ~]# grep -n "^$" oldboy.txt

3:

6:

8:

10:

2.5.5 表示任意一个字符 . &#xff08;点&#xff09;

点表示任意一个字符&#xff0c;oldb.y 表示点的位置是什么都可以

[root&#64;znix ~]# grep "oldb.y" oldboy.txt

I am oldboy teacher!

my blog is http://oldboy.blog.51cto.com

my god ,i am not oldbey,but OLDBOY!

grep -o 显示grep/egrep执行的过程&#xff08;每一次找到的东西&#xff09;。

[root&#64;znix ~]# grep -o "." oldboy.txt

[root&#64;znix ~]# grep -o "oldb.y" oldboy.txt

oldboy

oldboy

oldbey

2.5.6 找到以点结尾的行

\ 转意符号&#xff0c;把特殊含义的的去掉特殊含义。

\.$ 表示以点结尾。

[root&#64;znix ~]# grep &#39;\.$&#39; oldboy.txt

I teach linux.

my qq num is 49000448.

not 4900000448.

2.5.7 * 前一个文本连续出现了0次或1次以上

连续出现了0次就是没出现

-o 显示grep找到的过程

[root&#64;znix ~]# grep "0*" oldboy.txt

I am oldboy teacher!

I teach linux.

 

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

 

our site is http://www.etiantian.org

 

my qq num is 49000448.

 

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root&#64;znix ~]# grep -o "0*" oldboy.txt

000

00000

2.5.8 正则表达式的贪婪性

有多少要多少&#xff0c;尽可能多的匹配。

2.5.9 .* 表示所有

显示所有的内容&#xff0c;一次找到。

[root&#64;znix ~]# grep -o ".*" oldboy.txt  

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

表示所有.*  连续出现的时候会表现贪婪性

[root&#64;znix ~]# grep "^.*m" oldboy.txt

I am oldboy teacher!

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

my qq num is 49000448.

my god ,i am not oldbey,but OLDBOY!

2.5.10 [abc] 中括号表示一个整体

相当于一个符号&#xff0c;表示a或者b或者c

[root&#64;znix ~]# grep  "[0-9]" oldboy.txt

[root&#64;znix ~]# grep  "[A-Z]" oldboy.txt

[root&#64;znix ~]# grep  "[a-z]" oldboy.txt

       找到文本中的大写和小写字母。

[root&#64;znix ~]# grep  "[a-zA-Z]" oldboy.txt

2.5.11 找以 mno开头的 并且以  mg 结尾的行

.*       表是什么都可以

^[mno] m no开头的

[mg]$ m  g 结尾

[root&#64;znix ~]# grep "^[mno].*[mg]$" oldboy.txt

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

2.5.12 [^abc]  排除a或排除b或排除c

[^abc]   表示找排除a或排除b或排除c之外的其他字符

[root&#64;znix ~]# grep "[^abc]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

2.5.13 grep -v 排除与[^abc]

grep -v  排除行

[^abc]   字符或文字

第3章 昨日回顾&#xff08;删除文件、开机自启动&#xff09;

3.1 linux如何让一个服务/脚本开机自启动?

1)chkconfig

2)/etc/rc.local

3.1.1 chkconfig管理 需要什么条件

1)必须放在/etc/init.d/

2)这个脚本要有执行权限

3)加上chkconfig要求的内容

# chkconfig: 2345 99 99

4)chkconfig --add 把脚本添加到开机自启动

5)检查

 

3.2 /etc/rc.local

[root&#64;znix ~]# ls -l /etc/rc3.d/ |grep rc.local

lrwxrwxrwx. 1 root root 11 Aug 10 18:36 S99local -> ../rc.local

 

3.3 磁盘空间不足 no space left on device

1)block满了 500G 3*200G视频

  df -h

  du -sh /*

  du -sh /* |grep G

 

2)block满了 文件没有被彻底删除 硬链接数为0,进程调用数不为零

检查:lsof|grep delete

 

3.4 文件的删除原理(条件)

1、硬链接数为0

2、进程调用数为0

日志

/var/log/messages

/var/log/secure

rsyslog

3inode满了

创建一个文件要占用一个inode和至少一个block

大量的小文件



推荐阅读
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文深入解析了Linux系统中常用的文件和目录操作命令,包括但不限于`ls`、`cd`等。通过详细讲解每个命令的功能、语法及应用场景,帮助读者掌握这些基本工具的使用方法,提升在Linux环境下的操作效率。此外,文章还介绍了如何结合选项和参数来实现更复杂的文件管理任务,为初学者提供了丰富的实践示例和技巧。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文深入探讨了 Linux 系统中字符集配置的问题及其解决方案,重点介绍了 `locale` 设置的方法和常见错误的修复技巧。通过详细分析 `locale` 变量的配置,如 `LANG`、`LC_COLLATE`、`LC_CTYPE` 和 `LC_MESSAGES`,帮助用户解决字符显示不正常、命令执行出错等问题,提升系统稳定性和用户体验。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
author-avatar
懿子vae_742
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有