高薪全栈工程师必备 Linux 基础

2023-11-08

https://mp.weixin.qq.com/s?__biz=MzI0MTQwMTMyOQ==&tempkey=OTkzX0xtOTVOZkJQbjVQSnhQaWdFcU5pTXZiZ3BvRW5DaDNiaGg5MXJDdGVCSTdkSlFUMmVUandiQ2JkVkMyVGJ3dkc0dmg0bXVtNWwzZHZWNHVZOU9Ba0N5eUhYQmlFREJ1YlBlV0tLQnNaaGZRT0o1VGx6UmtzTXZXQm54UnpaRDFCUzE3RkphVlpIU1gtc29fMjA5cXFTMjdMZW1lbTFFazRqdmhYWFF%2Bfg%3D%3D&chksm=690d65e95e7aecffa13019c98c926f02084bf6a1d0b8d713041bc89e08b7cf7be1358d684a98#rd

640?


Linux 几乎无处不在,不论是服务器构建,还是客户端开发,操作系统的基础技能对全栈来说都是必备的。


系统的选择


Linux发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。


Redhat,应该称为Redhat系列,包括RHEL、Fedora、CentOS(RHEL的社区克隆版本,免费)。Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian加强而来,一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。Ubuntu社区认为实用性和创新性高于一切。


如果你需要一个比较稳定的服务器系统而已,那么最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。但是对云环境而言,unbantu也许不错,hadoop最早就是在ubantu上开发的。


体系结构


了解体系结构,可以有一个较好的方向感。Linux 有kernel和user两种模式,内核、shell和文件系统一起形成了基本的操作系统结构,Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。


640?wx_fmt=jpeg


Linux 内核


了解linux内核,可以充分利用资源,在系统调优时有目标感。


640?wx_fmt=png


Linux 将内存划分为容易处理的“内存页”,提供了对 4KB 缓冲区的抽象,例如 slab 分配器。进程实际是某特定应用程序的一个运行实体,进程调度控制进程对CPU的访问。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。 内核通过 SCI 提供了一个API来创建一个新进程(fork、exec 或 POSⅨ),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。


Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。 网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。


Linux 文件系统


Linux系统能支持多种目前流行的文件系统,推荐用EXT4。

Linux下面的文件类型主要有:

1) 普通文件,分为纯文本和二进制。

2) 目录文件,存储文件的地方。

3) 链接文件,指向同一个文件或目录的的文件。

4) 设备文件,分为块设备和字符设备。

5)管道文件,提供进程间通信

6)套接字文件,与网络通信有关


Linux使用标准的目录结构,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。


目录名 简要说明
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户abc的主目录就是/home/user,可以用~abc表示
/lib 标准程序设计库
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/X11R6 存放X window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库


shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。shell 有很多类型,这里推荐BASH。BASH是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。Linux Shell 及命令

Linux 的命令很多,下面给出了一个简单的分类。


640?wx_fmt=jpeg


在shell 中组织linux 的命令来完成一系列的任务,就是shell 编程了。Shell,Perl和Python 是Linux 上最常用的脚本语言,我还是推荐使用Python。


Linux 应用


标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、Internet工具和数据库等。


对于文本编辑而言,Emacs 和vim 各有千秋,通过插件配合甚至可以作为IDE使用。 个人感觉,VIM 还应该是必备技能。vim的命令也很多,整理如下:

640?wx_fmt=gif


就应用的管理而言,ubuntu 需熟知apt命令,centos 则是yum命令。当然了,源代码编译安装是必须的,makefile的写法,configure/autoconfig/make 的用法要手到擒来才好。

来源:伯乐在线 - abel_cao 

链接:http://blog.jobbole.com/106827/

640?wx_fmt=other

云计算免费课程火热开讲中,5天运维经典课程免费学,会云计算的运维人才到底需要掌握哪些技术,未来前景发展怎么样?跟随行业大咖一起剖根究底,点击文末“阅读原文”长按下方二维码即可报名免费课程抓住免费学习的机会,逆袭2019~~

 640?wx_fmt=png

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

640? 640

