Linux 文件与目录管理

 文件的基本概念:

普通文件 -:用于存放数据、程序等信息的一般文件,包括文本文件和二进制文件。

目录文件 d:相当于Windows系统中的文件夹

链接文件 l:这个文件包含了另一个文件的路径名

Linux文件名区分大小写,以“.”开头的文件表示隐藏文件

常用命令:

pwd 命令

功能:查看当前所在的工作目录

登录终端窗口后默认的工作目录是用户的主目录 

[an@localhost ~]$ pwd
/home/an
[an@localhost ~]$ cd aa
[an@localhost aa]$ pwd
/home/an/aa
[an@localhost aa]$ cd ~
[an@localhost ~]$ cd bb
[an@localhost bb]$ pwd
/home/an/bb
[an@localhost bb]$ cd ~
[an@localhost ~]$ pwd
/home/an

cd 命令

功能:在不同的目录间切换,即更改当前工作目录

可以使用绝对路径或相对路径  -->绝对路径:“/”开头

cd .               -->进入当前目录

cd ..              -->进入上一级目录

cd -               -->进入上次所在的目录

cd ~              -->进入当前登录用户的主目录

cd ~root        -->进入root用户的主目录

[an@localhost aa01]$ cd .  //进入当前目录
[an@localhost aa01]$ pwd   //查看所在目录
/home/an/aa/aa01
[an@localhost aa01]$ cd .. //进入上一级目录
[an@localhost aa]$ pwd
/home/an/aa
[an@localhost aa]$ cd -    //进入上次所在目录
/home/an/aa/aa01
[an@localhost aa01]$ cd ~  //进入主目录
[an@localhost ~]$ pwd
/home/an

[an@localhost ~]$ cd /home/an/aa  //绝对路径
[an@localhost aa]$ pwd
/home/an/aa
[an@localhost aa]$ cd aa01        //相对路径
[an@localhost aa01]$ pwd
/home/an/aa/aa01
ls 命令
功能:显示目录内容

选项

功能说明

-a

列出所有文件,包括以 "." 开头的隐藏文件

-d

将目录像其它普通文件一样列出,而不是列出它们的内容

-f

将文件按磁盘存储顺序列出,而不是按文件名排序输出

-i

显示文件的inode编号

-l

显示文件的详细信息,而且一行显示一个文件

-u

将文件按其最近访问时间排序

-t

将文件按其最近修改时间排序

-c

将文件按其状态修改时间排序

-r

将输出结果逆序排列,和-t-S等选项配合使用

-R

将目录及其所有子目录的内容全部显示出来

-S

按文件大小排序,默认大文件在前

[an@localhost ~]$ ls -a
.   aa             .bash_logout   .bashrc  .cache  .config  dd  .esd_auth  .ICEauthority  .mozilla  .viminfo  模板  图片  下载  桌面
..  .bash_history  .bash_profile  bb       cc      .dbus    ee  ff         .local         .vim      公共      视频  文档  音乐



[an@localhost ~]$ ls -l
总用量 8
drwxrwxr-x. 2 an an  6 4月  21 15:36 aa
drwxrwxr-x. 2 an an  6 4月  21 15:37 bb
drwxrwxr-x. 2 an an  6 4月  21 15:37 cc
drwxrwxr-x. 2 an an  6 4月  21 15:37 dd
-rw-rw-r--. 1 an an 16 4月  21 15:38 ee
-rw-rw-r--. 1 an an 15 4月  21 15:38 ff
drwxr-xr-x. 2 an an  6 4月  19 17:23 公共
drwxr-xr-x. 2 an an  6 4月  19 17:23 模板
drwxr-xr-x. 2 an an  6 4月  19 17:23 视频
drwxr-xr-x. 2 an an  6 4月  19 17:23 图片
drwxr-xr-x. 2 an an  6 4月  19 17:23 文档
drwxr-xr-x. 2 an an  6 4月  19 17:23 下载
drwxr-xr-x. 2 an an  6 4月  19 17:23 音乐
drwxr-xr-x. 2 an an  6 4月  19 17:23 桌面

 cat 命令

 功能:显示文件内容

