初识Linux+Linux基本指令(一)
目录
一.😆计算机与操作系统😆
计算机与操作系统发展史简介:
计算机与操作系统的关系:
二.😄Linux操作系统😄
开源软件的代名词:Linux
非图形化界面的Liunx
三.😆Linux基本指令之文件管理篇😆
1.操作系统组织文件的数据结构
关于操作系统文件树的几个重要概念和知识点:
操作系统中文件的标识
树形结构组织文件的优势:
2.操作系统中指令的本质
3.Linux之cd指令
Linux的系统用户
cd伴生指令
4.Linux之文件查阅指令
ls指令:目录文件查看
stat指令:
Linux中文本文件内容显示指令:
Linux中最常用的文本翻阅指令:less指令
5.目录文件和普通文件的创建与删除
6.文件的拷贝和剪切
7.输入输出重定向和Linux管道
输出重定向:
输入重定向:
初识Linux管道:
一.😆计算机与操作系统😆
计算机与操作系统发展史简介:
- 🧐世界上第一台计算机(1946年)是美国科学家为了计算导弹弹道而制造出来的庞然大物,那时候的计算机体积巨大,而且当时并没有操作系统的概念,所以计算机的操作和维护成本十分巨大,仅仅只有顶尖的实验室人员才能使用
- 🧐1969年,贝尔实验室的肯汤普森和丹尼斯里奇(C语言之父)分别用汇编语言和C语言实现了Unix操作系统,计算机的应用开始普及到一般的高校研究人员层面(Unix操作界面是纯粹的黑屏指令操作)
- 🧐随着技术的进步,计算机运算核心(芯片)的集成度越来越高,体积越来越小,计算效率越来越高。于是便有了芯片领域的摩尔定律:在一定大小的集成电路上,晶体管的数量每隔18个月就会增长一倍,芯片的性能也会随之提高,价格则会下降。
- 🧐芯片的快速发展和操作系统的出现,让微软和苹果两大公司最早看到了计算机民用化的可能性,并开始研发民用计算机和用户界面型操作系统(比如微软的window,苹果的mac)(这两家公司的研发成果大都是闭源的,即核心技术和源代码不对外公开),于是计算机进入了商业化的快速发展阶段直到今天。
计算机与操作系统的关系:
- 😍操作系统的内核是用于管理计算机硬件和软件的代码集群(一组程序和数据的集合),它的出现的初衷是为了使人们能够更加方便,更加低成本地使用计算机:
- 😍操作系统是计算机的管理者
- 😍操作系统对上要管理和控制所有的应用软件,并为其提供稳定的运行环境和资源
- 😍操作系统对下要管理和控制计算机的硬件体系资源,使其可以被合理地分配和利用
- 😍同时,操作系统还负责管理用户和应用软件之间的信息交互
二.😄Linux操作系统😄
开源软件的代名词:Linux
- 🙂上世纪90年代,来自芬兰的大学生Linus在Unix操作系统的基础之上开发出了Linux操作系统并将其进行开源(内核源代码完全对外公开)
- 🙂Linux内核代码公开后,有众多的软件工程师都参与了Liunx操作系统的改进和发展,使得Linux操作系统变得更加高效,更加稳定,更加安全(相比于闭源的操作系统(比如windows)),如今,Linux已被绝大多数企业应用于服务器开发,桌面操作系统开发,移动嵌入式开发,云计算/大数据等领域.
非图形化界面的Liunx
- 😇在非图形化界面的Linux之下,我们只能单纯利用命令行对计算机进行操作.
- 😇纯命令行界面:(XShell远程链接并操作云服务器(Linux操作系统))
- 🙂相比于图形化界面操作计算机的方法,纯命令行操作(指令操作)计算机的方法有如下特点:
- 🙂指令是操作系统直接为我们提供的操作接口,因此指令操作能让我们更贴近操作系统
- 🙂图形化界面操作实质是调用经过封装的指令,因此直接输入指令操作计算机效率更高
- 🙂因此在企业级开发中,我们通常使用的都是纯命令行界面的Liunx操作系统
三.😆Linux基本指令之文件管理篇😆
1.操作系统组织文件的数据结构
- 😄在磁盘中,操作系统组织文件所使用的数据结构为多叉树:
关于操作系统文件树的几个重要概念和知识点:
- 🤪文件树中的文件分为两大类型:一种是目录文件(相当于windows下的文件夹),一种是普通文件(用于存储各种数据,代码段(比如.c文件),指令段等等的文件)
- 🤪普通文件位于文件树的叶子结点位置:
- 🤪整颗文件树有且只有一个根目录(Linux下根目录文件名为"/"),根据数据结构中树的特点,文件树中,每个非根结点有且只有一个前驱结点(后继结点可以有多个)
操作系统中文件的标识
- 🤪文件的绝对路径:一个文件的绝对路径指的是从根目录出发,沿着连通路径访问到该文件所经历的最短路径(根据树的结构特点,该路径一定是唯一的)(因此文件的绝对路径可以用于标识文件)
- 🤪文件的标识分为两个部分:文件的绝对路径 + 文件名
- 🤪在操作系统的命令行界面,可以通过 "." +文件的标识来直接访问某个文件:(以上图中的test.c为例)
vim ./home/work/test.c //通过vim编辑器打开test.c文件
树形结构组织文件的优势:
- 🤪树的结构保证树的每个非根节点有且只有一个前驱结点,因此文件的标识(绝对路径+文件名)是唯一的,因此我们可以唯一地标识一个文件并很明确地定位它
- 🤪树形结构引索文件的效率很高.比如:由一亿个文件构成的满二叉树结构,树的高度只有三十多层,即每个文件的绝对路径长度最大为三十左右,从根目录开始要访问某个文件只需遍历三十多个结点,效率非常高(试想若换成顺序结构,各文件的绝对路径长度会非常大)
2.操作系统中指令的本质
- 😄操作系统中指令的本质是一系列可执行程序,我们可以使用which指令来查看特定指令的系统路径
- 😄实际上,操作系统中所有指令,工具,命令等等本质上都是可执行程序
3.Linux之cd指令
Linux的系统用户
- 🤔Linux操作系统是一个多用户的操作系统,新装的Linux操作系统一般只有一个root用户,root用户同时也是操作系统中权限最高的用户,在root用户下,我们可以通过如下命令添加用户,设置新用户密码,查看当前我们所登录的用户,以及删除用户:
adduser 用户名 //添加用户passwd 用户名 //设置用户密码whoami //查看当前我们所登录的用户userdel 用户名 //删除用户
🤔Linux操作系统的根目录为/,根目录下有多个子目录文件,其中有一个就是home目录文件,home目录文件中存放着各个非root用户的专属目录文件:
🤔与home目录同层的其他目录中一般存放与操作系统内核相关的程序文件
🤔每当我们登录Linux操作系统,就会默认来到所登录用户的专属目录文件之下,该目录称为该用户的初始工作目录,后续操作中我们可以通过指令:cd ~ 随时回到初始工作目录下,如果我们想查询自己当前所处的目录(所处的文件路径),可以使用指令:pwd
cd ~ //回到初始工作目录下 pwd //查看自己当前所处的文件路径
cd伴生指令
🤔改变工作目录:
- 🤔Linux下的相对路径:".."代表当前工作目录的上级目录, "."代表当前工作目录(".."和"."是相对路径的标识开头)
cd .. //返回上级目录
//通过文件的相对路径进入指定目录 cd ./文件名 //进入当前路径的 /文件 目录下 cd ../文件 //进入上级路径的 /文件 目录下//通过绝对路径进入指定目录 cd 文件标识
- 🤔图示:
- 🤔基于树的结构,返回上级路径的路径选择是唯一的
cd - //返回最近访问目录
4.Linux之文件查阅指令
ls指令:目录文件查看
- 🤔ls指令可以查看我们当前所处目录下的各个子文件(所处文件结点的各个子文件)
🤔指令常用选项:
ls -a //可以显示隐藏文件 ls -l //可以查看文件详细信息
🤔Linux中以"."开头的文件为隐藏文件
🤔"ls -l"中"-l"的含义是以list的形式显示更多文件信息
stat指令:
- 🤔如果想查看指定文件被创建,被修改的相关时间日志信息,可以使用stat指令:
stat 文件标识 //查看特定目录下各子文件的信息
Linux中文本文件内容显示指令:
- 🤔cat指令:显示文本文件中的内容
cat 文本文件标识 //显示指定文本文件内容
🤔head -数字:显示文本文件前一定行数的内容
head -20 文本文件标识 //显示文本文件前20行的内容
🤔tail -数字:显示文本文件后一定行数的内容
tail -20 文本文件标识 //显示文本文件尾20行的内容
Linux中最常用的文本翻阅指令:less指令
less /var/log/dmesg.old //翻阅日志信息
- less指令一般用于翻阅大篇幅的文本文件的内容,输入指令后可以通过[pageup][pagedown]按键上下翻阅文本
- 其中还内置很多搜索功能,可以通过man指令查看其详细功能(man指令本身的使用方法可以通过man自身来查看)
man 1 less // 1代表查看系统指令 less是所查看的指令手册 man man // 查看man自身的使用手册
5.目录文件和普通文件的创建与删除
- 🤔创建普通文件:
touch 文件名 //当前工作目录下创建文件
🤔在文件名前加上绝对路径或者相对路径,也可以实现在指定路径下创建普通文件
🤔创建目录文件
mkdir 已存在绝对路径或相对路径/目录名 //在指定目录下创建目录文件 mkdir -p 新建的绝对路径或相对路径 //在文件树中新增一条文件路径
🤔删除普通文件: rm指令
rm -f 文件绝对路径标识或相对路径标识 //删除指定目录下的普通文件
🤔删除目录文件: rmdir和rm指令
rmdir 目录文件绝对路径标识或相对路径标识 //删除一个空目录 rm -f -r 目录文件绝对路径标识或相对路径标识 //删除指定目录及其下的所有子文件
🤔-f 在Linux中一般表示强制操作(屏蔽提示);-r 在Linux中一般表示递归,可以对指定的文件树的某颗子树中所有内容进行某种操作,许多指令都有-f,-r这两个选项;
6.文件的拷贝和剪切
- 🥰文件的拷贝:
cp -f 待拷贝的文件的标识 拷贝出来的文件名 //拷贝指定的普通文件 cp -r -f 待拷贝的文件的标识 拷贝出来的文件名 //拷贝指定的目录文件(包括其所有子文件) //-r表示递归
🥰文件的剪切:
mv 已存在的文件的标识 绝对或相对路径 //将普通文件剪切到指定路径 mv -r 已存在的文件的标识 绝对或相对路径 //将目录文件(包括其子文件)剪切到指定路径mv 已存在的文件标识1 新文件标识2 //将文件1重命名为文件2//-r表示递归
7.输入输出重定向和Linux管道
输出重定向:
- 🥰Linux的众多输出指令(比如echo,cat的等等)的默认输出对象都是标准输出终端(显示在系统的命令行界面)
- 🥰">"可以以文本覆写的形式进行文本输出指令(比如echo,cat的等等)的输出重定向,比如echo指令默认会将特定文本内容输出到标准输出终端中,通过">"重定向可以将特定文本内容覆写到某个系统容器(比如文本文件)中:
echo "特定文本内容" > 文本文件标识 //将指定内容覆写到指定文本文件
🥰">>"可以以文本追加的形式进行文本输出指令(比如echo,cat的等等)的输出重定向,比如echo指令默认会将特定文本内容输出到标准输出终端中,通过">>"重定向可以将特定文本内容追加到某个系统容器(比如文本文件)中:
echo "特定文本内容" >> 文本文件标识 //将指定内容追加到指定文本文件
输入重定向:
- 🥰"<"可以以文本覆写的形式进行文本输入指令(比如cat等等)的输入重定向,比如cat指令默认会从键盘缓存区中读取数据,通过"<"重定向可以让cat从指定的容器中以文本覆写的方式读取数据:
cat < 文本文件标识 //从指定文件中以覆写的形式读取数据并显示在标准输出中
🥰"<<"可以以文本追加的形式进行文本输入指令(比如cat等等)的输入重定向,比如cat指令默认会从键盘缓存区中读取数据,通过"<<"重定向可以让cat从指定的容器中以文本追加的方式读取数据:
cat << 文本文件标识 //从指定文件中以追加的形式读取数据并显示在标准输出中
初识Linux管道:
- 🥰实例:通过如下指令可以查看某个文本文件file.txt第100到120行的内容:
head -120 file.txt | tail -20
- 🥰操作系统中各数据容器(指令作为可执行程序本身也可能是数据容器)之间的数据交互都是通过管道实现的
相关文章:

