首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Linux】操作系统 && 常用指令(上)

【Linux】操作系统 && 常用指令(上)

作者头像
埋头编程
发布于 2024-10-16 10:47:33
发布于 2024-10-16 10:47:33
27002
代码可运行
举报
文章被收录于专栏:C/C++C/C++
运行总次数:2
代码可运行

前言

在了解了Linux的发展史(Linux的前世今生)之后,我们就得真正的开始接触了Linux了。不过在这之前,我还是想跟大家聊一聊什么是操作系统,让大家对操作系统有个整体的认知。这对之后我们学习Linux很有帮助!

在本文讲解完操作系统的概念之后,我会再给大家先介绍一些Linux操作系统内的基本指令,至于更多基本指令的讲解可以只需关注我的Linux专栏。

好了,话不多说,让我们愉快的开启本文的学习,领略操作系统的魅力!

1. 什么是操作系统?

在讲这个之前,为了给大家加深操作系统这个概念,我会先给大家介绍计算机的分层结构,相信认真看完这个分层结构的讲解,你一定不会再忘记什么是操作系统了。

1.1 计算机的分层结构

上来就先给大家看一幅图:

计算机的分层结构
计算机的分层结构

我们都知道,计算机由各种硬件所组成,通过各种设备的协调配合来完成我们用户期望的各种任务。那计算机就是由一块块硬件构成,我们只用给这些硬件上电才能开始工作。

每个硬件启动的方式都不一样,但是又让它们相互协调的工作,该怎么办? 此时生产这些硬件的厂商就会开发出一款款驱动程序(所以设备驱动其实就是一款程序)用来作为硬件工作的钥匙。相信这个现象大家是见过的,比如,当我们用钱买来了自己最喜欢的品牌的计算机时,一开机甚至可能连操作系统也没有,我们就得为电脑安装各种驱动,比如显卡驱动、声卡驱动、接口驱动等等。还有一种现象可以解释设备驱动的存在,就是我们讲有线的鼠标插入电脑中的USB结构时,如果我们直接移动鼠标会发现鼠标根本拖不动,大概过了1~2秒之后,鼠标就可以正常拖动了,那么在这段时间中,电脑就是在执行这个驱动程序。

有了设备驱动软件,就相当于实现了硬件到软件的一个过渡。接下来主角闪亮登场,操作系统统筹管理这些设备驱动程序,从而达到在逻辑上对硬件的集中管理。那么操作系统对这些硬件的管理有什么作用?

我们说电脑是给人使用的,那人在电脑上个可能会在各种应用程序上来满足自己的使用需求,在使用的过程中我们希望这款应用程序能做 到"快速、稳定、安全"等各项指标。操作系统就是在干这件事。

1.2 操作系统的概念

敲黑板,重点来了!操作系统的核心工作:通过向下管理着软硬件资源,就是为了向上能够提供稳定、快速、安全的操作/使用环境。

所以我们可以这样说,操作系统其实就是一款管理软硬件的程序

这便是操作系统最本质的理解!!!

如果你还不理解计算机的分层结构,没有关系,我有用一个生活中的例子马上就能给你讲明白:

我们可以这样比作,将"操作系统、设备驱动、硬件"看作时一家公司的三个组成部分。其中“硬件”就代表着程序员,"设备驱动"就代表着产品经理,"操作系统"就代表公司老板,而"应用程序"就代表广大的消费者。有一天,老板向产品经理说,我们这个几个月要开发出一款新的软件,你马上给我跟一下进度。产品经理大气不敢出一声地说,好的老板。过了一会,产品经理就向程序们说老板要我们花几个月的时间开发出一款新的软件,听到这句的程序员们心里面那是一万个不爽啊,当时迫于生计,没办法只能开始程序员们的研发之旅了。过了几个月后,程序终于研发出来,收到了广大消费者的好评,都说这个软件用的很流畅。

那么在这个过程中,我们可以看到这么一个关系链:老板向产品经理发布任务,而产品经理又向程序员们布置任务,最后程序员们只能乖乖照做。这就像极了,操作系统管理着设备驱动程序,而设备驱动程序又管理着各硬件设备,最终的目的就是为了给用户提供一个安全、快速、稳定的使用环境。

1.3 如何理解我们现在在计算机上的各种操作?

我所学的知识最终还是要于实际生话挂钩的,那我们就得想一下:迄今为止,我们在计算机上所有的操作该怎么理解呢?(比如:我们在电脑上打游戏、用printf函数在屏幕上打印信息、将文件写入磁盘中等等…)

