Linux
文章目录
- Linux
- Linux发行版
- Debian 分支
- Red Hat 分支
- Arch Linux 分支
- 服务器
- 基础操作
- ls
- cat和less
- 设置权限
- 删除文件和目录
- 搜索文件
- cmake使用
- 文件
Linux发行版
一个典型的 Linux 发行版除了 Linux 内核以外,通常还会包括一系列 GNU 工具和库、一些附带的软件、说明文档、一个桌面系统、一个窗口管理器和一个桌面环境。不同的发行版之间除了 Linux 内核以外的其它部分都有可能不一样,因此有的时候我们对比某两种发行版的时候会觉得它们看起来像是完全不一样的操作系统,然而实质上它们却拥有着相同的核心,即 Linux 内核。
Debian 分支
Debian 是一个完全由自由软件构成的类 UNIX 操作系统
Debian GNU/Linux 也派生了很多发行版,其中最为著名的便是 Ubuntu
Red Hat 分支
Red Hat Linux 是美国的 Red Hat 公司发行的一个发行版,第一个版本发布于 1994 年 11 月 3 日,也是一个历史悠久的发行版。它曾经也广为使用,但在 2003 年 Red Hat 公司停止了对它的维护,转而将精力都投身于其企业版 Red Hat Enterprise Linux(简称 RHEL)上,Red Hat Linux 自此完结,而商业市场导向的 RHEL 维护至今。
在 Red Hat Linux 在停止官方更新后,由社群启动的 Fedora 项目接管了其源代码并构筑了自己的更新,演变成了如今的 Fedora 发行版。Fedora 是一套功能完备且更新迅速的系统,且本身计划也受到了 Red Hat 公司的赞助,成为了公司测试新技术的平台。
虽然 RHEL 是一个收费的、商业化的系统,但是其遵循 GNU 通用公共许可证,因此会开放源代码。编译这些源代码可以重新得到一个可以使用的操作系统,即一个新的发行版:CentOS(Community Enterprise Operating System,社区版企业操作系统)。因为 CentOS 几乎完全编译自 RHEL 的代码,所以其也像 RHEL 一样具有企业级别的稳定性,适合在要求高度稳定的服务器上运行。
2020 年 12 月,CentOS 社区在其博客中宣布未来的重点转向 CentOS Stream,这是一个全新的滚动发行版。在此之前,RHEL 的上游为 Fedora,而 CentOS 的上游为 RHEL;在推出 CentOS Stream 之后,它就成为了 RHEL 的上游发行版。与此同时,CentOS 8 的支持期限被缩短至 2021 年底,且不再推出新的非 Stream 的 CentOS 版本。不满于该决定的人们也组织了新的社区,推出了诸如 AlmaLinux、Rocky Linux 等发行版。
Arch Linux 分支
Arch Linux 拥有强大的功能,但因其特殊的理念使得用户不易使用。为了能让一般用户也能用上 Arch Linux 的强大功能,它的变种 Manjaro 发行版于 2011 年问世。Manjaro 发行版基于 Arch Linux,但更注重易用,因而更适合一般用户。
服务器
在互联网上,我们可以访问各式各样的网站、利用在线社交平台分享自己的生活、或者是使用联机办公工具和同事协同工作。通常来说这些网站和软件的提供商都需要设立他们自己的计算机来完成计算、存储和通信的功能,这种计算机就被称为服务器。
一台服务器通常是一台高性能的计算机,拥有强大的处理能力、存储能力和网络带宽,可以同时处理多个客户端的请求,并提供稳定可靠的服务。
和个人计算机不同,服务器通常都不会使用 Windows 或者 macOS 这种个人计算机操作系统,事实上绝大部分的服务器维护人员都愿意选择一些 Linux 发行版作为它们的操作系统,因为许多 Linux 发行版界面简洁。
基础操作
ls
主要选项参数如下:
. -a:全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
. -A:全部的文件,连同隐藏文件,但不包括 . 与 … 这两个目录
. -d:仅列出目录本身,而不是列出目录内的文件数据(常用)
. -f:直接列出结果,而不进行排序 (ls 默认会以文件名排序!)
. -F:根据文件、目录等信息,给予附加数据结构,例如: *:代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;
. -h:将文件大小以人类较易读的方式(例如 GB, KB 等等)列出来;
. -i:列出 inode 号码;
. -l:长数据串行列出,包含文件的属性与权限等等数据;(常用)
. -r:将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小;
. -R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;
. -S:以文件大小大小排序,而不是用文件名排序;
. -t:依时间排序,而不是用文件名。
- d表示这是一个目录
- rwxr-xr-x表示文件权限,分三组:
- 第一组(rwx)表示文件所有者(owner)的权限:读®、写(w)、执行(x)
- 第二组(r-x)表示同组用户(group)的权限:读®、执行(x)
- 第三组(r-x)表示其他用户(other)的权限:读®、执行(x)
- 2表示链接数
- class表示文件所有者
- acr2wndptz表示文件所属组
- 4096表示文件大小,单位是字节
- Sep 20 12:19表示最后修改时间
- classThur表示文件名
cat和less
查看文件内容
less 和 cat 的区别在于,cat 会一次性打印全部内容到终端中并退出,而 less 一次只显示一页,且支持向前/后滚动、搜索等功能。如果要在一个大文件中(例如 man page)查找一部分内容,less 通常要比 cat 方便得多。
Linux/Unix 的文件存取权限分为三级 : 文件拥有者(Owner)、群组(Group)、其他(Other)。通常用一个九位的字符串来依次表示Owner、Group和Other的文件操作权限,如rwxrwxrwx。从左至右,1-3位字符代表文件所有者的权限,4-6位字符代表同组用户的权限,7-9字符代表其他用户的权限。而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示。通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)。
设置权限
chomd u+rwx,g+rx,o+rx a.txt
等价于
chomd 755 a.txt
删除文件和目录
rm -r test/
选项 | 含义 |
---|---|
-f , --force | 无视不存在或者没有权限的文件和参数 |
-r , -R , --recursive | 递归删除目录及其子文件 |
-d , --dir | 删除空目录 |
搜索文件
find [OPTION] PATH [EXPRESSION]
在当前目录搜索名为 report.pdf 的文件:
$ find . -name ‘report.pdf’
全盘搜索大于 1G 的文件:
$ find / -size +1G
在用户目录搜索所有名为 node_modules 的文件夹:
$ find ~/ -name ‘node_modules’ -type d
cmake使用
这里是hellospeak函数中调用了speak函数