广州37期_樊家杰 发表于 2021-12-10 17:47:50

Day4与Day5 Xshell-Linux系统权限与用户

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

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

xftp:是Windows系统和Linux系统文件传输工具


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

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

创建目录(文件夹):mkdir +目录名称

同时创建多个目录:
1.创建同级目录:mkdir+目录1+目录2


2.创建层目录:mkdir -p xx1/xx2/xx3

删除:rm
rm+文件:需要确认的删除

rm -r +目录:删除目录,需要加参数 -r

rm -rf +文件或在目录:强制删除,不需要确认即可删除所有
模糊匹配符号

?:一个?匹配一个字符

*:匹配0个或者多个字符


注意:不能使用rm -rf /*,也不能在根目录底下执行rm -rf*
注意:不能使用rm -rf /*,也不能在根目录底下执行rm -rf*
注意:不能使用rm -rf /*,也不能在根目录底下执行rm -rf*

复制拷贝:cp
cp 源文件 目标文件
eg: cp bb BB


1)当目标文件不存在时,则会新建文件,并把源文件的内容复制到新文件中

2)当目标文件存在时,则会把源文件的内容覆盖到目标文件中



移动、重命名:mv
mv源文件 目标
1)如果“目标”是一个存在的目录,则进行把源文件移动到对应的目录中

2)如果“目标”是一个不存在的文件或者目录则进行重命名






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

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

lrzsz工具,只能在远程连接终端(xshell、crt、putty)使用,用来进行小文件的传输,不能在虚拟机中使用

rz:有一个Windows弹窗弹出,然后可以选择Windows的文件上传到Linux服务器中

sz+Liunx服务器里面文件名:把Linux服务器的文件下载到Windows系统

lrzsz工具只使用传输小文件,传输大文件存在传输速度较慢,失败率比较高的问题

传输大文件则偶先使用XFTP等的FTP文件传输工具

面试题:你给我说一下查看文件的5~6种方法
1.vim +文件名:以编辑的模式查看文件
注意:进入vim模式以后,不要再动你的鼠标滑轮。

2.less +文件名:翻页显示文件内容,空格向下翻页,b键向上翻页,回车键逐行查看,q键退出。可以进行文本搜索,输入“/ +关键字”向下快速搜索对应的关键字; 输入“? +关键字”向上快速搜索对应的关键字。


3.more+ 文件名:以百分比显示,空格向下翻页,b键向上翻页,回车键逐行查看,q键退出,当看完文件时也会自动退出。

4.head + 文件名:默认显示文件的头部10行。
eg:head -n 17 文件 :从头部开始显示到17行的内容。


5.tail +文件名:默认地显示文件尾部10行。

eg:tail -n 4文件:显示文件尾部4行。
       tail -n +4文件:从文件的第4行开始显示到末尾。

       tial -f +文件名:实时查看文件内容,查看实时日志

6.nl +文件名(用得比较少的):显示行号和行的内容,显示完整的文件内容。

7.cat + 文件名 (用得最多的):显示完整的文件内容,一般是结合其他指令去使用。grep文本搜索,一般和cat结合使用。

grep文本搜索,一般和cat结合使用命令的结合使用,需要使用符号' | '( shift键 + enter键上面的那个\|的键)
' | '管道符:把前面指令的输出结果作为后面指令的输入条件。



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

-B + 数值 :把匹配到内容及前面的几行打印出来。


-C + 数值 :把匹配到内容及前后的几行打印出来。



练习:查看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行。

取13~21行


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

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


重定向符 ' > '
一个重定向符 ' > ' 的作用是覆盖



连个重定向符' >> ' 的作用是追加



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

造数:创建一些测试数据


find查找文件的命令



find / -name '文件名' :查找根目录底下根据名字进行查找,匹配到文件名,并返回对应的绝对路径

' ?' :匹配1个字符
查找根目录底下所有文件,根据名字进行查找,匹配以a开头后面接一个字符的文件或者目录


' * ' :匹配0个或者多个字符
查找根目录底下以dcs开头的文件或者目录


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

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




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










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



查看用户的分组,有什么用户组:cat / etc /group


注意:每新建一个用户,如果没有指定用户组,则会默认创建一个与用户组相同名称的组名

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




切换用户:
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组中移除



userdel dcs39==》删除用户
userdel -rf dcs38 ==》强制删除用户



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


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



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

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

r 读权限对应的命令有:cat(查看)、less 、head 、tail 、nl 、more等等

w 写权限对应的命令有:vim / vi 、cp 、mv、等等

x 执行权限对应的命令有:sh (执行shell脚本的命令)、cd

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


给gzdcs文件赋予只有用户组写权限
chmod020 gzdcs

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

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

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


chown dcs37 文件:把文件的拥有者修改为dcs37这个用户


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


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



-------打包操作------
Linux系统常见的包:tar,tar.gz ,zip,gzip ,war包

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


解tar包
tar -xvf +包名.tar
x表示解压


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


解tar.gz包
tar -zxvf +包.tar.gz

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

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


解zip包:
unzip +包名.zip


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

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






解gz包:gunzip + zip包文件




yum install +应用名==》在线下载安装应用
yum list ==》查看本机有多少个yum工具

rpm命令:离线安装命令
rpm -ivh +rpm
-i:安装软件包
v:可视化,可以看到更多信息       
h:显示安装的进度

rpm -qa:查看本机安装好的工具

eg : rpm -qa|grep 'lrzsz'


rpm -e应用名称:卸载对应的应用

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

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


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


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

scp -r +本地目录的绝对路径 +B用户名@B的IP:B服务器存放的绝对路径

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



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

2. FTP工具:
ftp文件传输协议
sftp安全文件传输协议

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




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



5.exit 退出sftp、bye

-------------------------------------

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



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


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

一般用于查看Linus系统的性能,如果系统出现系统响应缓慢,死机的情况,我们可以通过top命令显示当前系统占用内存或者CPU比较高的有什么服务,查看对应的PID(进程号),然后就可以进行相关的优化。

服务器的性能要求:CPU使用率需要控制在80~85%以内,内存使用率需要控制在80~85%以内,高于这个值就需要优化了。

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

top命令的参数:
top -p + 进程号:查看指定进程的性能情况


top -d +数字 :需要多少秒刷新一次结果,不要少于3


ps -ef |grep '任务名称':查找对应任务的进程号



ps -ef |grep '进程号':查找对应进程号的任务

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

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

如果查看端口是否被占用?不知道端口号的情况下怎么查看?
1.netstat -nltp ==》查看当前已经使用的端口

2.netstat -anp|grep' 端口号 '==》查看端口号是否被占用
3.lsof -i:端口号 ==》查看端口号是否被占用


不常用的指令合集:
who:查看当前系统的登录用户有哪些               
whoami(who am i ):查看当前系统的操作用户
hostname:查看主机名称,显示网络位置
uname:显示系统名称
getconf LONG_BIF:显示系统是多少位数(32或者64)
32位系统和64位系统
32位系统最高支持4G内存,64位系统理论上最高支持内存是256G,理论上64位系统比32位系统快两倍。



Linux系统操作的指令都有记录的
history:查看历史操作记录

clear :清空当前屏幕

*重点:date:查看当前Linux时间(查看过去之后的一些场景存不存在BUG)
修改服务器时间:date -s + 需要修改的时间
eg:date -s'2022-01-01 07:47'(注意修改的时间不能距离真是时间太长)

ntpdate ntp.aliyun.com恢复正常时间
ntp.aliyun.com



etc:




alias指令:自定义命令
eg:alias==》查看当前系统有什么自定义命令(不能跟系统命令冲突)

unalias + 自定义命令:取消自定义命令






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



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


service服务指令
service XXXX(服务名称) start ==》启动服务
service XXXX(服务名称) stop==》停止服务       
service XXXX(服务名称) status==》 查看服务状态

防火墙服务 iptables
service iptables stop ==》 关闭防火墙


------------------------------------------------------------


vim是vi的升级版
vim文本编辑器
vim里面的内置命令不是Linux指令


1.命令模式:
:q直接退出(前提是不能修改文件)
:q! (强制退出,当修改过文件,又不希望保存)
:w ==》保存
:wq==》先保存再退出
:wq!==》强制保存并退出
命令后面加 “ !” 表示强制执行
(1)命令模式不能进行编辑
(2)从编辑模式进入命令模式,按ESC键
(3)在vim工具中不要使用Ctrl+S保存,因为Ctrl+S会导致生成一个隐藏的缓存文件(.swp后缀的文件),会导致你的文件无法保存,(可以通过 ls-a 查看隐藏文件来删除),删除隐藏文件后重新进入该文件中即可。
(4)编辑模式:必须要进入编辑模式后才可以对文件进行内容编辑
i==》按 “ i ” 进入编辑模式,在光标使用位置的前面进行输入
I==》大写 ' i ',进入编辑模式,回到行首进入编辑模式
a==》光标后移一位,进入编辑模式
A==》光标移动到行末进入编辑模式
o==》光标所在行往下插入一行进入编辑模式
O==》光标所在行往上插入一行进入编辑模式
x==》删除光标所在的位置的字符               
X==》删除光标前面的一个字符,但是不能退行。
dd==》一次性删除一行的内容
DD=》一次性删除光标所在位置及行末的字符
u=》撤销功能
r==》替换光标所在位置的一个字符
p==》把复制的内容粘贴到下一行
P==》把复制的内容粘贴到上一行
3yy==》复制光标所在行开始3行

3.末行模式==》在退出编辑模式后,输入 ' .' 在页面的最后一行,所以叫做末行模式
:/关键字==》查找文件中所有的 ‘ 关键字’ 。并且高亮

:noh==》取消高亮
:set nu==》显示行号
:set nonu==》取消符号

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

*面试题:vim中替换文本内容
:%s/原字符/新字符==》(只能匹配到每一行第一个对应的字符)
:%s/原字符/新字符/g==》把文件中所有的 ’23‘替换位dcs37

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


页: [1]
查看完整版本: Day4与Day5 Xshell-Linux系统权限与用户