当前位置: 首页 > news >正文

Linux学习看这一篇就够了,超超超牛的Linux基础入门

引言

  小伙伴们,不管是学习c++还是学习其他语言在我们学的路上都绕不过操作系统,而且,老生常谈的Linux更是每个计算机人的必修,那么我们对Linux的了解可能只是从别人那听到的简单的这个系统很牛,巴拉巴拉的,但是我们还是不太懂,那么今天我们就来学习有关Linux的基础。

Linux

了解Linux

  我们先从一个故事来简单了解一下Linux的由来吧。

   从前有一个叫林纳斯的小伙子,他很喜欢电脑,但是对当时那些要花大价钱才能用的操作系统不满意。于是,他决定自己动手,丰衣足食,就自己写了一个操作系统的核心部分。这个核心部分,就是我们今天说的Linux内核。
  林纳斯把这个内核放在网上,说:“嘿,大家一起来玩吧,你们可以随便用,随便改。” 结果,一大群人被吸引过来,他们觉得这个主意太酷了,就开始帮忙一起写代码,一起改进这个系统。
  这些人来自世界各地,他们通过网络聚集在一起,形成了一个强大的社区。他们不仅把Linux做得越来越好,还做了很多基于Linux的操作系统,比如Ubuntu、Fedora等等,让普通人也能轻松使用。
  因为Linux是大家共同创造的,所以它的代码是开放的,这意味着任何人都可以看到它,修改它,甚至拿去卖。这种开放的态度让Linux变得非常强大和灵活,现在几乎所有的互联网巨头,比如谷歌、Facebook,都在用Linux来搭建他们的服务器。
  所以,Linux不仅仅是一个操作系统,它还是一群人共同协作、不断创新的故事。

  有关Linux的故事帮助大家知道它是怎么来的,如果小伙伴们对Linux由来想了解的更清楚一点,大家可以百度或者谷歌搜索一下,那么现在都有哪些Linux的发行版呢

Linux发行版

  • 1、CentOS 7
    红帽(Redhat)组织于2014年收购了CentOS,现在的CentOS是红帽在维护。
    主要用在服务器上
    • 优点:稳定性好,有专业团队维护,适用面广
    • 缺点:已经停止更新了,不太适用于普通用户
  • 2、Ubuntu
    • 应用面最广的LINUX发行版,适合普通用户使用。
    • 每年会在10月和4月发布两个版本,其中偶数年的四月会发布LTS(长期维护版本),一般的LTS版本会
      维护5年。今年发行的24.04 LTS有了Ubuntu pro的名字,宣布维护12年。
  • 3、其他的类Unix系统
    • ArchLinux、Debian、FreeBSD

Linux文件系统
  文件系统会使用树状结构对所有硬盘上的文件进行管理,这个管理系统就叫文件系统。在windows下,每个盘符下都是一个树状结构,以盘符根,各盘符独立;
而在LINUX下,只有一个树状结构,所有的文件和目录全部挂在根目录下。

  • 重要目录:
1. /homehome路径下,放着所有用户的主目录,即每个用户的私人文件夹
2. /rootroot用户的主目录
3. /etc系统和各种应用程序的配置文件
4. /usr/usr/local : 用于存放用户自己安装的一些应用程序的文件/usr/bin : 用于用户自己安装的一些指令
  • 路径:
/ :根目录,所有的文件和文件夹都挂载在根目录下~ :主目录,用户的自定义空间,通常主目录在/home下. :当前路径.. :上一级路径,通常用于相对路径绝对路径:指的是从根到自己的路径,可以用 pwd 指令抓取。
相对路径:指的是从自己到待跳转目标的路径

软件下载与环境配置

  • 虚拟机VMware
      VMware作为虚拟化技术的代表软件,可以虚拟整个操作系统供我们学习和使用,会单独搭建环境而不会因为操作失误而影响我们的主机,同时在虚拟机上安装Linux系统会比在主机上安装更方便。

      虚拟机安装链接:点击附件网盘链接 提取码:h094

  • CentOS7系统
      在学习一门新东西的时候我们往往会从最老的开始学起,因为越是老软件,老系统,用户使用的时间越长,大家才会对其研究越深,研究资料也会越多,方便我们学习。

      下载链接:点击附件网盘链接 提取码:18c4

    装载步骤:
    1.打开虚拟机并点击创建新的虚拟机,然后下一步。
    在这里插入图片描述

2.找到刚下好的CentOS7并选择安装,点击下一步。
在这里插入图片描述
3.填写用户名和密码,为了方便我们学习,我们的密码建议和小杨一样设置为123然后点击下一步。
在这里插入图片描述
4.修改虚拟机名称(不改也行)并设置存放位置,点击下一步。
在这里插入图片描述
5.设置虚拟磁盘大小,建议20G,点击下一步。
在这里插入图片描述
6.点击完成,完成创建虚拟机并开机
在这里插入图片描述
7.当界面显示如图所示时,表示已成功进入虚拟机