▼▼点击【阅读原文】,5天运维免费课程,开讲在即!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高薪全栈工程师必备 Linux 基础 的相关文章

  • CVE-2017-11882漏洞复现

    本文记录一下针对CVE 2017 11882的漏洞复现 0x00 前言 参考backlion师傅的PDF 记录一下这个过程 2017年11月14日 微软发布了11月份的安全补丁更新 其中比较引人关注的莫过于悄然修复了潜伏17年之久的Offi
  • 详解c++---优先级队列和仿函数

    目录标题 什么是仿函数 如何定义一个仿函数 什么是优先级队列 优先级队列的使用 模拟实现priority queue 准备工作 top函数的实现 size函数的实现 empty函数的实现 adjustup函数的实现 push函数的实现 po
  • Opencv图像处理(全)

    文章目录 博主精品专栏导航 备注 以下源码均可运行 不同项目涉及的函数均有详细分析说明 11 图像项目实战 一 银行卡号识别 sort contours resize 二 文档扫描OCR识别 cv2 getPerspectiveTransf
  • IntelliJ IDEA 修改 idea64.exe.vmoptions文件修改错误导致软件打不开

    如果修改了idea64 exe vmoptions文件中的参数 然后导致idea打不开 那么此文一定能帮你解决问题 有的小伙伴出现此类问题之后 可能尝试的重装IntelliJ IDEA的方法 但是重装之后发现还是解决不了问题 还是会弹出如下
  • iOS开发判断版本号不同

    判断是否是第一次启动或者版本号不同时 NSString key CFBundleVersion 上一次打开的版本号 存储在沙盒中的版本号 NSString lastVersion NSUserDefaults standardUserDef
  • 串口接收数据分包问题处理(QT上位机/单片机等)

    串口数据出现分包如何正确完整接收 提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 设计思路 二 代码参考 总结 前言 串口通信在QT上位机以及单片机或者安卓串口等使用情况下 经常容易出现一包数据分成几包
  • 基于VS2019 C++的跨平台(Linux)开发——引入

    一 前言 先声明我的服务器是Ubuntu16 04 由标题可知 我的开发工具采用Visual Studio2019 使用c 语言来实现windows linux的跨平台开发 二 关于跨平台 1 什么是跨平台 由百度百科可知 跨平台概念是软件
  • 【Redis】Redis 常用命令

    文章目录 String List Set Hash Zset Geospatial Hyperloglog Bitmap String key value 结构 value 除了字符串还可以是数字 整型 浮点型 set key value
  • 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)

    这篇文章分析一下链表的各种排序方法 以下排序算法的正确性都可以在LeetCode的链表排序这一题检测 本文用到的链表结构如下 排序算法都是传入链表头指针作为参数 返回排序后的头指针 struct ListNode int val ListN
  • Echarts 散点图的 tooltip设置跟随鼠标移动,并将显示位置固定在指定大小区域

    问题 在散点图中设置了tooltip后 不设置position 使用默认的配置 toolt的显示位置是跟随鼠标移动的 但是会出现显示不全的情况 如下图 这产品肯定不能忍啦 必须改 于是我去看了echarts的文档 看到tooltip的pos
  • java calendar getactualmaximum_Calendar类的getActualMaximum方法作用(获得某月份实际天数)...

    首先我们看api中对getActualMaximum这个方法的说明 Calendar Java 2 Platform SE 6 public int getActualMaximum int field 给定此 Calendar 的时间值
  • zxing二维码的生成与解码(C#)(附例子)

    二维码的生成 using com google zxing qrcode using com google zxing using com google zxing common using ByteMatrix com google zx
  • 论文笔记-深度估计(2) Fully Convolutional Networks for Semantic Segmentation

    1 介绍 该文讲述的是语义分割 但思路和框架和深度恢复是十分相似的 毕竟当前语义和深度问题本质上是一个像素级的分类问题 从该文3000 引用用量也可见该文章的巨大启发效果 所谓全卷积网络 是指由仅由卷积层 池化层和非线性激活函数层交错组织起
  • Tensorflow报错:AttributeError: 'module' object has no attribute 'summary'

    这是因为API的版本不对 导致AttributeError module object has no attribute summary 想想并没有修改什么 只是服务器被重装了驱动 会不会是这个原因呢 对了 同事说在服务器上装了tensor
  • SectionList 嵌套FlatList实现Grid和Flat列表

    直接上代码 遇到问题查解决方法的时候还是先看官方文档把 百度的博客实在是坑啊 特别是那个某博客的有个sectionlist简直了 sectionlist里竟然来个numColumns 明明没有的事也不知道他哪里偷的文档 结果苦逼的研究半天
  • CSDN 软件开发新手赛正式启动,召集热爱编程的你

    2021年12月21日起 CSDN软件开发新手赛正式启动 此次大赛是基于 C认证 见习工程师能力认证 标准而设立的编程比赛 只要你想成为Java Python 前端 全栈工程师 无论你是职场小白 在校学生还是编程爱好者 皆可免费报名参与 大
  • 安装mmcv

    安装MMCV 创建虚拟环境gupao 并激活 nvcc V 查看cuda版本 打开当前项目文件主页查看环境配置Prerequisites MMPretrain 1 0 1 documentation 4 安装合适的torch版本 原来的版本
  • 【数据分析】Python:处理缺失值的常见方法

    在数据分析和机器学习中 缺失值是一种常见的现象 在实际数据集中 某些变量的某些条目可能没有可用的值 处理缺失值是一个重要的数据预处理步骤 在本文中 我们将介绍如何在 Pandas 中处理缺失值 我们将探讨以下内容 什么是缺失值 如何在 Pa
  • Java之String类

    作者简介 zoro 1 目前大二 正在学习Java 数据结构等 作者主页 zoro 1的主页 欢迎大家点赞 收藏 加关注哦 Java之String类 String的构造 String底层 String之间的比较 比较内容 比较地址 字符串查
  • [用python辅助学生中考与高考-3]:中考科技特长生知多少

    目录 前言 1 什么是科技特长生 2 科技特长生政策正在覆盖全国 3 科技特长生招生流程 1 制定章程 2 考生报名 考生自主报名 3 专业加试 考试 4 预录取 5 上报名单 6 名单公示 7 参加考试 8 正式录取 4 如何布局中考科技

随机推荐

  • 毕业设计-基于 MATLAB 的图像边缘检测算法的研究和实现

    目录 前言 课题背景和意义 实现技术思路 一 MATLAB概述 二 图像边缘检测 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求
  • 2021-11-24 qt 串口

    这货跟vb 比 就系更方便了 打完收工
  • 正则表达式 匹配以特定字符串开头 到任意第一个字符中间的空格

    lt p style text indent 2em S 正则表达式 匹配以特定字符串开头 到任意第一个字符中间的空格 lt p p style text indent 2em u4e00 u9fa5 正则表达式 匹配以特定字符串开头 到任
  • 2021年的保研之旅总结

    保研之旅 个人情况介绍 1 学校 末流211 2 专业 信息管理与信息系统 信管算管理学位 保研的时候有的时候会被认为是跨保的 3 绩点 1 36 4 比赛获奖 没有什么拿得出手的获奖 只有一些小奖 全国大学生物联网设计竞赛全国一等奖 美国
  • robotframework-ride安装注意点

    欢迎关注 无量测试之道 公众号 回复 领取资源 Python编程学习资源干货 Python Appium框架APP的UI自动化 Python Selenium框架Web的UI自动化 Python Unittest框架API自动化 资源和代码
  • Server2008R2:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断.的解决方法,求大神们指导

    出现 由于没有远程桌面授权服务器可以提供许可证 远程会话被中断 问题是因为微软默认的远程登录只提供120天的使用期限 解决该问题的具体步骤如下 1 打开运行 在运行中输入注册表命令 regedit 然后回车通过命令打开注册表对话框 2 在注
  • 获取windows中活跃的Com口

    获取windows中活跃的Com口 记录于2021年11月9日 今天对我来说是个很特殊的一天 母胎SOLO二十一周年 无奈 Orz 闲暇之余写下此文章 记录一下我的日常 文章目录 获取windows中活跃的Com口 前言 一 如何寻找活跃C
  • “另一个程序正在使用此文件,进程无法访问”的解决方法

    另一个程序正在使用此文件 进程无法访问 的解决方法 参考文章 1 另一个程序正在使用此文件 进程无法访问 的解决方法 2 https www cnblogs com shiningrise archive 2012 12 02 279812
  • apache 2.4 配置php,Apache2.4 PHP 配置

    Apache2 4服务器 http www apachehaus com cgi bin download plx APACHE24VC14 64位 http www apachehaus com cgi bin download plx
  • Vue创建Demo项目

    Vue创建Demo项目 Vue 发音为 vju 类似 view 是一款用于构建用户界面的 JavaScript 框架 它基于标准 HTML CSS 和 JavaScript 构建 并提供了一套声明式的 组件化的编程模型 帮助你高效地开发用户
  • 魔兽怀旧服联盟服务器不稳定,魔兽世界怀旧服上次被联盟攻击至少三个月前,“单边服”何去何从...

    游戏中我们是朋友 聊天侃地 在这里我们可以无拘无束的发言 不会有任何人阻挠 还有大家最喜欢吐槽的小编 请把口水收集好 随时准备和小编一起吐槽 魔兽世界怀旧服上次被联盟攻击至少三个月前 单边服 何去何从 今天公会一个人表示他被联盟杀了 大家都
  • React性能优化的手段有哪些

    1 使用纯组件 2 使用 React memo 进行组件记忆 React memo 是一个高阶组件 对 于相同的输入 不重复执行 3 如果是类组件 使用 shouldComponentUpdate 这是在重新渲染组件之前触发的其中一个生命周
  • 21. 成语接龙

    小张非常喜欢与朋友们玩成语接龙的游戏 但是作为 文化沙漠 的小张 成语的储备量有些不足 现在他的大脑中存储了m个成语 成语中的四个汉字都用一个1000000以内的正整数来表示 现在小张的同学为了考验他给出了他一个成语做开头和一个成语做结尾
  • HDFS的基础练习--新建目录

    实验 1 在HDFS的 上创建10目录 data01 data10 在浏览器上查看 2 在HDFS data03下递归创建 data05 data06 data07 递归创建 使用命令 hdfs fs mkdir p xx1 xx2 xx3
  • IDEA菜单栏不见了怎么办

    开始时候我的IDEA主菜单不见了 解决方法 打开Idea 按两次shift 并在弹出框内的搜索框里输入 view 然后往下拉 找图里的这个View 点击它 会弹出新的框 然后就 这样主菜单栏就出来了
  • SpringBoot 基础

    1 认识Spring Boot Spring 不同于一般框架 它是一个聚合的框架 通过Spring 框架可以使Java 更为便捷和系统化 Java web 中最为使用的框架为 Spring Framework Spring boot 是 S
  • python中使用apscheduler二步简单完成定时任务设置,用于自动化任务的创建,无人值守后台任务创建

    一 apscheduler的安装 首先需要安装pip 打开CMD输入pip install apscheduler 安装apscheduler模块 安装过程如下图 二 导入apscheduler包 设置参数与需要执行的脚本 coding u
  • Pytorch从0实现Transformer

    文章目录 摘要 一 构造数据 1 1 句子长度 1 2 生成句子 1 3 生成字典 1 4 得到向量化的句子 该阶段总程序 二 位置编码 2 1 计算括号内的值 2 2 得到位置编码 三 多头注意力 3 1 self mask 摘要 Wit
  • Elasticsearch笔记(七):聚合查询

    聚合框架有助于根据搜索查询提供聚合数据 聚合查询是数据库中重要的功能特性 ES作为搜索引擎兼数据库 同样提供了强大的聚合分析能力 它基于查询条件来对数据进行分桶 计算的方法 有点类似于 SQL 中的 group by 再加一些函数方法的操作
  • 高薪全栈工程师必备 Linux 基础

    https mp weixin qq com s biz MzI0MTQwMTMyOQ tempkey OTkzX0xtOTVOZkJQbjVQSnhQaWdFcU5pTXZiZ3BvRW5DaDNiaGg5MXJDdGVCSTdkSlFU