广州45期麦嘉仪 发表于 2022-7-31 19:28:48

Linux指令操作

登录的两种方式:
xshell-新建-连接-主机填写对应IP
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/7c838e2f9962472f9d20e41b1102780d/7z%60b3bedfti74j50.png
xshell-新建-连接-填写用户名&密码
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/23bdee7c90eb48a1be7c7f599c0e31ae/v5dn_pgxrfownr04g9@%%ji.png



我们测试人员使用Linux系统,一般用于定位和分析问题(查看日志、查看文件)、查找相关的文件、查看相关的服务是否启动(服务器相关性能情况)、修改相关的配置文件(vim)、文件的打包与备份



------------------------------------------------------------
怎么清空一个文件中的内容?(怎么把日志文件中的日志进行清空?)
一个重定向符+需要被清空的文件
> 需要被清空的文件
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/f65889f69c9c4cd0b9be2e028ce884fc/imk7dyv$p6oelua1d7i7qqo.png



Linux中文件的打包与备份(文件和目录都可进行tar操作)
Linux中常见的包格式:tar、tar.gz、zip、gz包

1、tar包的操作
打tar包:
tar -cvf +包名.tar +原文件
tar -cvf bb.tar bb   对 bb文件打包为一个tar包,命名为bb.tar
c表示打包操作、v表示打包进度、f表示打包的文件
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/280801cf27a749b195da615d1388a15c/)hlncqdu~q(y2g

解tar包:
tar -xvf +包名.tar
-x参数表示执行解包操作



2、tar.gz包的操作(本质上也是tar包,但是具有压缩功能,包文件会比原文件小)
打tar.gz包:
tar -zcvf 包名.tar.gz +原文件
-z参数:表示要操作的文件时tar.gz包
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/34aa14abc6a94daf8d14d4e058bc4ec5/f755wj2mpe(f2ht27%4r

解tar.gz包:
tar -zxvf 包名.tar.gz

file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/0aa572bca00448e8abe078787cee5ad7/7b68f2c5d0aaa8ef6c860421a0637d1.png


3、zip包(zip包有压缩功能)
打zip包:
对文件进行打zip包:zip +包名.zip +原文件
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/6760d887c74d4ea0865690d1d9c68316/%7Byr

对目录进行打zip包(需要加参数-r):zip -r +包名.zip +原目录
对目录进行打zip包,必须要加参数-r,否则只会对最外层的目录进行打包,里面的文件是不会被打包的
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/1233630cd28f47d9b00c2cc77a8aaf94/tmyp)5zgj%]7.png

解zip包:
unzip +包.zip



4、gz包:只能对文件进行操作
打gz包:gzip +文件
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/5535914c3dc74307b804e72369a15bed/%k)0%7Bs(aa9uo%7Dgc0%7Bmk%tje.png

解gz包:gunzip +包.gz
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/e4f842410af84f1b91966000af4413ce/40%7Bz%7D%7D
注意:gz包不管是打包还是解包,对应的文件都会消失,它只能操作文件,不能操作目录

tar包、tar.gz包、zip包都是可以对多个的目录进行打包的,gz包不能对目录进行打包,但是对目录进行打zip包时,必须要加参数-r



file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/3b755fbc8bac4ac9a12969c648dce532/a060f4d83f0590dddaa96b553569082.png
------------------------------------------------------------
实现不同Linux服务器之间的文件传输:
前提:
(1)需要获取对方服务器的IP、有权限的用户及密码。
(2)服务器需要在同一个局域网中
(3)要知道对方服务器上的文件路径

scp命令:远程文件传输命令(远程文件复制拷贝命令)
A服务器===》本地服务器
B服务器===》远程服务器(对方服务器)
如果需要对目录进行操作也要加参数-r
1,在A服务器到B服务器取文件---下载文件(在对方服务器中把文件复制过来)
scp +B用户名@B服务器IP:B服务器中文件的绝对路径 +本地存放文件的路径
scp -r +B用户名@B服务器IP:B服务器中目录的绝对路径 +本地存放的路径
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/a17a31f69d4845f8af6ea08b31973498/j]%7D)vishg1sv989$t65]96u.png

