广州37期_杨捷 发表于 2021-12-10 19:40:37

Linux系统

Linux系统----
80%以上的公司,他们的软件项目就部署Linux系统的服务器上,少量公司使用Windows server系统

linux和Windows sever都是服务器的操作系统

linux系统它是开源、免费的系统
开源:开发源代码,所有人都可以对这种系统进行个性化定制

VMWare workstation====》VM虚拟机====》虚拟电脑、一台不存在实体的电脑====》可以按照Windows、Linux、苹果的系统

CentOS-6.5-i386-bin-DVD1.iso====》iso文件====》镜像文件

IOS:苹果手机的操作系统

一般传统的、注重信息安全的公司,他们服务器是实体服务器,有专门的机房,用来存放服务器的机器

大部分中小型企业使用云服务器,阿里云、腾讯云、天翼云

Linux系统==》运维人员进行日常维护,测试人员使用Linux的目的,知道怎样部署项目,进行测试问题的排查与定位

VM虚拟机 拍快照 作用:相当于对当前Linux系统进行了一次备份,下次出现异常时,就可以恢复到拍快照那时的状态

快捷键:Ctrl+Alt弹出鼠标

open in termina:打开一个终端,进入Linux系统的命令行界面

Linux系统的指令,输入结束后需要按{Enter}回车键进行执行
su 切换用户su+用户名
输入密码时是不会显示的

Windows系统的管理员用户:admin
Linux系统的管理员:root 也叫做根用户,它是拥有整台服务器的最高权限,所以也叫做高权用户


    data:,

    data:,

查看Linux服务器的ip地址:ifconfig
修改Linux服务器的ip地址:ifconfig+网卡名称+新的ip地址

修改Linux服务器的ip地址和广播地址和子网掩码:ifconfig+网卡名称+新的ip地址

broadcast +新的广播地址 netmask +新的子网掩码

Windows系统查看IP地址:ipconfig

    data:,
查看当前所在的位置的绝对路径:pwd
# pwd
/home/dcs35/Desktop
第一个‘/’表示根目录,所有目录的开始,后面的‘/’表示目录与目录的上下级的分隔
/home/dcs35/Desktop:根目录里面的 home目录 里面的 dcs35目录 里面的 Desktop目录位置
快捷方式:Tab键 可以开始补全命令
cd +需要进入的目录名称 ==》进入对应的目录
cd . :一个“.”是相对路径的用法,表示上一级目录

查看当前目录地下的文件或者目录的命令:ls
ls -1:以列表的方式查看当前目录的文件或文件夹的详细信息
ll等同于ls -l

ls -a:查看当前目录底下所有的文件或者目录(包括隐藏文件,隐藏文件一般是以.开头)

ls -ltr:按照时间对文件或者目录进行排序
命令后面接的参数需要空格之后使用 -xx的方式进行

man命令:进行其他命令的帮助手册
man ls:查看ls命令的帮助手册,可以看到ls命令允许接什么参数并说明参数的作用

ping命令:检查网络是否通
ping +IP地址/网址

退出任务:Ctrl+C
挂起任务:Ctrl+Z
返回挂起任务的命令:fg
touch命令:
1,touch +不存在的文件或者目录:新建一个空文件
2,touch +存在的文件或者目录:更新文件或者目录的修改时间,但不改变文件的内容

创建文件两种方式:
1,touch +新文件名:创建空文件
2,vim +新文件名:创建文件时需要写入内容
(vim本身就是一个文本编辑命令)

vim的步骤:
进入vim模式后,把你的鼠标扔掉
1,vim +新文件名
2,按“i”进入编辑模式(--INSERT--)
3,输入文本内容
4,按“ESC”退出编辑模式
5,输入:wq进行保存并退出,w表示保存,q表示退出

Linux系统----2

xshell:是一款客户端连接工具==》我们用来连接公司Linux服务器系统的工具

常用的客户端连接工具:xshell、CRT、putty

xftp:是Windows系统和Linux系统文件传输的工具
因为在公司里面,我们是接触不到实体服务器,我们是通过这种客户端连接工具(远程终端)进行连接到服务器,再对服务器进行操作的,一旦连接上linux服务器之后,在xshell中操作的内容是和在linux服务器操作的内容是同步的

xshell连接Linux服务器的格式:ssh+Linux服务器的IP==》IP在虚拟机中ifconfig查看

创建目录(文件夹):mkdir +目录名称
同时创建多个目录:
1,创建同级目录:mkdir +目录1 +目录2
2,创建层级目录:mkdir -p xx1/xx2/xx3

    data:,

    data:,

    data:,
