Linux 文件管理

Linux 中一切皆文件,所有的操作都是针对文件

Linux操作系统中,所有的文件和目录被组织为单根倒置树结构,从根目录/开始

一、文件系统结构

目录内容
binbinary(二进制),存储的都是一些二进制文件(可执行文件)
sbinsuper binary,存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
boot用于存放引导文件,内核文件,引导加载器
dev主要存放的是外接设备,例如盘、光盘等。其中的外接设备是不能直接被使用的,需要挂载
ect系统和服务相关配置文件
home普通用户的家目录
rootroot用户家目录
procprocess ,虚拟的文件系统,存储的是运行中的进程的实时状态
tmptemporary,存储一些临时文件
usr存放用户自己安装软件
usr/local第三方源码包默认安装目录
var动态文件,例如程序或系统的日志文件
mnt挂载光驱、USB设备的目录

二、目录与路径

  • 相对路径和绝对路径

相对路径:相对于当前工作目录的路径

绝对路径:从根目录开始,/开头

  • 目录

所有的目录下多会存在两个目录...

  • ../:当前目录
  • ..../:上一级目录
  • /:根目录
  • -:上次所在目录
  • ~:当前用户家目录
  • ~用户名:指定用户家目录

三、基本操作

ls

列出当前目录下所有文件/文件夹名称 (list directory contents)

选项全称作用
-luse a long listing format列出文件和目录的详细信息
输出信息内容:权限,硬链接数,所有者名,组名,大小(byte),最后修改时间,名称
-aall列出显示所有文件和目录(包括隐藏的)
-ttime按照时间排序,新到旧
-rreverse倒序排序
-Ssort by file size文件大小排序,大到小
-Rrecursion递归显示目录
-ddirectory列出目录信息,而不是目录内文件信息
eg:# ls -dl /home

linux 使用不同的颜色表示文件的类型

file

查看文件类型

文件类型

文件类型全称
-/ffile常规文件
ddirectory目录文件
bblock device块设备,存储设备,如,磁盘、U盘、光驱...
ccharacter device字符设备,所有的输入输出设备,如键盘,鼠标,显示器...
lsymbolic link软链接文件
ppipe管道文件
ssocket套接字文件,用于两个进程间通信

stat

查看文件状态信息

pwd

打印出当前工作目录名 (print working directory)

cd

切换当前工作目录 (change directory)

mkdir

创建目录(make directory)

  • 创建单个目录:# mkdir 路径
  • 创建多层目录:# mkdir -p 路径
  • 创建多个目录:# mkdir 路径 路径 路径

rmdir

移除空目录

touch

创建文件,修改文件时间

  • 创建单个文件:# touch 文件名
  • 创建多个文件:# touch 文件名 文件名
创建多个文件   # touch 文件名{a..z}    touch 文件名{1..100}
命令全称作用
-aassess修改文件访问时间
-mmodify修改文件修改时间
eg: # touch -m file1 -t '202210010101'
-ddate同时修改文件的访问和修改时间
eg:# touch -d '202210010101' file1

cp

复制 (copy)

  • 复制文件:# cp 原路径 目标路径目标路径文件名可以修改
  • 复制目录:# cp -r 原路径 目标路径-r 表示recursion递归
选项全称作用
-rarchive拷贝目录
-ppreserve文件属性信息一起拷贝
-aarchive拷贝目录,包含文件属性信息
-vverbose显示拷贝过程

mv

移动(mov e),重命名

  • 移动:# mv 原路径 目标路径
  • 重命名:# mv 原名 新名

rm

删除(remove)

  • 删除单个文件:# rm 文件
  • 删除多个文件:# rm 文件 文件
  • 删除目录:# rm -r 目录

du

查看目录的真实大小, 常用# du -sh

find

在指定目录下查找文件

使用时注意: 避免高峰期在根目录下搜索
  • # find 路径 选项目 关键字
选项作用
-name按照文件名查找
-iname按照文件名查找,但是忽略文件大小写
-size按照文件大小查找
-type按照文件类型查找,[d f b c l p s]
-mtime按照文件修改时间查找
-n表示n天以内,+n表示的是n天之前,n表示特定某天
-atime按照文件访问时间查找
-ctime按照文件创建时间查找
-perm按照文件权限查找文件
-user按照用户来查找
-group按照用户组来查找

find 扩展

查询出来的结果进行某个动作

动作选项作用
-exec执行shell脚本
-ok实行shell脚本,执行命令前给出提示
-delete删除
-ls列出文件
-print打印
语法结构:
# find  路径 选项 关键字 -exec (shell command) 最后以空格反斜杠分号结尾( \;)
{} 表示find 命令查找出来的内容

Exmpale1:
找出/etc目录下以.net结尾的文件并拷贝到/tmp/目录下
# find /etc -name '*.net' -exec cp {} /tmp \;
Example2:
找出/tmp/目录下3天前的普通文件并删除
# find /tmp/ -mtime +3 -type f -delete

四、文件内容查看

cat

查看一个文本文件的内容 (concatenate);多个文件内容合并查看

选项全称作用
-nnumber显示行号
  • 查看文件:# cat 文件名
  • 多个文件合并查看:# cat 文件1 文件2 文件n

tac

查看文件全部内容,从最后一行开始显示,与cat相反

head

查看一个文件的前n行,如果不指定则默认显示前10行

语法: # head -n 文件路径

tail

查看一个文件的末n行,如果不指定则默认显示末10行

选项全称作用
-ffollow动态查看一个文件的内容

more

分页查看文件内容,只可以往下翻页

less

分页查看文件内容,可以通过 PageUpPageDown 翻页

ldd

查看二进制文件

wc

统计文本信息

选项全称作用
-llines行数
-wwords单词数

五、软硬链接

软链接

创建软连接

ln -s /源文件 /连接文件

删除软连接

#注意:如果目录,切记最后不要加 "/",否则将会删除该目录下所有文件
rm 连接文件

硬链接

特点:
inode号一致
文件内容一致
编辑一个文件,另一个文件同时修改
删除一个文件,另一个文件不受影响

创建硬链接

ln /源文件 /连接文件

六、其他

重定向

Bash 的标准输入输出

  • 标准输入(stdin),键盘的输入,代码0,使用<<<
  • 标准输出(stdout),正确的输出,代码1,使用>>> | 1> 1>>
  • 标准错误(stderr),错误的输出,代码2,使用2>2>>

> :覆盖输出重定向,会覆盖掉原先的文件内容

>>:追加输出重定向,会进行追加操作

&> :标准输出和标准错误重定向

echo

输出指定字符串或者变量,并在最后加上换行符

选项作用
-e激活转义字符

history

查看历史命令

执行指定历史记录语法:!序号

选项全称作用
-cclear清空历史指令记录
Last modification:July 24th, 2018 at 10:32 pm