Linux拾遗
回顾了以前学的内容,纯纯的只学命令而没有真的在linux下整过什么东西,恶补有关内容,真正拥抱这个社区
最近重新把 win+wsl2 拿起来,发现 nvidia 的 cuda 在 win 下安装后通过某种方式直接集成到wsl中了,vscode也接入了wsl,准备日后学习和工作迁移到linux上
拾遗
GNU计划
名称是GNU’s Not Unix!的缩写
Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux
其内容软件完全以GPL方式发布
POSIX标准
可移植操作系统接口(Portable Operating System Interface of UNIX)
定义了应用程序和操作系统之间的接口,以及命令行shell和程序接口,以实现软件的可移植性
常见的Linux, BSD, macOS, iOS, Android等操作系统均遵循POSIX
开源许可证
- 宽松式:BSD、MIT、Apache2
- Copyleft:GPL(传染性)、LGPL、AGPL、Mozilla(MPL)
选择时可以看那张经典的树状图,宽松式基本都可以,特别注意GPL的传染性
万物皆文件
基本哲学之一
简单理解就是硬件设备、进程信息、网络接口,还是普通文件、目录、链接等,都可以通过文件的方式进行访问和操作,仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源
基本目录规范 - XDG
为系统提供一致的桌面环境
XDG规范涵盖了各个方面的规范,使得不同的桌面环境和应用程序能够更好地协作和兼容
主要通过一套环境变量来指明应用程序的基准目录
通过env | grep XDG
查看有关环境变量
Linux 基本目录规范 ——XDG | Winddoing’s Notes
XDG Base Directory Specification (specifications.freedesktop.org)
各目录作用
Linux各目录及每个目录的详细介绍 - lin_zone - 博客园 (cnblogs.com)
常用目录
/bin -> /usr/bin
:常用命令/home
:用户主目录/dev
:设备相关/etc
:系统管理配置,如软件包源就在此处配置,谨慎修改/lib -> /usr/lib
:各种库/proc
:VFS,内存的映射,可以用于查看系统信息/opt
:一般用于大型软件和服务程序/mnt
:临时挂载点/usr
:主要存放应用程序和各种文件/var
:各种不断扩充的文件,包括日志,例cat /var/log/apt/term.log
除了基本的目录作用,进一步了解各目录内部的信息,使用起来才能达到得心应手
包管理
理解包管理的C/S模式,中心化机制
技术|Linux 包管理基础:apt、yum、dnf 和 pkg
Ubuntu 和 Debian 软件包管理要点 |数字海洋 (digitalocean.com)
在了解机制后很容易理解为何需要更新包列表(update && upgrade),但几乎看到的每个教程在操作前都会进行这个操作,到底多久更新软件包呢?
国内镜像站大部分是凌晨进行同步,即基本每隔一天就可以刷一下列表
文件
- 文件类型(普通
[-]
、目录[d]
、块设备[b]
、字符设备[c]
、套接字[s]
、管道[p]
、链接[l]
) - 权限管理(
-rwxrwxrwx
) - 用户&组
写在最后
理解了大框架,命令的学习就会水到渠成,剩下的就是通过--help
和man
加上搜索引擎来熟悉操作,逐步扩展使用的内容了
总的来说,背后的理念和各种技术由来可能才是学习阶段需要深刻了解的,以上也只涉及到一部分内容,更多的则需要在日常使用和交流中提升理解