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

news2024/11/13 20:48:46

引言

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

挑战全网最清晰解决文本文件乱码方案

标题 文本文件出现乱码之全网最清晰解决方案乱码出现的原因解决方案第一步:获取文件的原始编码格式。第二步,获取当前系统的格式第三步,将文件的内容以当前系统编码格式进行译码并且输出到新的文件中第四步,删除原文件&#xff0c…

韦东山嵌入式linux系列-LED驱动程序

之前学习STM32F103C8T6的时候,学习过对应GPIO的输出: 操作STM32的GPIO需要3个步骤: 使用RCC开启GPIO的时钟、使用GPIO_Init函数初始化GPIO、使用输入/输出函数控制GPIO口。 【STM32】GPIO输出-CSDN博客 这里再看看STM32MP157的GPIO引脚使用…

【智能算法改进】多策略改进的蜣螂优化算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】蜣螂优化算法(DBO)原理及实现 2.改进点 混沌反向学习初始化 采用 Pwlcm 分段混沌映射,由于 Pwlcm 在其定义区间上具有均匀的密度函数,在特定的…

windows电脑桌面便签在哪里找?

在忙碌的工作中,我们经常会有很多事情需要记住。这时,电脑桌面便签就成为了我们的好帮手。那么,在Windows电脑上,我们该如何找到桌面便签呢?下面,就让我来为大家详细介绍一下。 其实,Windows电…

Android多开应用软件系统设计

设计一个支持Android多开应用的软件系统,主要涉及到以下几个关键技术点和设计考虑: 1. 虚拟化技术 容器技术:与传统的虚拟机不同,可以采用更轻量级的容器技术,为每个应用实例创建独立的运行环境。这包括分配独立的用…

【CUDA】shuffle算法的一个优化

最近,笔者在阅读这篇文章时很好奇,为什么使用看起来高大上的shuffle算法之后,并没有造成优化反而有了负优化,想到了一个可以优化的地方:在最后针对一个warp进行处理时,当前block中不在第一个warp中的线程会…

【Linux】进程间通信——匿名管道

为什么要进行进程间通信? 1.数据传输:一个进程需要将它的数据发送给另一个进程,比如我们有两个进程,一个负责获取数据,另一个负责处理数据,这时第一个进程就要将获取到的数据交给第二个进程 2.资源共享&…

职业理念教育观

职业道德理念——教育观 教育是什么、干什么、为了什么,教育心该培养什么样的人、如何培养人等。 教育观 素质教育内涵 教学观 素质教育内涵 新课程改革的教学观

4.Python4:requests

1.requests爬虫原理 (1)requests是一个python的第三方库,主要用于发送http请求 2.正则表达式 #正则表达式 import re,requests str1aceace #A(.*?)B,匹配A和B之间的值 print(re.findall(a(.*?)e,str1))import re,requests str2hello com…

背包问题转换

如何转换成背包问题呢&#xff0c;我们可以把每个质数当成一个重量 #define _CRT_SECURE_NO_WARNINGS #include<bits/stdc.h> using namespace std;#define int long long int record[1005]; void fun() {//record[2] 1;for (int i 2; i < 1000; i) {if (!record[…

微信视频号及直播回放下载工具

最近需要下载微信视频号中的视频&#xff0c;找一圈&#xff0c;终于找到了&#xff0c;&#xff0c;免费&#xff0c;没广告 软件叫做&#xff1a;爱享素材下载器。 是一款开源的、完全免费的工具。 第1步&#xff1a;下载安装包 下载地址&#xff1a; https://github.com/p…

jmeter+ant+jenkins搭建 接口自动化测试平台

平台搭建 &#xff08;1&#xff09;录制jmeter脚本 &#xff08;2&#xff09;将jmeter的安装目录下的G:\jmeter\apache-jmeter-5.1.1\extras中&#xff0c;将 ”ant-jmeter-1.1.1.jar”文件放到 ant的lib目录下 &#xff08;3&#xff09;配置jmeter的xml配置文件&#xf…

python对象

类 我们目前所学习的对象都是Python内置的对象但是内置对象并不能满足所有的需求&#xff0c;所以我们在开发中经常需要自定义一些对象类&#xff0c;简单理解它就相当于一个图纸。在程序中我们需要根据类来创建对象类就是对象的图纸&#xff01;我们也称对象是类的实例&#…

【第22章】MyBatis-PlusSQL分析与打印

文章目录 前言一、p6spy简介二、示例工程1. 依赖引入2. 配置 三、Spring Boot集成1. 依赖2. 配置3. 注意事项 四、实战1. 依赖2. 配置(spy.properties)3. 配置类4. 测试类5. 结果 总结 前言 MyBatis-Plus提供了SQL分析与打印的功能&#xff0c;通过集成p6spy组件&#xff0c;可…

电脑找回彻底删除文件?四个实测效果的方法【一键找回】

电脑数据删除了还能恢复吗&#xff1f;可以的&#xff0c;只要我们及时撤销上一步删除操作&#xff0c;还是有几率找回彻底删除文件。 当我们的电脑文件被彻底删除后&#xff0c;尽管恢复的成功率可能受到多种因素的影响&#xff0c;但仍有几种方法可以尝试找回这些文件。本文整…

白帽工具箱:DVWA中CSRF攻击与防御的入门指南

&#x1f31f;&#x1f30c; 欢迎来到知识与创意的殿堂 — 远见阁小民的世界&#xff01;&#x1f680; &#x1f31f;&#x1f9ed; 在这里&#xff0c;我们一起探索技术的奥秘&#xff0c;一起在知识的海洋中遨游。 &#x1f31f;&#x1f9ed; 在这里&#xff0c;每个错误都…

镜舟科技:国产数据库角逐金融赛道,开年斩获数家银行订单

在国产数据库领域&#xff0c;镜舟科技正迅速崛起&#xff0c;成为一匹瞩目的基础数据技术黑马。 开年伊始&#xff0c;镜舟科技便成功斩获中信银行、南京银行、某股份制银行、某头部民营银行、某大型综合类券商以及某消费金融公司等多家金融企业订单&#xff0c;其锚定需求匹…

最优化方法 运筹学【】

1.无约束 常用公式 线搜索准则&#xff1a;求步长 精确线搜索&#xff08;argmin&#xff09; 最速下降&#xff1a;sd&#xff1a;线性收敛 2.算法 SD dk&#xff1a;付梯度-g newton dk&#xff1a;Gkd-g 二阶收敛&#xff0c;步长为1 阻尼牛顿&#xff1a;步长用先搜…

HBuilder X 小白日记03-用css制作简单的交互动画

:hover选择器&#xff0c;用于选择鼠标指针浮动在上面的元素。 :hover选择器可用于所有元素&#xff0c;不只是链接 :link选择器 设置指向未被访问页面的链接的样式 :visited选择器 用于设置指向已被访问的页面的链接 :active选择器 用于活动链接