linux basic knowledge

本文介绍了全栈开发者必备的Linux基础知识,涵盖了Linux发行版选择、体系结构、内核原理、文件系统、常用命令及文本编辑器等内容。
 

全栈必备Linux 基础 

标签: Linuxcentosubuntu全栈
  3064人阅读  评论(2)  收藏  举报
  分类:

目录(?)[+]

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 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。 
引自维基百科

Linux内核

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

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 本地增加的库    

Linux Shell 及命令

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

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

常用命令

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

Linux 应用

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

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

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

<think> 首先,用户是用中文提问的:"Linux基本常识",意思是"Linux basic knowledge"。我需要用中文回答这个问题。 我的回答必须基于用户的问题,并提供Linux的基本常识。然后,在回答结束后,我必须包括3到5个§§相关问题§§。第一行必须是完整的"§§相关问题§§",并且不能换行分散。 从示例中看,回答结束后,直接写出"§§相关问题§§",然后列出1.、2.、3.等相关问题。 内容要求:确保所有内容符合规则,否则无效。 所以,结构应该是: 1. 回答用户的问题:讲解Linux基本常识。 2. 结束回答。 3. 立即输出"§§相关问题§§"。 4. 然后列出3-5个相关问题。 现在,针对"Linux基本常识",我需要提供一个简洁的概述。既然是基本常识,我应该覆盖关键点: - Linux是什么:一个开源的、基于Unix的操作系统内核。 - 常见的Linux发行版:如Ubuntu, CentOS, Debian等。 - 基本命令:例如ls, cd, pwd, mkdir等常用命令。 - 文件系统结构:如根目录/ , /home, /etc等。 - 权限管理:用户、组、权限(rwx)。 - 开源特性。 我应该保持回答简明扼要,因为用户要求的是"基本常识",不是详尽教程。 回答后,提出3-5个相关问题。这些问题应该基于我的回答,鼓励用户进一步探讨Linux。例如: 1. Linux与Windows的主要区别是什么? 2. 如何安装一个Linux发行版? 3. 常见Linux命令有哪些及其用法? 4. Linux文件系统的基本结构是怎样的? 5. 如何在Linux中管理用户和权限? 我需要确保问题数量为3到5个,并且它们相关。 最后,输出格式:回答结束时,直接写"§§相关问题§§",然后列出问题,每个问题以数字点开始,如1. ..., 2. ..., 等等。 组织回答: - 开头:解释Linux基本常识。 - 结束回答。 - §§相关问题§§ - 1. ... - 2. ... - 3. ... - [可选4.和5.] 确保语言是中文,因为用户指定了"使用中文回答问题"。 大纲回答: 1. Linux的基本常识: - Linux是一个免费开源的操作系统内核,由林纳斯·托瓦兹于1991年创建。 - 它基于Unix,常用于服务器、嵌入式系统和桌面。 - 用户通常通过发行版使用Linux,如Ubuntu、Fedora、Debian等。 - 基本命令包括:ls(列出目录内容)、cd(改变目录)、mkdir(创建目录)、rm(删除文件)、chmod(改变权限)等。 - 文件系统以根目录/开始,包括/bin、/etc、/home等目录。 - 权限系统基于用户、组和权限位(读、写、执行)。 - Linux强调命令行界面(CLI),但也有图形界面(GUI)。 然后,结束这部分。 相关问题: 1. Linux有哪些常见的发行版? 2. 如何在Linux中查看系统信息? 3. Linux的文件权限是如何工作的? 4. 如何安装软件在Linux上? 5. Linux命令行中有哪些基本快捷键? 我需要列出3-5个,所以可以选择3个或4个。 最终输出: - 回答内容 - §§相关问题§§ - 1. ... - 2. ... - 3. ... </think> ### Linux基本常识 Linux是一种开源的操作系统内核,由林纳斯·托瓦兹于1991年创建。它基于Unix设计,以其稳定性、安全性和多用户支持而闻名。以下是关键常识: - **开源特性**:Linux内核和大多数发行版都是免费的,用户可以自由修改和分发源代码。 - **发行版(Distros)**:常见的Linux发行版包括Ubuntu(适合初学者)、CentOS(服务器常用)、Debian(稳定可靠)等,它们打包了内核、软件包管理器和桌面环境。 - **命令行界面(CLI)**:Linux强调命令行操作,基本命令如: - `ls`:列出目录内容 - `cd`:改变当前目录 - `pwd`:显示当前工作目录 - `mkdir`:创建新目录 - `rm`:删除文件或目录 - `chmod`:修改文件权限(读r、写w、执行x) - **文件系统结构**:以根目录`/`为起点,关键目录包括: - `/bin`:基本可执行文件 - `/etc`:系统配置文件 - `/home`:用户个人目录 - `/var`:日志和可变数据 - **权限管理**:Linux使用用户(user)、组(group)和权限位(如755)来控制访问,确保系统安全。 - **应用场景**:广泛用于服务器、云计算、嵌入式设备(如路由器)和桌面系统。 Linux的优势包括低资源消耗、高度可定制化,以及强大的社区支持。初学者可从Ubuntu等用户友好发行版入门。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值