8.打开虚拟机后右键桌面并点击Open Terminal,这下我们就可以开始我们对指令的学习了。
在这里插入图片描述

  • 安装编译器
    在命令框输入如下命令:
sudo yum install -y gcc
sudo yum install -y gcc-c++*

输入后如图所示等待即可,第一条是删除指令,由于做示范,小杨特意把之前的下载好的删掉的。
在这里插入图片描述
在这里插入图片描述

下载完成后命令框的提示行会回闪

  • 建立root权限用户
    用vim编译器打开sudoers文本可以看到所有用户
    输入如下命令
sudo vim /etc/sudoers

su root 切换超级用户,并用vim打开上述文件,复制第100行到101行,将刚刚复制出的那一行的,这个操作可以看下边对vim操作的注解。
root 改成自己的用户名,即可直接用sudo获取管理员权限
如图所示
在这里插入图片描述

  • 切换阿里云镜像
    输入以下指令,这是我在学习过程中使用的镜像,小伙伴们可以试试,这个镜像可以加速我们稍后下载文件或者软件的速度。
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo

在这里插入图片描述

yum工具和vim工具

  • CentOS下的yum工具
    yum是一个CentOS下的应用程序,可以用来自动安装软件,以gcc为例指令如下:
    sudo yum install -y gcc

  • vim工具
    vim工具是Linux自带的文本编辑器,vim下一共有三种模式,进来以后是普通模式。
    普通模式:在这个模式下可以对文件进行翻阅、复制粘贴、跳转等操作。
    末行模式:也叫命令模式,可以执行一些复杂的指令,如查找替换、设置行号、保存退出等。
    编辑模式:在这个模式下可以自由编辑文本

    • 如何切换三种模式:
      普通模式->末行模式:直接输入指令即可
      末行模式->普通模式:删除指令即可
      普通模式->编辑模式:按i,其他方法无需记忆(O/S)
      编辑模式->普通模式:按Esc
    • 普通模式下的常用指令
yy:复制一行%yy:复制n行dd:剪切一行%dd:剪切n行p:粘贴gg:跳转到开头%gg:跳转到第n行开头u:撤销
  • 末行模式下的常用指令
:w:保存文件:q:退出:wq:保存并退出:q!:强制退出:wq!:强制保存退出:set nu:显示行号:set nonu:关闭行号显示/字段:查找该字段,按n下一个
:s/字段1/字段2/g 查找字段1替换成字段2
:%s/字段1/字段2/g 查找所有的字段1替换成字段2

基础命令与必备参数

命令的参数

  • 命令后面可以跟上一个 - 来表示后面要加一个短参数,具体每个命令可以加什么参数可以参考 man 指令里的结果
  • 多个参数可以写在一起

man
man指令是Linux下的一个帮助菜单,后面可以跟上一个词条,这个词条可以是一个命令,也可是一些C语言的函数

ls
列表显示命令,用于列表显示当前文件夹下的内容
※文件夹是用蓝色显示的
ls 指令的后面可以跟一个路径,表示显示指定路径的文件信息。

  • 重要参数
-a :显示隐藏文件
※在linux下,以 . 开头的文件叫隐藏文件-l :列表显示详细信息

cd
cd指令用于跳转路径。
cd后面可以跟绝对路径或者相对路径去跳转到目标路径下。
cd如果后面什么都不跟,则回到主目录
cd后面如果跟了一个 - ,表示后退,但只能后退一步

mkdir
创建一个空文件夹
mkdir后面可以跟多个文件夹名,可以一并创建

  • 重要参数
-p :可以递归创建空文件夹,例如 mkdir -p a/b/c/d 的意思就是,
创建空文件夹d,但如果其父目录不存在,则递归创建a、b、c后,再创建d

rmdir
删除一个空文件夹
rmdir后面可以跟多个文件夹名,可以一并删除
rmdir只能删除空文件夹

touch
touch命令可以创建新文件,空文件,也可以用来改变文件最后更改时间

cat
抓取文件内容
重要参数:
-n :可以显示行号

cp
复制文件,基本格式是 cp A B
功能1:将文件创建备份
如果A、B均不是目录且A文件存在,则含义为将A复制成B。
功能2:将文件复制到指定目录
如果A不是目录且A文件存在,B是一个存在的目录,则含义为将A复制到B里
cp 无法复制目录,当A是目录时会报错

  • 重要参数
    -r :允许cp复制目录
    -f :复制时不经过询问直接复制
    复制目录,基本格式是 cp -r A B
    功能1:将目录创建备份
    如果A时目录、B不是一个存在的目录,则含义为将A复制成B。
    功能2:将目录复制到指定目录
    如果A是目录且A目录存在,B也是一个存在的目录,则含义为将A复制到B里
    cp的核心是判断B是否是已经存在的路径。