选项

功能说明

-b

只显示非空行的行号

-E

在每行结尾处显示“$”符号

-n

显示所有行的行号

-s

将连续的多个空行替换为一个空行

-T

把 制表符TAB字符显示为“^I”

[an@localhost ~]$ cat ee
hello world
NZW
[an@localhost ~]$ cat -n ee
     1	hello world
     2	NZW
[an@localhost ~]$ cat -E ee
hello world$
NZW$
[an@localhost ~]$ cat -b ee
     1	hello world
     2	NZW
[an@localhost ~]$ cat -n ee ff
     1	hello world
     2	NZW
     3	hello taiyuan
     4	

head 命令

功能:显示文件开头若干行,默认显示前10行 

选项

功能说明

-c  size

显示文件开头的 size 字节

-n  number

显示文件开头的 number 

-q

不显示文件名的头信息

-v

总是显示文件名的头信息

[an@localhost ~]$ head -n 2 ee  //显示前2行
hello world
NZW
[an@localhost ~]$ head -c 8 ee  //显示前8个字节
hello wo[an@localhost ~]$ 

 tail 命令

功能:显示文件结尾若干行内容,默认显示后10行

选项

功能说明

-c  size

显示文件结尾的 size 字节

-n  number

显示文件结尾的 number 

-q

不显示文件名的头信息

-v

总是显示文件名的头信息

[an@localhost ~]$ cat ee
hello world
NZW
[an@localhost ~]$ tail -c 9 ee  //显示后9个字节
orld
NZW
[an@localhost ~]$ tail -n 3 ee //显示后3行
hello world
NZW

wc 命令

功能:默认统计并输出文件的行数,单词数和字节数 

选项

功能说明

-c

输出文件字节数

-l

输出文件行数

-L

输出文件最长的行的长度

-w

输出文件单词数

[an@localhost ~]$ wc ee  //输出文件整体信息
 2  3 16 ee                          
[an@localhost ~]$ wc -c ee  //输出文件字节数
16 ee
[an@localhost ~]$ wc -l ee  //输出文件行数
2 ee
[an@localhost ~]$ wc -L ee  //输出文件最长行的长度
11 ee
[an@localhost ~]$ wc -w ee  //输出文件单词数
3 ee

 touch 命令

功能:创建新文件或修改文件时间

选项

功能说明

-a

修改文件访问时间

-m

修改文件修改时间

-c

修改文件时间戳

-t  time

使用指定的时间值(202204202014)

[an@localhost ~]$ ls -l ff
-rw-rw-r--. 1 an an 15 4月  21 15:38 ff
[an@localhost ~]$ touch -mt 202003151605 ff
[an@localhost ~]$ ls -l ff
-rw-rw-r--. 1 an an 15 3月  15 2020 ff

 mkdir 命令

功能:创建新目录

选项

功能说明

-p

递归创建所有子目录

-m  mode

为新建的目录设置指定的权限 mode

[an@localhost ~]$ mkdir aa
[an@localhost ~]$ mkdir bb
[an@localhost ~]$ mkdir cc
[an@localhost ~]$ mkdir dd
[an@localhost ~]$ ls
aa  bb  cc  dd  公共  模板  视频  图片  文档  下载  音乐  桌面
[an@localhost ~]$ mkdir -p aa/aa01  //创建子文件
[an@localhost ~]$ mkdir -p aa/aa02
[an@localhost ~]$ mkdir -p aa/aa03
[an@localhost ~]$ cd aa
[an@localhost aa]$ ls
aa01  aa02  aa03

rmdir 命令

 功能:删除**空**目录

[an@localhost ~]$ ls
aa  bb  cc  dd  ee  ff  公共  模板  视频  图片  文档  下载  音乐  桌面
[an@localhost ~]$ rmdir dd
[an@localhost ~]$ ls
aa  bb  cc  ee  ff  公共  模板  视频  图片  文档  下载  音乐  桌面

 cp 命令

功能:复制文件或者目录

选项

功能说明

-d

如果源文件为软链接则复制软链接,而不是复制源文件

-i

如果目标文件已经存在,提示是否覆盖现有目标文件

