单用户操作系统和多用户操作系统
- 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源
- Windows XP 之前的版本都是单用户操作系统
- 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源
- Unix 和 Linux 的设计初衷就是多用户操作系统
linux下的文件系统
Linux文件类型
- 普通-
- 目录d
- 字符设备c
- 块设备b
- 软连接l
- 管道p
- 套接字s
- Unknown
文件结构
在
Windows
下,打开 “计算机”,看到的是一个个的驱动器盘符:eg: C盘,D盘…。- 每个驱动器都有自己的根目录结构,形成多个树并列的情形。
在
Linux
下,看不到驱动器盘符,看到的是文件夹(目录)- linux没有盘符概念,只有一个根目录
/
,所有文件都在它下面
- linux没有盘符概念,只有一个根目录
用户目录
位于
/home/xxx
,称之为用户工作目录或家目录,表示方式:1
2/home/xx
~
/:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
- 当在终端里输入
cd /home
,其实是在告诉电脑,先从/
(根目录)开始,再进入到home
目录
- 当在终端里输入
/bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
/boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:
/boot/vmlinuz
,系统引导管理器:/boot/grub
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱
mount /dev/cdrom /mnt
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
- /etc/inittab
- /etc/fstab
- /etc/init.d
- /etc/X11
- /etc/sysconfig
/etc/xinetd.d
/etc/profile
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
~
表示当前用户的家目录~xxx
表示用户xxx
的家目录
/lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
/opt:给主机额外安装软件所摆放的目录
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
/root:系统管理员root的家目录
/sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能”查看”而不能设置和使用
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
/usr:应用程序存放目录
- /usr/bin:存放应用程序
- /usr/share:存放共享数据
- /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
- /usr/local:存放软件升级包
- /usr/share/doc:系统说明文件存放目录
- /usr/share/man:程序说明文件存放目录
/var:放置系统执行过程中经常变化的文件
- /var/log:随时更改的日志文件
- /var/spool/mail:邮件存放的目录
- /var/run:程序或服务启动后,其 PID 存放在该目录下
文件和目录常用命令
- 查看目录内容
ls
- 切换目录
cd
- 创建和删除操作
touch
rm
mkdir
- 拷贝和移动文件
cp
mv
- 查看文件内容
cat
more
grep
- 其他
echo
- 重定向
>
和>>
- 管道
|
查看目录ls
命令说明
ls
是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的dir
命令
Linux 下文件和目录的特点
- Linux 文件 或者 目录 名称最长可以有
256
个字符 - 以
.
开头的文件为隐藏文件,需要用 -a 参数才能显示 - . 代表当前目录
- .. 代表上一级目录
ls 常用选项
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
计算机中文件大小的表示方式
单位 | 英文 | 含义 |
---|---|---|
字节 | B(Byte) | 在计算机中作为一个数字单元,一般为 8 位二进制数 |
千 | K(Kibibyte) | 1 KB = 1024 B,千字节 (1024 = 2 ** 10) |
兆 | M(Mebibyte) | 1 MB = 1024 KB,百万字节 |
千兆 | G(Gigabyte) | 1 GB = 1024 MB,十亿字节,千兆字节 |
太 | T(Terabyte) | 1 TB = 1024 GB,万亿字节,太字节 |
拍 | P(Petabyte) | 1 PB = 1024 TB,千万亿字节,拍字节 |
艾 | E(Exabyte) | 1 EB = 1024 PB,百亿亿字节,艾字节 |
泽 | Z(Zettabyte) | 1 ZB = 1024 EB,十万亿亿字节,泽字节 |
尧 | Y(Yottabyte) | 1 YB = 1024 ZB,一亿亿亿字节,尧字节 |
ls 通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少 1 个 |
[] | 表示可以匹配字符组中的任一一个 |
[abc] | 匹配 a、b、c 中的任意一个 |
[a-f] | 匹配从 a 到 f 范围内的的任意一个字符 |
文件操作基本命令
more
-分屏显示文件内容, 空格翻页;
less
同理;
head -n file
-查看file的前n行;
tail -n file
-查看file的后n行;
目录及操作基本命令
一个目录所占的磁盘大小为4K;
cd -
-在两个目录之间来回切换;
rmdir
-删除空目录;
cp -a/-r srcdir dstdir
-拷贝目录;
查找文件
find
命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件
序号 | 命令 | 作用 |
---|---|---|
01 | find [路径] -name “*.py” | 查找指定路径下扩展名是 .py 的文件,包括子目录 |
- 如果省略路径,表示在当前文件夹下查找
- 之前学习的通配符,在使用
find
命令时同时可用
硬链接和软链接
软连接是一个文件,其中存的就是文件的路径, 路径有几个字符就占几个字节, 所以建议用绝对路径创建软连接;
- 注意文件的权限, 软连接的权限代表其本身的权限, 与指向的目的文件无关;
创建硬链接会增加硬链接计数;
- 这些硬链接只想同一个文件, 修改一个其余的会同步变化;
- 所有的硬链接有相同的Inode(文件统一id);
- 删除只是把硬链接计数-1;
序号 | 命令 | 作用 |
---|---|---|
01 | ln -s 被链接的源文件 链接文件 | 建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式 |
- 没有
-s
选项建立的是一个 硬链接文件- 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
- 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
1 | ln -s hello.c hello.c.s #创建软连接; |
文件软硬链接的示意图
在 Linux 中,文件名 和 文件的数据 是分开存储的
- 提示:
- 在 Linux 中,只有文件的
硬链接数 == 0
才会被删除 - 使用
ls -l
可以查看一个文件的硬链接的数量
- 在 Linux 中,只有文件的
磁盘分区类型
- 主分区:最多只能有四个
- 扩展分区:最多一个,算作主分区的一种,主分区加扩展分区最多有四个。扩展分区不能存储数据和格式化,必须再划分为逻辑分区才可以使用。
- 逻辑分区:在扩展分区中划分
逻辑分区的编号从5开始
支持的文件系统
- ext2:ext文件系统的升级版。最大支持16TB的分区和最大2TB的文件。
- ext3:ext2的升级,增加日志功能。
- ext4:ext3升级版本,主流使用,功能强大
文件系统常用命令
df, du, fsck, dump2fs
文件系统查看命令df
1 | df \[选项][挂载点] |
统计目录或文件大小du
1 | -a , -h , -s |
df命令从文件系统考虑,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(eg. 文件已经被删除,但程序并没有释放空间)
du命令面向文件,只会计算文件或目录占用的空间。
文件系统修复命令fsck
1 | fsck[选项]分区设备文件名 |
显示磁盘状态命令dumpe2fs
1 | dumpe2fs 分区设备文件名 |
文件系统常用命令-挂载命令
查询与自动挂载
1 | mount [-l]:查询系统中已经挂载的设备,-l会显示卷标名称 |
挂载命令格式
1 | mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点 |
挂载光盘与U盘
1 | 挂载光盘 |
卸载命令
1 | umount 设备文件名或挂载点 |
挂载U盘
1 | fdisk -l 查看U盘设备文件名 |
fdisk分区
fdisk命令分区过程
1 | 1.添加硬盘,虚拟机必须在关机的情况下添加 |
分区自动挂载与fstab文件修复
1 | 将挂载写入/etc/fstab文件,一定要写对 |
分配swap分区
1 | 1.free命令 |