1 Linux的相关概念
1.1 什么是操作系统?
操作系统(英语:operating system,缩写:OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
1.2 操作系统的分类
Windows、Linux、Unix
1.3 Unix及其衍生(可参考<<浪潮之巅>>)
1.4 Linux是什么?(有兴趣可以看Linus Torvalds的传记,中文名<<只是为了好玩>>)
Linux是一种*和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。
谭邦宁教授:minix(微内核)
Linux的几大派系
Debian系----ubuntu(deb包管理方式)
Redhat系----fedora, Centos(rpm包管理方式)
1.5 GNU、*软件、开源、*软件、GPL许可证和基金会(FSF)
GNU(GNU is no Unix)GNU于1983年由Richard Stallman(rms)发起,意在为所有软件用户能够*控制自己的计算而构建一款由大家共同努力开发而成的操作系统。rms今天仍然是GNU的首席搞事者。
GNU的基本目标和一贯目标是提供一个和Unix兼容的100% *软件的操作系统。不是95%、也不是99.5%、而是100%*。这个系统的名字叫GNU,是GNU's Not Unix的首字母递归缩写—这是对Unix的技术思想致敬的一种方法,同时表达GNU有所不同。从技术上说,GNU很像Unix。但是它不同于Unix,GNU给予其用户*。
"*软件"尊重用户的*,并且尊重整个社区。粗略来讲,一个软件如果是*软件,这意味着用户可以*地运行,拷贝,分发,学习,修改并改进该软件。因此,"*软件"是关乎*的问题,与价格无关,软件如何定价并不影响它是否被归类为*软件。而Free Software中的Free是指"*言论"中的*,而非"免费"这一意项。为避免歧义,在使用英文时,我们也会借用法语或西班牙语的"Libre Software"来指*软件。
开源软件(英语:open source software,英文缩写:OSS,中文也称:开放源代码软件)是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改、增进提高这款软件的质量。开源协议通常匹配开放源代码的定义的要求。一些开源软件被发布到公有领域。开源软件常被公开和合作地开发。开源软件是开放源代码开发的最常见的例子,也经常与用户生成内容做比较[1]。 开源软件的英文"open-source software"一词出自*软件的营销活动中。
GNU通用公共许可协议(英语:GNU General Public License,简称 GNU GPL、GPL)是广泛使用的免费软件许可证,可以保证终端用户得*运行,学习,共享和修改软件。许可证最初由GNU项目的*软件基金会 (FSF)的理查德·斯托曼(Richard Matthew Stallman)撰写,并授予计算机程序的收件人*软件定义的权利。 GPL是一个Copyleft许可证,这意味着派生作品只能以相同的许可条款分发。 这与许可免费软件许可证有所区别 ,其中BSD许可证和MIT许可证是广泛使用的示例。 GPL是第一个普遍使用的Copyleft许可证。
*软件基金会(英语:Free Software Foundation,FSF)是一个致力于推广*软件的美国民间非营利性组织。它于1985年10月由理查德·斯托曼建立。其主要工作是运行GNU计划,开发更多的*软件。
2 虚拟机
实验环境的搭建
环境:Centos7.4+Vmware Worksation12
终端:Xshell
阿里云镜像站:https://opsx.alibaba.com/mirror
Centos历史镜像:http://vault.centos.org/
共享资源站:r.aminglinux.com
Centos7.aminglinux.com
操作系统安装过程(略)
注意点:
a 选择Centos64位
b 网络模式选NAT或桥接
c 分区方案
自定义分区
分区 /boot 200M
Swap 不超过8G, 小于8G内存的2倍
剩余:/
d 软件包选择
最小化安装(把开发工具装上)
e 系统安装完成后一定要做快照,如需多台虚拟机,可以通过克隆链接方式实现
3 配置网络
a 图形化方式修改nmtui
b修改配置文件方式
[root@bogon ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4"
DEVICE="ens32"
ONBOOT="yes"
IPADDR="192.168.1.211"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="223.5.5.5"
"/etc/sysconfig/network-scripts/ifcfg-ens32" 21L, 419C
修改后wq保存,重启网络服务
[root@bogon ~]# systemctl restart network.service
终端快捷键(emac编辑模式set -o | grep emac查看是emac模式)
CTRL-C 中断(有时是delete或者del)
CTRL-Z 暂停(放入后台执行)
CTRL-I 清屏,相当于clear
CTRL-D 退出终端
CTRL-S 锁定终端
CTRL-Q 解锁终端
CTRL-B 左移光标
CTRL-F 右移光标
CTRL-P 查看上一条命令(或上移光标)
CTRL-N 查看下一条命令(或下移光标)
CTRL-A 移动光标至行首
CTRL-E 移动光标至行尾
CTRL-W 删除前一个词
CTRL-U 删除从光标至行首的内容
CTRL-K 删除光标至行尾的内容
CTRL-Y 粘贴已删除的文本(例如ctrl-u删除的内容)
CTRL-H 删除字符
M-b 向左移动一个单词(先按esc键,再按b键)
M-f 向右移动一个单词(先按esc键,再按f键)
tab 命令补全,没事多按tab键
4 远程登录
a 使用PuTTY远程连接Linux
putty下载(下载完整绿色包)
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
调缓冲区大小(调到最大)
调语言为utf-8
调日志记录
调整完以后记得保存session
b 使用xshell连接Linux
c PuTTY密钥认证
- 生成密钥对
- 生成密钥对
- 在Linux服务器上新建.ssh目录和authorized文件(以root用户例)
/root/.ssh/ 权限700
/root/.ssh/authorized_keys 权限600
将公钥内容复制到authorized_keys文件,保存
- 关闭seliux
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
- 配置putty使用证书登录
验证
d xshell密钥认证
1. 进入用户密钥生成向导
2 生成密钥对
3 在Linux服务器上新建.ssh目录和authorized文件(以root用户例)
/root/.ssh/ 权限700
/root/.ssh/authorized_keys 权限600
将公钥内容复制到authorized_keys文件,保存
4 关闭selinux
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
5 配置xshell使用证书
e Linux机器相互登录
1 生成密钥对
2 后续步骤与putty/xshell和xshell的密钥登录一致,参考上述putty或shell的密钥登录。
简述如下
在需要访问的Linux服务器上(以root用户登录为例)新建.ssh目录和authorized文件
/root/.ssh/ 权限700
/root/.ssh/authorized_keys 权限600
将公钥内容复制到authorized_keys文件,保存
3 关闭selinux
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
4 通过ssh username@ip_addr 方式连接
注意:如果需要使用密钥登录,需要登录的每个用户都需要单独做公钥上传动作。比如你想使用xxx用户名登录,就需要在该用户家目录下建立.ssh目录和authorized_keys。上传公钥。
5 运行级别的概念
实际上Centos7以上的版本已经没有了运行级别的概念。init程序已经由原来的sysinit方式改变为systemd。
转而用target的概念,运行级的说法只是为了向前兼容。
systemctl基础用法
a 列出服务列表
[root@bogon ~]# systemctl list-units --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
……
b 启动服务(以网络服务为例)
[root@bogon ~]# systemctl restart network.service
c 停止服务
[root@bogon ~]# systemctl stop network.service
d 重启服务
[root@bogon ~]# systemctl restart network.service
e 默认启动级别
[root@bogon ~]# systemctl get-default
multi-user.target
Centos7中的运行级
[root@bogon ~]# ls -l /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Apr 20 23:18 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 20 23:18 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 20 23:18 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 20 23:18 /usr/lib/systemd/system/runlevel6.target -> reboot.target
其他有需要参考man 1 systemd
有用链接:
https://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html
6 单用户模式
将下图红色圆圈部分修改为:rw init=/sysroot/bin/sh , 然后执行ctrl+x 启动
修改密码
更新selinux信息
exit退出chroot, reboot重启
7 设置grub密码
a 生成密钥
b 编辑/boot/gurb2/grub.cfg
c 保存,退出
d 重启验证
进入单用户模式需要密码,说明配置成功
8 光盘救援模式
修改为光盘启动模式
改完密码以后,执行exit退出chroot
然后重启重新进入系统。
扩展链接:
https://www.cnblogs.com/clsn/p/7839965.html
http://blog.51cto.com/13055758/2086322
参考链接
https://commons.wikimedia.org/wiki/File:Unix_history-simple.svg
https://www.gnu.org/gnu/about-gnu.html
https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6