-l

建立源文件的硬链接文件而不是复制源文件

-s

建立源文件的软链接文件而不是复制源文件

-p

保留源文件的所有者、组、权限和时间信息

-r

递归复制目录

-u

如果目标文件有相同或更新的修改时间,则不复制源文件

-a

相当于-d-p-r三个选项的组合,即 -dpr

[an@localhost ~]$ cp ee ff aa  //复制文件ee  ff  到目录aa
[an@localhost aa]$ ls
aa01  aa02  aa03  ee  ff

mv 命令

功能:移动或重命名文件或目录

选项

功能说明

-f

如果目标文件已存在,强制覆盖目标文件而且不给提示

-i

如果目标文件已存在,提示是否覆盖目标文件

-u

如果源文件的修改时间更新,则移动源文件

-v

显示移动过程

[an@localhost ~]$ ls
aa  bb  cc  ee  ff  公共  模板  视频  图片  文档  下载  音乐  桌面
[an@localhost ~]$ mv ee bb  //将文件 ee 移动到目录 bb
[an@localhost ~]$ mv cc dd  //将目录 cc 重命名为 dd
[an@localhost ~]$ ls
aa  bb  dd  ff  公共  模板  视频  图片  文档  下载  音乐  桌面

rm 命令

功能:永久删除文件或目录

选项

功能说明

-f

删除文件和目录前不给提示,即使文件和目录不存在

-i

-f选项相反,删除文件和目录前有提示

-r

递归删除目录及其所有内容

-v

删除文件前打印文件名

[an@localhost ~]$ rm -i dd         //不能直接删除目录
rm: 无法删除"dd": 是一个目录
[an@localhost ~]$ rm -ir dd
rm:是否删除目录 "dd"?y
[an@localhost ~]$ ls
aa  bb  ff  公共  模板  视频  图片  文档  下载  音乐  桌面

find 命令

功能:可以根据给定的路径和表达式查找的文件或目录。如不加任何参数,表示查找当前路径下的所有文件和目录。

选项

功能说明

-name  pattern

-iname  pattern

查找文件名符合指定模式 pattern 的文件,pattern 一般用正则表达式指定。-iname不区分大小写。

-user  uname

-uid  uid

查找文件所有者是 uname 或文件所有者标识是 uid 的文件

-group  gname

-gid  gid

查找文件所属组是 gname 或文件所属组标识是 gid 的文件

-atime|-ctime|-mtime

 [+-]n

查找文件访问时间(状态修改时间|内容修改时间)在 n 天前的文件

-amin|-cmin|-mmin

[+-]n

查找文件访问时间在(状态修改时间|内容修改时间)n 分钟前的文件

-newer  file

查找比指定文件 file 还要新的文件(即修改时间更晚)

-empty

查找空文件或空目录

[an@localhost aa]$ find . -name "aa*"   //查找文件名以“aa”开头的文件
./aa01
./aa02
./aa03

tar 命令

功能:对文件进行打包和压缩,将多个文件合并成一个文件,使用时可不加“-” 

打包文件通常以“.tar”作为文件扩展名,又被称为tar包 

选项

功能说明

-c

创建打包文件(和-x-t选项不能同时使用)

-r

将文件追加到打包文件的末尾

-A

合并两个打包文件

-f  filename

指定打包文件名,一定要正确指定后缀名

-v

显示正在处理的文件

-x

展开打包文件

-t

查看打包文件包含哪些文件或目录

-C  dir

在特定目录中展开打包文件

//打包
[an@localhost aa]$ ls
aa01  aa02  aa03  ee  ff
[an@localhost aa]$ tar -cvf 1.tar ee ff   //将 ee 和 ff 打包为1.tar
ee
ff
[an@localhost aa]$ ls
1.tar  aa01  aa02  aa03  ee  ff
[an@localhost aa]$ tar -tf 1.tar  //使用-t选项查看打包文件内容
ee
ff
//解包文件
[an@localhost aa]$ tar -xvf 1.tar -C /tmp  //-C指定解压位置,即在目录/tmp中展开打包文件
ee
ff
[an@localhost aa]$ ls -d /tmp/ee /tmp/ff
/tmp/ee  /tmp/ff

 gzip 命令

