文章目录
1.Linux入门
1.1.Linux CentOS7的网络设置
- 入门命令
重启主机的命令:reboot
重启网卡的命令:systemctl restart network.service
查看ip地址的命令:ip addr
ping网络是否畅通:ping ip地址
- 桥接模式(Bridged)
可以访问外网
容易与局域网的其他集器ip地址冲突
- Host-Only仅主机模式
一般情况下不可以访问外网
不会与局域网的其他机器ip地址冲突
- NAT模式
可以访问外网
不会与局域网的其他机器ip地址冲突
1.2.虚拟机的快速克隆
克隆之后,systemctl restart network.service 命令会报错,原因试MAC地址不正确,会复制原来的MAC地址。
网卡路径:/etc/sysconfig/network-scripts/ifcfg-eno16777728,修改MAC地址后保存
1.3.虚拟机的快照
2.Linux常用操作
2.1.Linux常用基础命令(一)
(1)cd命令
- 功能说明:切换目录
- 举例:cd /usr/local/ ; cd … ; cd - ; cd(回到家目录)
(2)ls命令
- 功能说明:列出目录内容
- 举例:ls -ltr ; ls -ltr /home ; ll
(3)pwd命令
- 功能说明:查询所在目录
- 举例:pwd
(4)cat命令
- 功能说明:查看小文件内容
- 举例:cat -n 123.txt
(5)more命令
- 功能说明:查看大文件内容
- 举例:more System.map-3.10.0-123.e17.x86_64
(6)head命令
- 功能说明:查看文件的前N行,默认查看前10行
- 举例:head -20 System.txt
(7)tail命令
- 功能说明:查看文件的后面N行,默认查看后10行
- 举例:tail - f access.log ; tail -20 access.log
(8)touch命令
- 功能说明:创建一个空文件
- 举例:touch 123.txt
(9)mkdir命令
- 功能说明:创建目录
- 举例:mkdir -p /tmp/xd (注意不加-p,不能多级创建) ;mkdir /tmp/xd/test{1…10} ; mkdir /tmp/xd/test{1…10}.txt
(10)rmdir命令
- 功能说明:删除目录
- 举例:rmdir /tmp/xd
(11)cp命令
- 功能说明:拷贝文件
- 举例:cp 123.txt class/(复制123.txt到class目录) ; cp -a 123.txt class/ 789.txt(复制123.txt重命名位789.txt到class目录下,-a完全复制)
(12)mv命令
- 功能说明:移动或更名现有的文件和目录
- 举例:mv 123.txt 345.php ; mv 789.txt /home/789.php
(13)rm命令
- 功能说明:删除文件或目录
- 举例:rm 987.txt ; rm -rf 456.txt
(14)diff命令
- 功能说明:对比文件差异
- 举例:diff 123.txt 456.txt
(15)exit命令
- 功能说明:退出命令
(16)ssh命令
- 功能说明:远程安全登录方式
- 举例:ssh ip
(17)id命令
- 功能说明:查看用户
- 举例:id root
(18)uname命令
- 功能说明:查询主机信息
- 举例:uname -a
(19)ping命令
- 功能说明:查看网络是否畅通
- 举例:ping ip
(20)echo命令
- 功能说明:标准输出命令
- 举例:echo “this is echo 命令”
(21)man命令
- 功能说明:查看帮助文档
- 举例:man ls
(22)help命令
- 功能说明:查看内部命令帮助
- 举例:help if
2.2.Linux常用基础命令(二)
(1)clear命令
- 功能说明:清屏
- 举例:clear ; ctrl+L
(2)who命令
- 功能说明:当前在本地系统上的所有用户信息
- 举例:whoami ; who
(3)uptime命令
- 功能说明:显示当前时间,系统运行了多长时间,多少用户登陆过,负载信息
- 举例:load average: 0.00,0.01,0.05 (1分钟的负载,5分钟的负载,15分钟的负载)
(4)w命令
- 功能说明:查询系统信息
- 举例:w
(5)free命令
- 功能说明:查看系统内存
- 举例:free -h ; free -m
(6)wc命令
- 功能说明:统计文件的行数
- 举例:wc -l 123.txt
(7)grep 命令
- 功能说明:查找文件里符合条件的字符串
- 举例:grep ‘11111111111’ 123.txt | wc -l- -n:输出记录对应的行号 grep -n ‘1111111’ 123.txt- -w:精确匹配 grep -w ‘111111’ 123.txt- -i:忽略大小写 grep -i ‘1111111’ 123.txt- -v:反向选择 grep -v ‘1111111’ 123.txt
(8)find命令
- 功能说明:查询文件
- 举例:- find / -name 123.txt (查询名称为123.txt的文件或者文件夹)- find / -type f -name 123.txt (查询名称为123.txt的文件)
- 注意:find 最好不要从根目录开始查,非常消耗性能,生产不要用
(9)uniq命令
- 功能说明:对排序好的内容进行统计
- 举例:uniq -c 123.txt |sort -n
(10)sort命令
- 功能说明:对内容进行排序
- 举例:uniq -c 123.txt | sort -n
(11)df命令
- 功能说明:文件系统的磁盘使用情况统计
- 举例:df -h
(12)hostname命令
- 功能说明:查看主机名
- 举例:hostname
(13)netstat命令
- 功能说明:查看网络端口的使用情况
- 举例:netstat -tunlp |grep nginx- -t:显示tcp端口- -u:显示UDP端口- -n:指明拒绝显示别名- -l:指明监听的内容- -p:指明显示建立相关连接的程序名
- centos中默认没有netstat命令,须安装:yum install net-tools
(14)ps命令
- 功能说明:显示所有进程信息。ps与grep常用组合,查找特定的进程
- 举例:- ps aux | grep nginx- ps -ef | grep nginx
(15)kill命令
- 功能说明:杀进程
- 举例:kill -9 进程号
(16)top命令
- 功能说明:监控Linux系统状况,比如cpu、内存的使用
- 举例:top ;按住q退出
(17)du命令
- 功能说明:统计大小
- 举例:du -sh ; du -sm *
(18)firewall-cmd命令
- 功能说明:查看防火墙的状态
- 举例:firewall-cmd --state
- centos7关闭防火墙的命令:systemctl stop firewall.service
(19)echo命令
- 功能说明:判断上一个命令是否正确
- 举例:echo $?
(20)cal命令
- 功能说明:查看日历
- 举例:cal 2008
2.3.Linux的输入输出错误重定向
(1)什么是输入重定向?
输入重定向就是把要输入的信息写入到指定的文件去
(2)什么是输出重定向?
输出重定向就是把要输出的信息写道一个文件中去,而不是将要输出的信息打印到控制台
(3)什么是错误重定向?
错误重定向就是把错误的信息写入到一个文件中去
(4)Linux中一切皆文件
文件描述符posix名称用途/dev/stdin0标准输入/dev/stdout1标准输出/dev/stderr2标准错误输出
(5)输入重定向:<
举例:wc -l < 123.txt
(6)输出重定向:> 代表覆盖写入;>> 代表追加写入
举例:cat >>123.txt(追加输入) ;cat >123.txt(覆盖输入);ls -lrt >123.txt(ls-lrt查询结果覆盖到123.txt中); echo ‘123123’ >123.txt(直接写入)
(7)错误重定向:2>
举例:llll 2> 123.txt(将错误信息写到123.txt中);llll 2>/dev/null 将一些无用的错误报错写到这里
(8)符号:
&:代表等同于的意思:ls -lrt /boot /test 1>/root/123.txt 2>&1
&>:代表部分正确还是错误的意思:ls -lrt /boot /test &>123.txt
|:管道符:用于将前面的执行结果作为后面执行的条件
;:代表可以执行多条命令,cat etc/password; grep root
&&:前面的命令执行成功的话,后面才可以执行,前面执行失败的话,后面不执行 :llll && grep root
||:前面的命令执行成功,后面的不执行,面前的执行失败,后面的才执行:grep root || ls -lrt
2.4.Linux下的目录分类与作用
/:根目录,一般根目录下之村放目录,不要存放文件,也不要修改,或者删除目录下的文件
/mnt:测试目录
/root:root用户的家目录
/home:普通用户的家目录
/tmp:临时文件(比如文件上传时)
/var:存放经常修改的数据,比如程序运行的日志文件
/boot:存放启动linux时使用的内核文件,包括链接文件以及镜像文件
/etc:系统默认放置配置文件的地方
/bin:所有用户都能执行的程序
/sbin:只有root才能执行的程序
/usr:用户自己的软件都可以放到这里
/dev:存放硬件设备的地方(dev/cdrom)
/media:挂载光盘使用
挂载光盘:mount /dev/cdrom /media
卸载光盘:umount /dev/cdrom
2.5.虚拟机与外部物理机时间同步
(1)卸载光盘的时候出现:
解决办法:
首先确认联网状态
- yum install -y psmisc
- fuser -mv /media
- fuser -kv /media
(2)date命令
- date “+%Y-%m-%d %H:%M:%S” 时间格式刷
- date -s “2020-10-1 22:00:00” 指定当前时间
- date -d yesterday “+%Y-%m-%d %H:%M:%S” 查看昨天日期
- date “+%w” 显示星期几
(3)安装VMwareTools
- 打开虚拟机,安装VMwareTools使工具软件包下载到光盘
- 挂载光盘到linux系统:mount /dev/cdrom /mnt
- cp VMwareTools-10.2.0-7259539.tar.gz /root/
- umount /dev/cdrom
- root目录解压:tar -xf VMwareTools-10.2.0-7259539.tar.gz
- cd vmware-tools-distrib
- yum -y install perl-Data-Dumper
- ./vmware-install.pl
- 安装过程全部yes或者默认
2.6.Linux编辑器vi的使用
(1)vi的基本概念(三种模式)
插入模式:按住键盘的i(当前位置前面插入)或者o(当前位置的下一行)或者a(当前位置的后面插入)
命令模式:按住esc
底行模式:前提是在命令模式,按住:进入
(2)在命令行模式的基本操作
$ #移动到这一行的行尾
gg #移动到当前文本的行首
G #移动到文档最后一行的行首
x #删除内容,删除一个字符dd#删除游标所在的那一整行,多行删除3dd
u #复原原来的操作v#选中范围按y即复制
p #当前光标所在行,向下粘贴
P #当前光标所在行,向上粘贴
yy #复制当前光标所在行,多行复制3yy
(3)在底行模式中的操作
n #n为数字,光标移动到第n行
/字符串 #寻找内容,从上往下查找,按n查找下一个
%s/word1/word2/g #从第一行到最后一行寻找word1字符串,并将该字符串取代为word2
n1,n2s/word1/word2/g #n1与n2为数字。在第n1与n2行之间寻找2word1的单词替换成word2set nu #显示行号set nonu #取消行号
q!#强制离开不保存
wq!#强制离开并保存!ls #暂时离开
? #模糊查找,从下往上开始查找,按n查找下一个
s #作替换,s/t/A 当前行的第一个t字符替换成A,s/t/A/g当前行的所有t字符替换成A,%s/t/A全文t替换成A
r #读文件,将读到的文件内容插入在当前文件的末尾
(4)编辑模式操作
A #直接在光标行末尾插入
a #在光标后插入
i #在光标前插入
I #在光标所在的行首插入
o #在下一行插入
O #在上一行插入
2.7.Linux的用户管理与组管理
(1)Linux用户的分类
Linux是一个多用户、多任务的操作系统
超级用户root:拥有至高无上的权限UID:0
普通用户:权限有一定的限制,可以登录系统。一版可以执行/usr/local/bin或者/usr/bin或者自己的家目录。
UID:500-10000(centos6) UID:1000-10000(centos7)
系统用户(伪用户):一般不会登录系统,一版情况下是用来维持某个程序的服务。
UID:1-499(centos6) UID:1-999(centos7)
(2)关于用户的相关配置文件
- 账号信息:/etc/passwd
- 密码信息:/etc/shadow
(3)账号信息解析
lixiang:x:1230:0::/home/lixiang:/bin/bash
lixiang:x:1230:0::/home/lixiang:/bin/bash用户密码占位符UIDGID描述用户家目录登陆后使用shell解释
/sbin/nologin #不可登录的
/bin/bash #可以登录
(4)密码信息解析
lixiang:xxxx:18794:0:99999:7:::
lixiang:xxxx:18794:0:99999:7:空:空用户账号名密码的密文账号上次修改距离1970-01-01过去多长时间距离上次修改密码多少天不能修改密码,0表示随时可以修改密码过期天数强制密码修改提醒时间,表示密码过期前7天开始警告当密码过期后多少天该账号被禁用用户过期日期,若设置则显示过期日期为距1970-01-01有多少天
(5)添加用户命令:useradd
- -u #指定用户UID
- -d #指定用户主目录
- -g #指定用户所属组
- -r #指定用户是系统用户
- -s #用户登录shell解释器
- -M #不创建主目录
举例:创建一个用户lixiang,指定UID为1010,指定家目录为home/lixiang,指定所属组root组,指定登录shell为/bin/bash
useradd -u 1010 -d /home/lixiang -g root -s /bin/bash lixiang
(6)删除用户命令:userdel
userdel -r lixiang
-r #连同家目录一起删除
(7)添加用户组命令:groupadd
(8)修改用户的信息命令:usermod
- -u #指定用户的UID
- -d #指定用户的主目录
- -g #指定用户所属组
- -s #修改用户的登录Shell,默认是bin/bash
- -e #修改用户的失效日期,格式为”YYYY-MM-DD“
usermod -u 1300 -g 0 -d /usr/local/lixiang lixiang
(9)设置用户密码命令:passwd
passwd lixiang
echo'123456'|passwd --stdin lixiang
(10)用户登录出现如下信息
如下:
bash-4.2$
bash-4.2$
解决:复制/etc/skel 中bash相关的文件到家目录当中
cp -r /etc/skel/.bash* /home/lixiang/
(11)获取主机ip
hostname -I
ifconfig|grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}"|head -1
2.8.Linux文件属性与权限操作
(1)文件的属性:ls -lrti
135088935 -rw-------. 1 root root 1778 Oct 12020 yum.log
135088935
第一列:i节点,i节点可以理解为文件的id,一个i节点号可以对应多个文件,但是一个文件只能对应一个i节点号。
-rw-------.
第二列:文件的类型与权限
(1)- #代表的是文件
d #代表的是目录
l #代表的是软链接
b #代表是块设备
c #代表的是硬件设备
(2)r:读权限 w:写权限 x:执行权限
4:读权限 2:写权限 1:执行权限
- rw- --- ---:分为三列,第一列为所属者的权限,第二列为所属组的权限,第三列为其他权限
1
第三列:有多少文件名链接到这个节点
root
第四列:文件的所有者
root
第五列:文件的所有组
1778
第六列:容量大小,单位默认为B
Oct 12020
第七列:创建或最近修改的时间
yum.log
第八列:文件名
(2)文件链接
原始文件:
软链接:ln -s
举例:ln -s /home/lixiang/yum.log /usr/local/
i节点号根源文件不一样,源文件一旦删除,软链接将找不到源文件。
硬链接:ln
举例:ln /home/lixiang/yum.log /usr/local/lixiang/
i节点与源文件一模一样,源文件删除,硬链接还可以继续使用,常用于防止重要文件被误删。
(3)修改文件的权限命令:chmod
- -R:递归的意思
- chmod -R 777 /home/lixiang
举例:
文件权限修改之前:
执行命令:chmod u+x,g+w,o+w 123.txt
撤销权限:chmod u-w,g-r,o-w 123.txt
举例:
chmod u+x,g+w,o+w boot.log
chmod u-x,g-w,o-w 123.txt
chmod777 boot.log
(4)修改文件的所有者跟所属组的命令:chown
更改文件目录lixiang 的所属者为root用户和所属组为lixiang组
chown -R root:lixiang lixiang
2.9.Linux的文件归档与解压缩
(1)文件归档与文件压缩
- 文件归档:
文件归档也称为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件内。归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和。工作中常于压缩结合在一起。
- 文件压缩:
节约磁盘空间,加快文件的传输速率。
(2)压缩解压缩命令:gzip、xz
- gzip:不能压缩目录,只能压缩文件,压缩速度最快,但是压缩比例比较低。扩展名:.gz
不保留源文件压缩:gzip 123.txt
保留源文件压缩:gzip -c 123.txt >123.txt.gz
不保留源文件的解压:gunzip 123.txt.gz
保留源文件的解压:gunzip -c 345.txt.gz >234.txt
不保留源文件解压:gzip -d 345.txt.gz
- xz:可以压缩目录和文件,压缩的速度比较慢,但是压缩的比例最高。扩展名:.xz
不保留源文件的压缩:xz 123.txt
保留源文件的压缩:xz -c 345.txt >345.txt.xz
不保留源文件的解压:unxz 345.txt.xz
保留源文件的解压:xz -d -k 123.txt.xz
不保留源文件的解压:xz -d 123.txt.xz
(3)归档与压缩命令:tar
- 参数:
-c #创建新文件
-f #指定文件格式
-v #显示详细过程
- 压缩:
tar -cvf vmware.tar vmware-tools-distrib
-z 以gzip方式归档压缩:tar -zcvf vmware.tar.gz vmware-tools-distrib
-J 以xz方式进行归档压缩:tar -Jcvf vmware.tar.xz vmware-tools-distrib
tar -Jcvf /home/lixiang/vmware.tar.xz vmware-tools-distrib
- 解压缩:
-x 解档解压缩操作:tar -xvf vmware-tools.tar.xz
-C 解压指定路径:tar -xvf vmware-tools.tar.xz -C /home/lixiang
3.Linux核心实用命令
3.1.Linux中find命令的用法
(1)find的基本用法:find 路径 选项
- 各个参数:
-type #根据文件类型查找,f为文件,d为目录
-name #根据文件名查找
-perm #根据文件权限查找,比如-rw-------,r为4,w为2,所以为6,后面全是0 ,为600,三位一加
-user #根据文件所属主
- 举例:
find /var/log/ -type f -name "*.log"
查找/var/log目录下有.log结尾的文件
find /var/log/ -type d
查找/var/log目录下的所有目录
find /var/log/ -perm 600 -type f -name "*.log"
查找/var/log 下文件权限为所有者读写权限,所有组无权限,其他无权限,以.log结尾的文件。
find /var/log/ -user root -type f -name "*.log"
查找/var/log 下所属者为root,以.log结尾的文件
(2)find的高级用法
参数:
;#可以执行多条命令\#转义符,使得这条命令结束{}#把find命令的结果传递给{}
-exec #执行
举例:
find /var/log/ -type f -name "*.log" -exec wc -l {}\;
显示find查询结果的行数
find /var/log -type f -name "*.log" -exec cp -a {} /home/test \;
将find查询到的结果复制到home的test目录下
-mtime #根据文件的变更时间来查找,-n表示更改时间距现在的n天以内,+n表示更改时间距现在的n天以外。
find /var/log -mtime -2 -type f -name "*.log" -exec ls -lrt {}\;
显示前两天到今天这段时间内的以.log结尾的文件
find /var/log -mtime +2 -type f -name "*.log" -exec ls -lrt {}\;
显示前两天之前的所有.log结尾的文件
3.2.防火墙以及selinux介绍
(1)firewall防火墙的使用
防火墙主要用于保护信息安全防护,主要有软件防火墙和硬件防火墙,firewalld防火墙是软件防火墙,在centos7之前默认采用的是防火墙是iptables,而在centos7则采用的是firewall
- 查看firewalld服务状态
systemctl status firewalld
- 开启、重启、关闭firewall服务
开启:systemctl start firewalld.service
关闭:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
- 查看firewall防火墙的状态
firewall-cmd --state
- 查看防火墙开放端口规则
firewall-cmd --list-port
- 开放80端口
firewall-cmd --permanent --add-port=80/tcp (注意:--permanent是永久生效,不加这个参数重启后就失效)
- 加载生效开放的端口
firewall-cmd --reload
- 查询指定端口80是否开放
firewall-cmd --query-port=80/tcp
- 关闭80端口
firewall-cmd --remove-port=80/tcp
安装telnet命令:yum -y install xinetd telnet telnet-server (确认联网状态)
安装netstat与ifconfifig命令:yum -y install net-tools(确认联网状态)
(2)SeLinux的三种共工作模式:配置文件路径:/etc/selinux/config
- enforcing:强制模式,违反selinux规则的行为将会被阻止并记录到日志中。
- permissive:宽容模式,违反selinux规则的行为将会记录到日志,但不会阻止。
- disabled:关闭模式。
3.3.telnet与scp的用法
(1)企业中telnet命令的使用
- telnet命令主要用于测试到某台机器的某个端口是否畅通
- telnet这个命令依赖于xinetd夫妇于telnet-server服务
- telnet命令的安装:yum -y install xinetd telnet telnet-server (确认联网状态)
- telnet命令的用法:telnet IP地址 端口 ;如telnet 192.168.235.130 80
(2)企业中scp命令的使用
scp命令用于服务其之间文件或者目录的拷贝
- 从本机拷贝文件到别的机器:scp 本机文件的存放路径 root@服务器IP地址:服务器目标路径
scp /root/vmware.tar [email protected]:/root/
将当前机器的vmware.tar复制到192.168.235.129机器的root目录下
在130机器上执行命令:scp /root/vmware.tar root@192.168.235.129:/root/
- 从别的机器拷贝文件到本地目录:scp root@服务器IP:服务器目标文件的路径 本机文件的存放路径
scp [email protected]:/root/vmware-tools.tar.xz /root/
将129机器的vmware-tools.tar.xz拷贝到本地的root目录下
执行命令:scp root@192.168.235.129:/root/vmware-tools.tar.xz /root/
- -r参数:递归的作用(拷贝目录,不加-r会报错)
scp -r vmware-tools-distrib [email protected]:/root/
3.4.进程管理命令
(1)ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 20013:19 ? 00:00:00 [kthreadd]
root 32013:19 ? 00:00:00 [ksoftirqd/0]
root 52013:19 ? 00:00:00 [kworker/0:0H]UID:用户名,代表当前进程是那个用户启动的
PID:进程ID
PPID:父进程号
C:CPU占用率
STIME:进程启动的时间
TTY:TTY终端
TIME:进程执行起到现在总的CPU占用时间
CMD:启动这个进程的命令
(2)ps aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 20.00.000 ? S 13:19 0:00 [kthreadd]
root 30.00.000 ? S 13:19 0:00 [ksoftirqd/0]
root 50.00.000 ? S<13:19 0:00 [kworker/0:0H]USER:那个用户启动了这个命令
PID:进程的ID
%CPU:CPU的占用率
%MEM:内存的使用率
VSR:如果一个进程完全驻留在内存中一共使用了多长时间
RSS:进程当前占用了多少内存
TTY:tty终端
STAT:表示当前进程状态(S处于休眠状态,D不可中断状态,Z僵尸状态,X死掉的状态)
START:启动这个命令的时间点
TIME:进程总共占用CPU的时间
COMMAND:启动这个进程的命令
3.5.处理海量数据之cut命令
(1)cut命令的基本使用
cut应用场景:通常对数据进行列的提取
语法:cut [选项] …[file]
选项:
-d #指定分隔符
-f #指定截取区域
-c #一字符为单位进行分割
(2)以’:'为分隔符,截取出/etc/passwd的第一列跟第三列
cut -d ':' -f 1,3 /etc/passwd
cat /etc/passwd |cut -d ':' -f 1,3
(3)以’:'为分隔符,截取出/etc/passwd的第一列到第三列
cut -d ':' -f 1-3 /etc/passwd
cat /etc/passwd |cut -d ':' -f 1-3
(4)以’:'为分隔符,截取出/etc/passwd的第二列到最后一列
cut -d ':' -f 2- /etc/passwd
cat /etc/passwd |cut -d ':' -f 2-
(5)截取/etc/passwd文件从第二个字符到第九个字符
cut -c 2-9 /etc/passwd
cat /etc/passwd |cut -c 2-9
(6)截取linux上面所有可登陆普通用户
cat /etc/passwd |grep'/bin/bash'|cut -d ':' -f 1|grep -v root
3.6.处理海量数据之awk命令
(1)awk简介
awk是一个非常强大的数据处理命令,支持条件判断,数组,循环等功能,与grep,sed被称为linux三剑客
awk的应用场景:通常对数据进行列的提取
语法:
(1)awk '条件1 {执行动作} 条件2 {执行动作}...' 文件名
(2)awk [选项]'条件1 {执行动作} 条件2 {执行动作}...' 文件名
(2)printf与print的用法
- printf #格式化输出,不会自动换行
- print #打印出内容,默认自动换行
- %s #代表字符串
- \t #制表符
- \n #换行符
printf'%s\t%s\t%s\t%s\t%s\t%s\n'123456
(3)awk的简单用法
- NR #行号
- $1 #代表第一列
- $2 #代表第二列
- $NF #代表最后一列
- 截取行数是4的第一个在字符
df -h |awk'NR==4 {print $1}'
- 截取行数是2到5的第一个字符
df -h |awk'(NR>=2 && NR<-5) {print $1}'
- 截取最后一个字符
df -h |awk'{print $NF}'
- 以’:’ 为分隔符, -F #指定分割符
awk -F":"'{print $1}' /etc/passwd
- BEGIN#在读取所有行内容前就开始执行,一般用来初始化操作
cat /etc/passwd |awk'BEGIN {FS=":"} {print $1}'
df -h |grep -v '文件系统'|awk'BEGIN {printf "文件系统使用情况:\n\n"} {print $1} {printf "文件系统使用率:"} {print $5}'
- END #结束的时候执行
df -h |grep -v '文件系统'|awk'BEGIN {printf "文件系统使用情况:\n\n"} {printf $1} {printf "文件系统使用率:"} {print $5} END {printf "一切正常\n"}'
3.7.处理海量数据之sed命令
sed主要对数据进行处理(选取、新增、替换、删除、搜索)
sed语法:sed [选项] [动作] 文件名
常见的选项与参数:
-n #把匹配到的行输出打印到屏幕
p #以行为单位进行打印,通常与-n一起使用
d #删除
a #在行的下面插入新的内容
i #在行的上面插入新的内容
c #替换
指定字符串替换:s/要被取代的内容/新的字符串/g #指定内容进行替换
-i #对源文件进行修改(高危操作,慎用,用之前要备份源文件)
搜索:在文件中搜索内容
-e #表示可以执行多条动作
(1)把第2行的文件系统打印在屏幕上
df -h |sed -n '2p'
(2)删除第二行显示,不会对源文件产生影响
df -h |sed'2d'
(3)在第二行下面插入新的内容
df -h |sed'2a 1211212121212121212121212121'
(4)在第二行上面插入新的内容
df -h |sed'2i 1211212121212121212121212121'
(5)将第二行替换成指定字符
df -h |sed'2c 1211212121212121212121212121'
(6)把centos-root替换成centos8
df -h |sed's/centos-root/centos8/g'
(7)对源文件进行修改
sed -i 's/centos7/centos8/g' df.txt
(8)搜索文件中带有TMP的字符
sed -n '/TMP/p' df.txt
(9)把centos8替换成centos7并且搜索文件中带有TMP的字符
sed -e 's/centos8/centos7/g' -e 's/TMD/g' df.txt
4.Linux服务器常用的企业服务安装
4.1.Linux安装软件服务rpm方式
(1)什么是rpm安装
安装别人编译好的软件包,rpm即Redhat Package Manager ,是Redhat软件包的管理方式。
(2)rpm安装的优点
- 软件已经编译好,所以传输和安装方便,让用户免除编译。
- 在安装之前,先会检查系统的磁盘、操作系统版本等、避免安装错误。
(3)rpm安装的缺点
- 软件包的安装环境必须与打包时的环境一致或者相当。
- 必须安装了软件的依赖包。
(4)rpm软件包的命名规则
which-2.20-7.el7.x86_64.rpm
which#软件名2.20#软件版本号7#软件发布版本号,代表当前软件版本已经发布多少次
el7 #操作系统版本号
x86 #当前操作系统的CPU架构64#当前操作系统的位数
(5)安装rpm软件包
参数:
-i #install安装软件包
-v #输出更多的详细信息
-h #输出哈希标记(#)
--nodeps #不验证软件的依赖
举例:
rpm -vih zsh-5.0.2-7.el7.x86_64.rpm
当我们安装一些需要前置依赖的软件时,rpm的缺点就暴漏出来了,rpm不能帮我们安装一些前置的依赖
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm
我们可以强制安装加上 --nodpes,但是不建议这么做
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm --nodpes
(6)rpm包的下载地址
http://rpmfind.net/
http://rpm.pbone.net/
http://www.rpmseek.com/index.html
(7)rpm查询功能:rpm -q
-a #查询已经安装了的所有软件包 rpm -qa zsh
-f #查询文件所属软件包 rpm -qf /usr/bin/zsh
-p #查询软件包
-i #显示软件包信息
-l #显示软件包中的文件列表
-d #显示被标注为文档的文件列表
-c #显示被标注为配置文件的文件列表
注意:查询时,也是不能写包名,要写软件名。
举例:
rpm -qa zsh#查询已经安装的rpm软件包列表
rpm -qi zsh#查询指定软件的详细信息
rpm -ql zsh#查询软件包安装的目录、文件列表
(8)rpm包升级
-U #升级rpm软件包服务rpm -Uvh zsh-5.0.2-7.el7.x86_64.rpm(注意升级的软件包一定要比当前软件包版本高)
(9)rpm包卸载
-e #卸载rpm -e zsh(注意这里要写软件名,不要写包名)
4.2.Linux安装服务软件yum方式
(1)什么是yum安装?
- 基于C/S架构,yum安装称之为傻瓜式安装
(2)yum安装优点
- 方便快捷,不用考虑包依赖,自动下载软件包
(3)yum安装缺点
- 人为无法干预,无法设定想要的参数
(4)配置本地yum源的方式
配置文件的路径:/etc/yum.repos.d/(注意文件名一定要以.repo结尾)
(1)vi Centos7-yum.repo 编辑Centos7-yum.repo
(2)i编辑文件内容:
[Centos7-yum]#yum源名称,唯一的,用来区分不同的yum源name=Centos-source #对yum源描述信息baseurl=file:///mnt #对yum源的路径(repodata目录所在的目录)enabled=1#表示启用yum源gpgcheck=0#为1表示使用公钥检验rpm的正确性
(5)yum安装方式的使用
yum repolist #查看yum源文件
yum clean all #清除之前的yum缓存
yum makecache #创建yum缓存,为后续安装更加快速
yum -y installzsh#安装软件yum -y install zsh
yum info zsh#查看zsh软件包信息(无论安装不安装都有信息)
yum info installed zsh#查询已经安装好的软件信息
yum -y erase zsh#卸载软件
yum search gcc #搜索gcc软件
yum update 【新版本软件名】 #升级软件
(6)当配置本地yum源出现这种情况
- 删掉同目录下Centos-Base-repo文件即可
mv Centos-Base-repo Centos-Base-bak
4.3.Linux安装服务软件源码方式
(1)源码安装优点
编译安装过程中,可以设定参数、指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大。
(2)源码安装的缺点
需要对依赖包一个一个进行安装,不能随意升级,一升级可能会由于依赖包的不能使用导致一系列问题。
(3)源码编译安装的4大步骤
- 解压源码包
tar -xf 源码包
- 配置
进入解压后的目录,用./configure命令来配置相关信息(比如指定安装目录 --prefix=/usr/local/nginx)和生成Makefile文件
- 编译
make -j4
- 安装
makeinstall
4.4.Centos7服务器JDK8安装
(1)下载JDK8源码压缩包
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
(2)解压压缩包
tar -xvf jdk-8u211-linux-x64.tar.gz
(3)移动到/usr/local/jdk1.8中
mv jdk1.8u211 /usr/local/jdk1.8
(4)全局环境变量的配置文件:vi /etc/profile
exportJAVA_HOME=/usr/local/jdk1.8 #这个路径要改,其余不需要改exportJRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
(5)加载环境变量:source /etc/profile
(6)检验jdk是否安装成功
java -version
java version "1.8.0_211"Java(TM) SE RuntimeEnvironment(build 1.8.0_211-b12)JavaHotSpot(TM)64-BitServer VM (build 25.211-b12, mixed mode)
4.5.Centos7部署tomcat网站服务
(1)什么是tomcat
tomcat是一个开源免费的Web应用服务器,性能稳定,是目前比较流行的Web应用服务器。
(2)tomcat官网下载
https://tomcat.apache.org/download-80.cgi
(3)tomcat部署流程
- 下载tomcat
yum install -y wgetwget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.68/bin/apache-tomcat-8.5.68.tar.gz
- 将解压后的tomcat移动到/usr/local/tomcat8
mv apache-tomcat-8.5.43.tar.gz /usr/local/tomcat8
- tomcat重要目录介绍
bin:存放可执行的命令,比如开启和关闭。
conf:配置文件;
Context.xml:Tomcat公用的环境配置,tomcat服务器会定时去扫描这个文件
web.xml:Web应用程序描述文件,都是关于Web应用程序的配置文件
server.xml:可以设置tomcat的端口号,添加虚拟机这些的,是对服务器的设置
tomcat-users.xml:用户配置文件
webapps:发布web应用
lib:库文件
(4)关闭防火墙
systemctl stop firewalld.service
(5)启动tomcat
sh startup.sh
(6)查看是否监听tomcat
ps -ef |grep tomcat
netstat -tunlp |grep24324
(7)测试是否能访问页面
IP地址:8080
4.6.Centos7部署apache网站服务
(1)Apache简介
Apache软件基金会的一个开源免费的网页服务器,也是目前世界上使用最广泛的一种web server,apache最出名的是它的跨平台,高效和稳定,可以运行在几乎所有广泛使用的计算机平台上。其特点是简单、速度块、性能稳定,并且可做代理服务器来使用,并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
(2)源码编译安装Apache
- 下载组件apr并解压
组件apr官方网站:http://apr.apache.org/download.cgi
wget http://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
tar -xf apr-1.7.0.tar.gz
- 下载组件apr-util并解压
组件apr-util官方网站:http://apr.apache.org/download.cgi wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
tar -xf apr-util-1.6.1.tar.gz
- 下载apache并解压
apache官方网站:http://httpd.apache.org/download.cgi
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.39.tar.gz
tar -xf httpd-2.4.39.tar.gz
- 安装gcc环境
yum install -y gcc*
- 安装zlib-devel库
yum install -y zlib-devel
- 安装xml的解析器
yum install -y expat-devel
- 下载并安装pcre正则表达式库
下载地址:https://ftp.pcre.org/pub/pcre/
tar -xf pcre-8.43.tar.gz
cd pcre-8.43
mkdir -p /usr/local/pcre
./configure --prefix=/usr/local/pcre #指定安装路径make&&makeinstall#编译并且编译安装
- 把组件apr与组件apr-util拷贝到apache安装包里
cp -rf apr-1.7.0 /root/test/httpd-2.4.39/srclib/apr
cp -rf apr-util-1.6.1 /root/test/httpd-2.4.39/srclib/apr-util
- 进入apache解压包进行./configure进行环境收集检验与配置相关模块
cd /root/test/httpd-2.4.39
mkdir -p /usr/local/apache
./configure \--prefix=/usr/local/apache \--sysconfdir=/usr/local/apache/etc \--with- apr=/home/test/apr-1.7.0 \--with-apr-util=/home/test/apr-util-1.6.1 \--with- included-apr \--with-pcre=/usr/local/pcre \--enable-deflate \--enable-expires \-- enable-headers \--enable-so \--enable-modules=most \--with-mpm=worker \--enable- rewrite
选项说明:
--prefix #指定安装目录
--sysconfdir #指定配置文件的路径
--with-apr #指定依赖文件的路径
--with-apr-util #指定依赖文件的路径
--with-included-apr #增加编译效率的
--with-pcre #指定pcre正则表达式库安装路径
--enable-deflate #开启压缩文件提高速度节约宽带
--enable-expires #开启让浏览器缓存,减轻服务器压力,提高访问速度
--enable-headers #使得支持http头
--enable-so #使得支持动态模块
--enable-modules=most #使得支持大多数模块
--with-mpm=worker #使得Apache工作在worker模式下
--enable-rewrite #使得支持地址重写
- 编译并安装apache,在apache安装目录下
make -j 4&&makeinstall
- 设置服务器名称
vi /usr/local/apache/etc/httpd.conf
输入:ServerName进行搜索
添加:ServerName www.baidu.com
- 测试并启停apache服务器
ln -s /usr/local/apache/bin/* /usr/sbin/ #设置软链接echo"export PATH=/usr/local/apache/bin:$PATH">>/etc/profile #设置环境变量source /etc/profile #加载环境变量
httpd -t #测试配置文件语法有没有错误
httpd -k start #启动apache服务
httpd -k stop #关闭apache服务
4.7.Centos7部署nginx网站服务
(1)什么是nginx
Nginx是一款高性能的HTTP和反向代理服务器
(2)Nginx的优点
1.高并发量:根据官方给出的数据,能够支持高达50000个并发连接数的响应。
2.内存消耗少:处理静态文件,同样起web服务,比apache占用更少的内存及资源,所以他是轻量级的。
3.简单稳定:配置简单,基本在一个conf文件中配置,性能比较稳定,可以7*24小时不间断运行。
4.模块化程度高:Nginx是高度模块化设计,编写模块相对简单。
5.负载均衡服务器:Nginx可以做高并发的负载均衡,且Nginx是开源免费的,如果使用F5等硬件来做负载均衡,硬件成本比较高。
6.可移植性高:Nginx代码完全用c语言编写。
(3)Nginx的缺点
1.动态处理差:nginx处理静态文件好,耗内存少,但是处理动态页面比较差
2.rewrite弱:虽然nginx支持rewrite功能,但是相比于Apache来说,Apache比nginx的rewrite强大
(4)编译安装
- 安装gcc编译环境
yum install gcc-c++
- 安装zlib-devel库
yum install -y zlib-devel
- 安装OpenSSL密码库
yum install -y openssl openssl-devel
- 安装pcre正则表达式库
下载地址:https://ftp.pcre.org/pub/pcre/
tar -xf pcre-8.43.tar.gz
cd pcre-8.43
mkdir -p /usr/local/pcre
./configure --prefix=/usr/local/pcre
make&&makeinstall
- 下载编译安装nginx
nginx下载官网:http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.16.0.tar.gz
mkdir -p /usr/local/nginx
tar -xf nginx-1.16.0.tar.gz
cd nginx-1.16.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with- http_stub_status_module --with-pcre
make&&makeinstall
- 启动nginx服务
/usr/local/nginx/sbin/nginx -c /usr/local/conf/nginx.conf
- 关闭nginx服务
/usr/local/nginx/sbin/nginx -s stop
4.8.Centos7安装mysql5.7数据库服务
(1)mysql简介
mysql是一个开源的关系型数据库,现在是Oracle旗下的一款产品。由c和c++编写,可移植性高。支持在多种操作系统中安装,常见的有Linux,Windows、AIX。
以mysql作为数据库,linux作为操作系统,apache或者nginx作为web服务器,perl/php、python作为服务端的脚本解释器,就可以搭建一个免费的网站。
(2)安装mysql数据库
- 关闭selinux、防火墙
systemctl stop firewalld.service
vi /etc/selinux/config
更改 SELINUX=disabled
- 安装cmake工具
yum -y install cmake
- 下载boost路径(mysql5.1.17必须依赖)
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -xf boost_1_59_0.tar.gz
- yum安装其他依赖组件
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncurses-devel openssl-devel
- 创建路径
mkdir -p /usr/local/mysql
mkdir -p /data/mydata
- 创建mysql用户
useradd -M -s /sbin/nologin mysql
- 使用cmake工具对mysql5.7.17进行环境收集检验于配置相关模块
解压mysql源码包,并进入解压后的路径
tar -xf mysql-5.7.17.tar.gz
cd mysql-5.7.17
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DMYSQL_DATADIR=/data/mydata \-DSYSCONFDIR=/etc \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306\-DWITH_XTRADB_STORAGE_ENGINE=1\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DWITH_BLACKHOLE_STORAGE_ENGINE=1\-DWITH_MYISAM_STORAGE_ENGINE=1\-DMITH_READLINE=1\-DENABLED_LOCAL_INFILE=1\-DWITH_EXTRA_CHARSETS=1\-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEFAULT_CHARSET=all \-DWITH_BIG_TABLES=1\\-DWITH_BOOST=../boost_1_59_0 \
-DWITH_DEBUG=0
参数详细信息解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \#指定mysql数据库安装目录
-DMYSQL_DATADIR=/data/mydata \#指定数据库文件路径
-DSYSCONFDIR=/etc \#指定配置文件目录
-DWITH_INNOBASE_STORAGE_ENGINE=1\#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1\#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\#安装BLACKHOLE存储引擎
-DWITH_READLINE=1\#使用readline功能
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \#连接文件位置
-DWITH_SSL=system \#表示使用系统上的自带的SSL库
-DWITH_ZLIB=system \#表示使用系统上的自带的ZLIB库
-DDEFAULT_CHARSET=utf8 \#指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8_general_ci \#指定默认使用的字符集校对规则
-DDOWNLOAD_BOOST=1\
-DWITH_BOOST=../boost_1_59_0 \#指定Boost库的位置,mysql5.7必须添加该参数
-DENABLE_DOWNLOADS=1#支持下载可选文件
- 编译并安装
make -j 4&&makeinstall
- 编译并安装
/usr/local/mysql/bin/mysqld \--initialize \--user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mydata \-socket=/tmp/mysql.sock
- 对mysql的相关路径进行更改权限
chown -R mysql:mysql /usr/local/mysql /data/mydata
- 修改配置文件
vi /etc/my.cnf
[mysqld]datadir=/data/mydata
socket=/tmp/mysql.sock
symbolic-links=0[mysqld_safe]
log-error=/usr/local/mysql/log/mysql.errlog
pid-file=/data/mydata/$hostname.pid
- 启停mysql
①当启动报错:
Starting MySQL.2019-08-03T14:19:37.028727Z mysqld_safe error: log-error set to '/usr/local/mysql/log/mysql.errlog', however file don't exists. Create writable for user 'mysql'. ERROR! The server quit without updating PID file(/data/mydata/localhost.localdomain.pid).
②解决:
touch /usr/local/mysql/log/mysql.errlog
chown -R mysql:mysql /usr/local/mysql/log/mysql.errlog
③启动:
/usr/local/mysql/support-files/mysql.server start
④关闭:
/usr/local/mysql/support-files/mysql.server stop
- 登录mysql
/usr/lcoal/mysql/bin/mysql -uroot -p
- 修改mysql密码
set password for'root'@'localhost'=password('密码');
mysql> flush privileges;
ERROR 1146(42S02): Table 'mysql.servers' doesn't exist
use mysql;
drop table if exists mysql.servers;
CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL,`Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
- 添加mysql服务并设置mysql开机启动
cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chkconfig --add mysql
chkconfig --list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
使用mysql服务的方式操作启停mysql服务:
service mysql start #启动mysql服务器 service mysql stop #关闭mysql服务器 service mysql restart #重启mysql服务器
- 设置mysql环境变量
ln -s /usr/local/mysql/bin/* /usr/sbin/
- 用mysql -uroot -p登录服务器
4.9.Centos7模板机安装
(1)配置网卡,这里选用NET模式,不选用DHCP自动分配IP
- cd /etc/sysconfig/network-scripts/ifcfg-eth…编辑网卡信息
HWADDR=00:0C:29:0B:79:DD
TYPE=Ethernet
BOOTPROTO=static #ip模式,dhcp为自动分配ip,static为静态ipIPADDR=192.168.10.102 #静态ip地址,注意为dhcp模式不用设置,static模式必须设置NETMASK=255.255.255.0 #子网掩码GATEWAY=192.168.10.2 #网关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
NAME=eno16777736
UUID=7da0f256-a33e-4e00-8c62-cf6a2ad70be2
ONBOOT=yes #开机自启网卡
- wq保存退出,清理网卡信息:>/etc/udev/rules.d/70-persistent-ipoib.rules
- 重启网卡:systemctl restart network
(2)配置本地yum源
- cd /etc/yum.repos.d 将里面的东西备份到bak的文件夹
- 新建一个Centos7-yum.repo文件编辑
[Centos7-yum]#yum源名称,唯一的,用来区分不同的yum源name=Centos-source #对yum源描述信息baseurl=file:///media/cdrom #yum源挂载路径enabled=1#表示启用yum源gpgcheck=0#为1表示使用公钥检验rpm的正确性
- 清理yum缓存:yum clean all
- 创建yum缓存:yum makecache
(3)挂载光盘,并且设置开机自动挂载
- mkdir /media/cdrom/ #创建挂载目录
- mount /dev/sr0 /media/cdrom/ #执行挂载任务
- echo “mount /dev/sr0 /media/cdrom/” >> /etc/rc.local #设置开机自动挂载(注意:centos7中rc.local没有执行权限)
- chmod u+x /etc/rc.local
查看挂载情况
查看/etc/rc.local的执行权限
(4)安装常用软件
- yum install -y gcc gcc-c+ make automake lrzsz wget open*
(5)关掉默认防御机制叫selinux
- vi /etc/selinux/config
- sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#’ /etc/selinux/config
- setenforce 0 临时关闭selinux
5.Linux企业实战
5.1.Centos7静态ip地址配置
(1)将网卡模式改成NAT模式
(2)虚拟网络设置将DHCP勾掉,不让分配随机ip
(3)配置静态ip
DHCP勾选完,会发现重启网卡失败,ip addr发现没有网卡。这会我们要去网络的配置地址去配置静态ip。
vi /etc/sysconfig/network-scripts/ifcfg-enoxxxxxxx
(4)编辑网卡配置文件
vi ifcfg-eno16777728
BOOTPROTO="static"IPADDR=192.168.10.100
GATEWAT=192.168.10.2
NETMASK=255.255.255.0
ONBOOT="yes"
修改如下:
HWADDR="00:0c:29:dc:47:58"TYPE="Ethernet"BOOTPROTO="static"DEFROUTE="yes"PEERDNS="yes"PEERROUTES="yes"IPV4_FAILURE_FATAL="no"IPADDR=192.168.10.100
GATEWAY=192.168.10.2
NETMASK=255.255.255.0
IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_PEERDNS="yes"IPV6_PEERROUTES="yes"IPV6_FAILURE_FATAL="no"NAME="eno16777728"UUID="3199add9-379c-43a9-bab1-ae4e05c0f2cc"ONBOOT="yes"
(5)重启网卡
systemctl restart network.service
(6)测试是否能ping通内外网
主机ping虚拟机:ping 192.168.10.100
虚拟机ping主机:ping 192.168.31.77(我当前网络的ip地址)
ping 外网
ping www.baidu.com
报错:ping: unknown host www.baidu.com
ping不通的情况下,要修改一个配置文件resolv.conf 加上以下域名服务器解析地址
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 1.1.1.1
vi /etc/resolv.conf
5.2.Centos7修改系统主机名
(1)查看系统主机名
hostname
(2)修改主机名命令
hostnamectl set-hostname lixiang
修改完重启机器
reboot
(3)修改host配置文件,使得ping 主机名就可以ping通
vi /etc/hosts
192.168.10.100 lixiang
5.3.Centos7实现ssh免密登录
(1)执行命令创建密钥
ssh-keygen -t rsa
(2)从lixiang传文件到hadoop中
scp /root/.ssh/id_rsa.pub root@hadoop:/root/.ssh/authorized_keys
(3)测试免密登录
ssh hadoop
5.4.虚拟机root忘记密码重新设置密码
当忘记root密码开不了机的情况下修改root的开机密码
(1)重启机器
(2)在zh后输入rw single init=/bin/bash
(3)ctrl+x执行
(4)输入touch /.autorelebal ,exec /sbin/init
版权归原作者 互联网小阿祥 所有, 如有侵权,请联系我们删除。