0

0

linux os是什么

青灯夜游

青灯夜游

发布时间:2023-02-13 11:30:03

|

5149人浏览过

|

来源于php中文网

原创

在linux中,OS是指操作系统,是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。OS存在的原因:单纯的硬件计算机,操作起来效率特别低下,难度特别高。

linux os是什么

本教程操作环境:linux7.3系统、Dell G3电脑。

前言: OS(操作系统)的学习是很重要的,这里学习操作系统先从Linux开始。

Linux是指令操作的,距离OS更近,更便于我们掌握OS。学习C++,一般从事后端较多,并且Linux对于想要从事后端是非常重要,LInux很大概率就是工作的OS。

一.OS(操作系统)基本概念

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

OS存在的原因:单纯的硬件计算机,操作起来效率特别低下,难度特别高。

 OS是一款软件,用来进行对软硬件资源进行管理的软件,管理目的:对上,对下,提高操作效率。

1.png

现实生活中的操作系统

  • win7

  • Mac

  • Android

  • iOS

二.Linux常见指令

我们为什么要学习指令呢?

        因为所有的操作系统,刚开始的时候都是支持指令操作的,图形化界面是后来才有的,所以指令执行距离OS更近,便于我们更好的掌握OS。

1.ls指令

(1)语法:ls [选项] [目录或文件]  (目录或文件不写为当前目录)

(2)功能:对于目录,该命令列出该目录下的所有子目录和文件。

                    对于文件,将列出文件名及其他信息。

(3)常用选项

① 直接使用ls 只有子目录和文件

