基本命令中部

基本命令

移动文件

将/data目录移动到/root下
涉及命令mv

[root@nfsnobody ~]# mv /data/ /root/     移动
[root@nfsnobody ~]# ls /root/            查看
anaconda-ks.cfg  data  install.log  install.log.syslog
[root@nfsnobody ~]#

备份文件

备份nfsnobody.txt
涉及命令cp

[root@nfsnobody ~]# cp /root/data/nfsnobody.txt /root/data/nfsnobody.txt.bak 
##########             备份cp  将需要备份的文件加上  .bak

[root@nfsnobody ~]# ls -l /root/data/                                     检查
total 0
-rw-r--r--. 1 root root 0 Jul 10 19:18 nfsnobody.txt
-rw-r--r--. 1 root root 0 Jul 10 19:19 nfsnobody.txt.bak
[root@nfsnobody ~]#

改名

将nfsnobody.txt 修改成oldgirl.txt
涉及命令mv

[root@nfsnobody ~]# mv /root/data/nfsnobody.txt /root/data/oldgirl.txt    改名
[root@nfsnobody ~]# ls -l /root/data/                                  查看
total 0
-rw-r--r--. 1 root root 0 Jul 10 19:19 nfsnobody.txt.bak
-rw-r--r--. 1 root root 0 Jul 10 19:18 oldgirl.txt
[root@nfsnobody ~]#

删除文件

删除oldgirl.txt
涉及命令 rm   参数 -f

[root@nfsnobody ~]# rm /root/data/oldgirl.txt                删除文件
rm: remove regular empty file `/root/data/oldgirl.txt'? y       确认删除 y
[root@nfsnobody ~]#

强制删除不提示

[root@nfsnobody ~]# rm -f /root/data/oldgirl.txt          强制删除不提示
[root@nfsnobody ~]# ls -l /root/data/                     查看
total 0
-rw-r--r--. 1 root root 0 Jul 10 19:19 nfsnobody.txt.bak
[root@nfsnobody ~]# 
####-f  强制删除不提示

删除目录

删除/tmp下的/data
涉及命令 rm 
-rf  强制删除不提示 (工作中需慎用)
-r 递归 删除目录及以下文件
-f 强制删除不提示

[root@nfsnobody ~]# rm /tmp/data/          
rm: cannot remove `/tmp/data/': Is a directory      这是一个目录  不能直接删除目录
[root@nfsnobody ~]# rm -r /tmp/data/             -r 递归 删除目录及以下文件
rm: remove directory `/tmp/data'? y 
[root@nfsnobody ~]# 

[root@nfsnobody ~]# rm -rf /tmp/data/            -rf  强制删除不提示 (慎用!)
[root@nfsnobody ~]#

mkdir命令补充

创建多层目录(批量创建目录)
-p 创建多层目录
-v 显示创建过程

[root@nfsnobody ~]# mkdir -p /nfsnobody/test
[root@nfsnobody ~]# 
[root@nfsnobody ~]#    #-p     创建多层目录

创建多层目录并显示内容

[root@nfsnobody ~]# mkdir -pv /1/2/3
mkdir: created directory `/1'
mkdir: created directory `/1/2'
mkdir: created directory `/1/2/3'
[root@nfsnobody ~]#     #  -v 显示创建过程

cd命令补充

cd..

cd.. 进入到上一级目录

[root@nfsnobody ~]# cd /root/data/
[root@nfsnobody data]# cd ..
[root@nfsnobody ~]# ##进入到上一级目录

cd. 及cd.可能会使用的环境

cd. 进入到当前目录

[root@nfsnobody data]# cd .
[root@nfsnobody data]# ##进入到当前目录
[root@nfsnobody data]# ##用到cd . 的时候
[root@nfsnobody data]# ##移动xxxx文件 到当前目录
[root@nfsnobody data]# cp /root/data/nfsnobody.txt .     
######可能使用到的地方   如当前在data目录下  要把一个文件复制到data 可以使用 . 代替要复制的路径

管道的概念

管道的概念

简单来说管道就是将前面命令处理的结果传递给后面的命令

管道与|xargs(管道xargs)的区别

find|xargs ls -ld##把前一个命令的结果,通过管道传递给后面的命令(ls -ld),传递的是文件名
find| 命令    ##把前一个命令的结果,通过管道传递给后面的命令,传递的是普通的文本,文字,字符串

find命令

创建环境

touch/root/nfsnobody.txt  /root/alex.txt/root/lidao.txt

查找文件

涉及命令 find

在/root目录查找文件nfsnobody.txt

find查找命令

[root@nfsnobody ~]# #find 在哪里找 -在哪找 f 找什么名字的 "nfsnobody.txt" 
[root@nfsnobody ~]# find /root/ -type f -name "nfsnobody.txt"
/root/nfsnobody.txt
[root@nfsnobody ~]# 

-type  找什么类型的  f  file      (文件)
                     d  directory(目录)

在/root目录查找以 .txt 结尾的文件

  • 所有字符(文字)  任何文字
[root@nfsnobody ~]# find /root/ -type f -name "*.txt"
/root/alex.txt
/root/lidao.txt
/root/nfsnobody.txt
[root@nfsnobody ~]# ###  *所有字符  任意字符
[root@nfsnobody ~]#

