系列文章目录
` 提示: 仅用于个人学习,进行查漏补缺使用。
- Linux介绍、目录结构、文件基本属性、Shell
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
本章内容有:
Linux介绍、内核与发行版、不同版本区别
Linux目录结构
Linux文件基本属性
Shell介绍
提示:以下是本篇文章正文内容,下面案例可供参考
一、Linux介绍
Linux内核与发行版
- Linux内核与Linux发行版是Linux操作系统的两个核心概念,它们共同构成了我们通常所说的Linux操作系统。
Linux内核 (Linux Kernel)
Linux内核是由Linus Torvalds于1991年首次发布的一个自由和开放源代码的操作系统内核。它是操作系统中最基本的部分,负责管理计算机的硬件资源,并提供接口以便用户和其他软件可以与硬件进行交互。
- 主要功能包括:
- 进程管理:负责进程的创建、终止、调度以及提供进程间通信机制。
- 内存管理:管理物理内存和虚拟内存,确保每个进程都能获得所需内存资源。
- 文件系统:提供文件及目录的管理,包括文件的读写、权限控制等。
- 设备驱动:管理所有硬件设备,提供统一的接口供用户空间程序使用。
- 网络通信:实现数据包的发送和接收,以及网络协议栈的管理。
Linux发行版 (Linux Distributions)
Linux发行版是基于Linux内核,加上一系列软件包和工具构建的完整操作系统。它们通常包括一个图形用户界面、系统管理工具、文本编辑器、开发工具、服务器软件等。
以下是一些流行的Linux发行版:
- Ubuntu:基于Debian,以易于使用著称,拥有庞大的用户社区和丰富的在线资源。
- Debian:一个非常稳定和安全的发行版,许多其他发行版(包括Ubuntu)都是基于Debian构建的。
- Fedora:由红帽支持,以最新的自由和开源软件为特色。
- Red Hat Enterprise Linux (RHEL):面向商业用户,以其稳定性和长期支持而闻名。
- CentOS:基于RHEL的源代码构建,为个人用户提供了类似的稳定性和功能,但免费。
- Arch Linux:面向高级用户和开发者的轻量级发行版,以其滚动更新和高度可定制性著称。
- openSUSE:以其构建服务SUSE Studio而知名,用户可以轻松定制自己的Linux系统。
- Linux Mint:基于Ubuntu,提供了一种更传统的用户界面和体验,特别受新用户的欢迎。
不同发行版之间的主要区别:
- 默认软件包:不同的发行版可能会预装不同的应用程序和工具。
- 桌面环境:不同的发行版可能会选择不同的桌面环境,如GNOME、KDE、XFCE等,这些桌面环境提供了不同的用户界面和工作流程。
- 包管理器:不同的发行版可能会使用不同的包管理器,如dpkg、rpm、pacman等,用于安装、更新软件包。
- 目标用户:不同的发行版可能会针对不同类型的用户,如新手、开发者、企业用户等。
Linux内核和Linux发行版共同发展,形成了多样化的Linux生态系统,为各种规模和组织提供了强大的操作系统解决方案。
二、Linux系统目录结构
用CentOS7举例:登录系统后,在当前命令窗口下输入命令ls :
树状目录结构:
Linux系统的目录结构是层次化的,它以根目录/
为起点,所有的文件和目录都挂载在根目录下。这种结构设计借鉴了Unix系统的目录设计哲学,旨在逻辑清晰地组织系统资源。以下是一些主要的目录及其作用:
- **/boot:**存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
- /etc:存放所有的系统需要的配置文件和**子目录列表,**更改目录下的文件可能会导致系统不能启动。存放系统程序和大部分应用程序(rpm/yum安装)的配置文件(一般以.conf和.ini等结尾)
- /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件(依赖)。几乎所有的应用程序都需要用到这些共享库。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
指令集合:
- **/bin:**存放着最常用的程序和指令
- **/sbin:**只有系统管理员能使用的程序和指令。
外部文件管理:
- **/dev :**Device(设备)的缩写, 存放的是Linux的外部设备。**注意:**在Linux中访问设备和访问文件的方式是相同的。
- /media:类windows的**其他设备,**例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
- /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
- /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
- /tmp:这个目录是用来存放一些临时文件的。
账户:
- /root:系统管理员的用户主目录。
- /home:用户的主目录,以用户的账号命名的。
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- **/usr/bin:**系统用户使用的应用程序与指令。
- **/usr/sbin:**超级用户使用的比较高级的管理程序和系统守护程序。
- **/usr/src:**内核源代码默认的放置目录。
运行过程中要用:
- /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
- /proc:管理**内存空间!**虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
扩展用的:
- /opt:默认是空的,我们安装额外软件可以放在这个里面。
- /srv:存放服务启动后需要提取的数据**(不用服务器就是空)**
补充:
- Linux的这种目录结构设计为系统的稳定性和可管理性提供了良好的基础。不同的目录服务于不同的目的,有助于系统的维护和故障排除。
- 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
- /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
- /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
- /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
三、Linux文件基本属性
- Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
- 为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
- Linux文件基本属性反映了在Linux操作系统中,文件对于不同用户的访问权限和文件类型。这些属性确保了系统的安全性和组织结构。
- chown (change owner) : 修改所属用户与组。
- chmod (change mode) : 修改用户的权限。
- 在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:
[root@localhost /]# ls -l
总用量 20
lrwxrwxrwx. 1 root root 7 7月 29 19:36 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 7月 29 22:54 boot
drwxr-xr-x. 20 root root 3300 7月 29 22:54 dev
drwxr-xr-x. 139 root root 8192 7月 29 22:56 etc
drwxr-xr-x. 3 root root 17 7月 29 22:56 home
lrwxrwxrwx. 1 root root 7 7月 29 19:36 lib -> usr/lib
...
实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为 d 则是目录
- 当为 - 则是文件;
- 若是 l 则表示为链接文档(link file);
- 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
从左至右用 0-9 这些数字来表示。
第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;
第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。
四、Shell
概述
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当“翻译官”
- 用户登录Linux系统时,自动加载一个Shell程序
- Bash是Linux系统中默认使用的Shell程序
五、补充
-
Shell 还有一种功能,就是可以将两个或者多个命令(程序或者进程)连接到一起,把一个命令的输出作为下一个命令的输入以这种方式连接的两个或者多个命令就形成了管道(pipe)
- 例:find /etc/ -type f -name “name” -size +10G | wc -l ;
- 意思解释:在
/etc/
目录及其子目录中查找所有文件名中包含 “name” 的文件,并且这些文件的大小超过10GB。然后,find
命令的输出(文件列表)通过管道传递给wc -l
命令,wc -l
命令计算并输出这些文件的数量。
-
本章的Xmind导图与笔记如下,需要自取:
链接:https://pan.baidu.com/s/1PZgJAhJjTzgat64AzpZFJw?pwd=1234
提取码:1234