② -l 列出文件的详细信息(可以写成ls -l,也可以写成ll

③ -a 列出目录下的所有文件,包括以 . 开头的隐含文件

以 . 开头的文件我们称为隐藏文件,在任意目录下,都会存在两个隐藏文件

.(当前路径) ..(上级路径)

④ -i 输出文件的i节点的索引信息

⑤ -n 用数字的 UID,GID 代替名称

(4)举例

ls -al

2.pwd指令

(1)语法:pwd

(2)功能:显示用户当前所在目录

Linux的路径分割符是:/(斜杠)

Window的路径分割符是:\(反斜杠)

(3)举例

pwd

3.cd指令

        我们一般定位某个文件,是通过路径定位的方式,找到文件的。那为什么我们是通过路径的方式定位文件的呢?

        Linux的目录结构本质是一颗多叉树(1. 每一个子节点既可以是一个目录(再放目录或者普通文件,递归式的定义),也可以是一个普通文件  2. 这颗多叉树的叶子节点,一定是一个普通文件或者空目录)

        因此任何一个节点,可以有多个子节点,但是任何一个子节点,都只有一个父节点。

        所以常规的路径定位是具有唯一性的(绝对路径具有唯一性

除了相对路径,还有绝对路径(相对于当前所处的路径)

如果是日常使用,推荐相对路径 —— 简单

如果是添加配置文件之类,推荐绝对路径 —— 不会出错

(1)语法:cd [目录名]

(2)功能:改变工作目录,将当前工作目录改变到指定的目录下。(进入输入的目录)

(3)常用选项

① cd .. 返回上级目录(.为当前目录,..为上级目录)

② cd 绝对路径

③ cd 相对路径

④ cd - 返回最近访问目录

⑤ cd ~ 进入用户家目录(/home/hb)

(4)举例

cd ..  :返回上级目录

cd /home/hb/code  :绝对路径

cd ../test  :相对路径

cd -  :返回最近访问目录

cd ~  :进入用户家目录

4.touch指令

        如果我们创建了一个空文件,在磁盘中会占据空间吗?

        要占用   文件有属性数据,也是数据

文件 = 文件内容 + 文件属性

我们要学的所有的文件操作无非两类:

①对文件的内容操作

②对文件的属性操作

(1)语法:touch [选项] [文件]

(2)功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件,

(3)常用选项

① 直接使用touch 创建一个文件

(4)举例

touch test.c

5.mkdir指令

(1)语法:mkdir [选项] [目录名字]

(2)功能:在当前目录下创建一个目录

(3)常用选项

-p [路径名称]   可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

(4)举例

mkdir dir  :创建一个目录

mkdir -p dir1/dir2/dir3  :递归建立多个目录

6.rmdir指令 && rm指令

rmdir是一个于mkdir相对于的指令,mkdir是建立目录,而rmdir是删除目录

Ⅰ. rmdir:

(1)语法:rmdir [选项] [目录名字]

(2)功能:删除空目录

(3)常用选项

① -p  当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

(4)举例

rmdir dir

rmdir -p dir

Ⅱ. rm(一般这个用的较多)

(1)语法:rm [选项] [目录名字]

(2)功能:删除文件或目录

(3)常用选项

① 直接使用rm 删除一个文件或目录(文件都可以删除,但只能删除空目录)

② -r  删除目录及其下的所有文件(可以删除非空目录)

③ -f  强制删除文件,即使文件属性为只读(即写保护)

④ -i  删除前逐一询问确认

(4)举例

rm dir  :删除目录

rm test  :删除文件

rm -r dir  :删除目录下所有文件

rm -rf dir  :强制删除目录下所有文件

rm -ir dir  :删除目录下所有文件时依次询问

 * 通配符:匹配当前目录下的任何内容

rm * :删除当前目录下的所有文件(等价于rm ./*)

./  当前目录:告知系统,要访问的资源在当前目录下,如果省略,部分情况下,默认就是当前目录

7.man指令

(1)语法:man [选项] 命令

(2)功能:man相当于一个联机手册,Linux的命令有很多参数,我们不可能全都记住,这时候就可以使用man来获取帮助。

(3)常用选项

① -k 根据关键字搜索联机帮助

② man man 可以搜索man的相关操作

③ 数字 输入对应的数字,会去查找不同的命令

man手册:

1 是普通的命令

2 是系统调用,如open(通过这个可以很方便的查到如何调用这个函数,以及需要加说明头文件) 

3 是库函数,如printf

4 是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如password,就会说明这个文件中各个字段的函数

6 是给游戏留的,由各个游戏自己定义

7 是附件和一些变量,比如像environ这种全局变量在这里就由有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfigman相当于一个联机手册,Linux的命令有很多参数,我们不可能全都记住,这时候就可以使用man来获取帮助。

(4)举例

man 1 ls

man 3 printf

8.cp指令

(1)语法:cp [选项] 源文件或目录 目标文件或目录

(2)功能:复制文件或目录

(3)常用选项

① 直接使用cp 复制一个文件

② -r  递归处理,将指定目录下的文件和子目录一并复制

③ -f  强制复制文件或目录,不论目的文件或目录是否已经存在

④ -i  覆盖之前先询问

(4)举例

cp file.txt file2.txt

cp -r dir1 dir2

cp -rf dir ..

9.mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名,经常用来备份文件或者目录。

(1)语法:mv [选项] 源文件或目录 目标文件或目录

(2)功能

        根据mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

①当第二个参数类型是源文件(源目录)时,mv命令完成文件重命名,此时,源文件只能有一个,它将所给的源文件或目录重命名为给定的目标文件名

②当第二个参数类型是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中

(3)常用选项

① 直接使用mv 移动或重命名一个文件或目录

② -f 如果目标文件已经存在,不会询问直接覆盖

③ -i  若目标文件已经存在时,会询问是否覆盖

(4)举例

mv file.txt a.txt

mv file.txt ..

mv dir1 dir2 dir

10.cat指令

(1)语法:cat [选项] [文件]

(2)功能:查看目标文件的内容

(3)常用选项

① -n 输出行编号

Programming Helper
Programming Helper

AI代码自动生成器,在AI的帮助下更快地编程

下载

(4)举例

cat file.txt

cat -n file.txt

除了cat,还有tac,从后往前查看 

tac file.txt

重定向:

 这里先介绍一个echo,类似于printf,输出信息到显示器上

例如:echo "hello world"

(1)输出重定向

        创建一个文件touch file.txt,然后可以通过echo "hello world" > file.txt,使本来应该写入到显示器的内容,把它写入到文件中(每次都会情况原始文件的内容,进行重新写入)

(2)追加重定向

echo "hello Linux" >> file.txt,类似上面的输出重定向,但是这里是两个>,并且它不会清空原始内容,而是在原始文件的结尾进行新增式的写入

(3)输入重定向

cat < file.txt,输入重定向是把本来应该从键盘文件中读取数据的方式,改成从指定的文件中读取

11.more指令

(1)语法:more [选项] [文件]

(2)功能:功能类似cat,但是可以手动向下翻

(3)常用选项

① -n 输出行编号

② q 退出more

(4)举例

more file.txt

12.less指令

(1)语法:less [选项] 文件

(2)功能:类似cat和more,但是功能更强大,可以向上和向下翻(一般都使用less)

(3)常用选项

① -n 输出行编号

② q 退出less

(4)举例

less file.txt

13.head指令

(1)语法:head [选项] [文件]

(2)功能:显示文件开头(默认显示开头10行)

(3)常用选项

① -n<行数> 想要显示的行数

(4)举例

head -20 file.txt

14.tail指令

(1)语法:rm [选项] [文件]

(2)功能:显示末尾开头(默认显示末尾10行)

(3)常用选项

① -n<行数> 想要显示的行数

(4)举例

tail -20 file.txt

管道:

        如果我们想要查看文件的中间部分,比如一个1万行的文本,我们想要查看[5000, 5030]行的信息,我们怎么办呢?

①创建临时文件

        通过head -5030 file.txt > temp.txt,先得到一个临时文件,然后在tail -30 temp.txt,我们才能看到[5000, 5030]中的信息了。

        比较复杂。

②管道

        管道是用来级联多个命令,来完成流水线式的数据处理工作的。(可以传输数据资源)

        | 这个就是管道

        这么写 head -5030 file.txt | tail -30 就可以通过管道来完成查看了。

15.date指令(时间相关指令)

(1)语法:date [选项] [格式]

(2)功能:指定格式显示时间或者显示时间戳

(3)常用选项

① 在显示上,使用者可以设定想要显示出的格式,格式设定为一个+后接标记,其中常用的标记列表如下:

        %H:小时

        %M:分钟

        %S:秒

        %X:相当于%H:%M:%S

        %d:日

        %m:月份

        %Y:年份

        %F:相当于%Y-%m-%d

② 时间戳

时间->时间戳 date+%s

时间戳->时间 date -d@时间戳

时间戳是从1970年1月1日开始所经过的秒数,不考虑闰秒

(4)举例

date +%Y-%m-%d_%H:%M:%S

date +%s

16.cal指令

(1)语法:cl [选项] [年份]

(2)功能:显示日历

(3)常用选项

① 直接使用就是当前月份

② -3  显示前一个月,当前月,下一个月的月历

③ -y  显示当前年份的年历

(4)举例

cal -3

cal -y 2020

17.find指令

        find命令在目录结构中搜索文件,并执行指定的操作

        Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,因次它的选项也很多。

(1)语法:find [查找位置] [选项] [查找]

(2)功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

(3)常用选项

① -name  按照文件名查找文件

(4)举例

find /usr/include/ -name stdio.h

18.grep指令

(1)语法:grep [选项] 搜寻的字符串 文件

(2)功能:在文件中搜索字符串,将找到的行打印出来(使用正则表达式搜索)

(3)常用选项

① 直接使用grep,打印出带有想要字符串的行

② -i  忽略大小写的不同,将大小写视为相同 

③ -n  输出行号

④ -v  反向打印,打印出没有想要搜寻的字符串的那些行

(4)举例

grep 'hello' file.txt

grep -i 'HeLlo' file.txt

grep -iv 'HeLlo' file.txt

19.zip/unzip指令

        1.zip:

(1)语法:zip 定义压缩文件名.zip [目录或文件]

(2)功能:将目录或文件压缩成zip格式

(3)常用选项

① 直接使用zip 压缩一个文件

② -r  可压缩一个目录下的所有文件

(4)举例

zip test.zip package

zip -r test.zip tar_package

zip -r test.zip -d tar_package

        2.unzip 

(1)语法:unzip 压缩文件

(2)功能:解压缩

(3)常用选项

① 直接使用unzip 解压缩

② -d 指定压缩到哪一个路径下

(4)举例

unzip test.zip

unzip test.zip -d /home

20.tar指令

(1)语法:tar [选项] [文件或目录]

(2)功能:压缩文件或解压缩

(3)常用选项

① -c 建立一个压缩文件

② -z 判断是否具有gzip的属性,是否需要用gzip压缩

③ -f 使用档名,在f之后要立即接档名,不能再加参数

④ -x 解开一个压缩文件

⑤ -t 查看压缩包里面的文件

⑥ -v 压缩的过程中显示文件

⑦ -C 解压到指定目录下

(4)举例

tar czf test.tgz tar_package // 压缩文件

tar xzf test.tgz // 解压缩

tar xzf test.tgz -C /home // 解压缩到指定目录

tar xzvf test.tgz 解压缩过程显示文件

 21.bc指令

(1)语法:bc [数字][符号][数字]

(2)功能:计算器

(3)常用选项

① 直接使用bc 计算

(4)举例

bc 1+2 

22.uname指令

(1)语法:uname [选项]

(2)功能:用来获取电脑和操作系统的相关信息(可用来显示linux主机所用的操作系统的版本、硬件名称等基本信息)

(3)常用选项

① -r 显示内核版本

② -a 详细输出所有信息,依次为内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称

(4)举例

uname -r

uname -a

23.热键

Tab:命令自动补齐

Ctrl+c:终止失控程序

Ctrl+d:快速退出账户

Ctrl+r:搜索历史命令

24.关机指令

(1)语法:shutdown [选项]

(2)功能:关机

(3)常用选项

① -h 将系统的服务停掉后,立即关机

② -r 在将系统的服务停掉之后就重重新启动

③ -t 在-t后加秒数,表示过多少秒关机

(4)举例

 shutdown -h

三.shell命令及运行原理

1.介绍

        Linux严格意义上说的是一个操作系统,我们称之为”核心(kernel)“,但是一般用户不能直接使用kernel,而是通过kernel的”外壳“程序,也就是shell,来与kernel沟通。(shell是一种外壳程序)       

2.作用

        外壳可以保护OS系统,降低操作OS的成本,

        shell外壳:传递用户指令,交给OS,OS执行完毕,结果交给shell,shell再交给用户。

        从技术角度,Shell的简单定义:命令行解释器包含:

①将使用者的命令翻译给kernel处理

②同时,将核心的处理结果翻译给使用者

Linux中,外壳就是命令行解释器。

Window中,外壳就是图形化界面

在centos 7中常用的命令行解释器(shell),叫做bash

四.Linux权限概念

Linux下有两种用户:①超级用户(root)②普通用户

①超级用户:可以在Linux系统下做任何事情,不受限制

②普通用户:在Linux下做有限的事情

③超级用户的命令提示符是"#",普通用户的命令提示符是"$"

命令:su [用户名]

功能:切换用户

从普通用户切换到root用户,使用su root或su -  ,从root用户切换到普通用户user,使用su user

举例:

su -
su user

相关推荐:《Linux视频教程

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

169

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

246

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

34

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号