初识Linux+Linux基本指令(一)
目录 一.😆计算机与操作系统😆 计算机与操作系统发展史简介: 计算机与操作系统的关系: 二.😄Linux操作系统😄 开源软件的代名词:Linux 非图形化界面的Liunx 三.😆Linux基本指令之文件管理篇😆 1.操…...

部署架构 因为单体架构痛点 升级到微服务架构
如图为单体部署 痛点 多人协作可能产生很多的回归测试 代码管理复杂度提升 软件包升级会导致增加测试次数 举例 单体电商 1增加功能(增加小程序平台) 2 并发增加 出现 1 代码复用 2 系统间相互调用 3 接口不仅要对外服务,也得对内提供接口 4 数据分析功…...

mapreduce打包提交执行wordcount案例
文章目录 一、源代码1. WordCountMapper类2. WordCountReducer类3. WordCountDriver类4. pom.xml 二、相关操作和配置1. 项目打包2. 带参测试3. 上传打包后的jar包和测试文档4. 增大虚拟内存5.启动集群6.在hdfs上创建输入文件夹和上传测试文档Hello.txt7. 利用jar包在hdfs实现文…...

MyBatis(十六)MyBatis使用PageHelper
一、limit分页 mysql的limit后面两个数字: 第一个数字:startIndex(起始下标。下标从0开始。) 第二个数字:pageSize(每页显示的记录条数) 假设已知页码pageNum,还有每页显示的记录…...

