文件管理命令
目录
文件管理命令
目录创建命令-mkdir
mkdir
make directory
# 语法
mkdir     [option]....     directory....
创建目录    [选项可有可无]     目录名字,也可以有多个
# 选项
-p:递归创建目录,如果目录已存在,则不创建,并且不报错
-v:打印,显示,目录的创建过程
# 用法
## 在当前目录下,创建一个文件夹
mkdir 文件名
## 在指定的路径下,创建名字叫lza的文件夹
mkdir /usr/dell/lza
## 创建多个目录
mkdir a b c d
mkdir /opt/lza /tmp/lza
# 报错
mkdir /d/lza/bea
# 不能创建 /d/lza/bwa 目录,原因,没有这样的文件或目录
mkdir:cannot create directory '/d/lza/bea':No succh file or directory
注意:使用mkdir创建目录,它的上一级目录必须存在,才能创建
# 目录不能创建,lza文件已存在
mkdir lza
mkdir: cannot create directory 'lza':file exists
# 序列用法
mkdir {1..10}
mkdir {a..z}
mkdir old{boy,girl}
普通文件创建-touch
touch
只能创建出,可编辑的普通文件
语法
touch      [option]...   file...
touch命令   [选项]...     普通文件的文件名,可以写多个
touch创建文件,如果文件已存在,不报错,也不覆盖,只会修改文件创建的时间
# 序列
touch{a..d}
touch /tmp/lza /opt/lza /usr/lza 
报错
touch /lza/1.txt
touch :cannot touch '/lza/1.txt': No such file or directory
# touch想要创建文件,必须该文件的上级目录要存在
树状显示目录结构-tree
tree
语法
tree [option]... 路径
选项
-L:后面接数字,查看指定层级的目录
-d:只看所有目录,不看普通文件
移动(剪切)命令-mv
mv: move
语法:
mv [option]...   source  dest
mv [选项]        源文件... 目标路径
mv lza /opt
# 注意:目标路径,必须是一个目录,如果,目标路径不存在,则是改名
复制命令-cp
cp : copy
cp  [option]...  source  dest
cp  [选项]...     源文件   目标路径
# 选项
-t: 目标路径 源文件
-p: 保持文件属性
-r: 递归复制,复制目录及目录下的所有文件
-a: 相当于-rp,既可以拷贝目录,又可以保持文件属性
-i: 提示
-v: 显示,拷贝的过程
默认:只能拷贝文件
# 用法:
[root@localhost ~]# cp /zls/1.txt /tmp
# 复制并改名
[root@localhost ~]# cp /zls/1.txt lza/oo
是否存在
-存在
1)存在:并且oo是个目录,将1.txt放到./lza/oo目录下,不改名
2)存在:并且oo是个普通文件,则提示是否要覆盖,输入y则覆盖,输入n则不覆盖
-不存在:复制到./lza下,并且改名为oo
# 避免提示的两种方法
1).使用转义符:让转义符后面的内容,做它自己
[root@localhost ~]# \cp -a /zls
2).使用命令的绝对路径
[root@localhost ~]# /bin/cp -a /zls
注意:当拷贝文件有多个源文件的情况下,最后一个必须是目录,不能是普通文件,也不能不存在
删除命令-rm
rm :remove
默认:只能删除普通文件
# 语法
rm  [option]...  file...
rm  选项...       文件...
# 选项
-i:提示
-r:递归删除,删除目录
-f:force 强制
-d:只能删除空目录
# 删除当前目录下的所有内容
rm -rf ./*
注意:删/很危险
普通文件查看命令-cat
cat:只能查看文件内容
# 语法
cat [option]... [file]...
cat 选项...      普通文件...
# 选项
-n:number 打印行号,显示行号
-E:end,查看文件每一行的结尾,以$符表示
-T:Tab,查看文件每一行内容是否含有制表符。以^I表示一个制表符
-A:既显示制表符,又显示文件的结尾
注意:cat查看文件时,会将文件所有内容全部加载到内存里
# 高难度用法
文件不存在的情况下,创建文件并写入内容
1)直接“vi 不存在的文件”,即创建文件
2)ehco内容重定向到一个文件中 
echo [内容] > [文件]
3)cat创建文件并写入内容
cat >> [文件]  <<eof
 >内容
 >内容
 >eof
普通文件查看命令扩展-head tail
# more
more 文件名
按回车,一行一行向下显示
按空格,一页一页向下显示
ctrl + b:向上查看
ctrl + f:向下查看
# less
less 文件名
ctrl + b:向上查看
ctrl + f:向下查看
按回车,一行一行向下显示
按空格,一页一页向下显示
输入/关键字,高亮显示,所有匹配到的内容
按n,查找下一个关键字
shift + n,查找上一个关键字
# head
head 文件名   默认显示一个文件的前10行内容
# 选项
-n 数字:查看文件开头的前n行,n可以省略
# tail
tail 文件名   默认显示一个文件的后10行内容
# 选项
-n:指定查看文件末尾的后n行,n可以省略
-f:follow ,跟踪,动态跟踪一个文件的末尾
文件过滤命令-grep
|:管道符
# 作用:将管道符左边命令的标准输出,交给管道符右边命令的标准输入来处理
grep:过滤输出内容  'xxx'
^:以...开头   '^xx'
$:以...结尾   'xx$'
# 例:
[root@localhost ~]# grep '^3' lza/lza.txt 
3ce
[root@localhost ~]# grep 'e$' lza/lza.txt 
3ce
4e
*:匹配*前面的内容至少0次或多次
# 例:
[root@localhost ~]# grep 'j*' lza/lza.txt 
1a
2b
3ce
4e
h5j
j6
wm 
我们今天学习文件管理
文件管理命令·ZZ
 . :匹配任意字符
# 选项
-n:打印行号 number
-A:after    查看过滤内容的后n行
-B:before   查看过滤内容的前n行
-C:center   查看过滤内容的前·后n行
-v:取反
-E:可以过滤多个结果,'xx|xx|xx'
-o:打印出过滤内容
-i:不区分大小写
[a..Z]:过滤a..Z所有字母
# 例:
[root@localhost ~]# grep -A2 'j' lza/lza.txt 
h5j
j6
wm 
我们今天学习文件管理
[root@localhost ~]# grep -v 'j' lza/lza.txt 
1a
2b
3ce
4e
wm 
我们今天学习文件管理
文件管理命令·ZZ
[root@localhost ~]# grep -E 'j|e' lza/lza.txt 
3ce
4e
h5j
j6
[root@localhost ~]# grep -i 'j' lza/lza.txt 
h5j
j6
文件的上传和下载命令-rz sz
# 如何把Windows的文件上传到虚拟机里
rz
# 如何把虚拟机的文件下载到Windows里
sz 文件名
# 需要安装lrzsz
[root@localhost ~]# yum install -y lrzsz
# 注意:只能虚拟机和物理机之间上传下载,大小不能超过4G
# 外网下载命令
安装wget命令
语法:
wget 下载地址
-O:指定下载的位置和文件的名字
命令位置查找命令-which
type -a :只针对系统内置命令
# 查看命令位置的命令 which
which 只能查找命令
# 例:
[root@localhost ~]# which mkdir 
/usr/bin/mkdir
[root@localhost ~]# which touch 
/usr/bin/touch
[root@localhost ~]# which mv 
alias mv='mv -i'
	/usr/bin/mv
字符处理命令--排序-sort
sort
# 语法
sort  [选项]...  file...
# 注意:默认按照每一行的第一个字符进行排序,如果字符相同就往后推,字母按照a-z的顺序排序,排序不修改源文件内容。默认以空格为分隔符
# 选项
-t:指定分隔符  'x'
-k:指定按照某一列,进行排序
-n:按照阿拉伯数字排序
-r:reverse 倒叙排序
# 例:
[root@localhost ~]# sort -rnt ':' -k 2 paixu.txt
f:11
e:5
a:4
b:3
c:2
d:1
去重命令-uniq
uniq
# 语法
uniq  [选项]...  文件名...
# 注意:去重内容,必须是联系的行,必须要配合sort先排序,再去重,去重也不会修改文件的内容
# 选项
-c:count 统计
# 例:
[root@localhost ~]# cat  zls/lza.txt 
a,2
a,1
a,3
a,1
b,3
b,1
b,1
c,2
c,2
a,4
a,2
[root@localhost ~]# sort -n zls/lza.txt |uniq -c
      2 a,1
      2 a,2
      1 a,3
      1 a,4
      2 b,1
      1 b,3
      2 c,2
文件内容截取命令-cut
cut:截取
# 语法
cut:[选项]...  文件名...
# 注意:cut默认没有分隔符
# 选项
-d:指定分隔符
-f:取列,选择要打印列的内容
-c:按照字符来取内容, cut -c n-n
# 例:
[root@localhost ~]# cat zls/lza.txt 
a,2 lza 21 01.20 住1206
b,2 xxx 22 10.21 住0904
[root@localhost ~]# cut -d ' ' -f 3 zls/lza.txt 
21
22
[root@localhost ~]# cut -c 9-10 zls/lza.txt 
21
22
[root@localhost ~]# cat zls/lza.txt 
a,2 lza 年,21 01.20 住1206
b,2 xxx 年,22 10.21 住0904
[root@localhost ~]# cut -d "," -f 3 zls/lza.txt |cut -d ' ' -f1
21
22
[root@localhost ~]# cut -d " " -f 3 zls/lza.txt |cut -d "," -f2
21
22
文件统计命令-wc
wc:统计文件的行数,统计文件的单词数量,统计文件的字符数量
# 语法
wc  [选项]...  文件名...
# 选项
-l:line 行,统计行数
-w:word 单词,统计单词数
-c:char 字符,统计字符数
# 例:
[root@localhost ~]# cat zls/lza.txt 
a,1a
a,22abc
a 
[root@localhost ~]# wc zls/lza.txt 
 3  3 16 zls/lza.txt
[root@localhost ~]# wc -l zls/lza.txt 
3 zls/lza.txt
[root@localhost ~]# wc -w zls/lza.txt 
3 zls/lza.txt
[root@localhost ~]# wc -c zls/lza.txt 
16 zls/lza.txt
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号