功能:对文件进行压缩,减少其占用的存储空间 

gzip工具压缩后的压缩文件扩展名为“.gz 

grep 命令 

功能:从文件中提取符合指定匹配表达式的行,经常和 find 命令一起使用 

选项

功能说明

-A  num

提取符合条件的行及紧随其后的 num

-B  num

提取符合条件的行及在其之前的 num

-C  num

提取符合条件的行及其前后各 num

-m  num

最多提取 num 行符合条件的行

-I

不区分大小写

-n

输出行号

-r

递归地查找目录下的所有文件

-v

反向查找,即只显示不满足条件的行

[an@localhost aa]$ cat ee
hello world
NZW
[an@localhost aa]$ grep -n l ee  //提取包含l的行
1:hello world
[an@localhost aa]$ grep -nv l ee  提取不包含l的行
2:NZW

[an@localhost ~]$ cat zz
Weather affects all of us in one way or another, directly or indirectly. 
For example, good weather makes people happy. 
Bad weather makes people sick and depressed. Be sides, on a fine day, one can go out for a walk or play a game in the open.
On a rainy day, however, he can only stay indoors, in a word, weather is part of life for all of us.
[an@localhost ~]$ grep -n "o[efr]" zz
1:Weather affects all of us in one way or another, directly or indirectly. 
2:For example, good weather makes people happy. 
3:Bad weather makes people sick and depressed. Be sides, on a fine day, one can go out for a walk or play a game in the open.
4:On a rainy day, however, he can only stay indoors, in a word, weather is part of life for all of us.
[an@localhost ~]$ grep -n "^B" zz
3:Bad weather makes people sick and depressed. Be sides, on a fine day, one can go out for a walk or play a game in the open.
[an@localhost ~]$ grep -irw "or" zz
Weather affects all of us in one way or another, directly or indirectly. 
Bad weather makes people sick and depressed. Be sides, on a fine day, one can go out for a walk or play a game in the open.

 文件所有者和属组

用户的分类 