mv
移动文件或目录,基本格式是 mv A B
功能1:给目录或文件重命名
如果A和B都是文件或都是路径,且B不存在,则意味着将A改名成B
功能2:移动目录或者文件
如果B是已经存在的路径,则意味着是将A(无论是文件还是目录)移动到B里

rm
删除文件,rm后可以跟一个文件列表,表示删除多个文件

  • 重要参数
    -r :允许rm删除目录
    -f :删除时不经过询问直接删

Linux的C/C++代码

基本方法:
1、使用vim编辑代码
2、使用gcc/g++编译代码
3、用 ./a.out 运行
补充:
gcc的部分参数
-o :后面跟一个文件名,表示编译出来的文件命名为这个文件名
-g :表示编译为debug模式,可以用来调试
※加了-g参数后,用gdb调试时可以看到代码

重定向

  把原本要输出到屏幕上的东西输出到文件去
重定向符号 > ,例如ls > 1.txt就是将ls的输出结果直接放到文件1.txt中,不再显示在屏幕上
※ 重定向时,如果文件已经存在,则会覆盖,不存在则创建
如果想要追加,那么用 >>即可
向屏幕输出的耗时远高于向文件输出

管道符

  管道符的作用就是把上一条信息的内容经过管道处理后丢出来然后做接下来的操作
管道符号 |

管道常用功能:
less :用less软件打开文件,可以翻页预览
tail/head :只要尾10行或者头10行,可以加-n参数并指定行数()
grep :筛选出包含某个指定对象的行,可以加-v参数反向选取,即不包含某个关键字的行
例如: grep "guanjianzi" 1.txt | cat 1.txt >2.txt

作业练习:使用Linux指令完成下列任务:

    1. 创建和编辑文件:
    • 在你的主目录下创建一个名为 project 的文件夹。
    • 在 project 文件夹中,使用 touch 命令创建三个空文件: file1.txt 、 file2.txt 、file3.txt
    • 使用 echo 命令,向 file1.txt 中写入“Hello, World!”。
    • 使用 echo 命令,向 file1.txt 中追加“Goodbye, World!”。
    • 使用 echo 命令,向 file1.txt 中追加“Good night!”。
    1. 复制和修改文件:
    • 将 project 文件夹复制为 project_backup 。
    • 使用 cat 命令和管道 | ,结合 grep 命令(假设你想筛选出包含“World”的行),将file1.txt中包含“World”的行合并到一个新文件 filtered.txt 中,将该文件放置在project_backup 文件夹下。
    1. 目录和文件操作:
    • 在 project_backup 文件夹中,创建一个名为 logs 的文件夹。
    • 在 logs 文件夹中,使用 touch 命令创建三个日志文件: log1.log 、 log2.log 、log3.log 和三个任意 txt 文件。
    • 将 project_backup/logs/log1.log 移动到 project 文件夹中
    • 删除 project_backup/logs 文件夹中剩余的日志文件。

结语

  有关Linux的基础就简单说到这里吧,其实还有一些进阶的知识,我们留在下一章,也有的小伙伴对Linux的学习并不用很深,有所了解到这就差不多了,这章的内容已经对一些基础指令都写进去了,大家可以点赞收藏加关注哦,小杨会持续给大家分享更好的文章的。
  都学到这里啦!给棒棒哒自己点个赞吧,好牛的!!!
  明天也要继续努力哟!!!冲冲冲!!!

相关文章:

Linux学习看这一篇就够了,超超超牛的Linux基础入门

引言 小伙伴们,不管是学习c还是学习其他语言在我们学的路上都绕不过操作系统,而且,老生常谈的Linux更是每个计算机人的必修,那么我们对Linux的了解可能只是从别人那听到的简单的这个系统很牛,巴拉巴拉的,但…...

el-scrollbar组件使用踩坑记录

一、el-scrollbar和浏览器原生滚动条一起出现 问题描述 el-scrollbar组件主要用于替换浏览器原生导航条。如下图所示,使用el-scrollbar组件后,发现未能成功替换掉浏览器原生导航条,二者同时出现。 引发原因 el-scrollbar的height属性如果…...

Linux计算机结构