铁路轨道不平顺数据分析与预测
铁路轨道不平顺数据分析与预测 1.引言 铁路轨道作为铁行车的基础设施,是铁路线路的重要组成部分。随着经济和交通运输业的发展,我国的铁路运输正朝着高速和重载方向迅速发展,与此同时,轨道结构承受来自列车荷载、运行速度的冲击…...

好家伙,9:00面试,9:06就出来了,问的实在是太...
从外包出来,没想到死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到2月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推我去…...

【MySQL】数据库约束和聚合函数的使用
目录 上篇在这里喔~ 1.数据库约束 1.NULL约束 2.UNIQUE唯一约束 3.DEFAULT默认值约束 4.PRIMARY KEY主键约束 5.FOREIGN KEY外键约束 2.表的设计 1.设计思路编辑 2.固定套路编辑 2.1一对一关系 2.2一对多关系 编辑 2.3多对多关系 编辑编辑编辑 3.插入…...
SpringMvcFoundation
SpringMvcFoundation 一. SpringMVC简介1.1 优点二.Spring入门案例2.1 导入坐标2.2 编写SpringBoot启动类2.3 编写controller2.4 入门案例工作流程分析2.4.1 启动服务器初始化过程2.4.2 单次请求过程2.5 PostMan简介2.5.1 PostMan基本使用2.6 请求与相应2.6.1 请求映射路径2.6.…...

