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

linux就该这么学 第一天学习笔记

题外话

在每天的网上冲浪中,一次无意间的点击,发现了linux就该这么学的网站,然后就看了一晚上,当时还是学生的我特别想要参加培训,可是碍于眼前的经济状况,只得将这个想法深深的藏在了心里,并加了一下网站的qq学习交流群,我当时加得还是比较早,是一个G群,现在已经有三十多个群了。后来也没有再去想过这方面的事情,因为工作中并没有用到linux系统,也就没有学习这个的动力,只是从网上了解到这是一个服务器的操作系统罢了。可最近由于工作需要,必须要开始学习linux系统了,这可能就验证了那句话(曾经丢掉的知识,总有一天会补回来的)。我开始在网上寻找学习资料,但都层次不齐,我又想到了当初看的那个网站linuxprobe,想想要不要咬牙报名呢,就在我苦思冥想之际,手机的消息铃声惊醒了我,我随意的看看了手机,原来是很久以前加得一个技术群的消息,群主上传了一个文件,啊~什么?居然是linux就该这么学的px视频,我赶忙点开了那个文件,里面是一个链接和密码,我想着这该不会是真的吧?因为我不相信那么贵的视频课程居然就这么轻松的在一个群里分享了出来,也许是哪个网友抖机灵,糊弄群友呢,只是为了刷存在感也不一定呢。但我还是按奈不住心中那份激动,毕竟我现在真的很需要学习资源啊,于是我轻轻的复制粘贴到浏览器,输入密码,里面是一个独立的文件夹,上面赫然写着几个醒目的大字,linux就该这么学xx期课程视频,我立即用手指将文件夹点开,里面具有真的有视频,而且还按章节分门别类了,太感动了,再看看视频大小,足足好几百兆,应该是真的了,这时候我相信这应该是上天给我的一次翻身的机会,过去的霉运都是为了等待这一次的好运,真的太棒了,我一定要好好珍惜这次的学习机会,将linux学懂,学透,并将自己的学习笔记和心得通过网络的方式分享给互联网的朋友们,因为我知道,我的这一切都是在互联网上学习到的,我不能忘记互联网朋友对我的恩惠,特此立贴为证,将自己所知所学分享众人,不求名流千史,只愿问心无愧!

 linux的前世今生

我最初接触linux系统应该是在大学最后一学期的网络安全课程上吧,那是老师让我们在虚拟机中进入一个系统,进去后发现和平时接触的window系统非常不一样,菜单栏在最上面,桌面也没什么图标,操作都是需要打开黑糊糊的终端窗口,只记得当时就会一个命令ifconfig查看ip地址,其他的就全忘记了。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

linux创始人:林纳斯·托瓦兹(芬兰人),大二时编写的操作系统
linux分类:个人用户(ubuntu debian)服务器级(redhat、opensuse)

linux的系统选择和安装

linux系统的种类很多,但是主要就分为两派,一个是桌面个人版,一个是企业服务器版,如果喜欢绚丽的画面,刺激的视觉体验可以选择Ubuntu系统,如果用户企业服务器环境就要用到redhat系列的系统了,这里为了公司企业的服务器学习,所以我们选择redhat 7 版本进行学习,等对linux熟练掌握后,我们可以选择Ubuntu这样的个人系统用作日常办公使用。

安装系统第一步:下载系统镜像 百度网盘,密码:j94c,或者选择官网下载

由于没有介绍linux的分区概念,所以暂时选择自动分区,等后续章节学习后,在来尝试自定义分区

注意:

虚拟机选择时应该选择稍后安装操作系统,否则它会直接自动安装,无法达到学习的目的

安装时需要创建用户和设置密码,密码如果设置得不符合密码原则,需要点击两次完成

linux软件安装

在linux中软件安装和window有很大的不同,linux的软件安装方式大致可以分为两种,rpm包安装和源代码安装

源代码安装

源代码安装即是去软件官网下载获取得到软件的源代码,然后复制到系统中进行解压、编译、安装的过程。

源代码安装首先需要部署编译环境,因为你的代码是没有进行编译的,是不能直接安装在系统中的,所以需要下载编译软件,

一般如果是c语言的程序,需要下载gcc编译器进行编译。

其次是源代码安装包由于只有该软件的源代码,没有其所依赖的相关程序,我们在安装源代码之前,还需要将它的所以依赖安装完成

进入下载的源代码包目录,执行./configure进行软件的配置和检查,这一步所做的事情主要是:

  • 定义需要的功能选项

  • 检测系统环境是否符合安装要求

  • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

执行make 编译 若编译失败可以执行make clean清空临时文件,只有编译安装才会创建新的文件

