Linux常用命令之文件管理

艺帆风顺 发布于 2025-04-07 13 次阅读


  对于运维人员来说Linux系统命令行是必须掌握的技能,Linux中一切皆文件,本次分享的是文件管理相关的命令。

以下就是本次主要讲解的命令。

1、ls命令


语法:

ls [选项] [文件]

选项:

"-a" :显示所有文件和目录(.开头的隐藏文件也会列出)
"-l" :显示当前目录下文件的详细信息。
"-d" :显示目录本身,一般结合-l使用
"-i" :显示文件时,同时显示文件的索引节点
"-r" :倒序显示文件
"-h" :以人们可读的方式显示文件大小,比如1k,200M,2G等)

常用操作:

ls               //查看当前目录下的所有目录和文件
ls -a            //查看当前目录下所有的目录和文件(包含隐藏文件)
ls -l            // 列表查看当前目录下所有目录和文件,与“ll”效果一样
ls / // 查看指定目录下的所有目录和文件

2、cp命令


法:

cp [选项] 源文件 目标文件

选项:

"-r" :递归复制,用于复制目录
"-i" :询问,如果目标文件已经存在,则会询问是否覆盖。默认设置
"-d" :如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
"-p":复制后目标文件保留源文件的属性(包括所有者,所属组,权限和时间)
"-a" :相当于-d、-p、-r选项的集合。

常用操作:

cp  /tmp/tool   /opt         //将/tmp/tool目录复制到/opt目录下cp  /tmp/tool/*  /opt       //将/tmp/tool目录下的文件复制到/opt目录下cp -r /tmp/tool/ /opt //将/tmp/tool目录下的文件及目录复制到/opt目录下

3、pwd命令


显示当前目录

4、mkdir命令


语法:

mkdir [选项] 目录..

项:

"-p" :创建多级目录

常用操作:

mkdir  dir                       // 创建目录dirmkdir  -p  dir/dir1/dir2         //创建多级目录

5、mv命令


法:

mv 源文件/目录 目标文件/目录

常用操作:

mv file1   file2    //移动file1到file2中,如果不存在file2,相当于重命名file1,同样适用于目录。mv  /opt/*    /tmp   //将/opt目录下所有文件移动到/tmp目录下

6、rm命令


法:

rm [选项] 文件/目录

选项:

"-i" :删除之前需要确定
"-r" :递归删除,用于删除目录
"-f" :强制删除,不需要确认

常用操作:

rm   file1               //删除当前目录下的文件rm -f  file1             //强制删除文件rm  -rf  dir            //强制删除dir目录及dir目录里的所有目录和文件rm -rf  *                //删除当前目录的所有目录和文件,慎用rm -rf  /*              //慎用,跑路命令。

7、ln命令


语法:

ln [选项] 源文件 链接文件

选项:

"-s"  :创建符号链接
"-f" :强制执行,覆盖现有文件

常用操作:

ln test.txt hard_link //创建一个硬链接,删除了源文件,链接文件仍然可用
ln -s test.txt soft_link // 创建一个软链接,删除了源文件,链接文件不可用,相当于window的快捷方式。

8、chmod命令


语法:

chmod [选项] 权限 文件/目录

项:

"-R" :递归处理指定目录以及其子目录下的所有文件

常用操作:

chmod +777 /tmp # 给特定目录添加777权限chmod +x /tmp # 给/tmp目录添加执行权限

以下是权限对应列表

9、chown命令

语法:

chown [选项] 属主权限.组权限 文件/目录

选项:

"-R"   :递归更改目录的用户和用户组

常用操作:

chown -R rudy.rudy /tmp # 将/tmp的属主和属组修改为rudy权限。

10、chattr命令


语法:

chattr [-RV][-v][+/-/=][文件或目录...]

选项:

-R 递归处理,将指定目录下的所有文件及子目录一并处理。-V 显示指令执行过程。  +属性> 开启文件或目录的该项属性。  -属性> 关闭文件或目录的该项属性。  =属性> 指定文件或目录的该项属性。
属性:
a:让文件或目录仅供附加用途。c:将文件或目录压缩后存放。i:不得任意更动文件或目录。u:预防意外删除。

常用操作:

[root@localhost ~]chattr +a /etc/passwd    //只能向文件中添加数据,而不能删除,多用于服务器日志文件安全 。   -a  可去掉该属性[root@localhost ~]chattr +i /etc/passwd     //设定文件不能被删除、改名、写入或新增内容   -i  可去掉该属性


11、lsattr命令


常用操作:

[root@localhost ~]# lsattr /etc/passwd    //查看文件扩展属性----ia---------- /etc/passwd

12、xargs命令


作用:将标准输入转换成命令行参数

选项:

"-n"    :指定每行的最大参数量"-i" :以{}替代前面的结果

常用操作:

xargs -n  3   xargs :所有输出都变为一行find  /  -name  "*.log" | xargs -i  mv  {}  dir1  //将以.log结尾的所有文件移动到dir1目录下find  /   -name  "*.log"  | xargs rm -rf       //将以.log结尾的所有文件删除。等同于find  / -name  "*.log" -exec rm -rf {} ;

其他文件处理命令:

cd:切换目录

cd -     //切换到上次操作目录cd ../..   //切换到上两级目录

tree:以树形结构显示目录下的内容

该命令最小化安装时默认不安装,需要自行安装:

yum install -y treetree -d       //只显示目录不是显示文件tree -L 1  /   //只列出根目录下第一层的结构

touch:创建空文件或改变文件的时间戳属性

rename:重命名文件

rename  .jpg  .txt  *.jpg      //将所有文件的.jpg替换为.txt

file:显示文件的类型

[root@localhost ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text

Linux文件类型说明:

  • 普通文件类型:Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-]

  • 目录文件 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx]

  • 块设备文件 :就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b]

  • 字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]

  • 套接字文件:这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型

  • 管道文件FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p]

  • 链接文件:分类硬链接和软连接,类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]

md5sum:计算和校验文件的MD5值

选项: -c                 //从指定文件中读取MD5校验值,并进行校验    [root@localhost ~]# md5sum anaconda-ks.cfg //输出两部分,第一部分是md5值,后面是文件名d862f17d783eaf1abcf4f376b5c85527  anaconda-ks.cfg [root@localhost ~]# md5sum anaconda-ks.cfg >md5.log //生成校验文件[root@localhost ~]# md5sum -c md5.log //使用-c参数检查,结果OK表示文件没有变化anaconda-ks.cfg: OK

umask:显示或设置权限掩码

可以通过/etc/profile和/etc/bashrc文件来修改