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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django 新增数据 save()方法

1,添加模型 Test/app11/models.py from django.db import modelsclass Book(models.Model):title models.CharField(max_length100)author models.CharField(max_length100)publication_date models.DateField()price models.DecimalField(max_digits5, decim…

初学SpringMVC之执行原理

Spring MVC 是基于 Java 实现 MVC 的轻量级 Web 框架 导入 jar 包 pom.xml 文件导入依赖&#xff1a; <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><dep…

如何安全隐藏IP地址,防止网络攻击?

当您想在互联网上保持隐私或匿名时&#xff0c;您应该做的第一件事就是隐藏您的 IP 地址。您的 IP 地址很容易被追踪到您&#xff0c;并被用来了解您的位置。下面的文章将教您如何隐藏自己&#xff0c;不让任何试图跟踪您的活动的人发现。 什么是 IP 地址&#xff1f; 首先&am…

【运算放大器学习】

运算放大器学习 运放的选型一般主要需要观察以下几个参数&#xff0c;下面一起来理解一下几个核心参数的意义&#xff1b;今天说 输入失调电压 、失调电压温漂 、 偏置电流 、 失调电流几个参数&#xff1b; 放大器的几个主要参数 输入失调电压失调电压温漂偏置电流失调电流…

Ubuntu开源软件LibreOffice将Excel多表转PDF多目录示例

一、实现的起因&#xff1a; Windows平台下&#xff0c;常见的WPS办公自动化套件中电子表格软件&#xff0c;其中具备将Excel工作表中数据转为PDF文档表格的功能。现在进一步的需求是&#xff1a;像PDF标准的电子书那样&#xff0c;具备一本书的目录结构或章节结构&#xff0c…

ARCGIS PRO 要素标注

一、普通模式 1、标注&#xff1a;名称和面积&#xff08;无分数线&#xff09; 语言&#xff1a;Arcade $feature.QLR \nRound($feature.Shape_Area,2) 语言&#xff1a;vbscript [QLR] & " " & Round([Shape_Area],2) 2、标注&#xff1a;名称…

删除重复的图片

一、解决&#xff1a;删除重复的图片 最近在用某网盘下载文件时&#xff0c;发现下载的图片文件有重复的&#xff0c;一个图片重复3次下载。严重占用硬盘&#xff0c;下载速度还不快。 原本有1T多的硬盘容量现在还剩300G,只下载了96%&#xff0c;据观察1%的进度大约需要100G的…

SpringBoot 启动流程六

SpringBoot启动流程六 这句话是创建一个上下文对象 就是最终返回的那个上下文 我们这个creatApplicationContext方法 是调用的这个方法 传入一个类型 我们通过打断点的方式 就可以看到context里面的东西 加载容器对象 当我们把依赖改成starter-web时 这个容器对象会进行…

虚拟机使用

1、安装 如何安装虚拟机&#xff1f;保姆级安装教程&#xff01; - 知乎 (zhihu.com) 2、使用 2.1 快照 作用&#xff1a;保留当前系统信息为快照&#xff0c;随时可以恢复&#xff0c;以防未来系统被你玩坏&#xff0c;就好比游戏中的归档&#xff01;每配置好一个就可以保…

BUG: npm error `electron_mirror` is not a valid npm option

npm error electron_mirror is not a valid npm option 环境 windows 11 node v20.15.0 npm v10.7.0详情 在运行 npm run mirror 命令时出现错误。这是一个设置镜像的命令。 我是没事干了&#xff0c;运行这个命令&#xff0c;这个命令在我这里根本就是运行不了。这个命令一…

Nginx:负载均衡小专题

运维专题 Nginx&#xff1a;负载均衡小专题 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

医院、体育场、学校或工厂等的同步时钟系统有什么区别?

在现代社会中&#xff0c;同步时钟系统在医院、体育场、学校和工厂等场所发挥着至关重要的作用。尽管它们的基本功能都是提供准确统一的时间&#xff0c;但由于各场所的性质和需求不同&#xff0c;其同步时钟系统在诸多方面存在显著区别。 一、医院同步时钟系统 医院作为救死扶…

【ffmpeg系列一】源码构建,ubuntu22与win10下的过程对比。

文章目录 背景ubuntu22结论 win10过程 对比结论 背景 顺手编译个ffmpeg试试&#xff0c;看看不同平台下谁的配置比较繁琐。 先让gpt给出个教程&#xff1a; ubuntu22 使用elementary-os7.1构建&#xff0c;看看有几个坑要踩。 错误1&#xff1a; 依赖libavresample-dev未…

【python中级】图像从笛卡尔坐标系转换为极坐标系

【python中级】图像从笛卡尔坐标系转换为极坐标系 1.背景2.生成二维图3.极坐标转换1.背景 笛卡尔坐标系就是我们常说的直角坐标系。 笛卡尔坐标系,也称为直角坐标系,是由法国数学家和哲学家勒内笛卡尔(Ren Descartes)发明的一种二维或三维坐标系统。它使用两个或三个相互垂…

解决:Android Studio 突然打不开!提示Failed to create JVM:error code -1

Android studio1.5 一直用得好好的&#xff0c;突然有一天打不开&#xff0c;并提示&#xff1a; 可是系统配置中&#xff0c;java的配置也是正常的。 解决方法&#xff1a; 修改安装目录下的studio64.exe.vmoptions 文件 直接将文件内容改成&#xff1a; -Xms128m -Xmx512m…

动感剧场设计师:打造流畅而生动的三维动画和特效

三维画图软件是设计领域必不可少的工具&#xff0c;它可以创建非常精确的三维模型&#xff0c;能够帮助设计师直观感受产品的外观&#xff0c;随时进行编辑和调整。与传统的三维画图软件相比&#xff0c;的三维画图软件无需进行安装步骤&#xff0c;节省时间又节省内存。本文将…

论文辅导 | 基于模态分解的Transformer-GRU联合电池健康状态估计

辅导文章 模型描述 提出一种基于变分模态分解(variational mode decomposition&#xff0c;VMD)与粒子群优化(particle swarm optimization&#xff0c;PSO)的变换神经网络(Transformer)和门控循环单元(gate recurrent unit&#xff0c;GRU)的联合方法。首先将锂电池容量信息通…

【大模型LLM面试合集】大语言模型基础_Word2Vec

Word2Vec 文章来源&#xff1a;Word2Vec详解 - 知乎 (zhihu.com) 1.Word2Vec概述 Word2Vec是google在2013年推出的一个NLP工具&#xff0c;它的特点是能够将单词转化为向量来表示&#xff0c;这样词与词之间就可以定量的去度量他们之间的关系&#xff0c;挖掘词之间的联系。 …

运维系列.Nginx配置中的高级指令和流程控制

运维专题 Nginx配置中的高级指令和流程控制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…