再执行make install 编译安装 向安装目录写入内容

至此源代码安装就成功了,通常源代码包的安装位置都是选择在/usr/local/软件名/下,不过源代码安装的软件启动只能通过绝对路径的方式进行启动。

虽然也可以更改成通过service启动,但并不推荐。

rpm包安装

什么是rpm包呢?rpm包全名叫做redhat package manager红帽包管理器,它虽然有红帽的标志,但它的设计理念是开放式的,大多数linux系统都可以用rpm包。

解释了rpm是什么,我们就来说说它有什么特点或好处。通过刚才的源代码安装介绍,相信大家都知道了源代码安装的不足,首先就是源代码安装需要配置编译环境,

并且编译的过程也是一个十分耗时的过程,有些大的软件甚至需要好几个小时进行编译,而且如果在编译过程中报错也很难解决,因为这个代码不是我们自己写的,

对报错信息肯定也无法确定是什么问题引起的报错,但我们的rpm包就是为了解决这一问题而诞生的,rpm包它是直接将软件的源代码进行编译后再发布的,所以我们

获取到rpm包后无需再进行复杂的编译过程,并且安装时它会默认安装到指定的位置,以方便系统其它服务的调用,并且可以通过service来启动。它会建立统一的数据库文件,

详细记录软件信息并能够自动分析依赖关系,我们可以通过rpm相关命令查看它所依赖的包。

rpm包默认安装路径描述
/etc/配置文件安装目录
/usr/bin/可执行的命令安装目录
/usr/lib/程序使用的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置

具体的安装过程后续会介绍,这里只需要知道rpm是什么东东就可以了。

yum安装

什么是yum仓库呢?其实就是将大量的rpm包和依赖关系组成的一个仓库。它能够在你安装某个软件的时候自动分析当前软件所需依赖,并直接自动安装相关依赖和所需的包,

基本可以实现一键操作,即一条命令就安装完成一个软件。不过要想使用yum,你必须要有这个仓库才行啊,所以我们就需要配置我们的yum源,让它知道我们使用yum的时候去

哪里寻找rpm包和依赖关系。

yum源分为网络yum源和本地yum源,网络yum源即是从网络中去下载软件,而本地yum源则是通过本地光盘中的yum源进行安装软件。

配置yum源在后续章节会详细介绍,这里你只需要知道yum安装是怎么一回事就足够了。

 systemd初始化进程

初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。

systemd初始化进程服务采用了并发启动机制,开机速度得到了不小的提升。

具体内容后续章节会再一一介绍。

转载于:https://www.cnblogs.com/welisit/p/10931309.html

相关文章:

  • 递归函数中,return的误区
  • vagrant 本地添加box 支持带版本号
  • ES6:解构赋值
  • 百度,内容质量部面试(一面+二面)面经
  • 浅谈Redis五种数据结构的底层原理
  • 程序清单4.2_praise1.c程序_《C Primer Plus》P62
  • ES6进阶——01新版变量声明let和const
  • hbase(二)hfile结构
  • 第五天,复习第四天内容,购物车小程序作业.元组
  • Nginx访问日志、日志切割、静态文件不记录日志和过期时间
  • 十七、编辑头像(带参数)
  • 完全检查点 (normal checkpoint)
  • name 'admin' is not defined第一个问题,新建Django项目,运行时报错
  • zxing 扫一扫 实用工具效率很高
  • Wireshark抓包工具使用
  • 【译】JS基础算法脚本:字符串结尾
  • [case10]使用RSQL实现端到端的动态查询
  • Angular 4.x 动态创建组件
  • ES6简单总结(搭配简单的讲解和小案例)
  • spark本地环境的搭建到运行第一个spark程序
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • use Google search engine
  • vue的全局变量和全局拦截请求器
  • 大整数乘法-表格法
  • 解析 Webpack中import、require、按需加载的执行过程
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 力扣(LeetCode)965
  • 数据可视化之 Sankey 桑基图的实现
  • 无服务器化是企业 IT 架构的未来吗?
  • Java性能优化之JVM GC(垃圾回收机制)
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • (七)c52学习之旅-中断
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET gRPC 和RESTful简单对比
  • .net MySql
  • .NET正则基础之——正则委托
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [Codeforces] probabilities (R1600) Part.1
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [Django 0-1] Core.Handlers 模块
  • [LeetCode] Ransom Note 赎金条
  • [MSSQL]GROUPING SETS,ROLLUP,CUBE初体验
  • [nlp] 损失缩放(Loss Scaling)loss sacle
  • [Notes]python argparse模块
  • [one_demo_12]递归打印*\n*.*.\n*..*..\n图形
  • [one_demo_7]求走到第50个台阶的走法多少种