首页 > 系统相关 >全栈必备Linux 基础

全栈必备Linux 基础

时间:2023-08-28 10:48:09浏览次数:45  
标签:必备 Linux 文件系统 全栈 usr linux 目录 内核

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内核,可以充分利用资源,在系统调优时有目标感。
全栈必备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 本地增加的库

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

Linux 的命令很多,下面给出了一个简单的分类。
全栈必备Linux 基础全栈必备Linux 基础
在shell 中组织linux 的命令来完成一系列的任务,就是shell 编程了。Shell,Perl和Python 是Linux 上最常用的脚本语言,我还是推荐使用Python。

Linux 应用

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

对于文本编辑而言,Emacs 和vim 各有千秋,通过插件配合甚至可以作为IDE使用。 个人感觉,VIM 还应该是必备技能。vim的命令也很多,整理如下:
全栈必备Linux 基础全栈必备Linux 基础
就应用的管理而言,ubuntu需熟知apt命令,centos则是yum命令。当然了,源代码编译安装是必须的,makefile的写法,configure/autoconfig/make 的用法要手到擒来才好。

原文来自:http://www.open-open.com/lib/view/open1477280462145.html

本文地址:https://www.linuxprobe.com/full-stack-linux-knowledge.html编辑:烨子,审核员:逄增宝

本文原创地址:https://www.linuxprobe.com/full-stack-linux-knowledge.html

标签:必备,Linux,文件系统,全栈,usr,linux,目录,内核
From: https://www.cnblogs.com/linuxpro/p/17661621.html

相关文章

  • Win11开发嵌入式Linux与交叉编译的一些轮子
    由于我不愿意直接使用ubuntu环境来开发Linux,所以在实践中我摸索出一套能够在最新的win11下调试Linux开发板的方法。wsl2准备首先我们需要安装wsl2。安装教程使用USBIP读写SD卡我们需要在linux环境下对开发板使用的TF卡进行读写。由于wsl2不支持直接挂载宿主机的usb设备,并且其......
  • Linux下MySql开放访问权限
    在Linux下安装完数据库后,局域网内无法访问。 设置方法:1.停止mysql,进入/etc/mysql/,编辑my.cnf,找到bind-address的配置,改为0.0.0.0,然后启动mysql2.登录mysql,进入mysql数据库,执行updateusersethost='%'wherehost='127.0.0.1'anduser='root',执行完成后再使用命令flushprivileg......
  • Linux目录结构
    Linux目录结构linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他目录。/bin[重点](/user/bin、/user/local/bin)是Binary的缩写,找个目录是存放着最经常使用的命令/sbin(/user/sbin、/user/local/sbin),s是superuser的意......
  • Linux基础入门常见命令
    ls查看ls-lcdmv移动mkdir创建df查看磁盘pwd查看当前目录rm-rf删除强制删除sudouseradd-m用户名创建新用户创建的新用户权限是很低的sudopasswd用户名创建新用户密码sudouserdel用户名删除用户sudormf-/home/用户名强制删除用户的所有......
  • linux学习指令与现有环境解决问题笔记
    linux学习指令与现有环境笔记注意:我将pytorch和cuda安装在了pytorch这个虚拟环境中pytorch安装及注意问题注意版本对应,稳定版2.0.1对应cuda11.7,别按错了按错导致重新安装cuda安装过程与对应问题注意上述内容,里面告诉了添加环境变量,如何删除cuda,cuda下载的位置,下载对应驱动......
  • 在Linux环境下安装Nginx
    在Linux环境下安装和使用Nginx是相对简单的。下面是一步步详解:安装依赖软件:首先,打开终端并以管理员权限登录到Linux系统。然后,执行以下命令安装Nginx所需的依赖软件:sudoaptupdatesudoaptinstallcurlgnupg2ca-certificateslsb-release添加Nginx官方软件仓库:执行以下命令......
  • linux学习-rehat8更换yum源
    redhat安装完后是不能直接用yum源的,会提示没有注册,需要修改成centos8的源里使用阿里云Centos8yum源cd/etc/yum.repos.d/#下载阿里云yum源curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-8.repomvredhat.reporedhat.repo_bak#将redhat......
  • linux学习-nginix生产配置示例
    usernginxnginx;worker_processes8;worker_rlimit_nofile65535;error_log/var/log/nginx/error.logerror;pidlogs/nginx.pid;events{ useepoll;worker_connections65535; multi_accepton;}http{includemime.types;......
  • 如何在 Linux 中设置 SSH 无密码登录
    SSH(SecureSHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。它还用于使用安全复制(SCP)命令和rsync命令通过网络将文件从一台计算机传输到另一台计算机。在本文中,我们将向您展示如何在基于RHEL的Linux发行版(例如CentOS、Fedora、RockyLinux和A......
  • [Kali] Kali Linux 环境准备
      虚拟机和系统:Mac的VmwareFusion:https://www.vmware.com/cn/products/fusion/fusion-evaluation.html 序列号去谷哥查.KaliLinuxVMs:https://www.kali.org/get-kali/#kali-virtual-machines 修改root密码:sudopasswdroot  远程连接客户端工具:windows-X......