一、宏观介绍操作系统
操作系统分类 Windows Linux Unix
Unix和Linux之间有什么关系?
Linux是一种类Unix系统,可以说Linux是由Unix系统衍生过来的。
Linux发行版 timeline:
https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg
Ubuntu目前流行,个人使用多,因为有很好的图形界面,进行开发,办公;
RHEL企业版;
CentOS与RHEL相差小,随着CentOS用户的增多,最终2014年被RedHat公司收购;
内核官网:https://www.kernel.org/
CentOS官网、版本
www.centos.org https://wiki.centos.org/Download 目前RHEL7.5已于18.04.10发布
二、安装操作系统
虚拟机 vmware virtualbox 安装vmware
打开vmware→创建新的虚拟机
→典型与自定义都行→暂不选ISO文件
→选择对的版本(CentOS 64位)→把虚拟机放到大点的硬盘
→自定义硬件(内存1G以上、网络选NAT模式、光驱CD/DVD 选择下载好的ISO映像文件、设置好显示器分辨率)
→开启虚拟机→选择安装CentOS 7(install CentOS7)
→选择语言→软件选择(选最小安装,也可选图形,但是公司一般不会使用)
→选择安装位置(选择我要配置分区,点完成,选择标准分区,第一挂载点选择/boot 200M;第二个swap,小于等于4个G内存给予两倍,否则不超过8G即好;剩下的给根/)如图
→下一步设置root密码→完成
三、配置IP
ip addr命令(查看所有网卡)
dhclient ens33 可自动获取IP(NAT模式)
ip add 查看获取的IP→CMD 查看IP可否PING通(Ping 192.168....
→再回到CentOS ping一下外网试试(ping www.qq.com)
→vi /etc/sysconfig/network-scripts/ifcfg-ens33(设置静态IP,TAB键补全)
→按i编辑(BOOTPROTO改为STATIC静态;ONBOOT改为YES;最后添加几行→定义IP地址IPADDR,刚自动获取的IP;NETMASK子网掩码255.255.255.0;GATEWAY网关,在网络编辑器,NAT设置里看或者使用route -n命令查看;DNS1=119.29.29.29)→按ESC→:WQ保存并退出
执行systemctl restart network重启网络(若重启不成功,是因为NetworkManager服务,需设置开机不启动→执行systemctl disable NetworkManager)
→再次Ping外网,CMD PING通IP查看(若遇到能PING通外网,WINDOWS不行,则需重新添加一块网卡
→关机后编辑虚拟机设置→添加网络适配器
→仅主机模式(仅WINDOWS与虚拟机相连)
→启动虚拟机→执行ip addr查看下→分配动态IP(执行dhclient ens37)
→可能分配动态IP显示没反应,我们就执行ip addr查看是否获取成功→获取成功后,再PING一下网络是否可行
四、使用putty远程连接Linux
用ifconfig查看自己IP(不能使用ifconfig命令;执行yum install -y net-tools;yum类似于app store)→在putty写上IP(PORT默认22)
→填写保存的名字后点SAVE→在WINDOW的Lines of scrollback 滚动的行数2000→Appaerance设置字体→Translation选择UTF-8→重启网络服务systemctl restart network.service→ifconfig查看IP是否有变化→用putty登录即可
五、使用Xshell远程连接Linux
打开Xshell→填写名称 主机IP→填写用户身份验证即可
1.Xshell 可多窗口 并排使用
2.Xshell Ctrl+shift+R可以直接重连
六、putty密钥认证
在安装putty的文件夹里找到puttygen打开→点生成Generate(在生成时要移动下鼠标)→建议设置密码,增加安全性→保存好私钥,复制公钥→回到Linux机器上
→创建目录mkdir /root/.ssh→改权限chmod 700 /root/.ssh→编辑vi /root/.ssh/authorized_keys
→粘贴公钥→执行sentenforce 0,关闭selinux
→回到Putty打开Configuration→Load后,选择SSH下的AUTH→选择保存好的私钥→Save保存
七、xshell密钥认证
打开Xshell→工具→新建用户密钥生成向导→设置密钥名称 密码→复制公钥
→编辑vi /roor/.ssh/authorized_keys→粘贴公钥(可用#Xshell,#那行不生效)
→回到Xshell→打开→右键连接的机器→用户身份认证选择公钥public key→刚设置的密钥名称 密码
八、单用户模式
reboot;init 6;shut down 重启
init 0;poweroff 关机
在启动虚拟机时按e→找到linux 16→按右的方向键 改ro为rw并在后面添加 init=/sysroot/bin/sh→按Ctrl+x→目前为止位置类似于安全模式,不是原来系统的位置→切换原来系统的环境 chroot /sysroot/→cat /root/.ssh/authorized_keys→切换到原来系统的环境,就可以改密码→passwd root(如果出现小块,语言问题→LANG=en)→关键步骤 一定记住 最后执行 touch /.autorelabel
九、救援模式
没有grub密码。
右键电源→启动时进去BIOS→到BOOT将CD-ROM Drive移到第一位→F10退出→
重启→选择Troubleshooting→选择Rescue a CentOS Linux system→输入“1”继续→按回车得到一个shell
→chroot /mnt/sysimage切换→passwd root→再把BIOS设置回去
十、克隆虚拟机
右键虚拟机→管理→克隆→创建链接克隆→IP冲突,更改IP→vi /etc/sysconfig/network-scripts/ifcfg-ens33→更改IP,删除UUID一行→重启网络服务 restart network.service→ifconfig检查IP→更改主机名
→hostname set-hostname ***
十一、Linux机器相互登录
ssh username@另一台机器的IP→W命令查看终端连接情况
ssh 默认端口是连22端口
ssh -p 端口 username@ip
ssh-keygen生成密钥→回车
→vi .ssh/authorized_keys 编辑文件到被远程机器 .ssh/authorized_keys 文件夹添加公钥,然后保存退出;
十、系统运行级别
ls -l /usr/lib/systemd/system/runlevel*target
CentOS6和以前版本,当时系统启动方式是用init,后来选择使用方式改为systemd,最大区别,init一个服务一个服务的启动,systemd支持同时启动,更快捷。
runlevel0-6 有七个运行级别;
0就是关机;1表示单用户;234,多用户模式,没有图形;没有安装图形的情况下,进行的是3级别,有则是5级别,图形操作界面;6是reboot,重启。
systemctl get-default 查看现在所在的级别;
systemctl set-default muti-user.target / 使用init 更改级别;
4.2.1:centos6修改运行级别:
vim /etc/inittab 执行如下操作
id:5 #修改id后面的数字,重启系统即可
init 0到6中的一个数字 #临时切换运行级别
注:CentOS7不支持这种方式修改了。
4.2.2:centos7修改运行级别:
systemctl get-default #查当前默认的运行级别:
systemctl set-default multi-user.target #设置默认运行级别为多用户模式(level 3):
临时切换运行级别:init 0到6中的一个数字
#注:在Xhell中不要使用init 5 切换到图形界面,否则当前会话会卡死。
以前设置更改要编辑 /etc/inittab文件;
ntpdate time.windows.com 校对时间;
vi /etc/selinux/config 编辑 将enforcing改为disabled 关闭selinux 重启生效;
如磁盘损坏,会自动进入emergency mode;
十一、设置grub密码
参考网址 http://ask.apelearn.com/question/18012
进入系统后→执行grub2-mkpasswd-pbkdf2命令→设置好密码→复制以grub开头到结尾的加密密码
→进入grub的配置文件里 cd /boot/grub2/→改之前 先做好备份 cp grub.cfg grub.cfg.bak
→更改 vi grub.cfg→在BEGIN下面增加
set superusers="root"
export superusers
password_pbkdf2 root
→在root后面直接添加复制的加密密码
扩展
批量无人值守安装centOS7系统
https://www.cnblogs.com/clsn/p/7839965.html
http://blog.51cto.com/13055758/2086322
Ctrl+a 光标移到最前面
Ctrl+e 光标移到最后面
临时关闭selinux
[root@mode ~]# setenforce 0
setenforce: SELinux is disabled
永久关闭selinux的两种方式
[root@mode ~]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
getenforce #获取SELINUX当前的状态,
#enforcing 为开启,permissive为仅提醒,不生效。Disabled为已禁用