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 

基础正则 和高级正则

猜你喜欢

转载自www.cnblogs.com/Enzoo/p/9956509.html