linux系统
是什么
Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。 Linux是由Linus Torvalds在1991年首次发布的,它主要受到Minix和Unix思想的启发。
主机规划与磁盘分区
在Linux系统中,磁盘分区是一个重要的主机规划步骤。磁盘分区可以帮助您更好地组织文件和数据,并提高系统性能。在Linux中,每个装置都被当成一个文件来对待。IDE 接口的硬盘的文件名即为/dev/sd [a-d],其中,括号内的字母为a-d当中的任意一个,亦即有/dev/sda, /dev/sdb, /dev/sdc, 及 /dev/sdd 这四个文件的意思。 可以使用fdisk命令来创建、删除、调整和显示磁盘分区。 例如,使用fdisk -l命令来列出所有可用的磁盘和分区
linux账号管理
增加删除变更用户
使用以下命令来增加、删除和变更Linux用户:
- 增加用户:
useradd或adduser - 删除用户:
userdel或deluser - 变更用户:
usermod
要增加一个名为“test”的用户:
sudo useradd test
要删除名为“test”的用户:
sudo userdel test
要变更名为“test”的用户的用户名:
sudo usermod -l new_username test
用户功能
分为普通用户与超级用户 普通用户可以进行普通作业 超级用户管理普通用户与系统
新增与删除用户组
要在Linux中创建新的用户组:
sudo groupadd group_name
要删除现有的用户组:
sudo groupdel group_name
认识系统服务
守护进程与服务
在Linux中,守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。在Linux中,守护进程通常以字母d结尾。
服务是一种守护进程,它可以在系统启动时自动启动,并在系统关闭时自动关闭。服务可以通过systemd管理器来控制。要创建一个新的服务,请创建一个新的systemd单元文件,并将其放置在/etc/systemd/system/目录中。要启动服务,请使用以下命令:
sudo systemctl start service_name
要停止服务:
sudo systemctl stop service_name
要重启服务:
sudo systemctl restart service_name
要检查服务状态:
sudo systemctl status service_name
解析超级守护进程的配置文件
守护进程是一种运行在非交互模式下的程序。 它们等待连接,以便通过连接提供服务。 Linux 可以使用从 Web 服务器到 ftp 服务器的很多守护进程。 守护进程的配置文件通常位于/etc目录下,例如httpd.conf和sshd_config等。
系统开启的服务
Linux 系统中,可以使用 service 命令来控制系统服务。service 命令是使用 System V 作为 init 系统的 Linux 发行版中用来控制系统服务的实用工具。service 命令的作用是去 /etc/init.d 目录下寻找相应的服务,可以启动、停止、重启系统服务,还可以显示所有系统服务的当前状态。 要启动 httpd 服务,可以使用以下命令:
service httpd start
要停止 httpd 服务,可以使用以下命令:
service httpd stop
要重启 httpd 服务,可以使用以下命令:
service httpd restart
启动流程
linux的启动流程分析
关于Linux系统的启动流程,可以分为以下步骤: POST(加电自检)–>加载BIOS(Basic Input/Outpu System)–>确定启动设备(Boot sequence)、加载Boot Loader–>加载内核(kernel)初始化initrd–>运行/sbin/init初始化系统–>打印用户登录提示符。
具体到Linux内核的启动过程,可以分为以下几个步骤:
- BIOS自检
- 加载boot loader
- 加载内核
- 初始化initrd
- 运行/sbin/init初始化系统
- 打印用户登录提示符
网络基础
网络模型
网络模型是计算机网络中的一个概念,一般是指 OSI 七层参考模型和 TCP/IP 五层参考模型。OSI 七层参考模型是由国际标准化组织(ISO)制定的一个通信协议参考模型,它将计算机网络体系结构划分为七个层次,每个层次都有特定的功能。TCP/IP 五层参考模型是互联网协议套件中的一个通信协议参考模型,它将计算机网络体系结构划分为五个层次,每个层次都有特定的功能。
socket
Socket 是一种通信机制,它是计算机之间进行通信的一种约定或一种方式。在计算机网络中,Socket 被定义为“打开 - 发送数据 - 关闭”这样一个会话的端点。
在计算机网络中,Socket 是一种抽象层,它提供了一组接口,使得应用程序可以通过这些接口来实现网络通信。Socket 可以用于不同的网络协议,如 TCP、UDP 等。
传输层协议
传输层协议是OSI参考模型中的第四层,传输层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。 传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。
在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Controll Protocol、UDP(用户数据报协议,User Data Protocol)是传输层最重要的两种协议,为上层用户提供级别的通信可靠性。
网络层IP协议
IP协议是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。IP协议使得网络层可以屏蔽底层细节而专注网络层的数据转发。IP协议提供一种无连接/不可靠、尽力而为的数据包传输服务,其与TCP协议(传输控制协议)一起构成了TCP/IP协议族。
linux文件系统
linux文件权限与目录配置
Linux一般将文件可存取的身份分为3种,分别是 owner、group、others。每个身份都有自己的权限,分别是读取(r)、写入(w)、执行(x)。文件的权限分为三级,即文件所有者、文件所属组和其他用户。可以使用chmod命令来修改文件的权限。例如,要将文件file1的权限设置为-rwxr-xr-x,可以使用命令:chmod 755 file1。其中7表示owner的权限,5表示group的权限,5表示others的权限。
linux文件与目录管理
Linux系统中,文件和目录管理是必须学会的命令。在Linux系统中,所有的文件和目录都被视为一个树形结构,称为文件系统。文件系统的根目录为“/”,所有的文件和目录都是从根开始的。 一些常用的Linux目录和文件管理命令:
- pwd:显示当前所在的目录路径。
- cd:切换当前目录。
- ls:列出当前目录下的文件和子目录。
- mkdir:创建新目录。
linux磁盘与文件系统管理
Linux磁盘管理常用三个命令为 df、du 和 fdisk。 df(英文全称:disk free):列出文件系统的整体磁盘使用量。 du(英文全称:disk used):检查磁盘空间使用量。 fdisk:用于磁盘分区
程序管理
什么是进程
进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。通俗来说,进程就是程序的一次执行过程,程序是静态的,它作为系统中的一种资源是永远存在的。而进程是动态的,它是动态的产生,变化和消亡的,拥有其自己的生命周期
对于操作系统来说,一个任务就是一个进程(Process)
进程管理
进程管理是操作系统的一个重要组成部分。它负责对系统中的所有进程进行有效的管理,实现进程状态转换功能。进程是属于操作系统的一个管理对象,它的内部结构包含了很多东西,不仅有编写的代码流程,还有当前跟 CPU、内存等硬件交互的状态信息。
软件安装
软件管理器介绍
RPM DPKG
APT包管理
列出所有可更新的软件清单命令:apt update 安装指定的软件:apt install<package_name> 安装多个软件包:apt install<package_1><package_2><package_3>
内存管理
内存空间的分配与回收
内存管理是操作系统的一个重要组成部分。它负责为作业或进程分配内存空间,当作业或进程结束后,内存空间也会被回收。内存管理的功能包括内存的分配与回收、地址转换、内存空间的扩充和存储保护等
虚拟、物理地址空间
虚拟地址空间是一个非常抽象的概念,它可以用来加载程序数据(数据可能被加载到物理内存上,空间不够就加载到虚拟内存中)。它对应着一段连续的内存地址,起始位置为 0。之所以说虚拟是因为这个起始的 0 地址是被虚拟出来的,不是物理内存的 0 地址。
物理地址空间是物理内存的范围,物理地址空间中的每个物理地址都是实打实地指向了具体的存储单元。虚拟地址空间中每个虚拟地址指向哪里有3种情况: a.未分配,这个虚拟地址仅仅是个数字而已,没有任何指向。 b.未缓冲,这个虚拟地址指向了磁盘的某个字节存储单元,里面存储了指令或者数据。 c.已缓冲,这个虚拟地址指向了物理内存的某个字节存储单元,里面存储了指令或者数据。
进程的隔离与共享
在操作系统中,进程与进程间的内存和数据都是不共享的。这样做的目的,是为了避免进程间相互操作数据的现象发生,从而引起各自的安全问题。为了实现进程隔离,采用了虚拟地址空间,两个进程各自的虚拟地址不同,从逻辑上来实现彼此间的隔离。
每一个进程完成的功能有限,就这样,每个进程就时不时需要与其他进程之间通信了。两个进程之间要进行通信,就需要采用特殊的通信机制:进程间通信(IPC:Inter-Process Communication)。