Linux | Linux基础知识
Linux 接口
Linux 具有三种不同的接口:系统调用接口、库函数接口和应用程序接口
Linux 组成部分
- 引导程序(Bootloader):引导程序是管理计算机启动过程的软件。
- 内核(Kernel):内核是操作系统的核心,负责管理 CPU、内存和外围设备等。
- 初始化系统(Init System):这是一个引导用户空间并负责控制守护程序的子系统。从引导加载程序移交到初始引导,用于管理引导过程的初始化系统。
- 后台进程(Daemon):后台进程顾名思义就是在后台运行的程序,比如打印、声音、调度等,它们可以在引导过程中启动,也可以在登录桌面后启动。
- 图形服务器(Graphical server):这是在监视器上显示图形的子系统。通常将其称为 X 服务器或 X。
- 桌面环境(Desktop environment):这是用户与之实际交互的部分,有很多桌面环境可供选择,每个桌面环境都包含内置应用程序,比如文件管理器、Web 浏览器、游戏等。
- 应用程序(Applications):桌面环境不提供完整的应用程序,就像 Windows 和 macOS 一样,Linux 提供了成千上万个可以轻松找到并安装的高质量软件。
Shell
shell 脚本其实也是一段程序,shell 脚本中可以对变量进行赋值,也包含循环控制语句比如 if、for、while 等,shell 的设计目标是让其看起来和 C 相似(There is no doubt that C is father)。由于 shell 也是一个用户程序,所以用户可以选择不同的 shell。
shell,它由大量标准应用程序组成。这些应用程序主要有下面六种
- 文件和目录操作命令
- 过滤器
- 文本程序
- 系统管理
- 程序开发工具,例如编辑器和编译器
- 其他
Linux 应用程序
cp 是将文件进行复制,复制完成后会有两个文件 a 和 b。
mv 相当于是文件的移动,移动完成后就不再有 a 文件。
cat 命令可以把多个文件内容进行连接
使用 rm 可以删除文件;
使用 chmod 可以允许所有者改变访问权限;
文件目录的的创建和删除可以使用 mkdir 和 rmdir 命令;
使用 ls 可以查看目录文件,ls 可以显示很多属性,比如大小、用户、创建日期等;
grep 从标准输入或者一个或多个输入文件中提取特定模式的行;
sort 将输入进行排序并输出到标准输出;
head 提取输入的前几行;
tail 提取输入的后面几行;
除此之外的过滤器还有 cut 和 paste,允许对文本行的剪切和复制;
od 将输入转换为 ASCII ;
tr 实现字符大小写转换;
pr 为格式化打印输出等。
程序编译工具使用 gcc ;
make 命令用于自动编译,这是一个很强大的命令,它用于维护一个大的程序,往往这类程序的源码由许多文件构成。典型的,有一些是 header files 头文件,源文件通常使用 include 指令包含这些文件,make 的作用就是跟踪哪些文件属于头文件,然后安排自动编译的过程。
Linux 的文件系统(File System)
bin
是 Binary
的缩写,存放着可执行文件或可执行文件的链接(类似快捷方式)
与 /bin
类似的是 /sbin
目录,System Binary 的缩写,这里存放的命令可以对系统配置进行操作。
boot
这里是系统启动需要的文件,你可以看到 grub
文件夹
dev
是 device
的缩写,这里存放这所有的设备文件。
etc
目录经常使用,存放很多程序的配置信息,比如包管理工具 apt
lib
是 Library 的缩写,类似于 Windows 系统中存放 dll
文件的库,包含 bin 和 sbin 中可执行文件的依赖。
media
会有一个以你用户名命名的文件夹,里面是自动挂载的设备,比如 U 盘,移动硬盘,网络设备等。
mnt
这也是和设备挂载相关的一个文件夹,一般是空文件夹。media
文件夹是系统自动挂载设备的地方,这里是你手动挂载设备的地方。
opt
是 Option 的缩写,这个文件夹的使用比较随意,一般来说我们自己在浏览器上下载的软件,安装在这里比较好。
proc
是 process
的缩写,这里存放的是全部正在运行程序的状态信息。
root
这是 root 用户的家目录,普通用户需要授权才能访问。
run
和 sys
来存储某些程序的运行时信息和系统需要的一些信息。这两个位置的数据都存储在内存中,所以一旦重启,/run
和 /sys
目录的信息就会丢失,所以不要试图在这里存放任何文件。
srv
是 service
的缩写,主要用来存放服务数据。对于桌面版 Linux 系统,这个文件夹一般是空的,但是对于 Linux 服务器,Web 服务或者 FTP 文件服务的资源可以存放在这里。
tmp
是 temporary
的缩写,存储一些程序的临时文件。
usr
是 Universal System Resource 的缩写,这里存放的是一些非系统必须的资源,比如用户安装的应用程序。
var
是 variable
的缩写,这个名字是历史遗留的,现在该目录最主要的作用是存储日志(log)信息,比如说程序崩溃,防火墙检测到异常等等信息都会记录在这里。
home
目录,这是普通用户的家目录。在桌面版的 Linux 系统中,用户的家目录会有下载、视频、音乐、桌面等文件夹,以及隐藏文件。Linux 中名称以 .
开头就是隐藏文件。其中 .cache
文件夹存储应用缓存数据,.config
文件夹存储了一部分应用程序的配置。