一、Linux 概述
1. 什么是Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2. 什么是 Linux 内核?
Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。
系统内存管理
应用程序管理
硬件设备管理
文件系统管理
Linux内核是Linux操作系统的核心部分,它负责管理计算机的硬件资源,并提供访问和控制这些资源的接口。具体来说,Linux内核承担以下几个主要功能:
1. 系统调度和管理:Linux内核负责管理CPU的调度和进程的运行,确保各个进程能够合理地共享CPU时间和其他系统资源。
2. 内存管理:Linux内核管理计算机的物理内存和虚拟内存,包括内存的分配、释放和页交换等操作,以确保系统的稳定性和性能。
3. 设备驱动程序:Linux内核包含了各种设备驱动程序,用于管理和操作计算机的硬件设备,如网卡、显卡、硬盘等。
4. 文件系统管理:Linux内核支持多种文件系统,如Ext4、XFS等,负责管理磁盘上的数据存储和文件操作。
5. 网络支持:Linux内核提供了网络协议栈和网络设备驱动程序,支持计算机通过网络进行通信和数据传输。
6. 安全管理:Linux内核实现了多层次的安全机制,包括访问控制、用户身份验证、进程隔离等,以确保系统的安全性和稳定性。
总之,Linux内核是Linux操作系统的核心组件,它负责管理和协调系统的各种资源,为用户和应用程序提供一个稳定、高效的运行环境。
3.常用Linux命令
-
Linux常见命令 cd 切换到另一个目录,切换文件夹 pwd 打印当前所在目录 mkdir 创建目录,使用-选项可以级联创建目录 rmdir 删除空目录,必须是空目录。 rm 删除文件 rm -f 强制删除文件 ls 列出目录内容 ls -a
查看当前目录下所有目录和文件(包括隐藏的文件)
ls -d 显示目录本身而不是显示目录下的文件,默认ls后面的参数如果是目录,则会显示目录下的文件,如:ls/root ls -R 列出当前目录下的所有文件,如果有目录遍历所有目录及其子目录下的文件 ls -l/ll
列表查看当前目录下的所有目录和文件
touch 新建一个文件 mv 移动或重命名文件或目录 mv a b
将a目录改为b
mv目录名称 目录位置
对目录进行剪切操作
cp目录名称 拷贝位置
将目录拷贝到指定位置
find 目录
查找文件
man命令
查看说明书
cp 复制文件或目录 clear 清屏 chmod +x 文件名
加执行权限 ps -ef
列出系统中当前所有进程的详细信息 Cat 是一个命令,用于连接文件并打印它们的内容到标准输出设备(通常是终端窗口) fg 命令的作用是将最近的或指定的后台作业移至前台运行。 more 分页查看文件内容 less 分页查看文件内容,支持向前翻页 head 查看文件的开头部分 tail 查看文件的结尾部分 shutdown -h now/5
立刻关机/5分钟后关机 shutdown -r now/5
立刻重启/5分钟后重启 -
查找文件
-
find [路径] -name "*.py" 查找指定路径下扩展名是.py的文件夹,包括子目录
-
实例:
-
3.1搜索桌面目录下,文件名包含1的文件
-
1 find -name "*1*"
3.2搜索桌面目录下,所有以.txt为扩展名
find -name "*.txt*"
3.3搜素桌面目录下,以数字1开头的文件
find -name "1*"
grep 在文件中搜索字符串
grep [options] pattern [files]
其中:
pattern
是你要搜索的正则表达式模式。[files]
是你要在其中搜索的文件列表。如果没有指定文件,默认情况下grep
会从标准输入中读取内容。
4.软链接
In -s 被链接的源文件 链接文件
作用:建立文件的软链接,用通俗的方式讲类似于Windows下的快捷方式
注意:
1.没有-s选项建立的是一个硬链接文件两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
2.源文件要使用绝对路径,不能使用相对路径,这杨可以方便移动链接文件后,仍然能够正常使用
5.堆和栈的区别
(1)申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;
(2)申请大小的不同。栈获得的空间较小,而堆获得的空间较大;
(3)申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;
(4)存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排。
(5)底层不同。栈是连续的空间,而堆是不连续的空间。