[linux系统]文件和目录管理

linux简介

Linux,全称GNU/Linux,是一个基于POSIX的多用户、多任务、支持多线程和多CPU,同时可以免费使用和自由传播的类UNIX操作系统,它支持和运行主流的Unix工具软件、应用程序和网络协议,32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

linux文件系统结构

Linux世界中的一切东西都可以通过文件的方式保存和管理,即“一切皆文件”的思想。

文件类型:
(1)普通文件(如:mp4、jgp、html)
(2)目录文件(即文件夹)
(3)字符设备文件和块设备文件(通常在/dev/目录下)
(4)套接字文件(socket)
(5)符号链接文件(symbolic link)
(6)管道文件(pipe)

树状目录结构:
树状目录结构
以下是目录具体含义:

级别目录描述
根目录/linux系统的根目录,所有目录都是由根目录衍生出来的, 根目录与系统的开机、修复、还原密切相关
一级目录/binbin(Binaries :二进制文件)目录存放着最经常使用的命令
/boot 系统引导文件存放目录,存放着启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件
/devdev(Device:设备)目录存放的是 Linux 的外部设备及特殊文件存储位置
/etcetc(Etcetera:等等)目录存放所有的系统管理所需要的配置文件和子目录
/home用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
/root该目录为系统管理员(超级权限者的用户主目录)
/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除
/sbins(Super User)是 Superuser Binaries (超级用户的二进制文件) 的缩写,存放的是系统管理员使用的系统管理程序
/tmptmp(temporary:临时)目录是用来存放一些临时文件
/usr usr(unix shared resources:共享资源)目录下存放用户的很多应用程序和文件,类似于 windows 下的 program files 目录
/varvar (variable:变量)目录中存放着在不断扩充着的东西,例如各种日志文件
/liblib(Library:库)目录存放着系统最基本的动态连接共享库,类似于 Windows 里的 DLL 文件
/mnt为了让用户临时挂载别的文件系统,如 U 盘、移动硬盘和其他操作系统的分区
/optopt(optional:可选)是给主机额外安装软件所摆放的目录,手工安装的源码包软件也可以安装到这个目录中
/sys该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs ,sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建
/procproc(Processes:进程)是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
/srv 服务数据目录,该目录存放一些服务启动之后需要提取的数据
/lost+found当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录
二级目录/usr/bin/超级用户使用的比较高级的管理程序和系统守护程序,存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用
/usr/lib应用程序调用的函数库保存位置
/usr/XllR6图形界面系统保存位置
/usr/local手工安装的软件保存位置
/usr/share应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/src源码包保存位置,手工下载的源码包和内核源码包都可以保存到这里。
/usr/includeC/C++ 等编程语言头文件的放置目录
/var/lib程序运行中需要调用或改变的数据保存位置,如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等
/var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool一些临时存放且随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务
/var/www RPM 包安装的 Apache 的网页主目录
/var/nis和/var/ypNIS 服务机制所使用的目录,NIS主要记录所有网络中每一个 client 的连接信息,yp 是 linux 的NIS服务的日志文件存放的目录
/var/tmp 存放一些应用程序在安装或执行时需要重启后使用的文件

文件目录寻址:

在linux树状结构目录中,对不同的文件进行操作时需要用到寻址的指令,文件寻址指令分为两种分别是:

  1. 绝对路径的语法:根目录/子目录/…
    例如:根目录/目的目录/…
root@ubuntu18:/home# cd /home/alientek/ //转到/(根下)的home目录里的alientek目录里
root@ubuntu18:/home/alientek# ls //查看当前目录下的文件夹
Desktop    linux  Pictures  st            STM32CubeMX  Videos
Documents  mp157  Public    STM32Cube     ST_tools
Downloads  Music  qt-atk    STM32CubeIDE  Templates

  1. 相对路径的语法:先用[cd+绝对路径]转到目的目录中,再执行以下操作
    例如:
root@ubuntu18:/home/alientek# touch 1.txt //在当前目录下创建文件1.txt
root@ubuntu18:/home/alientek# ls //查看当前目录下文件
1.txt      Downloads  Music     qt-atk     STM32CubeIDE  Templates
Desktop    linux      Pictures  st         STM32CubeMX   Videos
Documents  mp157      Public    STM32Cube  ST_tools

注:touch为创建文件指令后续章节会讲述到相关内容,../为回退上一级目录的意思

切换目录

cd(Change Directory)命令用来切换工作目录且cd 命令是 Shell 内置命令。linux命令根据来源可以分为shell内置命令和外部命令,其中shell内部命令时自带的命令没有执行文件;相反外部命令是由程序员自行开发的,所以是有命令执行文件。
语法:

root@ubuntu18:/# cd [选项] [相对路径或绝对路径]

选项

名称描述
~当前登录用户的主目录
~用户名指定用户的主目录
-上次所在目录
.当前目录
. .(此处是两个连续的点,中间无空格)上级目录

示例:

