重启主机的命令:reboot
重启网卡的命令:systemctl restart network.service
查看ip地址的命令:ip addr
ping网络是否畅通:ping ip地址
可以访问外网
容易与局域网的其他集器ip地址冲突
一般情况下不可以访问外网
不会与局域网的其他机器ip地址冲突
可以访问外网
不会与局域网的其他机器ip地址冲突
克隆之后,systemctl restart network.service 命令会报错,原因试MAC地址不正确,会复制原来的MAC地址。
网卡路径:/etc/sysconfig/network-scripts/ifcfg-eno16777728,修改MAC地址后保存
(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
(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
(8)find命令
功能说明:查询文件
举例:
注意: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
centos中默认没有netstat命令,须安装:yum install net-tools
(14)ps命令
功能说明:显示所有进程信息。ps与grep常用组合,查找特定的进程
举例:
(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
(1)什么是输入重定向?
输入重定向就是把要输入的信息写入到指定的文件去
(2)什么是输出重定向?
输出重定向就是把要输出的信息写道一个文件中去,而不是将要输出的信息打印到控制台
(3)什么是错误重定向?
错误重定向就是把错误的信息写入到一个文件中去
(4)Linux中一切皆文件
文件描述符 | posix名称 | 用途 |
---|---|---|
/dev/stdin | 0 | 标准输入 |
/dev/stdout | 1 | 标准输出 |
/dev/stderr | 2 | 标准错误输出 |
(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
/:根目录,一般根目录下之村放目录,不要存放文件,也不要修改,或者删除目录下的文件
/mnt:测试目录
/root:root用户的家目录
/home:普通用户的家目录
/tmp:临时文件(比如文件上传时)
/var:存放经常修改的数据,比如程序运行的日志文件
/boot:存放启动linux时使用的内核文件,包括链接文件以及镜像文件
/etc:系统默认放置配置文件的地方
/bin:所有用户都能执行的程序
/sbin:只有root才能执行的程序
/usr:用户自己的软件都可以放到这里
/dev:存放硬件设备的地方(dev/cdrom)
/media:挂载光盘使用
挂载光盘:mount /dev/cdrom /media
卸载光盘:umount /dev/cdrom
(1)卸载光盘的时候出现:
解决办法:
首先确认联网状态
(2)date命令
(3)安装VMwareTools
(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的单词替换成word2
set 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 #在上一行插入
(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)关于用户的相关配置文件
(3)账号信息解析
lixiang:x:1230:0::/home/lixiang:/bin/bash
lixiang | :x | :1230 | :0 | : | :/home/lixiang | :/bin/bash |
---|---|---|---|---|---|---|
用户 | 密码占位符 | UID | GID | 描述 | 用户家目录 | 登陆后使用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
举例:创建一个用户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
(1)文件的属性:ls -lrti
135088935 -rw-------. 1 root root 1778 Oct 1 2020 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 1 2020
第七列:创建或最近修改的时间
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
举例:
文件权限修改之前:
执行命令: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
chmod 777 boot.log
(4)修改文件的所有者跟所属组的命令:chown
更改文件目录lixiang 的所属者为root用户和所属组为lixiang组
chown -R root:lixiang lixiang
(1)文件归档与文件压缩
文件归档也称为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件内。归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和。工作中常于压缩结合在一起。
节约磁盘空间,加快文件的传输速率。
(2)压缩解压缩命令:gzip、xz
不保留源文件压缩: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 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
(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结尾的文件
(1)firewall防火墙的使用
防火墙主要用于保护信息安全防护,主要有软件防火墙和硬件防火墙,firewalld防火墙是软件防火墙,在centos7之前默认采用的是防火墙是iptables,而在centos7则采用的是firewall
systemctl status firewalld
开启:systemctl start firewalld.service
关闭:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
firewall-cmd --state
firewall-cmd --list-port
firewall-cmd --permanent --add-port=80/tcp (注意:--permanent是永久生效,不加这个参数重启后就失效)
firewall-cmd --reload
firewall-cmd --query-port=80/tcp
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:关闭模式。
(1)企业中telnet命令的使用
(2)企业中scp命令的使用
scp命令用于服务其之间文件或者目录的拷贝
scp /root/vmware.tar [email protected]:/root/
将当前机器的vmware.tar复制到192.168.235.129机器的root目录下
在130机器上执行命令:scp /root/vmware.tar [email protected]:/root/
scp [email protected]:/root/vmware-tools.tar.xz /root/
将129机器的vmware-tools.tar.xz拷贝到本地的root目录下
执行命令:scp [email protected]:/root/vmware-tools.tar.xz /root/
scp -r vmware-tools-distrib [email protected]:/root/
(1)ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 2 0 0 13:19 ? 00:00:00 [kthreadd]
root 3 2 0 13:19 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 13: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 2 0.0 0.0 0 0 ? S 13:19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 13:19 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? 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:启动这个进程的命令
(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
(1)awk简介
awk是一个非常强大的数据处理命令,支持条件判断,数组,循环等功能,与grep,sed被称为linux三剑客
awk的应用场景:通常对数据进行列的提取
语法:
(1)awk '条件1 {执行动作} 条件2 {执行动作}...' 文件名
(2)awk [选项] '条件1 {执行动作} 条件2 {执行动作}...' 文件名
(2)printf与print的用法
printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6
(3)awk的简单用法
NR #行号
$1 #代表第一列
$2 #代表第二列
$NF #代表最后一列
截取行数是4的第一个在字符
df -h | awk 'NR==4 {print $1}'
df -h | awk '(NR>=2 && NR<-5) {print $1}'
df -h | awk '{print $NF}'
awk -F":" '{print $1}' /etc/passwd
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'
df -h | grep -v '文件系统' | awk 'BEGIN {printf "文件系统使用情况:\n\n"} {print $1} {printf "文件系统使用率:"} {print $5}'
df -h | grep -v '文件系统' | awk 'BEGIN {printf "文件系统使用情况:\n\n"} {printf $1} {printf "文件系统使用率:"} {print $5} END {printf "一切正常\n"}'
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
(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(注意这里要写软件名,不要写包名)
(1)什么是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 install zsh #安装软件yum -y install zsh
yum info zsh #查看zsh软件包信息(无论安装不安装都有信息)
yum info installed zsh #查询已经安装好的软件信息
yum -y erase zsh #卸载软件
yum search gcc #搜索gcc软件
yum update 【新版本软件名】 #升级软件
(6)当配置本地yum源出现这种情况
mv Centos-Base-repo Centos-Base-bak
(1)源码安装优点
编译安装过程中,可以设定参数、指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大。
(2)源码安装的缺点
需要对依赖包一个一个进行安装,不能随意升级,一升级可能会由于依赖包的不能使用导致一系列问题。
(3)源码编译安装的4大步骤
tar -xf 源码包
进入解压后的目录,用./configure命令来配置相关信息(比如指定安装目录 --prefix=/usr/local/nginx)和生成Makefile文件
make -j4
make install
(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
export JAVA_HOME=/usr/local/jdk1.8 #这个路径要改,其余不需要改
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
(5)加载环境变量:source /etc/profile
(6)检验jdk是否安装成功
java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
(1)什么是tomcat
tomcat是一个开源免费的Web应用服务器,性能稳定,是目前比较流行的Web应用服务器。
(2)tomcat官网下载
https://tomcat.apache.org/download-80.cgi
(3)tomcat部署流程
yum install -y wget
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.68/bin/apache-tomcat-8.5.68.tar.gz
mv apache-tomcat-8.5.43.tar.gz /usr/local/tomcat8
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 | grep 24324
(7)测试是否能访问页面
IP地址:8080
(1)Apache简介
Apache软件基金会的一个开源免费的网页服务器,也是目前世界上使用最广泛的一种web server,apache最出名的是它的跨平台,高效和稳定,可以运行在几乎所有广泛使用的计算机平台上。其特点是简单、速度块、性能稳定,并且可做代理服务器来使用,并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
(2)源码编译安装Apache
组件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官方网站: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官方网站: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
yum install -y gcc*
yum install -y zlib-devel
yum install -y expat-devel
下载地址: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 && make install #编译并且编译安装
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
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 #使得支持地址重写
make -j 4 && make install
vi /usr/local/apache/etc/httpd.conf
输入:ServerName进行搜索
添加:ServerName www.baidu.com
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服务
(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)编译安装
yum install gcc-c++
yum install -y zlib-devel
yum install -y openssl openssl-devel
下载地址: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 && make install
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 && make install
/usr/local/nginx/sbin/nginx -c /usr/local/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s stop
(1)mysql简介
mysql是一个开源的关系型数据库,现在是Oracle旗下的一款产品。由c和c++编写,可移植性高。支持在多种操作系统中安装,常见的有Linux,Windows、AIX。
以mysql作为数据库,linux作为操作系统,apache或者nginx作为web服务器,perl/php、python作为服务端的脚本解释器,就可以搭建一个免费的网站。
(2)安装mysql数据库
systemctl stop firewalld.service
vi /etc/selinux/config
更改 SELINUX=disabled
yum -y install cmake
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 -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
useradd -M -s /sbin/nologin mysql
解压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 && make install
/usr/local/mysql/bin/mysqld \--initialize \--user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mydata \-socket=/tmp/mysql.sock
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
①当启动报错:
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
/usr/lcoal/mysql/bin/mysql -uroot -p
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';
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服务器
ln -s /usr/local/mysql/bin/* /usr/sbin/
(1)配置网卡,这里选用NET模式,不选用DHCP自动分配IP
HWADDR=00:0C:29:0B:79:DD
TYPE=Ethernet
BOOTPROTO=static #ip模式,dhcp为自动分配ip,static为静态ip
IPADDR=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 #开机自启网卡
(2)配置本地yum源
[Centos7-yum] #yum源名称,唯一的,用来区分不同的yum源
name=Centos-source #对yum源描述信息
baseurl=file:///media/cdrom #yum源挂载路径
enabled=1 #表示启用yum源
gpgcheck=0 #为1表示使用公钥检验rpm的正确性
(3)挂载光盘,并且设置开机自动挂载
查看挂载情况
查看/etc/rc.local的执行权限
(4)安装常用软件
(5)关掉默认防御机制叫selinux
(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
(1)查看系统主机名
hostname
(2)修改主机名命令
hostnamectl set-hostname lixiang
修改完重启机器
reboot
(3)修改host配置文件,使得ping 主机名就可以ping通
vi /etc/hosts
192.168.10.100 lixiang
(1)执行命令创建密钥
ssh-keygen -t rsa
(2)从lixiang传文件到hadoop中
scp /root/.ssh/id_rsa.pub root@hadoop:/root/.ssh/authorized_keys
(3)测试免密登录
ssh hadoop
当忘记root密码开不了机的情况下修改root的开机密码
(1)重启机器
(2)在zh后输入rw single init=/bin/bash
(3)ctrl+x执行
(4)输入touch /.autorelebal ,exec /sbin/init