实现查找并删除

基于find命令下实现

方法一

为防止误删除 不直接用rm删除  先用 ls -l查看一下内容  确认一下  确认后再删除

[root@nfsnobody ~]# find /root/ -type f -name "*.txt"|xargs ls -l   查找并查看
-rw-r--r--. 1 root root 0 Jul 10 19:42 /root/alex.txt
-rw-r--r--. 1 root root 0 Jul 10 19:42 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 10 19:46 /root/nfsnobody.txt
[root@nfsnobody ~]# find /root/ -type f -name "*.txt"|xargs rm       查找并删除
[root@nfsnobody ~]# ls -l /root/                                     检查是否删除
total 40
-rw-------. 1 root root  1161 Jul 10 18:26 anaconda-ks.cfg
-rw-r--r--. 1 root root 21736 Jul 10 18:26 install.log
-rw-r--r--. 1 root root  5890 Jul 10 18:25 install.log.syslog

方法二

因上面已删除 重新创建环境

touch/root/nfsnobody.txt  /root/alex.txt/root/lidao.txt

首先为防止未删除 先查找并查看*.txt的文件
$

[root@nfsnobody ~]# ls -l $(find /root/ -type f -name "*.txt")
-rw-r--r--. 1 root root 0 Jul 10 18:47 /root/alex.txt
-rw-r--r--. 1 root root 0 Jul 10 18:47 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 10 18:47 /root/nfsnobody.txt

确认无误 rm -f 删除

[root@nfsnobody ~]# rm -f $(find /root/ -type f-name "*.txt")     rm -f 强制删除不提示
[root@nfsnobody ~]# ls /root/                                      检查是否删除
anaconda-ks.cfginstall.log  install.log.syslog
[root@nfsnobody ~]#

方法三

同上先模拟创建环境
先查看搜索出的内容 然后再删除

[root@nfsnobody ~]# find /root/ -type f -name "*.txt" -exec ls -l {} ;  查看搜索的文件
-rw-r--r--. 1 root root 0 Jul 10 18:51 /root/alex.txt
-rw-r--r--. 1 root root 0 Jul 10 18:51 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 10 18:51 /root/nfsnobody.txt
[root@nfsnobody ~]# find /root/ -type f -name "*.txt" -exec rm {} ;     删除搜索的文件
[root@nfsnobody ~]# ls /root/                                            检查
anaconda-ks.cfg  install.log  install.log.syslog
[root@nfsnobody ~]#

过滤信息

问题信息
已知文件 test.txt 内容为:
test
liyao
nfsnobody nfsnobody
请给出输出test.txt 文件内容时,不包含 nfsnobody 字符串的命令
首先模拟环境

[root@nfsnobody ~]# mkdir -p /data
[root@nfsnobody ~]# cat > /data/test.txt <<EOF
test
liyao
nfsnobody
EOF

方法一 grep

grep-v 清除搜索的内容 显示其他的

[root@nfsnobody ~]# grep "nfsnobody"/data/test.txt 
nfsnobody
[root@nfsnobody ~]# grep -v "nfsnobody"/data/test.txt 
test
liyao

方法二head  tail

head默认显示文件的前几行内容  默认显示前十行

[root@nfsnobody ~]# head -2 /data/test.txt    -2 == -n2  在此处表示的参数是一样的
test
liyao
[root@nfsnobody ~]# head -n2 /data/test.txt 
test
liyao
[root@nfsnobody ~]#

tail(拓展)

tail默认显示文件的最后几行内容  默认显示最后十行

[root@nfsnobody ~]# tail -2 /data/test.txt    -2 == -n2 显示最后两行
liyao
nfsnobody
[root@nfsnobody ~]# tail -n2 /data/test.txt 
liyao
nfsnobody
[root@nfsnobody ~]#

awk

! 表示取反

[root@nfsnobody ~]# awk '!/nfsnobody/'/data/test.txt 
test
liyao
[root@nfsnobody ~]# awk '/nfsnobody/'/data/test.txt 
nfsnobody
[root@nfsnobody ~]#

sed

d 意思  delete

[root@nfsnobody ~]# sed '/nfsnobody/d'/data/test.txt 
test
liyao

显示文件20到30行的内容

准备环境

[root@nfsnobody ~]# seq 40 >/data/ett.txt

方法一head | tail

先用head提取文件前30行  然后用管道传递给 tail  取后11行

[root@nfsnobody ~]# head -30 /data/ett.txt |tail-11
20
21
22
23
24
25
26
27
28
29
30

方法二awk

NR 行号
NR==20取第三行    ;

[root@nfsnobody ~]# awk 'NR==20,NR==30'/data/ett.txt
####因行数太多 此处不写  输出内容同5.1

方法三 sed

-n 取消默认输出(sed命令不会把文件内容都显示出来)
p (print显示打印)

[root@nfsnobody ~]# sed -n '20,30p' /data/ett.txt 
20
21
22
23
24
25
26
27
28
29
30

方法四 grep

-A

[root@nfsnobody ~]#grep -A "20"/data/ett.txt
原文地址:https://www.cnblogs.com/wenrulaogou/p/11981991.html