三 、Linux的学习 Linux系统: VMware-workstation ==>虚拟机==》相当于一台不存在实体的虚拟的电脑==》安装操作系统Linux系统,macos系统,Windows系统 Linux系统==》公司的服务器运行的操作系统Windows server系统也是服务器运行系统 70%~80%的公司的后台服务器都是在Linux系统上面进行运行 虚拟机:拍快照的作用:可以让Linux系统恢复到拍快照当时的状态 Linux中管理员用户(高权用户)是rootWindows中管理员用户是admin su+用户名:切换Linux系统的用户注意: 低权用户((普通用户)切换高权用户是要输入密码的 高权用户切换普通用户是不用输入密码的
ifconfig:查看Linux系统的IP地址,inetaddr后面的就是当前Linux服务器的IP地址 临时修改Linux服务器的IP地址: ifconfig+网卡名称+新IP地址==》ifconfig eth0 192.168.249.153
Linux查看绝对路径PWD:
查看绝对路径: pwd/home/dcs39/Desktop 根目录里面的home目录里面的dcs39目录里面的Desktop 第一个‘/’表示根目录 后面的/表示目录和目录间的分隔 切换目录命令:cd .. :返回上级目录 ..是相对路径的用法,表示上一级目录 . 相对路径 表示当前目录
cd +指定目录的绝对路径:切换到对应的计算机位置
查看当前目录下有什么文件或者文件夹指令:ls ls -l等于:查看当前目录下所有文件和目录,并且显示详细信息
ls -ltr :目录和文件按照时间进行排序 ls -t -r -l:目录和文件按照时间进行排序,接参数的第二种方式 在指令后面通过空格之后加-接的东西叫做参数,但是每一条指令的参数都自己的含义,指令接参数的作用,是让指令的功能更加丰富 man ls:查看ls命令的帮助手册,可以查看ls命令后面可以接什么参数,以及对应参数的作用 man +Linux内置命令:查看对应命令的帮助手册 mkdir:创建目录(新建文件夹)
mkdir +目录名称 mkdir -p +xx1/xx2/xx3:创建多层目录,创建xx1目录里面包含xx2目录里面包含xx3目录
mkdir +文件夹1+文件夹2+文件夹3:同时创建多个目录
su ping命令:检查网络是否通,退出任务使用Ctrl+c 挂起任务使用Ctrl+z ==》类似最小化 fg命令:当某些任务被Ctrl+z挂起了,就可以通过fg重新进入这些任务
创建文件的2种方式: touch+新文件名:创建—个新文件,空文件
vim+新文件名:以编辑文件内容的方式来创建文件,创建文件时要写入数据 1,vim+新文件名:进入一个vim编辑界面(不要使用鼠标了) 2,按i’键进入编辑模式,左下角出现'insert’就可以在空白界面输入字符 3,按‘ESC’键退出编辑模式,左下角的‘insert′消失,输入‘:wq’(w保存,q退出) ":' ==》shift+;
Linux操作的一些注意点: 1,在创建目录和文件之后的操作记得使用一下ll命令检查创建的东西有没有创建成功 2,文件可以用vim编辑,但是不能使用cd进入 3,目录不要使用vim进行编辑,只能使用cd进入 Tab键:在linux里面的作用是自动补全指令(自动补全较长的文件名) 删除命令: rm rm - +需要删除的文件或者目录 删除时涉及到目录时需要加‘-r’参数 删除时涉及强制删除需要加‘-f’参数 rm -rf *:删除当前目录的所有文件和目录,*表示所有文件和目录,!!注意:不能在 '/' 根目录执行这条指令 这条指令是不允许执行的(rm -rf /*)==》删库跑路===》3年以上有期徒刑
这条指令是不允许执行的(rm -rf /*) ==》删库跑路===》3年以上有期徒刑
xshell:是一个客户端连接工具==》在公司里面一般是碰不到服务器的,所有会使用客户端连接工具连接到服务器进行操作 当通过客户端连接工具连接到服务器之后,你和同事的所有操作都是跟服务器进行同步的 我们项目组成员是通过xshell去连接服务器的 连接服务器的命令: ssh+对应服务器的ip地址==》Linux的IP地址使用ifconfig命令获取 常见的客户端连接工具: xshell、CRT、putty XFTP工具:实现Windows系统和Linux系统文件传输功能的工具 常见的文件传输工具:xftp, filezilla
yum install IrzSz -y yum == >linux的在线工具命令 yum install ==》通过yum在线安装一些工具 rlIrzsz是一个Linux的软件工具:只能在客户端连接工具上使用 lrzsz工具只有两条指令: rz:把Windows系统的文件选择上传到Linux服务器上==》在xshell输入rz命令后,会打开一个Windows窗口,然后选择对应的文件就可以进行文件的传输 sz:把Linux的文件传输到Windows系统本地==》输入sz+文件名,打开一个Windows窗口,可以把文件保存到本地电脑中 文件传输的方法: 方便的方法:lrzsz工具进行文件传输,适用于一些小文件的传输,当文件较大时使用Irzsz工具进行传输容易报错 稳定的方法:通过xftp等文件传输工具进行传输,适用于一些大文件的传输 cp命令:拷贝、复制 格式:cp 源文件目标文件 (1)当目标文件不存在时则会新建一个文件,并把源文件的内容复制到新文件中 (2)当目标文件存在时,就会把源文件的内容覆盖到目标文件中 (3)当对目录进行复制操作时,需要加-r参数:cp -r源目录目标目录
mv命令:移动、重命名 格式:mv 源文件 目标 (1)当目标是一个存在的目录时,源文件会移动到这个目录里面 (2)当目标是不存在的文件或者目录时,源文件会进行重命名
面试题: 给说一下Linux查看文件的几种方式? (你给我说一下常见的linux命令有哪些?--思路:讲一些有操作意义的命令,例如查看文件的,查看服务器状态的) 1, vim+文件:以编辑的模式来查看文件的内容,注意进入vim模式之后,把你的鼠标扔掉,不要使用你的鼠标滑轮,浏览文件的内容通过键盘的上下左右键移动光标 2, nl+文件:显示行号和每行的内容,完整的打开文件(不怎么常用)
3, less +文件:翻页显示查看文件,通过空格键往下翻页,通过b键往上翻页,通过回车键逐行查看。查看到文件末尾是不会自动退出的,按q键退出。less命令可以做精准查找,less+文件名进入后, /+关键字:往下查对应的关键字内容的行,?+关键字:往上查找对应的关键字 4, more +文件:按百分比显示,当查看完文件(100%)自动退出,通过空格键往下翻页,通过b键往上翻页,通过回车键逐行查看。没有精确查找,按q也可以快速退出 5,head +文件:默认显示文件的头部10行 head -n数字(需要显示的行数)文件名:从头部开始显示指定的行数 6, tail +文件:默认显示文件的尾部10行 tail -n数字(需要显示的行数)文件名:显示文件尾部的指定行数 tail -n+数字(从文件的某行开始)文件名:从指定的行号开始显示文件内容
*tail -f +日志文件:实时打印日志文件的内容,当文件的尾部内容发生改变,同时进行输出改变的内容(非常常用,简称:查看实时日志) 7, cat +文件:查看文件的完整内容---最常见的查看文件的方法 一般cat命令会结合其他命令进行使用grep命令:文本搜索工具 搜索文本中对应关键字匹配到的行的完整内容 -A数字:把匹配到的内容行,和后面对应数字行也打印出来
-B数字:把匹配到的内容行,和前面对应数字行也打印出来
-C数字:把匹配到的内容行,和前后对应数字行也打印出来
“|”管道符(shift键+\键):第一个命令的输出结果作为第二个命令的输入条件去使用
结合cat、head、tail命令查看文件的指定行内容?取13-21行的方法 方法一: cat head_tail.txt|tail -n 18 |head-n 9==》完整打开文件,先取未尾18行,再取前面结果的头部9行
方法二:cat head_tail.txt|head -n 21 |tail-n 9==》完整打开文件,先取头部21行,再取前面结果的末尾9行
方法三: cat head_tail.txt |head -n 21|tail-n +13==>完整打开文件,先取头部21行,再从前面结果的第13行取到末尾
方法四:cat head_tail.txt/tail -n +13/head-n 9==》完整打开文件,先从13行开始取到末尾,再取前面结果的头部9行
sed -n '13,21p' head tail.txtI
'>'重定向符 一个'>′重定向符作用是覆盖 两个'>>′重定向符作用是追加
把重定向符前面指令的结果写入到后面的文件cat file1 >file2:把cat file1的结果(file1的内容)覆盖到file2中
清空日志文件
面试题:怎么快速造一个很大的文件? 在Linux系统中,我们可以通过两个重定向符,反复对两个文件进行追加,通过斐波那契数列的方法,可以快速生成大文件
find命令:查找文件 格式: find+开始路径-name '关键字' find / -name 'aa'==》查找从根目录开始通过命名匹配aa的文件或者目录==》返回匹配到aa的文件或目录的绝对路径 find / -name 'aa' -type f ==》查找从根目录开始通过命名匹配aa的文件 find / -name 'aa' -type d ==》查找从根目录开始通过命名匹配aa的目录 匹配0个或者多个字符 ? 匹配一个字符 find ./ -name 'a????' ==》查找 从当前目录开始匹配命名 以a开头后面接4个任意字符的文件或目录 find ./ -name 'a*' -type f ==》查找 从当前目录开始 匹配命名 以a开头的文件
堡垒机:也是连接远程的Linux服务器的一种方式,通过打开一个指定网页,登陆公司给到个人的账号,在这个网页里面有很多台linux服务器,通过点击对应的服务器就会打开对应的需要操作的服务器 查看当前linux服务器下有什么用户: cat /etc/passwd 0==>管理员用户、超级用户==》root 1-499==》系统用户(不能操作的) 500及以后==》普通用户==》我们自己创建的用户
查看用户的分组,当前Linux服务器中有什么组:cat/etc/group 1,创建用户时没有指定组就会在自己组里面 2,创建用户时,指定组,就会在对应组中,不会再新建自己的组
useradd dcs40 ==>创建─个linux用户dcs40,这个用户会在自己的组里面 创建dcs40用户之后添加密码:passwd dcs40
groups dcs40 ==>查看dcs40用户是在哪个组中 结果: dcs40 : dcs40 dcs40用户在dcs40组中
useradd dcs41 -g root ==>创建dcs41用户,指定添加到root用户组中 groups dcs41 ==》查看dcs41用户在哪个组结果:dcs41 : root dcs41用户在root组中
groupadd dcs50 =创建一个新的用户组,没有用户的
gpasswd -a dcs41 dcs50 ==>把dcs41用户添加到dcs50组中
gpasswd -d dcs41 dcs50 ===>把dcs41用户从dcs50组中移除 注意,把用户从组中移除,不能把用户移除出它本来创建时指定的组
roupdel dcs50 ==》删除dcs50组: 假设这个组是某个用户的主组,那么删除会报错,需要先删除用户,再删除用户组 userdel dcs42==》删除用户
userdel -rf dcs40 ==>强制删除登陆用户
Linux的权限三剑客: chmod:改变文件的用户权限 chown:改变属主(文件的拥有者)chgrp:改变属组(文件的拥有组) -rw-r—r--. 1 root root 0 Feb 22 01:15 bb : 最前面的-表示这是文件,第一个rw-表示文件的属主(拥有者root)有r读w写权限,第一个r--表示文件的属组(root用户组里面的其他用户)有r读权限,第二个r--表示其他用户(既不是属主用户也不是属组用户的用户)有r读权限 r read读===》权限4 ==》cat less more等等wwrite 写===》权限2==》vim、vi等等 x execute执行==》权限1 ==》sh(执行shell脚本的命令) -表示所在位置没有对应的权限权限O r+W+X ==》4+2+1=7表小有读与执行权限 chmod 777 +文件∶给文件赋予最高权限操作
chmod 666+文件:给文件的所有用户赋值读和写权限,没有执行权限 chmod -x +文件:给文件的所有用户删除执行权限 chmod o-w+文件:给文件的其他用户权限删除写权限
属主(user简称u)︰文件的拥有者,创建者 属组(group简称g)︰和文件的创建者为同一个组里面的其他用户 其他用户(others简称o)︰既不是文件的创建者也不是和文件创建者在同一个组中的用户
chmod 777 -R+目录:对整个目录及底下所有的文件和目录都进行权限操作
chown dcs40:dcs39 bb ==>把bb文件的属主(拥有者)更改为dcs40,属组(拥有组)改为dcs39组
chgrp dcs39 -R a1 ==>把a1目录及底下所有的文件和目录的属组(拥有组)更改为dcs39组
打包命令: 常见的包tar、tar.gz、zip、gz、war包 ( 1) tar包的操作打tar包: tar -cvf +包名.tar+原文件 tar -cvf dcs1.tar dcs1 ==》对dcs1文件打包为tar包,命名为dcs1.tar c代表执行打包操作,v代表打包的进度、f代表打包的文件 把一个文件打成tar包后,打包后的文件会比原文件大
解tar包: tar -xvf +包名.tar -x参数代表执行解压包的操作
(2) tar.gz包==》是有压缩功能的打tar.gz包 tar -zcvf +包名.tar.gz +原文件 tar -zcvf 222.tar.gz admin ==》对admin目录打包为tar.gz包,命名为222.tar.gz -z参数,表示要操作的文件时tar.gz包
解tar.gz包 tar -zxvf +包名.tar.gz
(3) zip包 对文件进行打zip: zip +包名.zip +原文件
对目录进行打zip包,必须要加参数-r,否则会只打包目录,目录里面的文件不会被打包 zip -r +包名.zip +原目录 解zip包: unzip +包名.zip
(4) gz包:它只能对文件进行操作打gz包: gzip+文件名 打gz包: gzip +文件名
解gz包: gunzip +包名.gz 注意:gz包不管是打包还是解包,对应的文件都会消失,它只能操作文件,不能操作目录
总结:tar包、tar.gz包、zip包都是可以对多层的目录进行打包,gz包不能对目录进行打包 但是我们对目录进行打zip包,必须要加参数-r 不同Linux服务器之间的文件传输: 前提:要知道对方服务器的IP、用户名、密码、对方文件的绝对路径,两台服务器要在同一个局域网中 scp +B用户名@B服务器IP:远程文件的绝对路径+本地存放文件的路径 scp -r +B用户名@B服务器IP:远程目录的绝对路径+本地存放文件的路径 2,在A服务器往B服务器送文件--上传文件 scp +本地文件的路径+B用户名@B服务器IP:B服务器的存放位置的绝对路径 scp -r +本地目录的路径+B用户名@B服务器IP:B服务器的存放位置的绝对路径
FTP工具: Linux服务器中内置的命令行工具,里面的命令和Linux系统的指令很像,但是是完成的两回事 ftp==》文件传输协议 sftp==》安全文件传输协议 步骤: sftp +远程服务器的IP地址==》进入FTP工具 步骤: 1, sftp +远程服务器的IP地址==》进入FTP工具2,输入远程服务器的root用户的密码 3. get或者put命令进行文件的传输操作 ( 1) get下载命令拿从远程服务器取文件到本地服务器 get+远程服务器的文件路径+本地服务器的存放路径
**服务器性能情况相关的指令df 查看磁盘的使用情况
du -sh:查看当前目录使用磁盘空间的大小 du Ish+指定文件的路径:查看指定文件使用磁盘空间的大小 du -sh +指定文件的路径:查看指定文件使用磁盘空间的大小 free :查看Linux系统的内存使用情况,默认是KB为单位 free -m :以M兆为单位显示Linux内存的使用情况 1TB=1024GB 1GB=1024MB1MB=1024KB1KB=1024B1B=1byte=8bit 在计算机中最小的单位是bit,1bit=—个字节0或1
top动态显示当前Linux系统的程序进程的性能情况(查看CPU的使用情况、内存的使用情况等等)
top页面的内部命令: N--以Pid(进程号)的大小进行排序显示进程列表--以CPU使用率(%CPU)大小进行排序 M--以内存使用率(%MEM)大小进行排序
top -p +进程号:查看对应进程的性能情况top -d+数字:让top页面间隔多少秒刷新一次 ps -ef|grep+服务(程序)名称:查看对应的服务(程序)有没有启动,并且获取对应的PID kill -9 +pid:强制杀死服务 面试题:kill -9和kill-15有什么区别kill -9是直接的强制杀死对应的进程 kill -15是强制杀死进程,但是会清理相关的其他进程
ps -ef |grep +服务名称==》查看服务是否启动 如何查看端口号是否被占用?在不知道端口号的情况下怎么进行查? 2, netstat -anplgrep端口号==》查看对应的端口号是否被占用 3,lsof -i:端口号==》 面试题: 怎么查看服务是否已经启动? ps -ef lgrep +服务名称==》查看服务是否启动 如何查看端口号是否被占用?在不知道端口号的情况下怎么进行查? 1, netstat -nultp ==》查看当前所有已经使用的端口号情况 2,netstat -anplgrep端口号==》查看对应的端口号是否被占用 3, lsof -i:端口号==》查看对应的端口号是否被占用 不怎么常用的命令: who ==》显示当前登陆的用户whoami ==》显示当前操作的用户uname ==》显示系统名称 hostname ==》显示主机名称 history ==》查看历史操作过的命令clear ==》清屏 getconf LONG_BIT ==》查看系统的位数 32位系统最多支持4GB的内存,64位系统理论上最大支持256G内存,理论上64位系统比32位快2倍 service命令==》与Linux的内置服务相关的命令service+服务start ==》启动对应的服务service+服务restart ==》重启对应的服务service +服务stop==》结束对应的服务 service +服务status ==》查看服务的运行状态 service命令==》与Linux的内置服务相关的命令 service +服务start==》启动对应的服务 service +服务restart ==》重启对应的服务 service +服务stop ==》结束对应的服务 service +服务status ==》查看服务的运行状态防火墙服务: iptables
mysql服务:mysqld ==现在还没安装mysql网卡服务: network 防火墙服务: iptables mysql服务:mysqld ==现在还没安装mysql网卡服务:network 打开linux之后,ifconfig查不到IP地址怎么处理1,重启Linux的网卡服务: service network restart2,如果第一步不行就在Windows电脑‘win’键+R输入services.msc进入‘服务′窗口,然后找到VM开头的服务,对所有VM开头的服务,右击重新启动,再回去Linux服务器重启网卡服务: service network restart date ==》查看当前服务器的时间 面试题: 对于与时效相关的测试场景怎么测试? 我们可以通过date -s +需要修改的时间进行修改服务器时间,模拟与时效相关的测试场景
alias取别名===》自定义一些命令 ||命令是linux系统中预定义的自定义命令||=ls -l alias P='ping' ===》自定义P命令为ping,当执行P时就等同执行ping命令 注意:自定义命令不能和已经存在的命令重名 unalias P ==>取消自定义命令P
ln---创建链接文件,创建时源文件要是绝对路径链接分为软链接和硬链接 软链接(-s):l相当于Windows的快捷方式In -s +源文件的绝对路径+链接文件路径
硬链接(-d):类似于备份,当源文件删除是不影响硬链接文件的,硬链接文件和源文件的内容发生修改时是互相影响的 In -d+源文件的绝对路径+链接文件路径
vim编辑器 vim +文件===》vim编辑器==》对文本的内容进行修改 vim编辑器里面的内置命令不是Linux系统的命令 命令模式: :q==>退出,但是文件发生修改后,是:q会报错:wq==>先保存再退出 :w==》保存 :q! ==》强制退出,文件修改后,不想进行保存就退出 :wq! ==》强制保存并退出注意: 1,!表示强制执行 2,在命令模式下是不能对文本信息就行输入的3,从编辑模式进入命令模式,按'Esc’键 4,不要使用Ctrl+s,否则就会导致文件无法修改,会生成一个隐藏的缓存文件,这时需要对这个隐藏文件进行删除,才可以继续对文件进行修改操作
编辑模式:文件内容的编辑必须要进入编辑模式才可以就行编辑 i:按‘i’进入编辑模式,在光标所在位置之前进行输入 I:按大写的I’进入编辑模式,在光标所在位置的行首进行输入 a:按'a’光标会后移一位进入编辑模式A:按'A'光标会跳转到行末进入编辑模式 o:在光标所在行,往下插入一行进入编辑模式 O:在光标所在行,往上插入一行进入编辑模式 x:删除光标所在位置的一个字符 X:删除光标所在位置的前一个字符 dd:一次性删除光标所在行 D:删除光标所在位置至行末的内容 u:撤销操作 r:替换光标位置的一个字符 p:把复制的内容粘贴到光标所在行的下面行 P:把复制的内容粘贴到光标所在行的上面行yy:复制光标当前行整行内容 4yy:复制光标包括当前行开始4行 末行模式==》跟命令模式是一样的,也是通过退出编辑模式之后在vim的左下角输入:进入的 :/+关键字==》查找整个文本中的对应‘关键字′并显示高亮 :noh ==>取消高亮显示 :set nu ==>显示行号 :set nonu ==》取消行号 把当前vim编辑器的文件指定范围的内容,写到另一个新文件中 :1,10w /aa/dcs39.txt ==》把当前文件的1~10行写到/aa/dcs39.txt新文件中 :x,yw +新文件的路径 **vim中对文件内容的指定字符进行替换 :%s/23/DCS39/g ==》把当前文件中所有的‘23’替换为‘DCS39' %s:表示执行替换操作 /表示分隔符,第一个字符串表示需替换的字段,第二字符串表示替换后的字符 g代表全局执行,不加g(全局)参数,只能替换每行的第一个匹配到的字符
|