1.计算机基础
计算机系统由”硬件”和”软件”两大部分组成。
计算机的软件通常又可以分为两大类:系统软件和应用软件。
2.操作系统简介
计算机系统由硬件和软件两部分组成。操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。它在计算机系统中占据了特别重要的地位;而其它的诸如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于操作系统的支持,取得它的服务。操作系统已成为现代计算机系统(大、中、小及微型机)、多处理机系统、计算机网络、多媒体系统以及嵌入式系统中都必须配置的、最重要的系统软件。
目标:有效性 方便性 可扩充性 开放性
作用:
OS作为用户与计算机硬件系统之间的接口
OS作为计算机系统资源的管理者
OS实现了对计算机资源的抽象
二.linux安装与使用
1.linux版本
1)Linux操作系统=内核+系统软件+应用程序
2)Linux 内核(kernel)版本
3)Linux发行商,也称为发行套件:Slackware、Redhat、Debian、Fedora、SUSE、CentOS、Ubuntu、红旗 … …
4)Redhat Linux:从Redhat9.0后,不再遵循GPL协议,收费(但是仍然开源)
5)Fedora(Redhat另一个分支):仍然保持GPL协议,类似Redhat测试版
6)CentOS(Redhat另一个分支):Community Enterprise Operating System。相当于以Redhat所发布的源代码重建成符合GPL的Linux,即Rduhat Linux的翻译版。CentOS是我们课程中使用操作系统的版本。
2.搭建Linux系统环境
1)选择适合自己的虚拟机
VMware:老牌、功能齐全、安装配置简单、非开源、收费、安装文件大、资源占用大。
VirtualBox:简单易用、主要功能支持、开源、免费、安装相对文件小、轻资源占用、流畅性好。
Virtual PC:微软自Win7开始主推,社区资源较少、硬件虚拟化、性能更强大。
我们选择VirtualBox(也有很多人选择VMware,对电脑硬件要求较高)。
2)安装Virtualbox并创建虚拟机
安装虚拟机软件
下载虚拟机软件VirtualBox:百度Virtualbox64下载
安装很简单,下一步即可
安装linux系统(CentOS7.x)
详见:Linux系统安装指南_centos_7.5.doc
3.Linux的三种网络模式
1)三种网式 :桥接模式 NAT模式 主机模式
桥接模式(Bridged):虚拟机就像一台真正的计算机一样,直接连接到实际的网络
与宿主机没有任何联系
NAT模式:虚拟机的网卡连接到宿主的VMnet8上。此时系统的NAT Service服务就充当了路由器的作用,负责将虚拟机发到VMnet8的包进行地址进行转换之后发到实际的网络上,再将实际网络上返回的包进行地址的包进行地址转换后通过VMnet8发送给虚拟机。DHCP Service负责为虚拟机提供DHCP服务。
NAT,桥接和仅主机的区别
桥接:可以连接互联网
虚拟主机---->宿主机------>互联网(虚拟主机与宿主机为父子关系(虚拟主机有自主性,如果宿主机出现问题,虚拟主机可以自己和外界进行联络,合作关系))
优点:虚拟主机不需要借助宿主机就可以和外界进行联络,独立性比较强
缺点:虚拟主机由于具有和外界独立进行联络的能力,所以会容易造成IP的冲突
NAT:可以连接互联网
虚拟主机---->宿主机------>互联网(虚拟主机与宿主机为父子关系(虚拟主机没有自主性,如果宿主机出现问题,虚拟主机是不可以和外界进行联络的,继承关系))
优点:虚拟主机不容易造成IP地址的冲突
缺点:虚拟主机需要借助宿主机才可以上外网,独立性比较差
仅主机:可以连接局域网
4 远程连接Linux服务器
1)远程连接Linux服务器原理
2)配置xshell客户端
xshell 软件下载:网盘下载或者百度下载
安装:下一步直接安装
配置
修改服务器网络方式为:桥接模式
关闭防火墙(发现登陆不上时再关防火墙)
打开sshd服务
打开虚拟机的IP地址:
Centos6.X:通过ifconfig
Centos7.x:通过Ip addr
Xshell新建连接:
打开Xshell客户端,新建一个连接配置IP和端口连接到虚拟机的Linux系统中,记住IP要改成自己要链接的机器的IP。ssh默认开启端口为22。
点击确定后,在弹出的新的界面中选择刚刚建立的链接,点击链接即可
连接后,弹出确认密码界面,我们选择“接受并保存”输入账号密码即可远程登录系统。
进入系统后进入正常操作界面。
5、可能遇上的故障
.启动Virtualbox无法加载安装linux系统的故障解决
有的电脑默认情况下使用Virtualbox虚拟机时,不支持64位CentOS系统,在开启虚拟机进行安装64位CentOS系统时,提示:
确实有的笔记本的BIOS里边默认设置是不支持64位模式,如果你也遇到这个问题,
就需要手动到BIOS里设置一下。
首先重启你的笔记本电脑,然后按下F2键,进入BIOS界面后,把选项”virtual technology”设置为enabled(激活),然后按F10保存,重启就设置完了。
xshell连不上linux故障排查
5.1服务器防火墙关闭
Centos6.x : service iptables stop
Centos7.x: service firewalld stop
5.2 ssh服务有问题
service sshd start
5.3客户端到服务器端的线路有问题
ping 服务器ip地址
5.4 虚拟机和本机不在同一个网段如虚拟机网段为192.168.2.*,本机网段为192.168.1.*
指定虚拟机的网段和本机为同一个网段
- 通过本机ping 同一个网段找到未被使用的ip地址
确定了192.168.1.62的ip无人使用
2、修改虚拟机配置为指定的IP
-
- 编辑网络配置vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
- 添加如下内容
IPADDR指定为刚才你测试的ip地址即可
NETMASK 子网掩码,指定为255.255.255.0
GATEWAY 网关 指定统一网段下的IP即可,如ip地址
192.168.1.61则指定网关为192.168.1.1
192.168.0.62则指定网关为192.168.0.1
三.linux常用操作
1.基本命令
关闭Linux poweoff
重启Linux服务器 reboot
查看当前用户 whoami
切换用户 su 用户名
修改密码 passwd [用户名]
切换家目录 cd /home/目录名
创建文件夹 mkdir /home/study
查看目录下的文件或者子目录 ls /home/study
查看当前路径:pwd
创建文件hello.txt touch hello.txt
编辑hello.txt
##vi分为三种状态##
分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode等操作。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 尾行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将尾行模式(last line mode)也算入命令行模式command mode)。
##三种模式使用举例##
1)进入命令行模式: vi hello.txt 即进入vi编辑文件hello.txt的命令行模式,此时只能在命令行模式下移动光标、行删除等范围内操作。
2)进入插入模式:在命令行模式下,按下字母”i”即进入插入模式,可以做文字输入等操作。
此时按下ESC键,即进入命令行模式。
3)进入尾行模式:在命令行模式下输入”:”冒号即进入尾行模式。常用命令如下:
:w 保存改动内容到当前正在编辑的文件
:w filename (输入 「w filename」将文章以指定的文件名filename保存)
:wq (输入「wq」,存盘并退出vi)
:q! (输入q!, 不存盘强制退出vi)
##解决题目问题##
方法一:vim hello.txt
按[a/i/o]进入编辑模式
写入” hello world”
查看hello.txt内容 cat hello.txt
向hello.txt文件中追加"yes" echo "yes" >>hello.txt
.拷贝tianliang家目录的study目录到root用户家目录
cp -r /home/tianliang/study /root/
.移动绝对路径下的/root/test/my.txt到tianliang的家目录中
mv /root/test/my.txt /home/tianliang/
删除/root/test/my.txt文件
rm /root/test/my.txt
在/root/test中新建一个文件you.txt,然后删除/root/test目录
touch /root/test/you.txt
rm -r /root/test递归删除
rm -rf /root/test递归删除 #强制快速删除,不进行对话
找一篇文章写入/root/article.txt中,查看前10行或后10行。
head -10 /root/article.txt
tail -10 /root/article.txt
查找一下my.txt文件所在的位置
find / -name my.txt
安装直接可导入文件的工具
yum install lrzsz
rz -bye 打开要导入的本地文件窗口
2.高级命令
高级命令
sed
nl /etc/passwd | sed '2,5d' -d 表示删除
| sed '2d'
| sed '2a hello man!' -a表示追加
| sed -n '2,5p' -p print 常与sed -n连用 这样就仅显示指定的行信息了
| sed 's/root/rootUser/g' -s表示替换
| sed '2,5c 2-5行内容汇总' -c表示替换 这里是将2-5行的信息替换成后面的字符串
awk
last -n 5 | awk '{print $1}' $1查看数据中的第一列
cat /etc/passwd | awk -F ':' '{print $1}' -F 以什么样的符号分隔 $1分隔后的第一列
cat /etc/passwd | awk -F ':' '{print $1,$5}'
awk 'BEGIN{print "name,shell"}{print $1,$7}END{print "结束"}' /etc/passwd BEGIN{初始化代码块}{每行要做到动作}END{每行结束后的动作}
ls -l | awk 'BEGIN{size=0}{if($5 > 60){size+=$5}}END{print size}' 将当前目录下的文件字节进行判断如果字节数大于60的文件就相加,最后打印符合条件的文件字节和
seq
seq 6 获取6以内的整数
seq -2 2 10 获取从-2开始步长为2一直到10的所有整数
seq -f "%3g" 98 101
seq -w 98 101 -w默认用0补位,长度按这个序列数字中的最长数的长度
cut
cut -f 1 test.txt 查看文件第一列
cut -f 2,3 test.txt
cut -f 2 --complement test.txt 除了第2列其他列都打印
cut -f 2 –d ";" test2.txt 查看test2.txt文件以;分隔后的第2列
四.linux软件安装
pdsh 运维工具可以维护多个计算机
源码格式的安装包
pdsh.tar.bz2 / tar.gz
tar -jxvf tar -zxvf
./configure 校验环境
make 编译
make install 安装
make clean 清除临时文件
jdk
tar -zxvf jdk
配置环境变量
vi /etc/profie
在最后一行配置
JAVA_HOME
JRE_HOME
CLASS_PATH
PATH
export
source /etc/profile
五.扩展技能
1.ssh
ssh密码登录
1、客户端第一次访问服务端会获取一个服务端发来的公钥
2、客户端将传来的公钥保存在id_rsa文件中
3、客户端在请求服务端输入密码的时候就会用这个公钥对密码进行加密
4、服务端将客户端加密后的字符串进行解密,校验是否与原来的值是否一致
注意安全问题:
如果在请求的时候被拦截(模拟服务器出行,这就会获取到真实服务器的密码)
免密登录
1、客户端A访问服务端B
在A生成秘钥对 ssh-keygen -t rsa 默认位置在~/.ssh/id_rsa(私钥)、 id_rsa_pub(公钥)
2、将A生成的公钥id_rsa_pub这个文件发送到B
scp -P 22 ~/.ssh/id_rsa_pub root@B的ip地址:~/
3、B接收到公钥id_rsa_pub文件,注册到授权列表
①、touch ~/.ssh/authorized_keys (创建注册表文件)
②、cat id_rsa_pub >> ~/.ssh/authorized_keys
4、测试
在A端 执行 ssh B的ip地址
如果没有提示输入密码并登陆进去了 那么说明配置免密成功
hostname 查看主机名
hostname tom 临时设置主机名为tom,重启后失效
hostnamectl set-hostname tom 永久生效
2.用户管理
Linux是多用户、多任务操作系统,按照用户角色划分:
root用户、虚拟用户、普通真实用户
用户与组的对应关系:一对一、多对一、一对多
创建用户
useradd study
passwd study
显示用户信息
id user (查看用户的uid、gid、groups属性)
创建用户组
groupadd group
useradd -g study group(新建study用户并增加到group用户组 -g所属组)
usermod -g tlgroup tianliang //修改用户的gid,即修改所属组
gpasswd -a tianliang tlgroup //将用户追加到组tlgroup中
usermod -G tlgroup tianliang //将用户追加到组tlgroup中,tlgroup为非主组
userdel tianliang(永久删除该用户,不请空/home/tianliang目录)
gpasswd -d tianliang tlgroup //从组tlgroup中删除掉tianliang用户
groupdel tlgroup //删除组,但当该组是某个用户的主组的时候,不能删除
3.文件权限
文件列表信息的字符意义,文件权限共10个字符,其意义分别为:
- 第一个字符,文件类型
- d:表示文件目录
- -:表示文件
- |:表示链接文件
- b:表示设备文件里的可供存储的接口设备
- c:表示设备文件里面的串行端口设备,如键盘
- 第2~4个字符:用户权限
- 第5~7个字符:用户组权限
- 第8~10个字符,其他用户权限
文件权限可分为三种
r 4 可读
w 2 可写
x 1 可执行
4.服务管理
- 防火墙服务-开启与关停
service iptables restart/stop/status
Centos7.x: 修改为firewalld服务
Centos7.x: 将service服务修改为最新的systemctl命令
模板为:systemctl action service_name
如:systemctl status iptables
其它地方与上类同升级修改
- ssh服务-开启与关停
service sshd restart/stop
- httpd服务-开启与关停
service httpd restart/stop
- network服务-开启与关停
service network restart/stop
- 网络时间同步服务ntpd-开启与关停
service ntpd restart/stop
Centos7.x: 默认是需要安装才能使用的,并不是自带。
2.永久改变服务的状态-重启机器后依然生效
解决方法
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行信息。切记chkconfig不是立即自动禁止或者激活一个服务,它只是简单的改变了符号连接。如
果想及时生效,必须用service来start和stop。
使用语法
chkconfig [--add][--del][--list][系统服务] 或
chkconfig [--level<等级代号>] [系统服务] [on/off/reset]
参数用法
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关闭。
等级0:表示关机
等级1:单用户模式
等级2:无网络连接的多用户命令行模式
等级3:有网络连接的多用户命令行模式
等级4:不可用
等级5:带图形界面的多用户模式
等级6:重新启动
需要说明的是,level选项可以指定要查看的运行级不一定是当前的运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
使用范例
chkconfig --list:列出所有的系统服务
chkconfig --add httpd:增加httpd服务
chkconfig --del httpd:删除httpd服务
chkconfig --level 2345 httpd on:设置httpd在运行级为2、3、4、5的情况下都是开启on的状态。



