认识linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
- linux各个发行版名称及时间图纸:https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg?uselang=zh
一,资源下载地址
***
二,Centos7的系统安装
- 首先进安装界面,选择第一行
- 然后等待加载
- 进入安装前配置界面,首先选择安装语言
- 之后选择安装位置
- 点我要分配分区,然后点完成
- 添加标准分区
- centOS安装系统分区及大小
/boot : 200M /swap : 内存的两倍,一般不超过8G / : 根分区,剩余全部磁盘
- 然后点完成
- 开始安装
- 设置root密码
- 之后静静等待几分钟安装好后重启就安装完成了
- 安装完成重启
-
运行级别的查看:ls -l /usr/lib/systemd/system/runlevel*target
-
查看默认target: systemctl get-default
-
设置默认target: systemctl set-defualt multi-user.target (永久生效)
-
runlevel 和 who -r 也可以查看运行级别
-
同步时间命令: ntpdate time.windows.com
-
linux的重启命令:reboot;init 6 ; shutdown -r now ;
-
关机命令:init 0 ; poweroff;
-
无人值守安装
配置IP和网络问题排查
一、配置IP
- 因为在学习过程和工作的时候直接用键盘鼠标连接服务器是不现实的,所以需要配置固定IP来进行远程连接。
- 首先把虚拟机的网络改成NET模式,优点是物理机切换网络不影响虚拟机连接外网。除了有限制的网络环境公司或校园网等。
- 进入系统后先dhclient自动获取一个IP地址。然后ip add 或者ifconfig命令查看网卡信息。
[root@aming1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6c:62:91 brd ff:ff:ff:ff:ff:ff
inet 192.168.159.128/24 brd 192.168.159.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.159.135/24 brd 192.168.159.255 scope global secondary dynamic ens33
valid_lft 1743sec preferred_lft 1743sec
inet6 fe80::db99:5318:2a79:aa0a/64 scope link
valid_lft forever preferred_lft forever
如果dhclient进程占用可以dhclient -r 杀死然后在运行dhclient
如果centOS7里没有ifconfig这个命令,就安装一下:yum install -y net-tools
- 获取到IP地址之后查看 网关
-
查看网关命令:route -n
-
或者点击虚拟机的 编辑>虚拟网络编辑器>NET设置 看下网关
- 配置静态IP
-
首先用vi编辑器编辑一下网卡的配置,把刚刚获取到得IP,子网,网关等填写到网卡得配置文件里,可以永久设置静态IP。
-
编辑网卡输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static 默认是dhcp改成静态static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a2546330-9655-40b0-b84a-9bec807ac428
DEVICE=ens33
ONBOOT=yes 开机自起 默认是no改成yes
IPADDR=192.168.159.128 添加IP
NETMASK=255.255.255.0 添加子网
GATEWAY=192.168.159.2 添加网关
DNS1=119.29.29.29 添加网关
按Esc退出编辑模式
输入:wq 保存退出
- 以上是永久设置IP,用以下命令可以暂时设置IP地址
ifconfig ens33 192.168.100.1/24 命令行设置ip (重启后失效,改配置文件才会永久生效)
- 然后重启网络服务
systemctl restart network
- ping 下百度网址看通不通,用物理机ping下虚拟机的IP看通不通讯。都可以ping通就配置完成
[root@aming1 ~]# ping www.baidu.com
PING www.a.shifen.com (119.75.213.61) 56(84) bytes of data.
64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=1 ttl=128 time=14.2 ms
64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=2 ttl=128 time=14.6 ms
64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=3 ttl=128 time=8.36 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 8.360/12.410/14.614/2.867 ms
[root@aming1 ~]#
- 如果执行 service network restart 出现以下错误
Restarting network (via systemctl): Job for network.service failed. See 'systemctl status network.service'
and 'journalctl -xn' for details.
这个可能是网卡配置信息得MAC地址不对,ipadd 查看一下网卡得mac地址,然后对比配置文件如果不对需要修改
二,网络问题排查
如果以上不通讯,说明还是有问题存在的,需要进行网络问题排查
-
首先确认所在网络环境是否支持虚拟机网卡NET模式,如不支持则更换为桥接模式(虚拟机>设置>网络适配器) 然后重新获取下动态IP然后在网卡配置信息里设置静态IP
-
如果所在网络环境是可以正常使用NET模式,打开vi /etc/sysconfig/network-scripts/ifcfg-ens33网卡配置文件更改是否正确。
-
以上方法都不可以恢复,可以删除下虚拟8网卡重新添加 (编辑>虚拟网络编辑器>选中VMnet8移除网络>添加VMnet8模式改为NET) 重新配置静态IP。
使用PuTTY与Xshell远程工具连接及密钥认证
一、 PuTTY的使用
- 下载PuTTY
- 使用PuTTY
-
按照下图进行配置
- 设置PuTTY
-
修改默认终端保存的显示行数,默认显示200行,在查看的文件如果很长超过200行就非常不方便了,可自定义行数
-
设置字体,大小适中
-
修改字符编码。一般用UTF-8,这样在输出中文的时候不会乱码
-
设置完成后点Session回主页面,点击Save保存
- PuTTY的密钥连接
-
使用PuTTYgen工具 (在windows搜一下,与putty一起下载安装好的)
-
打开后点击Generate,生成密钥对,在进度条时候鼠标要一直移动,不然会非常慢
-
公钥复制下来就可以了,私钥必须保存一下点:Save private Key,保存在电脑一个比较安全的地方
-
把公钥放到linux下
[root@localhost ~]# mkdir /root/.ssh
[root@localhost ~]# chmod 700 /root/.ssh
[root@localhost ~]# vi /root/.ssh/authorized_keys
然后把公钥复制进去保存退出
- 还要关闭防火墙selinux
[root@localhost ~]# setenforce 0
-
然后配置私钥到PuTTY,选完了一定要返回首页保存一下,点一下Save,不然下次还要重新配置
-
然后Open一下,输入用户名密码,以及私钥的加密密码就OK啦
二、Xshell下载
直接在页面中有红色*号的地方输入个人信息,licensetype 必须选 Home and School use(家庭和个人使用),最主要的是输入邮箱(必须是个人的可以接收邮件的邮箱,会给你发邮件),最后的Productkey可以不用填写,然后点击提交; 之后邮箱会接到一个链接,点开后会直接下载,这样不会出现评估过期等问题
- 输入IP和端口
- 在这里可以直接自动登陆保存好登陆的用户及密码
红色框部分是可以切换登陆模式,比如密钥登陆等
-
其他设置,配色方案不要改,其他根据自己的需求去调整
-
PuTTY优点,可以保存用户名密码,自动连接比较方便。多窗口切换非常方便。
-
Xshell的密钥验证
点击软件的 工具>新建用户密钥生成向导
-
这样公钥就生成了 这个密钥同样要写到 [root@localhost ~]# vi /root/.ssh/authorized_keys这个里面去的
-
然后需要在用户身份验证方法改成Public Key模式
如下图,操作完成点击连接
单用户模式
如果忘记了root密码,怎么办,从新装系统是不现实的,可以通过单用户模式来更改root密码
-
开机时候在启动项还没有跳转开机的时候迅速按上下方向键如图
-
选择第一个,按“e”进入grub界面,grub是一个引导管理工具
-
注意这个需要更改两个地方,光标下移到红色方框位置,找到“ro”只读的意思改成“rw”读写
-
第二个地方在修改的 ‘rw’ 后面加上 init=/sysroot/bin/sh,如图
-
然后根据下面提示按“Ctrl-x” 就进入下面的界面了,下面的界面类似在安全模式,还没有到系统里面去,原来的系统在sysroot下面
-
切换到原系统下输入:chroot /sysroot/
-
输入passwd root 设置新密码
-
然后输入:touch /.autorelabel,这步非常重要,不然无法进入系统
-
设置完成后就可以重启了。重启之后就可以用新的root密码登录了
救援模式
首先看一下centos7的7个运行级别 [root@localhost ~]# ls -l /usr/lib/systemd/system/runlevel*target
- 刚刚上面说了利用单用户模式进行更改root密码,是在grub没有设置密码或着已知密码的情况下可以更改root密码。如果进不去grub。那么只能用另一种方法,就是进入救援模式
设置grub密码 : http://ask.apelearn.com/question/18012
- 救援模式的进入
-
首先需要加载光驱里面或者u盘里面的系统。开机后更改bios启动项,改为cd启动或u盘为第一启动项,保存重启。
-
下图就是进入系统盘启动了,选择第三项,第一项是安装操作系统,第二项是测试
- 回车之后又出现几项,选第二项
- 然后出现这个再按下回车
- 出现这个界面,选“1” 继续
- 之后就进入了命令行界面了,输入它提示的chroot /mut/sysimage/ 之后输入命令passwd root 更改密码就可以了。
- 之后就可以重启用新密码登陆了,把启动项改回硬盘启动
- 救援模式不光可以更改root密码,还可以把不小心修改错了系统文件,进救援模式再改回来,重启恢复
克隆虚拟机
有时候在做实验的时候需要2台甚至更多的linux系统,如果都要装一便系统比较麻烦浪费时间。这种问题可以用虚拟机克隆来解决。而且可以节省不必要的磁盘空间。
步骤
- 在虚拟机右上方菜单栏找到 虚拟机>管理>克隆
然后 下一步下一步 选择创建链接克隆,完整克隆就是全都复制一份也比较慢,占空间
- 设置名称和储存位置
- 成功后这边就出现两个虚拟机了
4.开机之后要更改下ip地址,因为是克隆的,不然会有IP冲突
更改IP时UUID也需要删除以下
- 最后更改下两台机器的主机名
查看主机名称:hostname
永久更改主机名称:hostnamectl set-hostname aminglinux-02
Linux机器互相登陆
如果需要远程连接的系统没有没有关闭selinux,输入getenforce命令,显示Enforcing表示开启,显示Permissive表示关闭。输入命令:setenforce 0,可以临时关闭,重启后恢复。
- "w"命令查看有几个客户端进行连接
- linux系统也是可以生产密钥对来进行连接的
假如我们用2机器连接1机器,那么肯定2机器上有一个私钥,1机器上有一个公钥。这样的思路就是我们要生成一对儿密钥,然后把公钥写到1机器的/root/.ssh/authorized_keys里面去。
-
linux生成密钥工具 ssh-keygen
-
查看公钥并且写到要访问的计算机配置文件里。
[root@aming2 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2HGDSXdPD52xdujtrx28yuEB8oRrOqiXH5KoubK+rKfR6IqFvVMHNOT5iSvoAzNCySju3LGO/cyJfdvPIapgV9pS0DNPkrrMfP4Yw5Ogwl9OeXlJ6uvWK/CBdsWAesWaeKI3Xghox2F4dSO6rB8mq7vJeQDVgxxNn3//GPu+XjyePSvuRx9gvyoU4/uB7DOauEHNaaLzeF8uVW3xYpa+ofa81WnjXa7eDkAtWYyGQTdLSS1bxAzafXtb7waN6fxAwe/H/5Gm9H7KBIivTSqr93dEGrEeWI1X4Z55tTnEE57mAd2iTdZO+uHtD/pifypSho+8ciEst1d/ESXfmu489 root@aming2
[root@aming2 ~]#
- 然后把这个复制下来写入到需要远程登陆的机器/root/.ssh/authorized_keys这个文件中之后即可用密钥认证登陆。