删除:rm
rm +文件:需要确认的删除
rm -r +目录:删除目录,需要加参数-r
rm -rf +文件或目录:强制删除,不需要确认
?:一个?匹配一个字符 rm -rf a?
*:匹配0个或者多个字符 rm -rf a*
注意:不能使用 rm -rf/*(删库跑路),也不能在根目录底下执行 rm -rf*

    data:,


    data:,

    data:,

    data:,

复制拷贝:cp
cp 原文件 目标文件 cp bb BB
(1)当目标文件不存在时,则会新建文件,并把源文件的内容复制到新文件中
(2)当目标文件存在时,则会把源文件的内容覆盖到目标文件中
*对目录进行复制操作需要加参数 -r

    data:,

    data:,




移动、重命名:mv
mv 源文件 目标
(1)如果’目标‘是一个存在的目录,则进行把源文件 移动 到对应目录中
(2)如果’目标‘是一个不存在的文件或者目录,则进行重命名

    data:,

    data:,

    data:,

    data:,

    data:,

yum命令:Linux在线下载安装工具的命令
因为是在线下安装的,所以要关联可用的服务器(源),新装centos系统里面的配置文件默认是国外的,用不了,只能替换为国内的网站

yum install lrzsz ==》在线安装一个lrzsz工具 ==》lrzsz工具只能在远程连接终端(xshell、ctr、putty)使用,用来进行小文件的传输
lrzsz工具,只能在远程连接终端(xshell、ctr、putty)使用,不能在虚拟机使用


rz:有一个Windows弹窗弹出,然后可以选择Winows的文件上传到Linux服务器中
sz +Linux服务器里面的文件名:把Linux服务器的文件下载到Windows系统

lrzsz工具只适用传输小文件,传输大文件存在传输速度较慢,失败率比较高的问题
*传输大文件则优先使用XFTP等的FIP文件传输工具

面试题:说一下查看文件的5~6种方法
1,vim +文件名:以编辑的模式查看文件(不要动鼠标滑轮)
2,less +文件名:翻页显示文件内容,空格向下翻页,B键向上翻页,回车键逐行查看,Q键查看,输 入‘/+关键字’向下快速搜索对应的关键字,输入‘?+关键字’向上快速搜索对应的关键字
3,more +文件名:以百分比显示,空格键向下翻页,B键向上翻页,回车键逐行查看,Q键退出,当看完文件时自动退出
4,head +文件名:默认地显示文件的头部10行
      head -n 17+文件名:从头部开始显示到17行的内容
5,tail +文件名:默认地显示文件尾部的10行
    tail -n 4 文件名:显示文件尾部4行
    tail -n +4 文件名:从文件的第4行开始显示到末尾
      tail -f 文件名:查看实时文件的内容,查看实时日志
6,nl +文件名:显示行号和行的内容,显示完整的文件内容(用得少)
7,cat +文件名:显示完整的文件内容,一般是结合其他指令去使用

    data:,

*grep文本搜索,一般和cat结合使用,命令的结合使用,需要使用符号‘|’管道符

‘|’管道符:把前面指令的输出结果作为后面指令的输入条件

grep命令,文本搜索工具:把搜索到的关键字对应的那些行打印出来
-A +数值:把匹配到内容及后面的几行打印出来
-B +数值:把匹配到内容及前面的几行打印出来
-C +数值:把匹配到内容及前后的几行打印出来

    data:,

    data:,

    data:,

练习:查看head-tail.txt文件的11~16行,结合head和tail命令进行查看
方法一:cat head_tail.txt |head -n 16|tail -n 6
完整地打开h_t.txt文件,先取头部16行,取结果尾部的6行
方法二:cat head_tail.txt |head -n 16|tail -n +11
完整地打开h_t.txt文件,先取头部16行,从结果的第11行取到结尾
方法三:cat head_tail.txt |tail -n 20 |head -n 6
完整地打开h_t.txt文件,先取尾部20行,再从结果取头部6行
方式四:cat head_tail.txt |tail -n +11 |head -n 6
完整地打开h_t.txt文件,从文件的11行取到尾部,再从结果取头部6行

    data:,

    data:,

取13~21行
cat head_tail.txt |head -n 21|tail -n 9 ==》先取头部的21行,然后取结果的末尾9行
cat head_tail.txt |tail -n +13|head -n 9==》先从文件的第13行开始取,然后取结果头部的9行
cat head_tail.txt |tail -n 18| head -n 9 ==》先取文件末尾的18行,然后取结果的头部9行
cat head_tail.txt |head -n 21 |tail -n +13 ==》先取前21行,然后从结果第13行取到结尾

sed -n '13,21p' head_tail.txt   ==>流文本编辑命令


重定向符 ‘>’
一个重定向符'>'的作用是覆盖
两个重定向符‘>>’的作用是追加

怎么清空日志文件?
直接使用一个重定向符,指向日志文件即可

造数:创建一些测试数据



find 查找文件的命令
find / -name '文件名' :查找 根目录底下 根据名字进行查找,匹配到文件名,并返回对应的绝对路径
* 匹配0个或者多个字符
?匹配1个字符

find /home -type f :查找/home底下所有类型为文件(f)的绝对路径
find /home -type d:查找/home底下所有类型为目录(d)的绝对路径


注意:
1,文件是可以用vim编辑和cat查看等等的文件操作的,但是不能使用cd切换进入
2,目录只能是用cd切换进入,不能使用vim进行编辑

Linutx系统用户与权限-------
查看当前Linux系统有什么用户:cat /etc/passwd

    data:,
查看用户的分组,有什么分组:cat /etc/group
*每新建一个用户,如果没有指定用户组,则会默认创建一个与用户名相同名称的组名

    data:,
useradd dcs38 ==》创建一个Linux用户dcs38,并把它放在自己的dcs38组中
passwd dcs38 ==》给dcs38用户添加密码

    data:,
切换用户:
1,普通用户切换到高权用户,需要输入密码
2,高权用户切换到底权用户,不需要密码
3,普通用户切换到普通用户,需要输入密码

groups dcs38 ==>查看dcs38用户在哪些用户组中,一个用户至少要在一个组内

useradd dcs39 -g dcs38 ==》创建dcs39用户,并指定到dcs38组中

groupadd gzdcs ==》创建用户组gzdcs,只是一个空组

gpasswd -a dcs39 gzdcs:-a 把dcs39用户添加到gzdcs组中

gpasswd -d dcs39 gzdcs:-d 把dcs39用户从gzdcs组中移除


    data:,

    data:,

    data:,
userdel dcs39 ==》删除用户
userdel -rf dcs38 ==》强制删除用户,已经登录的用户需要强制删除

    data:,
groupdel 组名 ==》删除组
当用户组中存在着用户,要先删用户,再删组

    data:,


Linux权限管理三剑客:
chmod:改变文件或目录的权限
chown:改变文件的属主(拥有者)
chgrp:改变文件的属组(拥有组)

-rw-r--r--. 1 root root 1751 Nov 30 00:34 APPLOG.txt
这是一个文件,第一个字符为‘-’说明这是文件,后面的第一组rw-表示文件的拥有者,root对它有读和写的权限,第二组r--表示在root用户组里面的用户对这个文件只有读权限,最后的r--表示其他用户对这个文件也只有读权限

    data:,

重点:
r read 读==》权限4
w write 写==》权限2
x execute 执行 ==》权限1
- 表示对应位置没有权限==》权限0

r 读权限对应的命令有:cat、less、more、head、tail等等
w 写权限对应的命令有:vim/vi、cp、mv等等
x 执行权限对应的命令有:sh (执行shell脚本的命令)、cd

chmod 777 +文件/目录:给一个文件/目录赋予最高权限
r+w+x=4+2+1=7,读写执行权限相加等于7

给gzdcs文件赋予 只有 用户组 有 写权限:chmod 020 gzdcs

chmod g+r 文件名:对文件的拥有组加上读权限
chmod g-w 文件名:对文件的拥有组去掉权限
chmod u+w 文件名:对文件的拥有者加写权限
chmod o+x文件名:对其他用户增加对文件的执行权限
chmod +r 文件名:对所有的用户增加这个文件的读权限

u:属主 use简称u:文件的拥有者
g:属组 group简称g:文件的拥有组里面的所有用户
o:其他用户others简称o:既不是文件的拥有者也不算文件的拥有组里面的用户

chmod -R 777 目录名:参数-R作用是对目录及目录所有的文件和子目录都进行赋予权限

    data:,
chowmn dcs37 文件名:把文件的拥有者修改为dcs37这个用户

    data:,
chown root:dcs37 文件名:把文件的拥有者修改为root,和文件的拥有组修改为dcs37

    data:,
chgrp dcs37 文件名:把文件的拥有组修改为dcs37

    data:,



打包操作----
Linux系统常驻的包:tar、ter.gz、zip、gzip、war包

打tar包:tar -cvf +包名称.tar +原文件
打包后的包文件会比原文件大
c表示打包操作,v表示打包的进度,f表示打包的文件

    data:,

解tar包:tar -xvf +包名.tar
x表示解包操作

    data:,
打tar.gz包:tar -zcvf +包名.tar.gz +原文件
z表示这是tar.gz的操作

    data:,
解tar.gz包:tar -zxvf +包名.tar.gz

    data:,
打zip包:
zip +包名.zip +原文件==》对文件进行打zip包操作

    data:,
zip -r +包名.zip +原目录==》对目录以及里面所有的文件进行打zip包的操作,否则只会对目录进行打包,里面的文件不会加到包里面

    data:,
解zip包:unzip +包名.zip

    data:,
*tar包、tar.gz包和zip包都可以对目录进行打包操作,但是我们对目录打成zip包就必须要添加‘-r'参数,否则只能对目录进行打包,不会对目录里面的内容进行打包

gz包只能对文件进行操作,不能对目录进行操作,而且不管是打包还是解包,原文件都会消失:gzip +文件名

    data:,


解gz包:gunzip +gz包文件

    data:,


yum install +应用名 ==》在线下载安装应用
yum list ==》查看可以安装的yum工具

rpm命令:离线安装命令
rpm -ivh +rpm安装包
i:安装软件包
v:可视化,可以看到更多的安装信息
h:显示安装的进度
rpm -qa:查看本机安装好的工具
rpm -e 应用名称:卸载对应的应用

两台Linux服务器之间的文件传输
前提:
1,要知道对面服务器的IP,用户名,密码,对方文件的绝对路径
2,两台服务器必须是在同一个局域网

A服务器--本地
B服务器--对方
scp命令:
1,从A服务器到B服务器取文件--提取
scp +B用户名@B服务器IP:B服务器文件的绝对路径 +本地服务器的路径

如果需要对目录进行传输,那么要加参数 -r
scp -r +B用户名@B服务器IP:B服务器目录的绝对路径+本地服务器的路径

    data:,


    data:,
2,从A服务器把文件送到B服务器--上传
scp +本地文件的绝对路径 +B用户名@B的IP:B服务器存放的绝对路径
scp -r+本地目录的绝对路径 +B用户名@B服务器IP:B服务器存放的绝对路径

    data:,
*涉及到对方服务器的都是要写绝对路径

FTP工具:
ftp文件传输协议
sftp安全文件传输协议
步骤:
1,输入sftp +对面服务器IP ==》进入ftp工具
2,输入对面的root用户密码
3,出现sftp> 表示已经进入sftp工具,并连接到对面服务器,在这个工具里面敲的指令就是sftp工具的指令(跟Linux指令有点像,但完全就表示Linux指令)
4,使用get或put命令
(1)get命令 下载命令 拿 从对面服务器拿文件到本地服务器
get +B服务器的文件路径 +本地服务器的存放路径

    data:,

    data:,
*help指令:

    data:,
(2)put命令 上传命令 放 向对方服务器放文件
put +本地服务器文件的路径 +B服务器的存放路径

    data:,
5,exit:退出当前协议


假如虚拟机没有IP
1,重启Linux系统的网卡:使用root用户,执行service neiwork restart
2,在Windows系统,‘Win’ +R调出运行窗口,输入services.msc,点击确定进入‘服务’窗口,输入英文VM,把VM开头的全部重启一遍,然后回到虚拟机重启Linux系统的网卡:使用root用户,执行service network restart

df:查看Linux系统的磁盘使用情况
df -h:带单位地查看磁盘使用情况
du -sh:查看当前目录的使用磁盘空间大小情况
du -sh +文件/目录的路径:查看对应文件/目录使用磁盘空间大小的情况

    data:,
free:查看Linux系统的内存情况
free -m:以M兆为单位进行显示

    data:,
top 动态显示当前Linux系统CPU使用情况、内存使用情况==》性能监控的命令

*一般用于查看Linux系统的性能,如果系统出现响应缓慢,死机的情况,我们可以通过top命令窗口当前系统占用内存或者CPU比较高的有什么服务,查看对应的PID(进程号),然后就可以进行相关的优化
服务器的性能要求:CPU使用率、内存使用率需要控制在80~85%以内,高于这个值就需要优化了

top的内部命令:
N:以PID的大小进行排列显示进程列表
P:以CPU的使用率大小进行排序进程
M:以内存使用率的大小进行程序进程

top命令的参数:
top -p +进程号:查看指定进程的性能情况
top -d +数字:需要多少秒刷新一次结果,不要小于3



ps -ef|grep ‘任务名称’:查看对应任务的进程号
    data:,

    data:,
ps -ef |grep ‘进程号’:查找对应进程号的任务

kill -9 +对应服务的PID:强制杀死服务

    data:,
面试题:怎么查看服务已经启动?
ps -ef|grep +服务名称 ==》查看服是否启动

如何查看端口是否被占用?不知道端口号的情况下怎么查看?
1,netstat -ntlp ==》查看当前已经使用的端口
    data:,
2,netstat -anp|grep ‘端口号’ ==》查看端口号是否被占用
3,lsof -i:端口号 ==》查看端口号是否被占用

who:查看当前系统的登录用户
whoami:查看当前的操作用户
hostname:查看主机名称,显示物流位置
uname:显示系统名称
getcnmf LONG_BIT:显示系统的位数(32位系统和64位系统)
32位系统最多支持4G的内存,64位系统理论上支持最多内存256G,理论上64位系统比32位系统快2倍

    data:,
Linux系统操作的指令都是有记录的
history:查看历史操作记录
clear:清空当前屏幕(Ctrl L)
date:查看当前Linux服务器的时间
修改服务器时间:date -s +需要修改的时间

    data:,
alias:自定义命令
alias ==》查看当前系统有什么自定义命令
alias +自定义命令=其他命令 ==》当执行自定义命令时,其实就是执行其他命
unalias +自定义命令:取消自定义命令

    data:,

ln命令:创建链接
软链接:好比是Windows系统的快捷方式
创建软链接一定要使用绝对路径
ln -s +引用的文件的绝对路径+链接文件的路径

    data:,
硬链接:本质上还是文件,相当于文件备份
ln -d +引用的文件的绝对路径 +链接文件的路径
硬链接文件和原文件的内容是相互关联着的,但是删除任意一方不影响另一方

    data:,
service 服务指令
service xxxx(服务名称) start ==》启动服务
service xxxx(服务名称) stop ==》停止服务
service xxxx(服务名称) restart ==》重启服务
service xxxx(服务名称) status ==》查看服务状态

防火墙服务iptables
service iptables stop ==》关闭防火墙
service iptables status ==》查看防火墙运行状态
service iptables start ==》启动防火墙
service iptables restart ==》重启防火墙
------------
*vim是vi的升级版
vim文本编辑器---进去之后把你的鼠标扔掉,不要使用小键盘
vim里面的内置命令表示Linux指令
1,命令模式:
:q ==》直接退出,前提不能修改文件
:q! ==》强制退出,当修改过文件,又不希望保存
:w ==》保存
:wq ==》先保存再退出
:wq! ==》强制保存再退出
命令后面加‘!’表示强制执行
(1)命令模式不能进行编辑
(2)从编辑模式进入命令模式,按‘Esc’键
(3)在vim工具中不要使用Ctrl +S保存,因为Ctrl+S会导致生成一个隐藏的缓存文件,会导致你的文件无法保存,可以删除该隐藏文件重新进入该文件中

2,编辑模式:必须要进入编辑模式后才可以对文件进行内容编辑
i ==》按‘i’进入编辑模式,在光标使用位置的前面进行输入
I ==》大写的i,进入编辑模式,回到行首进入编辑模式
a ==》光标后移一位,进入编辑模式
A ==》光标移动到行末,进入编辑模式
o ==》光标所在行往下插入一行进入编辑模式
O ==》光标所在行向上插入一行进入编辑模式
x ==》删除光标所在位置的字符
X ==》删除光标前面的一个字符
dd ==》一次性删除一行的内容
D ==》删除光标所在位置至行末的字符
u ==》撤销功能
r ==》替换光标所在位置的一个的字符

P ==》把复制的内容粘贴到下一行
p ==》把复制的内容粘贴到上一行
3yy ==》复制光标所在行开始3行

3,末行模式 ==》在退出编辑模式后,输入‘:’在页面的最后一行,所以叫做末行模式
:/关键字 ==》查找文件中所有的‘关键字’,并且高亮显示
:set nu ==》显示行号
:set nonu ==》取消行号

把一个文件的指定范围的行的内容写入到一个新的文件中(只能写到新文件,会自动生成一个新文件)
:1,10w +新文件的绝对路径 (复制当前文件的1到10行,写入到新文件中)

面试题:vim中替换文本内容
:%s/原字符/新字符/g
:%s/23/dcs37/g ==》把文件中所有的‘23’替换为dcs37

%s表示替换
/表示分隔符
/g表示全局,不加g参数,只能替换每一行的第一个匹配到的字符




页: [1]
查看完整版本: Linux系统