所有者( user :创建文件的用户,可以修改
属组(group) :以某个用户组成员的身份访问文件的用户
其他人(others :除了前面两种身份的其他用户
每种用户身份都可以拥有三种权限:读、写、执行
注意:“用户组”本身没有权限,只有组内用户才有权限!

chgrp 命令     

功能:修改文件属组 

[root@localhost aa]# ls -l
总用量 20
-rw-rw-r--. 1 an an 10240 4月  21 17:13 1.tar
drwxrw----. 2 an an     6 4月  21 16:22 aa01
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa02
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa03
-rw-r--r--. 1 an an    16 4月  21 16:27 ee      //原文件属组为an
-rwxrwxr-x. 1 an an    15 4月  21 16:27 ff
[root@localhost aa]# chgrp root ee    // 将文件属组改为root
[root@localhost aa]# ls -l
总用量 20
-rw-rw-r--. 1 an an   10240 4月  21 17:13 1.tar
drwxrw----. 2 an an       6 4月  21 16:22 aa01
drwxrwxr-x. 2 an an       6 4月  21 16:22 aa02
drwxrwxr-x. 2 an an       6 4月  21 16:22 aa03
-rw-r--r--. 1 an root    16 4月  21 16:27 ee    //文件属组被修改
-rwxrwxr-x. 1 an an      15 4月  21 16:27 ff

chown 命令    

功能:修改文件所有者和属组 

通过su root 进入root用户
[root@localhost aa]# ls -l
总用量 20
-rw-rw-r--. 1 an an 10240 4月  21 17:13 1.tar
drwxrw----. 2 an an     6 4月  21 16:22 aa01
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa02
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa03
-rw-r--r--. 1 an an    16 4月  21 16:27 ee
-rwxrwxr-x. 1 an an    15 4月  21 16:27 ff
[root@localhost aa]# chown root ee         //只修改文件的所有者
[root@localhost aa]# chown root:root ff    //同时修改文件的所有者和属组
[root@localhost aa]# ls -l
总用量 20
-rw-rw-r--. 1 an   an   10240 4月  21 17:13 1.tar
drwxrw----. 2 an   an       6 4月  21 16:22 aa01
drwxrwxr-x. 2 an   an       6 4月  21 16:22 aa02
drwxrwxr-x. 2 an   an       6 4月  21 16:22 aa03
-rw-r--r--. 1 root an      16 4月  21 16:27 ee      //文件所有者被修改
-rwxrwxr-x. 1 root root    15 4月  21 16:27 ff      //文件所有者和属组被修改

[root@localhost aa]# chown .an ff   // 只修改文件的属组,组名前有“.”
[root@localhost aa]# ls -l
总用量 20
-rw-rw-r--. 1 an   an 10240 4月  21 17:13 1.tar
drwxrw----. 2 an   an     6 4月  21 16:22 aa01
drwxrwxr-x. 2 an   an     6 4月  21 16:22 aa02
drwxrwxr-x. 2 an   an     6 4月  21 16:22 aa03
-rw-r--r--. 1 root an    16 4月  21 16:27 ee
-rwxrwxr-x. 1 root an    15 4月  21 16:27 ff

文件权限的分类:
r (读)  :使用 ls 命令查看目录有哪些子目录和文件

w (写)  :①在此目录下新建文件和子目录(touch,mkdir)

             ②删除该目录下已有的文件和子目录(rm、rmdir)

             ③重命名该目录下已有的文件和子目录(mv)

             ④移动该目录下已有文件和子目录的位置(mv)

x (执行)  :可以使用 cd 命令进入这个目录,并把它作为当前工作目录
没有权限使用“-”表示

drwxrwxr-x. 2 an an  6 4月  21 15:36 aa
第一组:rwx  所有者对该文件可读、可写、可执行
第二组:rwx  所有者对该文件可读、可写、可执行
第三组:r-x    所有者对该文件可读、不可写、可执行

修改文件权限-符号法

添加权限、移除权限和设置权限三种权限分别用 “+” “-” “=” 表示

把文件权限用 r   读、 w   写、 x   执行 表示
把用户身份用 u   所有者、 g   属组、 o   其他人、 a   所有人 表示
/*
aa01:移除属组用户的执行权限,移除其他人的读和执行权限
ee:移除所有者的执行权限,将属组和其他人的权限设置为可读
ff:为属组添加写权限,为所有人添加执行权限
*/

[an@localhost aa]$ ls -l
总用量 20
-rw-rw-r--. 1 an an 10240 4月  21 17:13 1.tar
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa01
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa02
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa03
-rw-rw-r--. 1 an an    16 4月  21 16:27 ee
-rw-rw-r--. 1 an an    15 4月  21 16:27 ff
[an@localhost aa]$ chmod g-x,o-rx aa01
[an@localhost aa]$ chmod u-x,go=r ee
[an@localhost aa]$ chmod g+w,a+x ff
[an@localhost aa]$ ls -l
总用量 20
-rw-rw-r--. 1 an an 10240 4月  21 17:13 1.tar
drwxrw----. 2 an an     6 4月  21 16:22 aa01
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa02
drwxrwxr-x. 2 an an     6 4月  21 16:22 aa03
-rw-r--r--. 1 an an    16 4月  21 16:27 ee
-rwxrwxr-x. 1 an an    15 4月  21 16:27 ff

修改文件权限-数字法   

把文件的三种权限分别用数字表示

把每种用户的三种权限对应的数字相加

[an@localhost ~]$ touch kk
[an@localhost ~]$ ls -l kk
总用量 8
-rw-rw-r--. 1 an an   0 4月  26 16:50 kk
[an@localhost ~]$ chmod 754 kk
[an@localhost ~]$ ls -l kk
-rwxr-xr--. 1 an an 0 4月  26 16:50 kk

umask

创建文件或目录时,通过修改umask的值,自定义文件或目录的权限

[an@localhost ~]$ umask 245
[an@localhost ~]$ touch mm
[an@localhost ~]$ ls -l mm
-r---w--w-. 1 an an 0 4月  26 16:52 mm
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值