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的学习并不用很深,有所了解到这就差不多了,这章的内容已经对一些基础指令都写进去了,大家可以点赞收藏加关注哦,小杨会持续给大家分享更好的文章的。
  都学到这里啦!给棒棒哒自己点个赞吧,好牛的!!!
  明天也要继续努力哟!!!冲冲冲!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/372156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32介绍

本内容是基于江协科技STM32视频学习之后,并参考【重写】简析stm32启动过程-CSDN博客和STM32 最小系统_stm32最小系统-CSDN博客以及其他资料综合整理而成。 1. STM32 1.1 STM32简介 STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器;STM32常应用在…

【python学习】快速了解python基本数据类型

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. 整数(int)2. 浮点数(float)3. 布尔值(bool&#xf…

[个人感悟] 消息队列应该考察哪些问题?

前言 消息队列. 不论是Java内部提供的LinkedBlockingQueue, 还是当下主流的中间件RabbitMQ, Kafka, RockMQ. 其本质上都是一个削峰填谷的工具. 我们都知道, 请求和流量都有可能瞬间很高, 或者很低. 所以, 很多时候, 我们需要请求存储起来, 或者使用异步的方式, 来匀速的处理过…

Qt QWizard新建向导实例

使用QWizard做新建向导,最简单的实例 class MyWizard : public QWizard { public: MyWizard(QWidget* parent nullptr); QWizardPage* createFirstPage(); QWizardPage* createSecondPage(); QWizardPage* createThirdPage(); }; MyWizard::MyWizard(QWidget* par…

python 10个自动化脚本

目录 🌟 引言 📚 理论基础 🛠️ 使用场景与代码示例 场景一:批量重命名文件 场景二:自动下载网页内容 场景三:数据清洗 场景四:定时执行任务 场景五:自动化邮件发送 场景六…

AI实时免费在线图片工具6:以图生相似图

1、以图生图,生成相似图 https://huggingface.co/spaces/diffusers/unofficial-SDXL-Turbo-i2i-t2i 间接实现:可以是图片先提取描述,再通过描述再去生成新图片 https://huggingface.co/spaces/gokaygokay/KolorsPlusPlus

徒手绘制 Android 通用进度条

拖动条&#xff08;FlexSeekBar&#xff09;&#xff0c;在Android的各个地方都非常常用&#xff0c;本文旨在自研一套通用的进度条&#xff0c;非常适合车载App使用 样式如下&#xff1a; 使用示例 <!--默认用法--> <com.max.android.ui.seekbar.FlexSeekBarandroi…

思路打开!腾讯造了10亿个角色,驱动数据合成!7B模型效果打爆了

世界由形形色色的角色构成&#xff0c;每个角色都拥有独特的知识、经验、兴趣、个性和职业&#xff0c;他们共同制造了丰富多元的知识与文化。 所谓术业有专攻&#xff0c;比如AI科学家专注于构建LLMs,医务工作者们共建庞大的医学知识库&#xff0c;数学家们则偏爱数学公式与定…

Unity 实现UGUI 简单拖拽吸附

获取鼠标当前点击的UI if(RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition)) {return rectTransform.gameObject; } 拖拽 在Update 中根据鼠标位置实时更新拖拽的图片位置。 itemDrag.transform.position Input.mousePosition; …

《安全行业大模型技术应用态势发展报告(2024)》

人工智能技术快速迭代发展&#xff0c;大模型应用场景不断拓展&#xff0c;随着安全行业对人工智能技术的应用程度日益加深&#xff0c;大模型在网络安全领域的应用潜力和挑战逐渐显现。安全行业大模型技术的应用实践不断涌现&#xff0c;其在威胁检测、风险评估和安全运营等方…

秋招突击——7/5——复习{}——新作{跳跃游戏II、划分字母区间、数组中的第K个大的元素(模板题,重要)、前K个高频元素}

文章目录 引言正文贪心——45 跳跃游戏II个人实现参考实现 划分字母区间个人实现参考实现 数组中的第K个最大元素个人实现参考做法 前K个高频元素个人实现参考实现 总结 引言 今天就开始的蛮早的&#xff0c;现在是九点多&#xff0c;刚好开始做算法&#xff0c;今天有希望能够…

方圆资源网,方圆资源官网

在当今这个信息化高速发展的时代&#xff0c;方圆资源网络已成为推动社会进步、促进经济发展的重要力量。方圆资源网不仅汇聚了海量的信息资源&#xff0c;更为我们提供了一个高效、便捷的信息交流平台。本文旨在详细介绍资源网的概念、特点、功能以及其在现代社会中的重要意义…

理解算法复杂度:空间复杂度详解

引言 在计算机科学中&#xff0c;算法复杂度是衡量算法效率的重要指标。时间复杂度和空间复杂度是算法复杂度的两个主要方面。在这篇博客中&#xff0c;我们将深入探讨空间复杂度&#xff0c;了解其定义、常见类型以及如何进行分析。空间复杂度是衡量算法在执行过程中所需内存…

【python爬虫实战】进阶天气虫虫(过程复盘 心得分享)

程序设计过程里的一些心得&#xff1a; 0. 规模较大的程序&#xff0c;往往都是以更小的功能块搭建起来的。如此&#xff0c;为了提升总体程序的构建效率&#xff0c; 笔者发现分“两步走”会比较高效&#xff1a; A. 遇到需要反复调试的功能块&#xff0c;可先在另一程序中逐…

植物大战僵尸融合嫁接版 MAC 版本下载安装详细教程

继植物大战僵尸杂交版火了之后&#xff0c;PVZ改版可谓是百花齐放&#xff0c;最近又有一个非常好玩的模式被开发出来了&#xff0c;他们称为《植物大战僵尸融合嫁接版》 该版本并没有对植物卡牌做改动&#xff0c;而是可以将任意两种植物叠放到一起进行融合&#xff0c;产生新…

玲珑大爆料!deepin Meetup(上海站)议程抢先看!

Linux软件生态正迎来一场革命&#xff0c;随着软件数量的激增&#xff0c;传统的包管理系统逐渐暴露出依赖性强、兼容性差、安全性不足等问题。“玲珑”是一种新型的独立包管理工具集&#xff0c;通过先进的隔离技术和分层管理&#xff0c;为应用提供了一个安全、稳定、高效的运…

202488读书笔记|《365日创意文案》——无聊的 到底是这世间, 还是自己?懂得忘却的人才能前进

202488读书笔记|《365日创意文案》——无聊的 到底是这世间&#xff0c; 还是自己&#xff1f;懂得忘却的人才能前进 1月2月3月4月5月6月7月8月9月10月11月12月 《365日创意文案》WRITES PUBLISHING&#xff0c;一些日常&#xff0c;是烟火&#xff0c;也是幸福的印记。 当下也…

IT之家最新科技热点 | 小米 AI 研究院开创多模态通用模型

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

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

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