2、在A服务器往B服务器送文件 --上传(把本地的内容往对方服务器上复制)
scp +本地文件的路径 +B用户@B服务器IP:B服务器存放的路径
scp -r +本地目录的路径 +B用户@B服务器IP:B服务器存放的路径
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/b9bbd1f6eaf34f259ae32e436ce387c7/w(b39ha5%60k5xq$7p5l$]w%60o.png


SFTP工具:Linux系统中内置一个用于文件传输的命令行工具。虽然里面的指令和Linux指令很像,但是完全是不同的东西

步骤:
1、sftp +远程服务器的IP地址 ==》进入sftp工具
2、输入远程服务器的root用户的密码
3、看见sftp>开头,表示已经进入了sftp工具中
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/9c3f486eeb2c43b7ba0d7680fd1c16d6/zx%60%@05t000x0qh7l86iury.png
4、get或者put进行文件的传输操作
(1)get 下载命令 拿 从远程服务器取文件到本地
get +远程服务器的文件路径 +本地存放的路径
(2)put 上传命令 推 从本地服务器往远程服务器推文件
put +本地服务器的文件路径 +远程服务器的存放路径
5、退出,exit、bye、quit任意一个都可以退出sftp工具
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/b8acf9e45ce6413d8809be2dc65c7db7/76wvs_6%%7Bcroot97wqh4l]c.png


把虚拟机的网卡改成 桥接模式 有助于教室的虚拟机进行互相连接:
1,进入VM虚拟机,窗口的左下角,点击‘网络适配器’--‘设置’
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/99f2969a5fa146ec89e2aaf5d9de49e7/1gu)eo%60dxbyuivnm%6odhfs.png

file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/e2cb9324c18a4c21b2eac64bedcc02c3/%7D%60lib)abmdx4lv@bdi3xi1x.png
2、选择‘桥接模式’,并保存
3、重启Linux的网卡:service network restart
4、通过ifconfig,查看自己的IP
注意:桥接模式下,Linux的IP是经常变化的,所以用完之后,把网络适配器模式修改回 'NAT' 模式

如果虚拟机通过ifconfig没显示IP
1、重启Linux的网卡:service network restart
2、在Windows系统,‘win’+‘r’键打开‘运行’窗口,输入‘services.msc’,打开‘服务’窗口
3、输入‘VM’,把以VM开头的那些Windows服务,全部做右击--重新启动
4、重启Linux的网卡:service network restart



------------------------------------------------------------
查看服务器性能相关的命令:
df:查看磁盘(硬盘)的使用情况
df -h:带单位地查看磁盘的使用情况
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/3c931f59b82341d1896b61aa7f57c9c4/7$hy76_1@35qanm3%7Bqi%7D0~a.png

du -sh :带单位地查看当前目录使用磁盘的空间大小
du -sh +指定目录或者文件的路径 :带单位地查看指定目录或者文件占用磁盘空间的大小
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/c4718f99aa7a48888edb14f74db8ab89/%7Dt%7Dz5~bsx57du1y_1v

计算机的计量单位:
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B
1B=1字节=1byte=8bit
在计算机中最小的定位就是bit,一个bit=一个0或者1(因为计算机是二进制存储方式)



free:查看linux系统,当前的内存使用情况,默认是KB为代表
free -m:以M兆为单位显示linux系统的内存使用情况
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/995be44c1a354f47895b3ed9cdaa4070/gq%%7D2ymjy8t%7But%p%60])_q6l.png

file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/b85bd11a9d094ae785aa288fa1c7896e/85c39bf39aec5f94b2d60ac157b83c5.png


top:动态显示当前Linux系统中CPU利用率和内存使用率较高的服务进程
一般用于查看实时的系统性能情况,如果系统出现反应缓慢、死机的情况,那么我们就可以通过top命令去查看当前系统占用内存和CPU比较高的是哪些服务,查看对应的PID(进程号)---Ctrl +c退出程序
当Linux系统的CPU使用率高于80%,内存占用率高于90%,需要对Linux系统进行排查问题,需要进行相关的优化

