全栈工程师学习Linux技术的忠告

简介:

随着科技的普及,Linux作为最受欢迎的服务端操作系统,无人不知,无人不晓。当今,不论是服务器搭建,还是客户端开发,Linux系统的基础技能对全栈来说都是必备的,而了解如下几个问题可以更好的帮助你成为一名合格的全栈工程师。

1.Linux体系组织结构

学习一个系统需要了解其体系结构,这样才能更好的学习。Linux有kernel和user两种模式,内核、shell和文件系统统一形成基本的操作系统结构,Linux内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。

o_%e5%85%a8%e6%a0%88%e5%b7%a5%e7%a8%8b%e

学习linux内核知识的同时,我们不仅仅要了解原理,而且还要实际操作相关命令,使我们的理论得到验证,这样我们就需要两本最基础的书籍来帮助我们更好的理解和学习Linux,以初学者的角度我选择的是《红帽官方RHEL7教材》和《Linux就该这么学》这两本书,前者可以帮助我们很好地理解Linux系统到底是怎么样的一个系统,以及内核是如何工作的,后者可以在我理解相关理论知识的同时提供很好的实验教程,加深我们对Linux相关操作命令的熟悉。古人常说实践是检验真理的唯一标准,这里我想说只有通过理论知识加上实际操作的结合,才能更好的学习Linux,只要我们这样坚持过啦,过不了多久你就会发现学习Linux其实并没有那么难。

2.如何选择Linux发行版?

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

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

作为生产服务器,建议选择CentOS,使用CentOS的国内用户较多,安全性较高,出现问题能解决的途径较多,其社区比较活跃,Linux最常见的命令可以参考: http://***/chapter-02.html

3.充分了解Linux文件系统

Linux最新的发行版默认都采用ext4格式作为默认文件系统,Linux上面的文件类型主要包含下面几类:

  1. 普通文件:分为纯文本和二进制
  2. 目录文件:存储文件地方
  3. 链接文件:指向同一个文件或目录的文件
  4. 分为块设备和字符设备
  5. 管道文件:提供进程间通信
  6. 套接字文件:与网络通信有关

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

目录名简要说明:
  • /bin 二进制可执行命令
  • /dev、 设备特殊文件
  • /etc、 系统管理和配置文件
  • /etc/rc.d 启动配置文件和脚本
  • /home 用户主目录
  • /bin 标准程序设计库
  • /sbin 系统管理命令,存放的是系统管理员使用的命令或程序
  • /tmp 公用的临时文件存储路径
  • /root 系统管理员主目录
  • /mnt 系统提供这个目录让用户挂载其他的文件系统
  • /lost+found 这个目录默认是空的,当系统非正常关机的时候这个目录下会保留一些文件
  • /proc 虚拟目录,是系统内存的映射,可以通过直接访问这个目录来获取系统的相关信息
  • /var 特定大文件的溢出区,一般常用来存放各种服务的日志文件
  • /usr Linux系统最主要的目录,因为Linux的绝大多数服务和文件都存放在这个目录下

从事IT行业的人员,无论是研发,前端,测试,还是运维都需要了解Linux的基础知识,前三者可能只需要大概了解Linux简单知识点及简单操作,运维需要学习更多的Linux知识,而要想成为一名合格的全栈工程师,需要你敲到一手好代码的同时,还需要更多的Linux知识,这样才能常用在技术的海洋里。自从接触Linux的那一天起,我便知道此生有很多事可以去做,我希望通过Linux实现一个小目标,挣一套房子的钱。路漫漫其修远兮,吾将上下而求索。



本文转自Linux就该这么学博客园博客,原文链接:http://www.cnblogs.com/linuxprobe/p/5899577.html,如需转载请自行联系原作者

相关文章
|
13天前
|
机器学习/深度学习 自然语言处理 Linux
【专栏】Linux 中的机器学习:Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔
【4月更文挑战第28天】本文探讨了在Linux环境下,先进自动语音识别系统Whisper的运用与实现高效ASR。Whisper基于PyTorch,支持多语言识别,具有高准确性和实时性。文中介绍了安装配置Whisper的步骤,包括安装依赖、下载代码、配置环境变量及编译安装。通过数据准备、模型训练和识别,可实现语音识别功能。Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔。
|
14天前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
3天前
|
自然语言处理 Java Linux
【Linux】开始学习进程替换吧!
通过学习进程替换,我们可以体会到多语言混搭的快乐,可以从C语言直接蹦到python ,也可以从c++里运行java代码。是不是很厉害!这是通过调度多个进程的效果,联系我们之前学习的进程,进程控制等概念。我们可以想要运行其他代码可以通过创建子进程来实现,但是这样也肯定是同一种语言,如果想要运行其他语言,那是不是有种方法可以调度一个进程来当做子进程呢??? 我们开始今天的学习吧!
9 0
|
11天前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
该文指出了学习嵌入式Linux开发的两个常见误区。一是过分专注于学习桌面或服务器版Linux,而非关注嵌入式开发本身,实际上只需熟悉基本操作即可。二是试图在没有基础的情况下直接阅读Linux内核源代码,这是不切实际的,应先建立基础知识再进行源码学习。文章还提到了在嵌入式系统中获取和处理屏幕数据的示例,包括使用gsnap工具将framebuffer数据转为图像,以及涉及的交叉编译过程。
11 0
|
11天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
12天前
|
编解码 Linux 数据安全/隐私保护
【Linux学习】​​学习Linux的准备工作和Linux的基本指令
【Linux学习】​​学习Linux的准备工作和Linux的基本指令
|
12天前
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
|
13天前
|
运维 监控 安全
【专栏】11 个 Linux 网络命令学习和熟练运用这些命令是提升网络管理能力的基础
【4月更文挑战第28天】本文介绍了11个必备的Linux网络命令,包括ifconfig、ip、ping、traceroute、netstat、tcpdump、ss、telnet、ftp、ssh和nmap,这些命令在网络配置、故障排查和性能监控中发挥关键作用。通过实例分析,强调了它们在实际工作中的综合应用,帮助运维工程师提升效率和应对网络挑战。学习和熟练运用这些命令是提升网络管理能力的基础。
|
19天前
|
消息中间件 Unix Linux
Linux的学习之路:17、进程间通信(1)
Linux的学习之路:17、进程间通信(1)
27 1
|
Linux 开发工具 Shell