Linux操作系统与命令详解
Ice Scream
目录
引言 1
一、 Linux操作系统 2
二、 文件和目录 3
三、 Linux远程连接 4
四、 Linux命令基本技巧 6
五、 Linux终端命令格式 6
六、 Linux命令 7
七、 文件的归档管理(压缩和解压) 18
八、 VI编译器 19
九、 Liunx软件安装 20
引言
Linux命令使用:为了将来工作中与服务器设备进行交互而准备的技能(测试项目出问题,需要从服务器上拉取项目运行工程中产生的日志文件,帮助判断出现问题的原因;远程连接/命令使用)
数据库的使用:MySQL(增删改查数据),测试人员需要在数据库中查询数据(查询重点掌握,其他操作了解即可)
Linux操作系统
1.操作系统
1.1概念:管理计算机硬件和软件资源的计算机程序。即OS是计算机的核心和基石(所有硬件设备组装完成后,第一层软件)
1.2常见主流操作系统
2.Lniux简介
一套免费使用自由传播的操作系统
2.1Linux特点
开源免费;安全稳定;性能可靠;可移植性(多用户、多任务、多平台、多语言)
2.2Linux发行版本
文件和目录
1.Windows和Linux文件系统区别
1.1Windows下的文件系统
1.2Linux下的文件系统
所有路径最左边的/是代表根目录,后面的/代表路径
/home:当前操作系统能登录的普通用户的家目录,普通用户创建好的信息都在home目录下;/目录下的所有文件夹都不可以随便乱动,home中的内容可以随便动,尤其用户名目录文件夹中内容随便改、删
Linux远程连接
说明:通过远程连接工具连接到服务器的操作即为远程连接
条件:1>服务器的IP地址;2>服务器的账号和密码;注意必须确保有网络连接条件;
1.远程连接
1.1常见远程连接工具
FinalShell(推荐):功能强大,颜值高,好操作(高级功能需要订阅)
XShell(个人用免费/商用收费)
Putty(免费开源的)
SecureCRT(收费)
MobaXterm(免费)
1.2远程连接基本步骤
1>入职后需要向相关人员(运维/开发)获取服务器IP地址及账号密码等信息
2>配合远程连接工具(根据公司要求使用对应工具),配置连接使用服务器即可
1.3远程连接操作步骤
【只要不是同一台电脑,用于远程连接的IP地址最后一位都永远不可能是1,1结尾的是系统内部的本地地址】
1>获取服务器IP地(工作中直接向相关人员获取IP地址及账号和密码);虚拟机系统中的桌面上鼠标右键打开终端,获取工具中连接需要的IP地址
默认可敲指令:ip addr;在本机上ping服务器IP地址检查连通性
连接工具设置步骤:SSH连接,如图设置连接信息
保存接受密钥
2>不通过工具连接,依赖命令:SSH
Linux命令基本技巧
1.使用技巧
1.1Linux终端的放大缩小
ctrl+shift+=放大终端窗口的字体显示
ctrl+-缩小终端窗口的字体显示
1.2Linux命令的自动补全
在敲出文件/目录/命令的前几个字母之后,按下tab键【要是没反应,可能路径不对】
如果输入的没有歧义,系统会自动补全
如果还存在其他文件/目录/命令,再按一下tab键,系统会提示可能存在的命令
1.3Liunx其他常用快捷键
按上/下光标键可以在曾经使用过的命令之间来回切换
如果想要退出选择,并且不想执行当前选中的命令,可以按ctrl+c
1.4Linux下操作可以不需要进入路径下再去操作
Linux终端命令格式
1.终端命令格式
#命令 [-选项] [参数]:command [-options] [parameter]
说明:
command:命令主体(命令名),相应功能的英文单词或单词的缩写,执行基本功能
[-options]:选项,根据命令可以显示更加丰富的数据
[parameter]:参数,命令的操作对象,一般文件、目录、用户和进程等都可以作为参数被命令操作
[ ]:代表可选
2.查阅命令帮助信息
2.1--help
command --help:显示command命令的帮助信息
2.2man
man command:查阅command命令的使用手册【man是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用说明】
Linux命令
【命令本身不具备的功能,需要在命令后加-参数,进行操作;参数的位置没有固定一说,可以放整条命令后面或者命令名后面,个别不可以放后面】
常用:
1.pwd
查看当前路径位置
2.ls
查看当前目录下有哪些文件和文件夹
选项参数:
-a |
显示指定目录下所有子目录与文件,包括隐藏文件 |
-l |
以列表方式显示文件的详细信息 |
ll等价于ls -l:不是所有系统都可用
3.mkdir
创建一个/多个文件夹(多个文件夹名一条命令空格隔开);递归创建mkdir a/b/c -p
4.cd
切换目录(一个.代表当前目录,两个点代表上级目录)
cd |
切换到当前用户的主目录(/home/用户目录),用户登录的时候,默认的目录就是用户的主目录 |
cd ~ |
切换到当前用户的主目录(/home/用户目录,~相当于当前用户的主目录:/home/用户目录这一串路径) |
cd .. |
切换到上级目录 |
cd - |
可进入上次所在的目录 |
5.touch:创建文件
6.clear:清空
7.mv
作用:用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名【改名一般都在当前路径下,改名先原名 新名】
语法:mv [选项] 数据源 目的地
选项参数:
-f |
禁止交互式操作,如有覆盖也不会给出提示 |
-i |
确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件 |
-v |
显示移动速度 |
【mv 原 目标(如果目标是文件夹就变成移动,不是文件夹或文件名不存在,就变成改名)】
8.绝对路径和相对路径的区分
绝对路径:以“/”或者“~”开始
相对路径:“.”或“..”开始(会因为当前所在位置不同,导致切换的位置不同)
【.:当前路径下;..:上一层目录】
9.cp
作用:将给出的文件或目录复制到另一个文件或目录中
语法:cp [选项] 数据源 目的地
选项参数:
-i |
交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
-f |
覆盖已经存在的目标文件而不提示 |
-r |
若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。 |
-v |
显示拷贝进度 |
10. rm
作用:删除文件或目录
语法:rm [选项] 文件
选项参数:使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
-i |
以进行交互式方式执行 |
-f |
强制删除,忽略不存在的文件,无需提示 |
-r |
递归地删除目录下的内容,删除文件夹时必须加此参数 |
删除当前目录下所有文件和文件夹:通配符*,代表任意文件【删除命令与ls相符,可以在命令 参数后加目录,删除哪个目录下哪个文件】
可能用到:
11. 重定向>和>>
作用:将本应显示在终端上的内容 输出/追加 到 指定文件中
其中:
>表示输出,会覆盖文件原有内容
>>表示追加,会将内容追加到已有文件的末尾
12.cat
作用:会一次显示所有内容,适合查看内容缺少的文本文件
语法:cat [选项] 文件
选项参数:
-b |
对非空输出行编号 |
-n |
对输出的所有行编号 |
说明:使用cat文件名1文件名2,将两个文件的合并内容显示在终端窗口
注意:只是合并了显示内容,并没有真正合并两个文件
13.less
作用:用于分屏显示文件内容,每次只显示一页内容,适合于查看内容较多的文本文件
语法:less [参数] 文件
参数选项:
-N |
对输出的所有行编号 |
使用less的操作键
空格键 |
显示手册页的下一屏 |
Enter/上下光标键 |
一次滚动手册页的一行 |
b |
回滚一屏,向上翻页 |
f |
前滚一屏 |
q |
退出 |
/word |
搜索word字符串 |
14.more
效果与less相同,常用于查看内容较多的文件,两个命令基本操作快捷键相同
【注意:想要以分屏样式查看大量内容的文件信息,文件的内容至少应该超过当前终端窗口的显示大小】
15.grep【与管道符|配合使用】
作用:根据关键词,搜索文本文件内容,文件里的信息
语法:grep [选项] 关键词 文件
参数选项:
-v |
显示不包含匹配文本的所有行(相当于求反) |
-n |
显示匹配行及行号 |
-i |
忽略大小写 |
16.管道|
作用:Linux允许将一个命令的输出可以通过管道做为另一个命令的输入;可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里|的左右分为塞东西(写),右端取东西(读)
常用的管道命令有:
less:分屏显示内容
grep:在命令执行结果的基础上查询指定的文本
【通过管道符可以方便快捷的将两条指令结合起来,以省去需要先将结果写入到文件,再进行查找的操作;用在不需要输出数据作为文件,再对文件查找,直接用管道|,左边负责给右边提供数据,右边查找符合条件】
【注意:在测试工作中,我们只需要掌握管道符右侧长使用的命令为grep】
17.head
head |
用来显示文件前10行的内容 |
如果不加参数默认显示文件前10行内容 |
head -15 文件名 |
显示文件前15行内容 |
|
例子:查看某个文件的开头10行内容: head -10 temp.txt
提示:一般用于,想要查看一个很大的文件前几行内容时使用。
18.tail
tail |
显示文件后10行内容 |
如果不加参数默认显示文件后10行内容 |
tail -15 文件名 |
显示文件结尾15行内容 |
|
tail -f 文件名 |
实时监控文件内容 |
用于查看线上服务的运行日志,实时显示写入日志的信息 |
说明:日志文件(一种负责记录系统或程序运行过程信息的文件)
作用:测试人员可以通过查看日志文件信息,帮助判断bug出现的原因
tail -5f XXX:5f不是只显示5行,是一次性加载多少行,从那基础上往下加载,获取动态信息中的某几行内容
获取11-15行:head -XX XX | tail -XX
1.先通过head获取截止到结束行所有信息
2.再配合tail获取截止到起始行的所有信息即可
19.查看操作系统信息
查看当前操作系统版本信息:cat /proc/version
查看版本当前操作系统发行信息:cat /etc/redhat-release
说明:不同系统的版本信息查看都是通过查看特定文件内容来获取。不同的系统,路径名不同,随机应变;其他系统需要获取系统版本信息,可以搜索:系统类型+内核版本/发行版本,例如:CentOS内核版本查询
20.重启与关机
reboot |
重新启动操作系统 |
执行命令后立即重启操作系统 |
shutdown |
关闭操作系统 |
执行命令后,提示1分钟后关闭操作系统 |
shutdown命令选项:
shutdown -r now |
重新启动操作系统,shutdown会给别的用户提示 |
shutdown -h now |
立刻关机,其中now相当于时间为0的状态 |
shutdown -h 20:25 |
系统在今天的20:25会关机 |
shutdown -h +10 |
系统再过十分钟后自动关机 |
poweroff:关机,与shutdown一样
21.查看系统进程信息
进程:在任何系统中,运行软件程序时,都会有一个对应的进程存在,如果结束掉进程,就可以实现关闭对应软件程序的操作,尤其是在服务器系统(Linux)中
ps -aux |
process status查看当前系统中正在执行程序的详细状况 |
kill [-9] 进程代号 |
终止指定代号的进程,-9表示强行终止 |
top |
动态显示运行中的进程并且排序 |
ps:默认只会显示当前用户通过终端启动的应用程序
ps选项说明:
a |
显示终端上的所有进程,包括其他用户的进程 |
u |
显示进程的详细状态 |
x |
显示没有控制终端的进程 |
注意:如果想要通过进程结束或关闭对应软件和程序,则需要获取软件或程序对应的PID数值
%CPU:CPU使用率;%MEN:内存使用率
运行文件:./程序名
每一个进程拥有唯一的PID,可以根据PID杀死进程,如:kill 12478或 kill -9 12478(强制杀死)
注意:显示瞬间进程的状态,并不动态连续,如果想对进程运行时间监控,应该用top命令
Linux系统中结束或关闭程序的基本步骤:
1.ps -aux | grep 程序名:获取目标程序的进程ID(PID)
2.kill -9 进程ID:强制结束或关闭对应软件程序
top:打开当前系统的“任务管理器”(动态查看进程信息)
22.查看系统监听的端口
1>端口号:想要连接至服务器,需要使用IP地址,在服务器上运行程序,需要通过端口号
注意:同一台服务器不能有多个程序使用同一个端口号,因此在运行程序时,如果提示:端口号被占用,那就需要先找到占用端口号的程序并结束掉,然后才能运行目标程序。
2>常见端口号:
HTTP:80
HTTPS:443
SSH:22
MySQL:3306
3>netstat命令
用于显示各种网络相关信息
常用于查看软件打开的端口信息
注意:一般需要root用户权限,才能看到更详细的端口信息
netstat |
用于查看显示网络状态 |
|
netstat -anptu |
查看所有的进程和端口使用情况 |
一般用来查看端口被哪些程序使用,但是我们不单独使用 |
netstat -anptu | grep mysql |
结合grep查找指定程序打开的端口 |
比如这里查找的就是mysql正在使用的端口号 |
【注意】:使用netstat命令时,最好使用root用户,否则PID一栏可能没有信息
选项说明:
-a |
显示所有已打开的端口 |
-n |
不用别名显示,只用数字显示 |
-p |
显示进程号(pid)和进程名 |
-t |
显示所有tcp协议端口 |
-u |
显示所有udp协议端口 |
4>lsof命令
list open files是一个列出当前系统打开文件的工具
可以用于查看系统中正在使用端口的详细信息
【注意】:一般需要root用户权限,才能看到更详细的端口信息
lsof -i |
列出符合条件的进程 |
如果不给出条件,则默认显示所有进程打开的所有文件 |
lsof -i:3306 |
列出使用端口3306的进程信息 |
这里是查看3306这个端口被哪个应用程序占用了 |
【注意】:该命令必须使用root用户权限,普通用户使用无任何结果;-i:后面跟端口无空格
23.查看程序存放位置which
说明:在Linux系统中,无论是自己安装的程序还是系统自带命令,本质上都一个可执行程序,想要获取程序安装位置,可以通过which程序名来实现,寻找的是可执行文件。
24.切换用户su
1.切换账号su
su - |
切换到root用户 |
|
su – 用户名 |
切换到指定的用户,并切换目录 |
-可以切换到用户家目录,否则位置保持不变 |
su:不切换用户目录,只切换用户名
2.退出登录账户exit
1>如果是图形界面,退出当前终端
2>如果是使用ssh远程登录,退出登陆账户
3>如果是切换后的登陆用户,退出则返回上一个登陆账号
25.查看当前用户所有信息who
1.who -q:查看用户登录数量
26.权限chmod
1.文件信息含义
-rwxr-xr-x含义:
①信息中的第一位为文件类型:-表示普通文件;d表示文件夹
②后续信息三个值为一个整体,一共三个部分,依次为:用户/用户组【是当前登录用户组内的成员】/其他人【既不是当前用户也不是当前用户组内的成员】
③每一组都会有r、w、x、-组成:r表示读取;w表示写入;x表示执行;-表示无权限
2.权限
根据权限计算每组的值就会对应产生数字,例如755,没有权限要给0,不能空着
【注意】:
1.无论目标文件的权限作何修改,每一部分都必须有结果,数字一定是3位;
2.如果某一部分没有任何权限,直接给0;
3.文件权限是可以进行多次修改的,不要害怕修改错误;
3.chmod命令-数字法
chmod在设置权限时,可以简单的使用三个数字分别对拥有者、组、其他用户赋予权限
数字法:chmod XXX(三个数字) 文件名
4.chmod命令-字母法
字母法:chmod u+r 文件名
用户类型:
权限设置:
权限赋予过程中无空格
注意事项:
1.必须明确文件权限的含义(读懂)
2.使用数字法还是字母法全凭个人喜好
3.尽量注意不要随意赋予文件最高权限:数字法(777)/字母法(rwxrwxrwx)
4.建议适当修改文件权限:数字法(755)/字母法(rwxr-xr-x)
27.查找文件find
1.在特定的目录下搜索符合条件的文件
2.语法
find [路径] -name “*.py” |
查找指定路径下扩展名是.py的文件,包括子目录;“”给或不给不影响结果 |
如果省略路径,表示在当前文件夹下查找
之前学习的通配符,在使用find命令时也可以用
28.链接文件ln
1.软链接(快捷方式)
ln -s 链接文件 链接文件名
注意:删除源文件,链接文件会失效
2.硬链接(类似复制文件)
ln 链接文件 链接文件名
注意:两个文件写入内容同步,删除独立。
文件的归档管理(压缩和解压)
1.打包/解包
tar是Linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把打包的文件恢复成一系列文件
格式使用如下:
#打包文件
tar -cvf 打包文件.tar 被打包的文件/路径…【加路径,可以原地打包】
#解包文件
tar -xvf 打包文件.rar
tar常用选项说明:
-c |
生成档案文件,创建打包文件 |
-v |
列出归档解档的详细过程 |
-f |
指定档案文件名称,f后面一定是.tar文件,所以必须放在最后 |
-t |
列出档案中包含的文件 |
-x |
解开档案文件 |
注意:f必须放在最后,其他选项顺序可以随意
2.压缩/解压缩
1>gzip
tar与gzip命令结合使用实现文件打包、压缩
tar只负责打包文件,但不压缩
用gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
gzip使用格式如下:
gzip [选项] 被压缩文件(gzip -r xx.tar)
常用选项:
-r |
压缩所有子目录,即递归处理 |
-d |
指定文件解压缩 |
打包压缩的合并:
tar命令中增加一个选项-z可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程;
命令格式如下:
#压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径…
#解压缩文件
tar -zxvf 打包文件.tar.gz
#解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
2>zip、unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
命令格式如下:
#压缩文件
zip [-r]【如果被压缩文件是文件夹需要使用-r】 打包文件 被压缩的文件
#解压缩文件
unzip -d 解压后的目录 打包文件.zip【可以在当前目录下解压,不跟目录选项】
-r |
递归处理,将指定目录下的所有文件和子目录一并处理 |
VI编译器
1.简介
VI是一个文本编辑器
可以执行输出、删除、查找、替换、块操作等众多文本操作
只能是编辑文本内容,不能对字体段落进行排版
不支持鼠标操作
没有菜单
只有命令
2.三种工作模式
命令模式
文本输入模式
末行模式
vi 文件名,文件若不存在,会新开一个
3.进入末行模式保存文件
语法:
:q:当vi进入文件没有对文件内容做任何操作可以按"q"退出
:q!:当vi进入文件对文件内容有操作但不想保存退出
:wq:正常保存退出
:wq!:强行保存退出,只针对与root用户或文件所有人
Liunx软件安装
1.yum命令
yum ( Yellow dog Updater,Modified)是一个在Linux系统中常用的软件包管理器
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
语法:yum [options] [command] [package……]
optinos:选项
-h:查看帮助
-y:当安装过程提示选择全部为“yes”
-q:不显示安装的过程
command:要进行的操作
package:操作的对象
2.yum常用命令
yum list:列出所有可安装的软件清单
yum search:查找软件包
yum install <package_name>:安装指定的软件
yum update <package_name>:更新指定软件
yum update:更新所有软件
yum remove <package_name>:删除软件包