PID进程号:任何的程序在启动后,系统都会分配一个进程号给对应的程序

top的内部命令:(默认每三秒刷新一次)
N:以pid的大小顺序排序进程列表
P:以CPU占用率大小的顺序排序进程列表
M:以内存使用率大小的顺序排序进程列表

ps -ef |grep 'pid'==>搜索进程号对应的程序任务是哪个 ==》一般不是这样
ps -ef |grep '任务名称'==>可以先确认 对应的程序是否有启动,可以获取到对应程序的pid进程号
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/6ab2bfe601dc445095c3ee356c7987d8/5xip

top -p +进程号:在top界面只显示对应进程的性能情况
top -d +需要多少秒刷新一次:控制top的刷新时间间隔(默认是3秒刷新一次,而且值不能小于3)


面试题:kill -9和kill -15有什么区别?
kill -9 +进程号:强制杀死对应的程序任务
kill -15 +进程号:强制杀死进程,但是会同时清理相关的其他进程


以下两个指令都可以查看进程信息:
ps -ef |grep '任务名称'==》是通过任务的名称去查看
lsof -i:端口号 ==》通过端口号去查看对应的服务

22端口:它是Linux上的sshd服务的端口号,不要随便杀死sshd的服务进程,当sshd服务被kill掉后,xshell等客户端连接工具就不能连接Linux服务器
如果不小心kill了sshd的任务,就在Linux上执行
/etc/init.d/sshd restart ==》重启sshd服务

端口号:服务器开启了某些服务程序时,这些服务程序需要被别的客户或者终端进行访问,就要开发对应的端口号供客户或者终端进行使用,端口号是固定的,唯一的,每个端口只能供一个服务程序进行使用



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

怎么查看端口号是否被占用?不知道端口号的情况下怎么去查?
netstat -nultp ==》查看当前服务器所有已经在使用的端口号
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/7387a9bc02f84f459b6d8648f8ce528b/q97j)%60%60fcoi5%b~4~(8crgc.png
lsof -i:端口号 ==》查看端口号目前是否被使用,被什么程序使用
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/c1bfbdcaee264fe2998855bec7a9aa5e/u



---------------------------------------------------------------
不常用的命令:
who ==》查看当前Linux系统的登录用户
whoami ==》显示当前的操作用户
uname ==》显示系统的类型
hostname ==》显示系统的网络位置
getconf LONG_BIT ==》显示操作系统的位数
32位系统最多是支持4GB的内存,64位系统理论上最多支持256GB的内存,理论上64位系统会比32位系统快2倍

clear ==》清空屏幕

date 查看当前服务器时间



面试题:对于时效性相关的测试场景是怎么测试的?
方法一(影响范围比较大):直接修改服务器的时间,通过 date -s +需要修改的时间进行修改服务器的时间
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/6026a71f0de145f899d2a68eab2e352a/6ur@30ta.png
方法二(数据库相关,改对应表中的信息)



---------------------------------------------------------------------
service命令:与Linux系统的内置服务相关的命令
service +服务名称 start ==》启动对应的服务
service +服务名称 status ==》查看对应服务的运行状态
service +服务名称 stop ==》停止对应的服务
service +服务名称 restart ==》重启对应的服务

防火墙服务:iptables (centos7的防火墙服务:firewall)
MySQL数据库的服务:mysqld(目前还没安装)
网卡服务:network
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/01f3579aa54647fabf2e0c5a95306e6b/pyx$ysv3)q_43o5c@9k@m_f.png

file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/f298c6ba51ea47d49b7c081bbfc0f168/iq5m~zafn~]z%7B%600ze0$y9a4.png
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/568ff2da25a54fed85eef147bae8fbfb/87e0c7af4e820f1b8d54509d9648253.png