其实,我们在计算机上的一切行为,最终都会转化为一条条机器指令,告诉计算机的硬件你现在该干什么事情了

我们所有的软件行为,全部都要自顶向下贯穿计算机的软硬件结构。换句话说,我们的所有软件行为,未来都要和操作系统有着直接或间接的联系。

这里有个动词"贯穿",该如何理解? 在仔细回想一下计算机结构的分层图:

计算机的分层结构
计算机的分层结构

我们用户站在最高层,每当使用应用软件时,都要经过操作系统,设备驱动,最后依靠硬件来帮助完成任务。才会把最终的结果显示在我们的眼前。可以看到这是一个一直向下的方向,贯穿到硬件这个层面!!!

好了,至此有关操作系统的概念我已经给大家全部讲完了,希望大家能够有所收获。

接下来,我就要给大家介绍在Linux操作系统之下,我们该如何使用指令完成一些基本操作。鉴于大家可能是学习Linux的小白,指令的讲解我会结合Windows操作的效果给大家进行一个对比的学习,这样大家才能更加深刻的理解。

2. Linux的基本指令(部分)

2.1 mkdir 指令(重要)

  • 语法:mkdir [选项] dirname…(其中这个dirname可以自行定义)
  • 功能:在当前目录下创建一个名为"dirname"目录

这个就相当于我们在Windows环境下,自己创建了一个文件夹,而文件夹的名字就叫做"dirname"。

使用演示:

演示
演示
  • 常用选项:
  • -p,后面是一个路径名称。此时若是路径中的某些目录尚不存在,加上此选项之后,系统将自动建立那些尚不存在的目录,即可以一次性创建多个目录
使用案例
使用案例

2.2 ls 指令

  • 语法:ls [选项] [目录或文件]
  • 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其它信息。

可能有人会问"选项"是个什么东西?

大家其实可以这么理解,一个选项相当于大功能下的一个子功能。一般默认情况下,子功能需要自己去设置。

  • 选项:
  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录 -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件 -l 列出文件的详细信息。 -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID) -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别) -r 对目录反向排序。 -t 以时间排序。 -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件) -R 列出所有子目录下的文件。(递归) -1 一行只输出一个文件。

这个命令就相当于我们在Windows系统下,查找一个文件的属性。文件的属性包括文件名、文件大小、文件被创建的时间等等。

这里给大家拓展一个小知识:如果我在电脑上创建了一个文本文件,但是我没有给这个文本文件输入任何内容,那这文件占据磁盘的空间吗? 答案:肯定占用。原因是,文件 = 文件大小 + 属性

  • 使用演示: 基本操作:
在这里插入图片描述
在这里插入图片描述

进阶展示:

在这里插入图片描述
在这里插入图片描述

现在我们就可以看到在root文件下有ddir1和dir1目录以及test.c文件。

我们还可以这样写:

操作
操作

指令中的选项可以组合来显示,可以看到上面两种写法带来的效果是等价的。

在这里插入图片描述
在这里插入图片描述
2.2.1 ...

可能有眼尖的读者看到了,有两个目录的命名竟然是 ...,这究竟是什么东西?

其实, ...相当于Windows系统下的隐藏文件。而 .则代表当前目录,..则代表上一级目录。 这个其实是可以证明的,我们可以用cd命令来展示。

2.3 cd 指令

  • 语法:cd 目录名
  • 功能:改变工作目录。将当前目录改变到指定目录下。

这个可以理解为,假设我在Windows系统下,有一个文件名为test.txt。现在我想进入到这个文件里面进行操作,在Windows视角下,我只需要双击鼠标的左键即可。而在Linux系统下,cd指令就相当于进入了一个文件。至于我们该如何查看自己当前所在的路径,可以用pwd指令,这个我接下来就会讲。

  • 使用演示:
在这里插入图片描述
在这里插入图片描述

可以看到,我们的确是进入到这个目录之下了。

接下来,我们在深入的探讨一下Linux系统中的一些知识: 在Linux系统中,磁盘上的文件和目录会被组成一棵目录树,每个节点都是目录或文件。

演示图
演示图

可以看到上面这幅图,呈现是一颗多叉树。

为此我们就可以理解cd以下的一些操作:

  • cd .. : 返回上级目录
  • cd /home/litao/linux/ : 绝对路径
  • cd …/day02/ : 相对路径
  • cd ~:进入用户家目
  • cd -:返回最近访问目录

展示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 pwd 命令

  • 语法:pwd
  • 作用:显示当前用户所在的路径

这个就相当于在Windows系统下,我可以直接查看文件的路径一样!

  • 使用演示:

2.5 touch 指令

  • 语法:touch [选项] … 文件…
  • 功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者创建一个不存在的文件。
  • 常用选项:

a 或–time=atime或–time=access或–time=use只更改存取时间。 -c 或–no-create 不建立任何文档。 -d 使用指定的日期时间,而非现在的时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m 或–time=mtime或–time=modify 只更改变动时间。 -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t 使用指定的日期时间,而非现在的时间

2.6 rmdir 指令 && rm 指令

rmdir是一个于mkdir相应的命令,mkdir是建立目录,rmdir是删除命令。

  • 语法:rmdir [-p][dirname]
  • 适用对象:具有当前目录操作权限的所有使用者
  • 功能:删除空目录
  • 使用注意事项:只能删除空目录,如果目录中存在内容是不能够删除的。
  • 常用选项:

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

rm命令可以同时删除文件或目录(比较常用)

  • 语法:rm [-f-i-r-v] [dirname]
  • 适用对象:所用的使用者
  • 功能:删除文件或目录
  • 常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除 -i 删除前逐一询问确认 -r 删除目录及其下所有文件

2.7 clear 指令

  • 语法:clear
  • 作用:清除屏幕上的内容

好了本文,就先讲这么些Linux的基本指令。希望大家,能够多加联系熟悉灵活的使用!!!