从零学习SDK(7)如何打包SDK
打包SDK的目的是为了方便将SDK提供给其他开发者或用户使用,以及保证SDK的兼容性和安全性。打包SDK可以有以下几个好处: 减少依赖:打包SDK可以将SDK所需的库、资源、文档等打包成一个文件或者一个目录,这样就不需要用户再去安装或…...

Python OpenCV 3.x 示例:1~5
原文:OpenCV 3.x with Python By Example 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候,你最…...
葵铭智能面经4.18
虽然是小厂,但面的还是挺有深度的 1.自我介绍 第一个项目 2.有没有用过流协议 3.视频保存有没有切片,有没有考虑过大视频上传的性能问题 4.项目是同步的还是异步的 第二个项目 5.搜索引擎是动态的还是静态的,有没有动态的去爬取boost库…...

MyBatis 03 -MyBatis动态SQL与分页插件
动态SQL与分页插件 动态SQL与分页插件 动态SQL与分页插件1 动态SQL1.1 < sql >1.2 < if >1.3 < where >1.4 < set >1.5 < choose >1.6 < trim >1.7 < foreach > 2 mybatis缓存2.1 一级缓存2.2 二级缓存 3 分页插件3.1 概念3.2 访问与…...
4.10、字节序列转换函数
4.10、字节序列转换函数 1.字节序转换函数2.字节序转换函数有哪些3.字节序转换函数的使用 1.字节序转换函数 当格式化的数据在两台使用不同字节序的主机之间直接传递时,接收端必然错误的解释之。解决问题的方法是:发送端总是把要发送的数据转换成大端字…...

