基本命令中部
基本命令
移动文件
将/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
查找文件
在/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 ~]#
实现查找并删除
方法一
为防止误删除 不直接用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
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