root@ubuntu18:/# cd ~				//表示回到自己的主目录
root@ubuntu18:~# pwd				//查看当前所在目录的名称
/root
root@ubuntu18:~# cd ..				//返回上一级目录
root@ubuntu18:/# cd					//也表示回到当前登录用户的主目录
root@ubuntu18:~# pwd				//查看当前所在目录的名称
/root
root@ubuntu18:~# cd ~alientek/		//表示切换到alintek这个用户的主目录,亦即 /home/alintek
root@ubuntu18:/home/alientek# pwd	//查看当前所在目录的名称
/home/alientek

显示当前路径

pwd(Print Working Directory:打印工作目录)命令的功能是显示用户当前所处的工作目录。
whoami 命令用于确定当前登陆的用户。
语法:

root@ubuntu18:/# pwd [选项]
root@ubuntu18:/# whoami

选项

名称描述
-P显示出确实的路径,而非使用链接 (link) 路径

示例

root@ubuntu18:/home/alientek# pwd		//打印当前的目录
/home/alientek
root@ubuntu18:/home/alientek# whoami	//显示当前登录的用户名
root

查看目录下文件

ls(list:列表)命令是目录操作命令,其主要功能是显示当前目录下的内容

root@ubuntu18:/# ls [选项] 目录名称

选项:

名称描述
-a显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一
-A显示全部的文件,连同隐藏文件,但不包括 . 与 … 这两个目录
-d仅列出目录本身,而不是列出目录内的文件数据
-fls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序
-F在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,
-h以易读的方式显示文件或目录大小,如 1KB、1MB、1GB 等
-i显示 inode 节点信息
-l使用长格式列出文件和目录信息
-n以 UID 和 GID 分别代替文件用户名和群组名显示出来
-r将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小
-R连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来
-S以文件容量大小排序,而不是以文件名排序
-t以时间排序,而不是以文件名排序
–color=nevernever 表示不依据文件特性给予颜色显示
–color=alwaysalways 表示显示颜色,ls 默认采用这种方式
–color=autoauto 表示让系统自行依据配置来判断是否给予颜色
–full-time以完整时间模式 (包含年、月、日、时、分)输出
–time={atime,ctime}输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间

注:使用 -a可以看到 . 为开头的几个文件,以及蓝色显示的目录文件 (.)、(…)、.gconf 等等,这些都是隐藏的目录和文件。

示例

root@ubuntu18:/home# ls -a		//显示全部的文件
.  ..  alientek  Systemback
root@ubuntu18:/home# ls -A		//显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录
alientek  Systemback
root@ubuntu18:/home# ls -d		//仅列出目录本身
.
root@ubuntu18:/home# ls -f		//使用 -f 选项会直接列出结果,而不进行排序
.  ..  alientek  Systemback
root@ubuntu18:/home# ls -i		//显示 inode 节点信息
7602178 alientek  7603485 Systemback
root@ubuntu18:/home# ls -n		//以 UID 和 GID 分别代替文件用户名和群组名显示出来
total 8
drwxr-xr-x 36 1000 1000 4096 18 20:08 alientek
drwxr-xr-x  2    0 1000 4096 18 06:58 Systemback
root@ubuntu18:/home# ls -r		//将排序结果反向输出
Systemback  alientek

ls 命令还使用了 -l 选项显示具体信息描述:

列数描述
第一列规定了不同的用户对文件所拥有的权限
第二列表示该文件的硬链接个数,目录表示该目录有多少个一级子目录
第三列所有者
第四列所属组
第五列大小,默认单位是字节
第六列文件修改时间
第七列文件名或目录名

示例

root@ubuntu18:/home# ls -l		//长格式列出文件和目录信息
total 8
drwxr-xr-x 36 alientek alientek 4096 18 20:08 alientek
drwxr-xr-x  2 root     alientek 4096 18 06:58 Systemback

创建目录(文件夹)

mkdir(make directories:创建目录)用于创建新目录
语法:

root@ubuntu18:/home# mkdir [-mp] 目录名
名称描述
-m配置文件的权限
-p递归创建所有目录

示例

root@ubuntu18:/# mkdir test    //创建一名为 test 的新目录
root@ubuntu18:/# mkdir -p test1/test2/test3/test4

删除空目录

rmdir(emove empty directories:删除空目录)命令用于删除空目录
语法:

root@ubuntu18:/#rmdir [-p] 目录名

选项:

名称描述
-p递归创建所有目录

示例

root@ubuntu18:/#mdir -p home/movie

创建文件

touch 命令可以创建一个空白文件,其他功能是修改文件的时间参数。
语法:

root@ubuntu18:/#touch [选项] 文件名

选项:

名称描述
-a只修改文件的访问时间
-c仅修改文件的时间参数,如果文件不存在,则不建立新文件
-d后面可以跟欲修订的日期,而不用当前的日期
-m只修改文件的数据修改时间
-t命令后面可以跟欲修订的时间,时间书写格式为 YYMMDDhhmm

示例