1.计算机设计原理 冯诺依曼体系结构 通过该结构得出:中央处理器 2.操作系统整体框架 操作系统是不会让你直接乱使用底层的各种硬件,但为了依旧能够让你使用到该资源则会给你预留一些窗口去让你与其交互(类比银行,直接小窗口交互,…...

应用进程、SurfaceFlinger进程、HWC进程 之间的关系

应用进程、SurfaceFlinger进程、HWC(Hardware Composer)进程在Android系统中扮演着重要的角色,它们之间的关系和通信流程是Android图形显示系统的核心部分。以下是这三者之间关系和通信流程的详细分析: 一、三者之间的关系 应用进…...

66.Python-web框架-Django-免费模板django-datta-able的分页的一种方式

目录 1.方案介绍 1.1实现效果 1.2django.core.paginator Paginator 类: Page 类: EmptyPage 和 PageNotAnInteger 异常: 1.3 templatetags 2.方案步骤 2.1创建一个common app 2.2创建plugins/_pagination.html 2.3 其他app的views.py查询方法 2.4在AIRecords.html里…...

Python编程学习笔记(1)--- 变量和简单数据类型

1、变量 在学习编程语言之前,所接触的第一个程序,绝大多数都是: print("Hello world!") 接下来尝试使用一个变量。在代码中的开头添加一行代码,并对第二行代码进行修改,如下: message "…...

第二证券:资金抱团“高股息”,超三成A股年内创历史新低!

A股商场行情冰火两重天。 “预制菜榜首股”跌破发行价 7月8日,味知香盘中最低跌至19.26元/股,股价跌破发行价,并创前史新低。揭露资料显现,公司是集研发、生产、销售为一体的半成品菜企业,现在具有8大产品系列&#…...

ASAN排查程序中内存问题使用总结

简介 谷歌有一系列Sanitizer工具,可用于排查程序中内存相关的问题。常用的Sanitizer工具包括: Address Sanitizer(ASan):用于检测内存使用错误。Leak Sanitizer(LSan):用于检测内存…...

day01:项目概述,环境搭建

文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构:前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…...

Python爬虫与数据可视化:构建完整的数据采集与分析流程

Python爬虫技术概述 Python爬虫是一种自动化的数据采集工具,它可以模拟浏览器行为,访问网页并提取所需信息。Python爬虫的实现通常涉及以下几个步骤: 发送网页请求:使用requests库向目标网站发送HTTP请求。获取网页内容&#xf…...

Java---包装类与泛型

1.包装类 1.1 包装类 在Java中,由于基本数据类型不是继承Object类,为了在泛型代码中可以支持基本数据类型,Java给每个基本数据类型各自提供了一个包装类。 如下图 除了char和int基本数据类型的包装类型有点特别,其他的都是首字…...

如何优化 PostgreSQL 中对于复杂数学计算的查询?

文章目录 一、理解复杂数学计算的特点二、优化原则(一)索引优化(二)查询重写(三)数据库配置调整(四)使用数据库内置函数的优势 三、具体的优化方案和示例(一)…...

前端面试题27(在实际项目中,如何有效地利用Vue3的响应式系统提高性能?)

在实际项目中,有效利用Vue3的响应式系统提高性能主要涉及以下几个关键点: 1. 合理使用reactive和ref reactive:用于将复杂的数据结构(如对象或数组)转换成响应式版本。确保只将需要实时更新的数据结构声明为响应式&am…...

掌握Vue 3生命周期:从组合式API到高效代码实践

引言 在 Vue 3 中,生命周期的概念得到了进一步的优化和简化。Vue 3 引入了组合式 API(Composition API),这为开发者提供了更灵活的方式来组织和重用代码逻辑。与传统的选项式 API(Options API)相比&#x…...

使用cgroup对pgsql进行分库资源限制

系统:Centos7 pg版本:14.11 自建pgsql14中有很多个库,一个库对应一个租户,偶尔会出现单个租户执行慢sql影响全局的问题,目前官方也没有比较合适的处理方案或者插件 解决方案: 因为pgsql是多进程应用,所以正好可以使用linux自带的cgroup功能进行资源限制。定时将进程中…...

【网络安全】一文带你了解什么是【网络劫持】

网络劫持(Network Hijacking)是一种网络攻击,攻击者通过非法手段劫持网络通信,导致合法用户的数据流被拦截、篡改或重定向到攻击者控制的系统。这种攻击可以在各种网络层面上进行,包括域名系统(DNS&#xf…...

springcloud分布式架构网上商城 LW +PPT+源码+讲解

3系统分析 3.1可行性分析 在开发系统之前要进行系统可行性分析,目的是在用最简单的方法去解决最大的问题,程序一旦开发出来满足了用户的需要,所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。 3.1.1技术…...

【Linux】动态库的制作与使用

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

Vue框架引入

vue简介 1.1.vue是什么?Vue官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/ vue是一套构建用户界面的渐进式javascript框架 构建用户界面:将我们手里拿到的数据通过某种办法变成用户可以看见的界面前端工程师的职责:就是在合适的时候发出合适的请求,然后…...

贝叶斯估计(1):期末大乱炖

写在前面! 1 先验分布和后验分布 三种信息:总体信息、样本信息、先验信息 总体信息:“总体是正态分布”;样本信息:总体抽取的样本提供的信息,是最新鲜的信息;先验信息:在抽样之前就…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...