研究LLMs之前,不如先读读这五篇论文!
目标:了解 LMM 背后的主要思想 ▪️ Neural Machine Translation by Jointly Learning to Align and Translate ▪️ Attention Is All You Need ▪️ BERT ▪️ Improving Language Understanding by Generative Pre-Training ▪️ BART Neural Machine Translati…...

认识BASH这个Shell
文章目录 认识BASH这个Shell硬件、内核与shell为什么要学命令行模式的Shell?Bash Shell的功能命令与文件补全(TAB)命令别名设置(alias)历史命令(history)任务管理、前台、后台控制(jobs,fg,bg)通配符程序化脚本 查询命令是否为Bash shell 的内…...

用SQL语句操作Oracle数据库——数据更新
数据更新 数据库中的数据更新操作有3种:1)向表中添加若干行数据(增);2)删除表中的若干行数据(删);3)修改表中的数据(改)。对于这3种操作…...

二维码+互联网云技术在中建二局施工项目管理中的应用实践
中建二局(全称:中国建筑第二工程局有限公司)是世界500强企业—中国建筑股份有限公司的全资子公司,是集房建、基建、核电、火电、风电等多种建设和投资相融合的、国内最具综合实力的大型国有企业集团公司。中建二局具有土木建筑、设…...

扩散模型原理记录
1 扩散模型原理记录 参考资料: [1]【54、Probabilistic Diffusion Model概率扩散模型理论与完整PyTorch代码详细解读】 https://www.bilibili.com/video/BV1b541197HX/?share_sourcecopy_web&vd_source7771b17ae75bc5131361e81a50a0c871 [2] https://t.bili…...
Metasploit高级技术【第九章】
预计更新第一章 Metasploit的使用和配置 1.1 安装和配置Metasploit 1.2 Metasploit的基础命令和选项 1.3 高级选项和配置 第二章 渗透测试的漏洞利用和攻击方法 1.1 渗透测试中常见的漏洞类型和利用方法 1.2 Metasploit的漏洞利用模块和选项 1.3 模块编写和自定义 第三章 Met…...

RK3568平台开发系列讲解(调试篇)IS_ERR函数的使用
🚀返回专栏总目录 文章目录 一、IS_ERR函数用法二、IS_ERR函数三、内核错误码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 IS_ERR 函数的使用。 一、IS_ERR函数用法 先看下用法: 二、IS_ERR函数 对于任何一个指针来说,必然存在三种情况: 一种是合…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...