root@ubuntu18:/# touch 1.txt				//创建文件1.txt
root@ubuntu18:/# ls 1.txt					//显示1.txt文件
1.txt
root@ubuntu18:/# ll --time=atime 1.txt		//查看文件的访问时间
-rw-r--r-- 1 root root 0 18 22:13 1.txt

复制文件或目录

cp 命令可以用来复制文件和目录,还可以复制整个目录
语法:

root@ubuntu18:/#cp [选项] 源文件 目标文件

选项:

名称描述
-a相当于 -d、-p、-r 选项的集合
-d如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-f询问,如果目标文件已经存在,则会询问是否覆盖
-f把目标文件建立为源文件的硬链接文件,而不是复制源文件
-l把目标文件建立为源文件的软链接文件,而不是复制源文件
-p复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r递归复制,用于复制目录
-s复制成为符号链接档 (symbolic link),亦即『捷径』文件
-u若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用

示例

root@ubuntu18:/#cp 1.txt /tmp/		//将1.txt文件复制到/tmp/路径下
root@ubuntu18:/#cp -i ~/.test /tmp/test
cp: overwrite `/tmp/test'? n  <==n不覆盖,y为覆盖

移除文件或目录

rm 命令可以永久性地删除文件系统中指定的文件或目录,且删除文件或目录,系统不会产生任何提示信息。
语法:

root@ubuntu18:/#rm [选项] 文件或目录

选项

名称描述
-f强制删除(force),系统将不再询问,而是直接删除目标文件或目录
-i在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录
-r递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件

示例

root@ubuntu18:/#rm -f test1.txt 

移动文件或目录

mv(move:移动)命令可以在不同的目录之间移动文件或目录,可以重命名。

root@ubuntu18:/#mv [选项] 源文件 目标文件

选项

名称描述
-f强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i交互移动,如果目标文件已经存在,则询问用户是否覆盖
-n如果目标文件已经存在,则不会覆盖移动,而且不询问用户
-v显示文件或目录的移动过程
-u若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级

示例

root@ubuntu18:/#mv 1.txt /tmp	//移动之后,源文件会被删除,类似剪切
root@ubuntu18:/#mkdir test1
root@ubuntu18:/#mv test/ /tmp	//也可以移动目录

注:使用mv命令改名常用来代替删除命令,防止在一些情况下删除后无法恢复源文件

文件查看命令

CAT:由第一行开始显示文件内容
语法:

root@ubuntu18:/#cat [选项] 文件名

选项:

名称描述
-A相当于 -v、-E、-T 选项,可列出一些特殊字符而不是空白而已
-b列出行号,仅针对非空白行做行号显示(空白行不标行号)
-E将结尾的断行字节 $ 显示出来
-n列印出行号,连同空白行也会有行号
-T将 [tab] 按键以 ^I 显示出来
-v列出一些看不出来的特殊字符

TAC 从最后一行开始显示
语法:

root@ubuntu18:/#tac 文件名

nl 显示输出行号
语法:

root@ubuntu18:/#nl [选项] 文件名

选项

名称描述
-b指定行号指定的方式
-b a表示不论是否为空行,也同样列出行号
-b t如果有空行,空的那一行不要列出行号(默认值)
-n列出行号表示的方法
-n ln行号在荧幕的最左方显示
-n rn行号在自己栏位的最右方显示,且不加 0
-n rz行号在自己栏位的最右方显示,且加 0
-w行号栏位的占用的位数

more 一页一页的显示文件内容
语法:

root@ubuntu18:/#more 文件名

按键操作

具体按键描述
空白键 (space)代表向下翻一页
Enter代表向下翻一行
/字符串代表在这个显示的内容当中,向下搜寻"字符串"这个关键字
:f立刻显示出档名以及目前显示的行数
q代表立刻离开 more ,不再显示该文件内容
b 或 [ctrl]-b代表往回翻页,不过这动作只对文件有用,对管线无用

less 与 more 类似,但是比 more 更好的是,他可以往前翻页
语法:

root@ubuntu18:/#more 文件名

按键操作

具体按键描述
空白键 (space)向下翻动一页
[pagedown]向下翻动一页
[pageup]向上翻动一页
/字串向下搜寻“字串”的功能
?字串向上搜寻”字串“的功能
n重复前一个搜寻 (与 / 或 ? 有关!)
N反向的重复前一个搜寻 (与 / 或 ? 有关!)
q离开 less 这个程序

head 只看头几行
语法:

root@ubuntu18:/#head [-n number] 文件			//-n :后面接数字,代表显示几行的意思

tail 只看尾巴几行
语法:

root@ubuntu18:/#tail [-n number] 文件 			//-n:后面接数字,代表显示几行的意思
												//-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

附录

linux系统学习思维导图:

linux嵌入式系统学习
文件与目录管理
用户及其组管理
系统的进程管理
管道以及重定向
磁盘和分区管理
文件的查找管理
文件打包和压缩
软件安装与卸载
计划任务管理
处理日志管理
网络连接管理
文件服务管理

注:点击相应的思维导图分支即可跳转到相应内容

Linux 命令大全索引: 索引目录
Linux 常用的快捷键:常见快捷键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易安寄云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值