---------------------------------------------------
alias:取别名 ==》自定义一些指令
alias ==》查看当前Linux系统中有哪些自定义指令
alias 自定义指令='需要被执行的操作'
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/c0b468ed99d54818999ebd06eb231da9/vu3_82v~q2%7D

注意:自定义的指令不能和已经存在的命令重名
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/1c252a7b6e94476e813f0f94b29ead58/0r8(ilmyw(r7n6s5sektd)8.png

unalias 已经定义的自定义命令 ==》取消自定义命令
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/9c411ac1524a4e9188f3cd5a996e1442/ol(4_5x%%7Dgq



---------------------------------------------------
ln 创建链接文件
软链接:就相当于创建一个快捷方式
硬链接:相当于对文件进行备份,本身也是一个文件。原文件和硬链接文件的内容是互相影响


创建软链接一定要使用绝对路径声明被引用的文件
ln -s +被引用的路径 +链接文件
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/650f0106b3e24bf390ee6a62d7145bb7/5%l%7D@wuu)wo(9$bxru$j235.png

创建硬链接,被引用的文件也是要使用绝对路径
ln -d +被引用文件的路径 +新文件
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/39661eed8b1c40d99124ecca181f2491/md7slz5no%7D%7Dpmuhml9]@%603y.png



---------------------------------------------------
vim 文本编辑工具(vi也是一样的)
1、vim的命令模式(需要通过'Esc'键退出 '--INSERT--' 编辑模式才可以使用的,在vim界面的左下角输入 ':'进入的)
:q ==》退出
:q! ==》强制退出(当内容发生改变,但又不想保存,!表示强制执行)
:wq ==》保存并退出
:w ==》保存
:w! ==》强制保存
:wq! ==》强制保存并退出

注意:
(1)命令模式下无法进行编辑和输入
(2)命令模式下可以保存、退出
(3)命令模式只能输入vim工具的内置命令
(4)从编辑模式中 按 'Esc' 键进入命令模式

2、编辑模式(必须要进入编辑模式才可以对文件的内容进行编辑的)
i:按 'i' 进入编辑模式,在光标所在位置前面位置进行输入
I:按大写的 'I' 进入编辑模式,光标会到达行首,也是在光标所在位置前面输入内容
a:在光标所在位置后移一位进入编辑模式
A:光标跳转至行末,进入编辑模式
o:光标所在行,往下插入一行进入编辑模式
O:光标所在行,往上插入一行进入编辑模式
x:删除光标所在位置的一个字符
X:删除光标所在位置的前一个字符,相当于不会换行的 退格符(行首不会再跳转到上一行)
dd:一次性删除光标所在行的全部内容
D:删除光标所在位置至行尾的内容
u:撤销功能
r:替换光标所在位置的一个字符
yy:复制光标所在行的整行内容
6yy:复制光标所在行开始6行,几yy表示复制几行
p:把复制到的内容粘贴到光标下一行
P:把复制到的内容粘贴到光标上一行

3、末行模式(本质上就是命令模式,同样也是通过退出编辑模式后,通过 ':' 进行输入的)
:/关键字 ==》查找文件中的关键字,并高亮显示
:noh ==》取消高亮显示

:set nu ==》显示行号
:set nonu ==》取消显示行号

把当前vim编辑器里面指定的内容,写入到一个新文件中(只能是写到新文件)
:x,yw +新文件的路径
file:///C:/Users/Administrator/AppData/Local/YNote/data/weixinobU7Vjg-z7VlMKIlJr899t8jhC88/525eaca6219d4e5787ed8b861156f5be/@1%607ls%60ryk0z%%%7Bny7h3~xi.png


**vim中对文件内容的指定字符进行替换操作
:%s/原字符/新字符/g ==》把当前文件中所有的 '原字符' 替换为 '新字符'
%s ==》表示执行替换
/ ==》表示分隔符,第一个字段表示需要被替换的字段,第二个字段表示 替换后的字段
g ==》表示全局执行,不加g(全局参数),只能替换每行的第一次匹配到的字符

页: [1]
查看完整版本: Linux指令操作