zoukankan      html  css  js  c++  java
  • Day004_Linux基础命令之特殊符号与正则表达式通配符

    特殊符号:

    . 点 cd . 表示当前目录

    ' '' 单引号,所见即所得 原封不动输出

    " ""双引号,里面的特殊符号会被解析运行  

    `` ====$( ) 先运行() 里的命令,把结果留下

    > 重定向符号  先清空文件内容, 再追加文件最后一行

    >> 标准输出追加重定向, 把内容追加到文件最后结尾.

    2> 错误重定向,  只有错误的信息才会通过漏斗进入文件中(先清空,再追加)

    2>> 错误追加重定向(只追加)

    ~  当前用户家目录 

    root  /root

    old   /home/old

    !  使用查找并运行历史命令 

    !awk   找到最近的一条包含awk的历史命令    

    history |grep awk (相当于)  # history 显示历史命令

    # 注释 

      root用户的命令提示符

    $  awk $ 表示取某一列内容

      普通用户命令提示符

    *  所有 任何东西

      撬棍, 反斜线,转义字符

    &&  前一个命令执行成功再执行后面一个命令  ifdown eth0 && ifup eth0  (重启)

    ||  前一个命令执行失败再执行后面的命令  (shell编程会用到)

    eco && echo ok

    eco || echo ok   用的较少

     通配符:

    找出以.log 结尾的文件   find /var/log -type f -name "*.log"

    *  所有, 任意  "*.log"   "*.txt"

    找出文件名包含oldboy的文件

    find /oldboy/ -type f -name "*oldboy"  找出以oldboy结尾的文件(这条命令意思)

    find /oldboy/ -type f -name "*oldboy*"  这条是文件名包含oldboy的文件

    {  }  生成序列

    echo {1..6} > /oldboy/test.txt

    [root@luffy001 oldboy]# echo {1..6}
    1 2 3 4 5 6

    cp oldboy.txt{,.bak}  会同时生成一个.txt文件的备份 .txt.bak 的文件

    -rw-r--r--. 1 root root 27 Nov 13 14:51 oldboy.txt
    -rw-r--r-- 1 root root 27 Nov 13 15:04 oldboy.txt.bak   逗号隔开,之前的就是.txt文件, 之后的就是.txt.bak 文件

    正则表达式:

    引子:  一个文本文件  如何判断哪一行的内容是身份证号码: 18位, 包含数字字母 ( 判断) id.txt

    @1 正则表达式是按照行进行处理的

    @2禁止使用中文字符.

    # 给grep和egrep 配置别名

    alias grep="grep --color=auto"

    alias egrep="egrep --color=auto"

    写入到/etc/profile 中 source /etc/profile 使其生效即可.

    cat >>/etc/profile<<EOF
    alias grep='grep --color=auto'
    alias egrep='egrep --color=auto'
    EOF

    source /etc/profile

    grep 和awk 过滤空行的命令;

    grep '^$' test.txt   (grep命令过滤空行)

    grep -v '^$' test  (grep -v 参数取反)      grep -vn '^$' test.txt  -nv 取反并显示行号

    awk '/^$/' test.txt  (awk 过滤空行)

    awk '!/^$/' test.txt  (awk  中用! 取反) 取出除了空行之外的行的内容.

    sed命令排除空行

    sed '/^$/d' test.txt 排除空行, /^$ 表示空行的内容.

    使用grep egrep 过滤出文件的前两行内容, test.txt (head -n2)

    egrep 'oldboy'

    Linux下文件系统的软链接,硬链接

    创建软链接, ln -s 别名 文件名 ln -s oldboy /old/oldboy.txt

    创建硬链接, ln 原文件 新命名文件

    在test目录下再创建一个目录 mkdir -p /lodboy/test/001   硬链接数变成了3个

    找出当前目录下所有文件,将文件中'a' 替换成'b' 

    find /company -type f -name '*.txt"|xargs  sed -i 's#a#b#g'  (找出这个目录下所有txt文件,并将其中的a字符替换成b字符)

    方法二:

    sed -i 's#a#b#g'  $(find /company -type f -name '*.txt")   意思就是将后面执行的结果给前面命令处理

    sed -i 's#a#b#g'  `find /company -type f -name '*.txt"`  反引号效果一样的

    方法三:

    find /company -type f -name '*.txt" -exec ls  -l {}  ;

    例题: 请问一个命令加什么参数可以实现下面的命令的内容在同一行输出.

    echo "wooyun";echo "wooyun"

    答: echo "wooyun"  `echo "wooyun"`  或者 echo "wooyun" $(echo "oldboy")  均能实现以上效果 , 如果输出为单独两行 就用&& 连接两条命令.

    请给出如下格式的date命令

    例::11-02-26

    再给出实现按周输出,比如

    `` $( )   先运行里面的命令,再将结果展示出来.

    date命令 

     date +%F 显示的是年月日  date +%Y-%m-%d

    [root@luffy001 oldboy]# date +%F
    2018-11-14
    [root@luffy001 oldboy]# date +%Y-%m-%d
    2018-11-14

    date +%w 显示的是周几.

     显示年-月-日-周几

    date +%F-%w

    date +%T 时分秒 的时间  ===> date+%H:%M:%S 

    [root@luffy001 oldboy]# date +%T
    15:57:20

    显示3天前的日期

    date -d "-3day" +%F 

    date -s 设置时间

    date -s "+1hour"  往后设置时间

    ntp服务器,给网上的ntp服务器对时间

    ntpdate pool.ntp.org

    pool.ntp.org

    ntp1.aliyun.com 

    基础正则 和高级正则

    博文阅读密码felix
  • 相关阅读:
    STL常用容器☞String容器
    初识STL
    函数模板
    多态
    运算符重载
    友元
    对象的初始化和清理
    C++内存分区模型
    传值和传地址
    const的使用
  • 原文地址:https://www.cnblogs.com/Enzoo/p/9956509.html
Copyright © 2011-2022 走看看