Linux基础-文件系统
linux介绍
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
linux的基本思想有两个:第一,一切都是文件;第二,每个文件都有确定的用途。主要特性有:完全免费;完全兼容POSIX1.0标准;多用户、多任务;良好的界面;支持多种平台。
linux优势
代码开源
Linux由众多微内核组成,其源代码完全开源;
网络功能强大
Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;
系工具链完整
Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;
linux发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
linux文件系统
目录结构
linux的文件系统的采用的阶层式树状目录结构,最上层是“/”,然后在下边创建其它的目录。
因为Linux允许厂商和个人来修改操作系统,容易造成目录不统一的情况发生,所以制订了一套规范文件目录的命名及存放标准的文件,这就是:Filesystem Hierarchy Standard (FHS),包括REDHAT厂商在内的发行者都要遵守这个标准。
目录 | 描述 |
---|---|
/ (root 文件系统) | root 文件系统是文件系统的顶级目录。它必须包含在挂载其它文件系统前需要用来启动 Linux 系统的全部文件。它必须包含需要用来启动剩余文件系统的全部可执行文件和库。文件系统启动以后,所有其他文件系统作为 root 文件系统的子目录挂载到标准的、预定义好的挂载点上。 |
/bin | /bin 目录包含用户的可执行文件。 |
/boot | 包含启动 Linux 系统所需要的静态引导程序和内核可执行文件以及配置文件。 |
/dev | 该目录包含每一个连接到系统的硬件设备的设备文件。这些文件不是设备驱动,而是代表计算机上的每一个计算机能够访问的设备。 |
/etc | 包含主机计算机的本地系统配置文件。 |
/home | 主目录存储用户文件,每一个用户都有一个位于/home 目录中的子目录(作为其主目录)。 |
/lib | 包含启动系统所需要的共享库文件。 |
/media | 一个挂载外部可移动设备的地方,比如主机可能连接了一个 USB 驱动器。 |
/mnt | 一个普通文件系统的临时挂载点(如不可移动的介质),当管理员对一个文件系统进行修复或在其上工作时可以使用。 |
/opt | 可选文件,比如供应商提供的应用程序应该安装在这儿。 |
/root | 这不是 root(/ )文件系统。它是 root 用户的主目录。 |
/sbin | 系统二进制文件。这些是用于系统管理的可执行文件。 |
/tmp | 临时目录。被操作系统和许多程序用来存储临时文件。用户也可能临时在这儿存储文件。注意,存储在这儿的文件可能在任何时候在没有通知的情况下被删除。 |
/usr | 该目录里面包含可共享的、只读的文件,包括可执行二进制文件和库、man 文件以及其他类型的文档。 |
/var | 可变数据文件存储在这儿。这些文件包括日志文件、MySQL 和其他数据库的文件、Web 服务器的数据文件、邮件以及更多。 |
Linux文件系统区分大小写,system和System是不同的文件,另外是Linux文件没有扩展名的概念。
在Linux系统下有两个重要的目录一个是“/”根目录,另一个就是/usr目录,/usr目录主要存放一些共享的只读数据,其下有许多目录,其说明如下:
usr下的子目录 | 作用 |
---|---|
/usr/bin | 存放在单一用户模式下不需要用到的可执行文件 |
/usr/include | 存放一般常用的c语言include文件 |
/usr/lib | 存放函数库与程序,以及不希望一般用户直接使用的可执行文件 |
/usr/local | 让系统管理员用来安装软件的目录 |
/usr/sbin | 存放非必要的程序 |
/usr/share | 存放与结构无关且只读的数据,组件中不会变动的数据 |
文件系统权限
Linux系统是一个典型的多用户系统,不同的用户处于不同的地位。为了保护系统的安全性,Linux系统
对不同用户访问同一文件的权限做了不同的规定。 每一个文件都具有4种访问权限:
(1)可读取(r,Readable)
(2)可写入(w,Writable)
(3)可执行(x,eXecute)
(4)无权限(-)
ls -la
[root@localhost /]# ls -la
total 28
dr-xr-xr-x. 17 root root 224 Jun 24 2022 .
dr-xr-xr-x. 17 root root 224 Jun 24 2022 ..
lrwxrwxrwx. 1 root root 7 Jun 24 2022 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Jun 24 2022 boot
drwxr-xr-x. 19 root root 3260 Apr 11 01:57 dev
drwxr-xr-x. 143 root root 8192 Mar 12 22:55 etc
drwxr-xr-x. 3 root root 18 Jun 24 2022 home
lrwxrwxrwx. 1 root root 7 Jun 24 2022 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Jun 24 2022 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 10 2018 media
drwxr-xr-x. 2 root root 6 Apr 10 2018 mnt
drwxr-xr-x. 3 root root 16 Jun 24 2022 opt
dr-xr-xr-x. 211 root root 0 Apr 11 01:57 proc
dr-xr-x---. 16 root root 4096 Apr 11 02:02 root
drwxr-xr-x. 41 root root 1260 Apr 11 02:02 run
lrwxrwxrwx. 1 root root 8 Jun 24 2022 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 10 2018 srv
dr-xr-xr-x. 13 root root 0 Apr 11 01:57 sys
drwxrwxrwt. 36 root root 4096 Apr 11 02:02 tmp
drwxr-xr-x. 13 root root 155 Jun 24 2022 usr
drwxr-xr-x. 21 root root 4096 Jun 24 2022 var
各字段含义:
字段 | 说明 | 示例 |
---|---|---|
字段1 | 使用权限 | -rw-r–r– |
字段2 | 文件数量 | 1 |
字段3 | 拥有者 | root |
字段4 | 组 | root |
字段5 | 文件大小 | 0 |
字段5 | 文件建立时间 | 3月 16 14:59 |
字段7 | 文件名称 | test |
字段1的第一位:
命令 | 作用 |
---|---|
普通文件 | 权限的10个字符中的第一位是“-”的文件 |
目录文件 | 权限的10个字符中的第一位是“d”的文件 |
硬链接文件 | 除了显示的文件数量,其他都和某个普通文件一模一样的文件 |
软件链接文件 | 权限的10个字符中的第一位是“l”的文件 |
块设备文件 | 权限的10个字符中的第一位是“b”的文件 |
socket文件 | 权限的10个字符中的第一位是“s”的文件 |
字符设备文件 | 权限的10个字符中的第一位是“c”的文件 |
管道文件 | 权限的10个字符中的第一位是“p”的文件 |
setUid可执行文件 | 权限的10个字符中的第一位是“s”的文件 |
setGid可执行文件 | 权限的10个字符中的第一位是“s”的文件 |
setUid加setGid文件 | 权限的10个字符中的第四位和第七位都是“l”的文件 |
字段1的剩余9位:
文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
修改文件权限
chmod [-cfvR] [--help] [--version] mode file...
# rwxrwxrwx : 777
# rw-r--r-- : 644
# rwxr-xr-x : 755
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
权限 | rwx | 二进制 | |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r– | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | –x | 001 |
0 | 无 | — | 000 |
总结:
积累经验,总结教训,坚持学习,加油!!!