linux 教程 00 发行版选择
如何学习 Linux
明确目的:你是要用 Linux 来干什么,搭建服务器、做程序开发、日常办公,还是娱乐游戏
面对现实:Linux 大都在命令行下操作,能否接受不用或少用图形界面。
- 使用 Tab 键来进行命令补全
- Ctrl + C 键来强行终止当前程序(你可以放心它并不会使终端退出)
- touch 命令用于创建新文件
- 在 Linux 环境中,如果你遇到困难,可使用 man 命令查看帮助
云主机
云服务器是一种简单高效,处理能力可以弹性伸缩的计算服务。相关术语说明如下:
-实例(Instance):是一个虚拟的计算环境,由 CPU、内存、系统盘和运行的操作系统组成;ECS 实例作为云服务器最为核心的概念,其他资源,比如磁盘、IP、镜像、快照等,只有与 ECS 结合后才具有使用意义。
-地域(Region):指ECS实例所在的物理位置。地域内的 ECS 实例内网是互通的,不同的地域之间 ECS 实例内网不互通。
-可用区(Zone):指在同一地域内,电力和网络互相独立的物理区域。
-磁盘(Disk):是为 ECS 实例提供数据块级别的数据存储。可以分为4类: 普通云盘、SSD 云盘、高效云盘和本地 SSD 磁盘
-快照(Snapshot):是某一个时间点上某个磁盘的数据拷贝。
-镜像(Image):是 ECS 实例运行环境的模板,一般包括操作系统和预装的软件。
-安全组(Security Group):是一种虚拟防火墙,具备状态检测包过滤功能。每个实例至少属于一个安全组。同一个安全组内的实例之间网络互通,不同安全组的实例之间默认内网不通,但是可以授权两个安全组之间互访。
国内知名的云主机有 阿里云、腾讯云、华为云。
出现云服务器ping不通ip的情况,相关措施有哪些?
1. 检查是否有公网IP
云主机必须有公网 IP 才能与 Internet 上的其他电子计算机访问和共享。实例没有公网 IP,内部网IP不能直接通过外部。如果无公网 IP 能绑定弹性公网 IP。
2. 检查安全组的设置
安全组是虚拟服务器防火墙,可以操纵与云服务器实例相关的入口数据流和出口数据流。安全组的标准可以是具体的协议、端口号和对策。因为 ping 应用 ICMP 协议,所以要注意实例关系的安全组是否允许 ICMP。
起步
如果您刚刚接手了一台 Linux 系统,如果不知道当前系统类型可以进行验证。
确定是否为 RHEL 7 系统的方法
1 | cat /etc/redhat-release |
了解 Debian 系
Debian 系统
Debian 通用操作系统一直维护着至少三个发行版本:稳定版(stable),测试版(testing)和不稳定版(unstable)。
Debian 12
Debian 11 (bullseye) — 当前的稳定(stable)版
Debian 10(buster) — 当前的旧的稳定(oldstable)版
Debian 9(stretch) — 更旧的稳定(oldoldstable)版,现有长期支持
Debian 8(jessie) — 已存档版本,现有扩展长期支持
Debian 7(wheezy) — 被淘汰的稳定版
Debian 6.0(squeeze) — 被淘汰的稳定版
Debian GNU/Linux 5.0(lenny) — 被淘汰的稳定版
Debian GNU/Linux 4.0(etch) — 被淘汰的稳定版
Debian GNU/Linux 3.1(sarge) — 被淘汰的稳定版
Debian GNU/Linux 3.0(woody) — 被淘汰的稳定版
Debian GNU/Linux 2.2(potato) — 被淘汰的稳定版
Debian GNU/Linux 2.1(slink) — 被淘汰的稳定版
Debian GNU/Linux 2.0(hamm) — 被淘汰的稳定版
ubuntu 系统
Ubuntu 版本
- 20.04:focal
- 18.04:bionic
- 17.10:artful
- 16.04:xenial
- 14.04:trusty
dpkg 命令
linux 的包管理有多种,除了 rpm,apt 等还有优秀的 dpkg。
dpkg 命令的使用:
dpkg -l
查看当前系统中已经安装的软件包的信息
dpkg -L
(软件包名称)查看系统中已经安装的软件文件的详细列表
dpkg -s
查看已经安装的指定软件包的详细信息
dpkg -S
查看系统中的某个文件属于那个软件包;
dpkg -i *.deb
文件的安装
dpkg -r *.deb
文件的卸载;
dpkg -P
彻底的卸载 包括软件的配置文件等等
查看没有安装的 deb 包命令
dpkg -c
查询 deb 包文件中所包含的文件 rpm -qlp
dpkg -I
查询 deb 包的详细信息
添加说明:
最常用的就是 -i,-r。简单,安装/卸载。不用说。
了解 centos 系
可查看您当前的系统内核版本。如需要升级,可以进行如下操作:cat /etc/centos-release
查看版本信息
1 | cat /etc/centos-release |
或者
1 | cat /etc/redhat-release |
centos 系统(已过时)
更新 CentOS 系统
可查看您当前的系统内核版本。如需要升级,可以进行如下操作:cat /etc/centos-release
Step 1 编辑 yum.conf
在 /etc/yum.conf 中,注释:exclude kernel* centos-release*
Step 2 升级所有软件包
输入命令:yum update
此命令将升级 CentOS 系统和所有相关的软件包到软件源提供的最新版本。
Step 3 确认升级完成
升级完成后,再次输入命令: cat /etc/centos-release
此时会展示升级后的系统版本
Fedora 系统
Download Fedora Workstation
https://getfedora.org/en/workstation/download/
yum 命令
卸载包
1 | yum remove tomcat |
安装 java
yum -y install java
安装 Apache 服务
使用 yum 安装 Apache
yum install httpd -y
启动 Apache 服务:
service httpd start
还有 stop, restart 命令
service httpd stop
service httpd restart
安装 PHP
安装 PHP 和 PHP-MYSQL 支持工具:
1 | yum install php php-mysql -y |
安装 mariadb
yum install -y mariadb-server mariadb
启动 mariadb
systemctl start mariadb
配置密码, 这里默认使用密码 QcloudLabPASSWORD
mysqladmin -u root password 'QcloudLabPASSWORD'
登录 mariadb
mysql -u root -pQcloudLabPASSWORD
rpm 命令
(01)安装一个包:# rpm -ivh
(02) 升级一个包:# rpm -Uvh
(03) 移走一个包:# rpm -e
(04) 安装参数:
–force 即使覆盖属于其它包的文件也强迫安装
–nodeps 如果该 RPM 包的安装依赖其它包,即使其它包没装,也强迫安装。
(05) 查询一个包是否被安装:# rpm -q < rpm package name>
(06) 得到被安装的包的信息:# rpm -qi < rpm package name>
(07) 列出该包中有哪些文件:# rpm -ql < rpm package name>
(08) 列出服务器上的一个文件属于哪一个 RPM 包:#rpm -qf
(09) 可综合好几个参数一起用:# rpm -qil < rpm package name>
(10) 列出所有被安装的 rpm package:# rpm -qa
(11) 列出一个未被安装进系统的RPM包文件中包含有哪些文件:# rpm -qilp < rpm package name>
查看 rpm 安装包列表:
1 | rpm -qa | grep mysql |
正常卸载:
1 | rpm -e mysql-community-client-5.6.44-2.el7.x86_64 |
强制卸载:
1 | rpm -e mysql-community-client-5.6.44-2.el7.x86_64 --nodeps |
安装但是会检测依赖
1 | sudo rpm -Uvh <rpm package name> |
如果遇到“错误:依赖检测失败”的问题则可以在安装命令后加两个参数 --nodeps --force,即安装时不再分析包之间的依赖关系而直接安装。
查看 .rpm 依赖
1 | rpm -qpR <rpm package name> |
了解 ArchLinux 系
发行版:Manjaro https://manjaro.org/
pacman 是一个软件包管理器,作为 ArchLinux 发行版的一部分。它最早由 Arch Linux 的 Judd Vinet 开发,Pacman 可以解决安装过程中的依赖问题,自动下载并且安装所有需要的软件包。Pacman 包管理器是 Arch Linux的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman 使得简单的管理与自定义软件包成为了可能,而不论他们来自于官方的 Arch 软件库或是用户自己创建的。
pacman {-S --sync} [选项] [软件包] //安装安装包
pacman {-R --remove} [选项] <软件包> //删除安装包
pacman {-U --upgrade} [选项] <文件> //更新安装包