如果觉得本文讲得还不错得话,麻烦给偶点个赞吧!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
优雅设计之美:实现Vue应用程序的时尚布局
页面布局是减少代码重复和创建可维护且具有专业外观的应用程序的基本模式。如果使用的是Nuxt,则可以提供开箱即用的优雅解决方案。然而,令人遗憾的是,在Vue中,这些问题并未得到官方文档的解决。
葡萄城控件
2023/11/07
4750
优雅设计之美:实现Vue应用程序的时尚布局
Vue3 结合 TypeScript 项目开发使用指南及组件封装实操方法
这些方法与Vue3+TypeScript项目结合,可以帮助你高效构建高质量的前端应用。
小焱
2025/05/29
2770
Vue3 结合 TypeScript 项目开发使用指南及组件封装实操方法
一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
超干货长文预警。这次把网页布局方案讲得通通透透的,等高布局,水平垂直居中,经典的圣杯布局等等全都有了。建议收藏
夜尽天明
2020/09/17
6.1K0
一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
Nuxt3 项目基础配置超详细 and 项目模板
Nuxt基础配置模板地址 https://github.com/Seven7v/Nuxt3-vue3-project
KID.
2023/10/26
2.4K0
Nuxt3 项目基础配置超详细 and 项目模板
【Vue3】什么是路由?Vue中的路由基本切换~
在介绍本节的内容之前,我们首先还是老样子,准备好需要的代码,准备好必要的html代码,方便后面的操作,这里我们写了三个a标签,学过前端的都知道,我这是要创建链接,这就引出了路由和路径的关联
小馒头学Python
2024/05/07
2420
【Vue3】什么是路由?Vue中的路由基本切换~
如何使用Flexbox和CSS Grid,实现高效布局
CSS 浮动属性一直是网站上排列元素的主要方法之一,但是当实现复杂布局时,这种方法不总是那么理想。幸运的是,在现代网页设计时代,使用 Flexbox 和 CSS Grid 来对齐元素,变得相对容易起来。
葡萄城控件
2022/05/09
4K0
如何使用Flexbox和CSS Grid,实现高效布局
Grid layout + 媒体查询轻易实现常用的响应式布局
最近在整理前端知识体系,怎么可以少了布局这一环呢?先问大家一个问题,如果让css只保留一种布局,留下来解决前端布局问题?你会选择那个布局呢?如果问我,我会选择 网格布局,根据二八原则,网格布局基本上可以帮助我解决 80% 的布局场景,颇有一套布局打遍天下布局的气势,因此非常值得一探究竟。
老码小张
2023/11/28
9730
Grid layout + 媒体查询轻易实现常用的响应式布局
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)
描述: 前面相信大家已经跟着【WeiyiGeek】作者一起学习了CSS基础知识了,并且了解了盒子模型、以及元素的定位浮动方面的知识。现在我们在此基础上继续深入学习CSS布局,它是学习CSS之路上一个重点,是在进行前端开发时常常使用到的,所以说我们需要认真学习,若有不懂的地方可以在文章末尾,以及作者交流群【在公众号回复微信交流群】进行留言交流。
全栈工程师修炼指南
2023/10/31
1.1K0
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)
nuxt3目录结构详解
在 Nuxt.js 3 中,一个应用程序的文件夹结构具有一定的规范性。以下是 Nuxt.js 3 的文件夹结构及其用途的详细解释:
小小孩子们
2024/02/03
3.4K0
【Vue H5项目实战】从0到1的自助点餐系统—— 项目页面布局(Vue3.2 + Vite + TS + Vant + Pinia + Nodejs + Mo
今日推荐:机器学习模型从理论到实战|【007-K均值聚类(K-Means)】新闻主题分类
中杯可乐多加冰
2024/12/03
3210
使用网络构建复杂布局超实用的技巧,赶紧收藏吧!
作者:Shadid Haque 译者:前端小智 来源:soshace 点赞再看,微信搜索 【大迁世界】 关注这个没有大厂背景,但有着一股向上积极心态人。本文 GitHub https://github.com/qq44924588... 上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。 1024程序员节,160就能买到400的书,红宝书 5 折 网格布局是现代CSS中最强大的功能之一。使用网格布局可以帮助我们在没有任何外部 UI 框架的情况下构建复杂的、快速响的布局。在这篇文章中,将会介绍所有
前端小智@大迁世界
2020/10/30
1.2K0
使用网络构建复杂布局超实用的技巧,赶紧收藏吧!
Grid布局简介
没错,这其实就是我们小时候写的小格子本本,其实它跟我们今天要讲的主题Grid布局非常类似,其实Grid布局就是它的升级加强版。
桃翁
2018/08/16
7.6K2
Grid布局简介
从零玩转系列之微信支付实战PC端项目构建+页面基础搭建 | 技术创作特训营第一期
欢迎来到本期的博客!在这篇文章中,我们将带您深入了解前端开发领域中的一个热门话题:
杨不易呀
2023/08/09
9435
从零玩转系列之微信支付实战PC端项目构建+页面基础搭建 | 技术创作特训营第一期
【Web前端】项目实训:CSS基本布局理解
对CSS学习已经接近尾声,下面你可以对以下两道“小卡拉米”测试进行测试下CSS理解程度。
一条晒干的咸鱼
2024/11/19
4520
【Web前端】项目实训:CSS基本布局理解
Vue 魔法师 —— 重构“布局”
title: Vue 魔法师 —— layouts date: 2021-03-17 tags:
掘金安东尼
2022/09/22
8070
Vue 魔法师 —— 重构“布局”
tauri2.0-winos基于vite6+tauri2+vue3客户端os系统
经过半个月的高强度研发,原创自研Tauri2.0-Vue3-MacOS客户端OS桌面系统终于宣告完结。
andy2018
2024/12/23
3980
tauri2.0-winos基于vite6+tauri2+vue3客户端os系统
HTML 布局是指使用 HTML 元素和 CSS 样式来组织和排列网页内容的结构方式
HTML 布局是指使用 HTML 元素和 CSS 样式来组织和排列网页内容的结构方式。合理的布局能提升用户体验和页面可读性。
西里网
2025/04/25
1570
CSS 中的 Grid 布局 完全指南
Grid 是一个基于二维网格布局的系统,有了它我们可以非常方便的实现过去很复杂布局,无需再使用float, inline-block, position 这些本质上是 hack 的方法。
羽月
2022/10/08
4.3K0
CSS 中的 Grid 布局 完全指南
48. Vue路由-使用命名视图实现经典布局
在前面的路由篇章中,我在写router-view的时候并没有什么特征标识,也就是所有路由映射的组件都可以显示出来。但是在一些经典后台布局中,一般什么组件在哪里显示是需要固定好的,如下:
Devops海洋的渔夫
2020/07/22
6150
ElementUI 整体页面布局
因为我们的首页是个公共的组件,点击首页,会员管理,都不会变,所以我们可以放在一个单独文件夹里面。
py3study
2021/03/16
4.7K1
推荐阅读
相关推荐
优雅设计之美:实现Vue应用程序的时尚布局
更多 >
LV.2
这个人很懒,什么都没有留下~
目录
  • 前言
  • 1. 什么是操作系统?
    • 1.1 计算机的分层结构
    • 1.2 操作系统的概念
    • 1.3 如何理解我们现在在计算机上的各种操作?
  • 2. Linux的基本指令(部分)
    • 2.1 mkdir 指令(重要)
    • 2.2 ls 指令
      • 2.2.1 . 和 ..
    • 2.3 cd 指令
    • 2.4 pwd 命令
    • 2.5 touch 指令
    • 2.6 rmdir 指令 && rm 指令
    • 2.7 clear 指令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验