360导航网址主页,宁波seo外包快速推广,做网店运营需要学什么?,免费的tickle网站python全栈-Linux基础 文章目录 Linux安装/配置网络配置配置Linux远程登录配置虚拟机内部ip配置真机的ip安装XShell和Xftp目录结构用户和用户组用户管理添加用户useradd查看用户id修改用户usermod (选项)(参数)用户密码设置passed (选项)(参数)删除用户userdel [选项] 用户名 用…python全栈-Linux基础 文章目录 Linux安装/配置网络配置配置Linux远程登录配置虚拟机内部ip配置真机的ip安装XShell和Xftp目录结构用户和用户组用户管理添加用户useradd查看用户id修改用户usermod (选项)(参数)用户密码设置passed (选项)(参数)删除用户userdel [选项] 用户名 用户组管理添加用户组groupadd (选项)(参数)修改用户组groupmod ()()删除用户组groupdel用户组名 linux用户类别用户切换susudo super user dovisudo 配置用户权限 Linux文件属性显示文件属性 ls文件类型文件权限 权限字与权限操作chgrp改所属组chmod改文件属性文字设置数字设置 chown改拥有者 Linux路径处理文件常用命令Linux文件编辑工具vim/vi命令模式底线命令模式 文件查看命令打包压缩命令与搜索命令搜索命令常用系统工作的命令管道符、重定向、环境变量输入输出重定向管道符----任意门通配符环境变量 磁盘管理Linux系统状态检测ip addr (ifconfig)uname -afreelasthistoryuptime Linux安装软件RPM软件包管理YUM安装MySQL远程连接MySQL卸载MySQL 进程管理ps -auxegrep/greptophtopkill 进程idnetstat 系统服务service 服务名 状态systemd 服务名 状态systemctl 状态 服务名systemd-analyzehostnamectl 查看当前主机信息timedatectl 查看当前时区Chkconfig 服务 状态 开机自启 定时服务croncrontab配置文件 网络防火墙firewalld防火墙配置firewalld-cmd防火墙cmd管理工具1. 查看当前区域和规则2. 常用区域及其描述3. 设置区域更改接口区域添加或删除服务添加或删除端口 4. 设置默认区域5. 永久生效6. 查看所有服务注意事项 SELinux 本项目使用的是centos版本 我们需要使用虚拟机VMWare来安装Linux。方便恢复系统操作
Linux安装/配置
网络配置
在linux里面有三种网络配置。
桥接NAT 最常用的主机模式
配置Linux远程登录
网关配置192.168.66.1虚拟机IP192.168.66.100主机的vmnet8192.168.66.10 这个是虚拟机里面的路由器网关 配置完后点击确定。
然后在linux里面输入刚刚注册的账户和密码就会出现[你的账号localhost ~ ]$ 这条语句
Linux里面一切都是文件哪怕网卡这种配置信息都是文件
配置虚拟机内部ip
输入命令
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vmware的版本不限centos必须是7代的 出现这个界面才可以配置网络
需要按下a才可以编辑内容按下esc退出编辑
需要修改第四行dhcp意思是动态ip改成静态ipstatic。保证IP不变需要修改最后一行的no改成yes意思是让电脑开机后自动加载使用这个网卡然后按下回车添加信息IPADDR192.168.66.100继续添加NETMASK255.255.255.0 这是子网掩码继续添加GATEWAY192.168.66.1 这是网关继续添加DNS1223.5.5.5继续添加DNS2223.6.6.6 有了这两个阿里云的域名可以访问网络了按下esc退出编辑输入:wq,这三个字符按下回车就保存退出了输入service network restart 意思是 执行-网络-重启.出现末尾ok字样就配置完成了目前为止虚拟机内部的ip都配置好了
配置真机的ip
我们把虚拟机的配好了但是我们自己的电脑还无法跟虚拟机进行交互即vmware8
配置vm8是为了主机和虚拟机通讯
去 控制面板------网络和Internet----网络连接
找vmware8右键属性找ipv4网络协议
把IP地址改成192.168.66.10
默认网关是192.168.66.1
子网掩码255.255.255.0
dns是223.5.5.5备用是223.6.6.6.
点击确定完成
这个和虚拟机里面的操作是一样的。到现在为止虚拟机和真机已经配置好了
在虚拟机里面可以使用ping www.baidu.com得到对应的信息了
按下ctrlc可以中断信息
安装XShell和Xftp
XShell是远程连接服务器的软件
xftp是传输文件的
打开xshell新建会话主机写虚拟机的ip192.168.66.100然后输入账号和密码就可以连接我们的虚拟机了
这样就可以使用远程登录的方式去操作虚拟机了
使用SSH密钥连接虚拟机
然后回到虚拟机我们把虚拟机关闭会弹出窗口我们选择在后台挂起
还可以右键虚拟机选择快照类似存档防止虚拟机崩溃然后我们回档
目录结构
打开xshell输入cd / 回车
在输入ll 回车
然后出现的信息后侧的蓝色部分都是目录
每一个目录都是文件每一个文件都是目录 bin bin -usr/bin 里面存放的是二进制文件 [rootlocalhost /] 最后的/意思是根目录 cd bin 可以进入bin目录 [rootlocalhost bin] 使用ll可以看到目录里面有什么。我们使用的命令都在bin目录里面 cd… 是退出目录 boot 启动linux系统的核心文件 dev 设备信息保存的是外部设备信息 etc 重要 最核心目录存放系统管理配置文件比如网卡的配置文件 home 用户的主目录 lib 动态连接共享库共享文件 lib64 和lib类似 media 自动识别设备比如U盘 mnt 临时挂载文件 opt 安装软件的目录安装包啥的 proc 虚拟文件系统 root 系统管理员超级管理员 run 临时文件存放系统信息 sbin 超级用户使用的二进制文件 srv 别动 sys 进程存储的文件系统 tmp 存放临时文件 usr 软件程序文件存放的位置 var 需要扩展的数据常用的修改文件
这里面常用的是etc,home,opt,media,root,usr,var
用户和用户组
因为linux是多用户多任务的操作系统
满足多用户同时使用安全性也很高
因为用户很多我们需要给用户划分族类不同的用户组有不同的权限保证系统的安全
用户和组的关系 一对一 一个用户一个组一对多 一个用户多个组多对一 多个用户一个组多对多 多个用户多个组
用户管理 超级管理员是rootUID是身份证号root的UID0 系统用户UID是1~999无法使用是linux系统使用的 普通用户UID1000~无穷默认的
一般使用UID判断用户身份
添加用户useradd 语法结构 useradd (选项)(参数) 参数 -d 指定用户家目录默认在home-e 账户到期时间格式YYYY-MM-DD-u 指定用户默认UID-g 指定一个用户组必须已经存在-G 指定一个或多个用户组-N 不创建与用户同名的用户组-s 指定用户的默认shell解释器 输入命令useradd -u 8888 zhao 创建一个用户默认在homeUID是8888 useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe 指定了用户的家目录是home下面的linux并且指定shell格式nologin不让登录系统最后是用户的名字linuxprobe
查看用户id
id 用户名返回用户信息uidgidgroup
修改用户usermod (选项)(参数)
选项 -c 备注修改用户账号的备注文字-d 登入目录修改用户登入的目录-e 有效期修改有效期-f 缓冲天数密码过期后多少天关闭账号-g 群组 修改用户所属群组-G 群组 修改用户所属附加群组-l 修改用户名称-s 锁定用户密码使密码无效-u 修改用户id-U 解除密码锁定 usermod -u 1111 zhao 把zhao用户的uid改成1111
用户密码设置passed (选项)(参数)
参数 -d 删除密码管理员使用-f 强制执行-k 设置只有密码失效后进行更新-l 锁住密码-s 列出密码信息管理员使用-u 解锁账号 给用户上密码passwd用户名 然后输入密码输入密码的时候密码不可见一般是输入两次密码第二次是确认 案例 一个用户需要休假我们需要进行限制登录和休假结束之后的解除限制操作passwd -l 用户名 限制passwd -u 用户名 解除限制
删除用户userdel [选项] 用户名
选项 -f 强制删除用户-r 同时删除用户及用户家目录-rf 上面两个的组合效果 原理就是执行命令的时候去相应的文件把信息删除了 相应的文件有 /etc/passwd/etc/shadow/home/username
用户组管理
添加用户组groupadd (选项)(参数)
参数 -g 指定工作组id-r 创建系统工作组id需要小于500-K 覆盖配置文件-o 允许添加组id不唯一的工作组 格式groupadd -g 333 python 创建一个组id是333组名是python
修改用户组groupmod ()() 参数 -g 修改id-o 重复使用群组识别码id-n 设置新组名 groupmod -g 345 -n python2 python 修改python组id改成345组名改成python2
删除用户组groupdel用户组名
linux用户类别
在linux里面有三种用户超级用户普通用户伪用户
用户切换su
首先要创建一个用户才能从root切换过去
su用户名 输入这个命令就可以切换用户了 超级用户切换普通用户不用输入密码普通用户切换超级用户需要输入密码 我们使用超级用户vim创建一个文件随便输入内容使用wq保存退出 切换到普通用户我们依然可以查看文件cat文件名 但是普通用户没有权限修改rm/保存wq文件 rf 是强制保存也不行 sudo super user do
字面意思超级用户干的事情。本意提高权限去搞事
是提高权限去搞事。
但是提高权限这个操作还需要使用visudo去操作
限制用户执行的命令记录用户执行的命令配置文件提供集中的用户管理
visudo 配置用户权限
这个是为了给用户设置权限的操作用户有了权限才能使用权限
普通用户有了root的权限才能执行root的操作
因为是设置权限这个设置权限的操作只能在root用户下使用
小权限往大权限需要输入密码大权限到小权限随便改
直接输入visudo回车即可使用:set nu 可以显示行数行号。方便我们定位:set nonu 就可以关闭显示行号了发现root ALL(ALL) ALL 这条语句 用户名 允许使用的主机(谁的身份) 可以执行的命令列表zhao ALL(ALL) ALL 意思是用户zhao有了root所有的权限 然后普通用户就有了超级用户的权限了 但是还不能执行超级用户的操作需要使用sudo 操作 才可以意思就是有了权限还需要配合sudo使用权限 无需密码权限 使用 zhao ALLNOPASSWD: ALL在刚刚的visudo里面把权限改成这样我们切换到普通用户的时候就不用输入密码完成某些操作了就永久不需要密码了也就是免密模式
Linux文件属性
在Linux系统里面一切都是文件各种操作都是修改文件来实现
显示文件属性 ls
ls 全称 Linux Is 英文原型list files看文件列表
参数 -a 显示所有文件及目录.开头的隐藏文件也能看到-l 除文件名以外的所有信息都显示出来 下面的用的少-r 将文件逆序显示-t 按照时间排序显示文件-A 和a一样但是不列出隐藏文件和父目录-F 在可执行文件名后面加符号目录加/文件加*-R 列出目录下所有文件 我们常用的ll就是 ls -l 的缩写 波浪线开头的目录是root的目录 / 斜杠是根目录
解读drwxr-xr-x. 13 root root 4090 Jan27 2025 var 文件类型与权限字 drwxr-xr-x.链接个数 13文件的所有者及它的用户组 root root文件大小 4090文件修改日期 Jan27 2025文件名 var
文件类型
有 普通文件存放数据程序等信息的文件一般是文本和二进制文件 目录文件存放目录文件名和子目录名 链接文件在不同文件系统之间建立链接关系实现对文件的访问 设备文件把io设备映射成设备文件 管道文件在进程中传递数据 lrwxrwxrwx. 1 root root 7 Mar 1 03:21 bin - usr/bin dr-xr-xr-x. 5 root root 4096 Mar 1 03:24 boot 我们使用ll查看所有文件信息
I开头链接文件-开头是普通文件d开头是目录文件c设备文件p管道文件
文件权限 lrwxrwxrwx. 1 root root 7 Mar 1 03:21 bin - usr/bin dr-xr-xr-x. 5 root root 4096 Mar 1 03:24 boot 就是文件信息的第一个内容一共有10个字符
第0位是文件类型1到3是文件所有者的权限分别是读r写w执行x4到6是文件所有者的组权限分别是读r写w执行x7到9是其他用户的权限也是读r写w执行x
如果对应的权限是-杠说明没有呗
权限字与权限操作
用于修改已经创建好的文件的权限
有三种改变权限的方式
chgrp改变所属群组chown改变文件所有者chmod改变文件属性
chgrp改所属组
chgrp [-R] 所属组名 文件名 -R是更改下面的所有文件的所属组 chgrp -R web a.info 把a文件改到了web组底下了
chmod改文件属性
在Linux里面有两种属性设置方式数字和符号
文件的基本权限有九个分别是owner/group/others也就是自己组其他
这三类人各自有3个权限读写执行
文字设置
三类人
user用户 -ugroup组 -gothers其他 -oa 是全部人
chmodu,g,o,a增加,-去除,设定r,w,x文件或目录
chmod gw a.info
组增加写a.info文件
a.info所属的组增加一个写的权限。
把加号改成减号就是移除权限
数字设置
三种权限
r:4w:2x:1 解读drwxr-xr-x. rwx r-x r-x 7 5 5 这是求和运算 chmod 755 a.info对a文件的三类用户进行权限设定
chown改拥有者
chown -R 用户名 文件
意思是更改文件到用户名底下
chown -R 用户:用户组 文件
更改文件的时候既改到用户底下又改到用户组底下
Linux路径
以反斜杠开头的路径比如一开始的网卡文件路径就是绝对路径
绝对路径是从根开始的路径相对路径是以点开头或者点点开头的路径比如/etc/text 一个点开头说明是目前所在的目录里面比如./text两个点开头说明是上一级目录里面比如…/text 输入pwd查看当前目录的绝对值路径输入cd -返回上一次目录的位置去就是我们使用cd去切换路径的时候可以使用cd-回到上一次的路径输入cd …/…/ 有几个俩点就回几次上级目录
处理文件常用命令
ls 列出目录pwd 显示文件所在位置mkdir 创建新目录/文件夹 -p 递归创建文件夹创建多级目录的时候需要使用这个参数mkdir -p a/b/c/d 这个的本质是创建一个d目录但是abc都没有使用p可以强制创建 rmdir 删除空目录 -p 删除多级空目录比如a目录是多级目录他下面有很多子目录也是空目录就可以递归删除了 cp 复制文件或目录 -r 递归复制把目录下所有文件和目录都复制如果不是递归复制只能复制一个cd 文件 路径 复制文件到后面的路径去 rm 删除文件或目录 -f 忽略不存在的文件强制删除但用就是普通删除-r 递归删除一般是删除文件夹-rf 强制删除文件夹 mv 移动文件或目录重命名 mv 文件 路径/ 把文件移动到路径里面去 mv 文件名1 文件名2 把文件1重命名为文件2
Linux文件编辑工具vim/vi
vim和vi的区别vim自带语法高亮vi什么都没有都是黑白的
vim/vi的三种模式
命令模式 我们使用vi/vim 加 文件名进入文件我们对文件完成编辑之后按下esc进入了命令模式再按下:wq退出文件 输入模式 我们进入文件的时候是命令模式还需要按下iao任意一个进入输入模式输入结束之后按下esc退出输入模式进入命令模式 底线命令模式
命令模式
对文件进行快速编辑但是不能输入 命令 dd 删除光标所在行5dd 删除光标所在及一下的5行yy 复制光标行5yy 复制光标及一下五行n 显示搜索命令定位的下一个字符串N 显示搜索的上一个字符串u 撤销上一步操作p 将dd删除的行/yy复制的行粘到光标后面G 文本末尾gg 文本开始x 删除光标所在的字符shift^ 移动到行首shift$ 移动到行尾/a 找到文件内所有是a的字符并高亮字符 底线命令模式
在命令模式下按:进入该模式按下回车回到命令模式
主要是保存或者退出文件
命令 :w 保存:q 退出:q! 强制退出:wq! 强制保存退出:set nu 显示行号:set nonu 不显示行号:命令 执行命令:整数 跳转到整数行/one/two 将光标所在行的第一个one文本替换成two文本/one/two/g 将光标所在行的所有one替换成two:%s/one/two/g 将全文的one替换成two?字符串 搜索字符串/字符串 搜索字符串shiftzz 也是保存退出必须按住shift同时快速按下z两次如果是按一次z就是程序挂起
文件查看命令
cat文件 显示文件内容tac文件 逆序显示文件内容nl文件 显示文件的时候显示行号more文件 一页一页的看文件 按下空格 翻页enter 翻一行/字符串 搜索字符串:f 显示文档名和目前行数q 离开more模式看完会自动退出b或者CTRLb 返回上一页 less文件 和more文件一样的效果head -n 文件 后面的n是几就看文件的前几行内容tail -n 文件 看文件尾几行
打包压缩命令与搜索命令
tar [选项] [文件] 选项 -c 产生.tar打包文件-v 显示详细信息-f指定压缩名称-z 打包的同时压缩Gzip-x 解包tar tar -zcvf test.tar.gz 文件1 文件2 文件3 除了x都写上 tar -zxvf test.tar.gz 压缩包 这次是解压缩包 tar.gz是Linux系统里面的安装包解压包啥的 gzip/gunzip压缩格式.gz gzip文件 压缩文件在原路径生成gunzip文件.gz 解压 在解压的时候最后写-C 路径可以指定解压文件的位置
搜索命令
grep [参数 查找内容 源文件] 用于在文本中/文件里面执行关键词搜索参数 -b 将可执行文件当成文本文件搜索-c 只显示找到的行数-i 忽略大小写-n 显示行号-v 反向选择显示没有关键词的行-E 允许使用正则表达式 find [查找路径] 寻找条件 操作 按照指定条件查找文件在整个Linux系统里面找参数 -name 匹配名字-perm 匹配权限-user 匹配所有者-group 匹配所有组-mtime -n n 匹配修改内容的时间-atime -n n 匹配访问文件的时间-ctime -n n 匹配修改文件权限的时间n是几天-nouser 匹配没有归属者的文件 find ./ -name *.info 找当前目录下名称是以info结尾的文件
常用系统工作的命令
reboot 重启系统 只能是超级管理员来执行 poweroff 关机wget [参数] 下载地址 从终端下载网络文件参数 -b 后台下载-P 下载到指定目录-t 最大尝试下载次数-c 断点续传-p 下载页面内所有资源包括图片、视频-r 递归下载
管道符、重定向、环境变量
输入输出重定向
意思是把多个单一的Linux命令组合到一起协同工作
输入重定向
命令 文件把文件作为命令进行输入命令 分界符从标准输入中读入遇到分界符停止命令 文件 1 文件2把文件1当成命令去输入到命令行并把得到的信息返回到文件2
输出重定向
命令 文件清空文件并把命令的返回值写入文件命令 2 文件清空文件把命令的错误返回值写入文件命令 文件追加文件把返回值写入文件命令 2 文件追加文件把错误返回值写入文件命令 文件 2$1命令 文件追加文件把标准输出和错误输出都写入文件 比如之前的cat文件就是把文件的内容打印到屏幕上 现在cat文件1 文件2 就是查看文件1但是我们看不到了输出的信息在文件2里面 管道符----任意门
命令A | 命令B
把命令A的返回值传给B当成命令B的输入值我们再拿B的返回值
比如我们去执行一个命令他的返回值很多我们之前学过文件的查看命令more所以我们在刚刚的执行命令后面加上或再加上more就可以使用more命令翻页去查看返回值了
命令1 | 命令2 | 命令3 | 。。。
严格意义上讲命令2的返回值还能进行操作一直无限套娃下去
通配符
就是利用正则表达式去寻找文件
ll /dev/test* 去找dev目录下test开头的文件ll /dev/test[0-9] 找test后面有数字的文件
反正就是正则表达式了去匹配内容
环境变量
有两种系统环境变量用户环境变量
系统环境变量是任意用户都可以使用的
用户环境变量只有用户自己有其他用户访问不了
系统环境变量的位置/etc/profile用户环境变量~/.profile
我们进入了环境变量的文件后直接在末尾的位置写要添加的环境变量就可以了
比如添加一个Java的环境变量export JAVA_HOME/user/local/jdk1.8 这个就是新增的环境变量 export PATH$PATH:$JAVA_HOME/bin 这是把原来的环境环境变量和新增的环境变量进行拼接
重启计算机可以让环境变量生效
或者输入命令sourse 环境变量路径
磁盘管理 fdisk [必要参数] [选择参数] 必要参数m 查看全部可用参数n 添加新的分区d 删除某个分区信息l 列出可用分区类型t 改变某个分区类型p 查看分区信息w 保存退出q 不保存退出 df [选项] [目录/文件名] 显示磁盘的使用情况参数 -a 显示所有文件系统信息-m 以MB为单位显示容量-k 以KB为单位-h以KBMBGB显示-T 显示分区的文件系统名称-i 以含有inode的数量显示 返回值解读 1k-blocks 表示文件系统总大小以KB为单位Used 表示用了多少Available 剩多少Use% 硬盘使用率Mounted on 硬盘的目录位置Filesystem 分区设备名称 ln [选项] 目标 参数 -s 创建符号链接没有此参数就是硬链接-f 强制创建文件或目录的链接-i 覆盖前先询问-v 显示创建链接的过程 ln -s 文件1 文件2 文件2相当于文件1的指针我们对文件1的操作比如查看啥的对文件2也能实现我们如果把文件1删除文件2就失效了还要把文件2删除 硬链接与软链接 硬链接在原来的文件上面在增加一个访问文件的入口源文件被删除之后因为还有一个入口存在就不会消失软链接是创建一个指针执行原文件源文件被删除这个指针就失效了要及时清除指针
Linux系统状态检测
ip addr (ifconfig)
获取网卡配置与网络状态
lo是回环地址ens123 是我们配置的ip地址
uname -a
查看系统内核与系统版本等信息
-a是看系统内核cat /etc/redhat-release 查看系统版本
free
free -h 显示当前系统内存的使用量信息 total used free shared buff/cache availableMem: 972M 210M 643M 7.6M 118M 629MSwap: 2.0G 0B 2.0G从左往右内存总量、已用量、可用量、进程共享内存、磁盘缓冲内存、缓冲内存
last
用于查看所有系统的登录记录
history
显示系统执行过的命令
一般是显示最近的1000条命令还可以修改文件/etc/profile里面的HISTSIZE的值来进行命令条数的设置。
如果使用-c参数就会清空命令记录。 HOSTNAME/usr/bin/hostname 2/dev/null HISTSIZE1000 uptime
显示计算机的负载情况
00:35:42 up 6:14, 2 users, load average: 0.00, 0.01, 0.04
分别显示的是当前系统时间运行时间用户数量负载平均值
负载平均值是三个时间段
过去1分钟的平均负载过去5分钟的平均负载过去15分钟的平均负载
负载值不要长期超过1生成环境下不要超过5
Linux安装软件
三种安装方式源码rpmyum
RPM软件包管理
RPM命令
rpm -ivh filename.rpm安装rpm -Uvh filename.rpm升级rpm -e filename.rpm卸载rpm -qpi filename.rpm查看软件描述rpm -qpl filename.rpm查看软件文件信息rpm -qf filename查询文件属于哪个RPMrpm -e --nodeps filename删除文件的同时删除文件的依赖关系
依赖关系就像之前的多级目录一样
其中
-i 是install 安装-v 显示安装画面-h 显示安装进度
安装路径备注/etc配置文件放置目录/usr/bin可执行文件/usr/lib动态链接库/usr/share/doc软件使用手册和说明文件/usr/share/manman page档案
YUM
CS架构的软件
底层也是rpm软件包
是一个在线的软件管理工具必须联网
我们需要从这个软件商店下载软件
查看我们当前的yum服务器是什么yum repolist all因为yum是国外的我们直接使用非常的慢需要配一个镜像源镜像源 base:mirrors.aliyun.comextras:mirrors.sohu.comupdates:mirrors.sohu.cim 打开配置文件 vi /etc/yum.repos.d/CentOS-Base.repo
配置阿里云 安装wget yum install -y wget 备份yum文件防止出错不能恢复 cd /etc/yum.repos.d/mv CentOS-Base.repo CentOS-Base.repo.back 下载阿里云的Centos-7.repo文件 wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 重新加载yun yum clean allyum makecache 检测配置源是不是阿里云 cat /etc/yum.repos.d/CentOS-Base.repo YUM使用手册
命令作用yum repolist all列出所有仓库yum list all列出所有仓库软件包yum info filename查看软件包信息yum install filename安装软件包yum reinstall filename重新安装软件包yum update filename升级软件包yum remove filename移除软件包yum clean all清理仓库缓存yum check-update检查可更新安装包yum grouplist查看系统中已经安装的软件包yum groupinstall filename安装指定的软件包yum groupremove filename移除指定软件包yum groupinfo filename查询指定软件包组信息
因为使用yum安装的时候中途有一个确认的输入y我们可以一开始就把y写在参数里面 yum install -y python
安装MySQL 下载yum源库 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 安装yum库 rpm -ivh mysql57-community-release-el7-10.noarch.rpm 安装数据库 yum -y install mysql-community-server 处理报错 Failing package is: mysql-community-libs-5.7.44-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 因为是进行了gpg验证所以卡住了 加参数拒绝gpg验证 yum -y install mysql-community-server --nogpgcheck 出现complete即安装成功 systemctl start mysqld 启动MySQL systemctl status mysqld 看看有没有启动成功 登录MySQLmysql -uroot -p 找MySQL的密码grep “password” /var/log/mysqld.log 密码在后面 需要对初始密码进行更改才可以使用MySQL 修改MySQL密码ALTER USER ‘root’‘localhost’ IDENTIFIED BY ‘新密码’; 一般来说这个密码太简单了会不让你设置我们为了学习需求可以自己改一下MySQL的密码强度 mysql set global validate_password_policy0; Query OK, 0 rows affected (0.00 sec) mysql set global validate_password_policyLow; 密码强度 Query OK, 0 rows affected (0.00 sec) mysql SET GLOBAL validate_password_length6; 密码长度 Query OK, 0 rows affected (0.00 sec) 注执行完初始化命令后需要输入数据库root用户密码 注密码策略分四种 1、OFF关闭2、LOW低3、MEDIUM中4、STRONG强) 如果不更改密码的强度就有后面的要求大小写字母特殊字符密码长度 输入exit退出MySQL然后再次登录MySQL验证密码
MySQL的命令 show databases; 查看库create database test; 创建一个名为test的库
远程连接MySQL
这里是使用window系统下面的navicat连接Linux里面的MySQL
直接连是连不上的。
因为Linux里面的防火墙没关使用命令firewall-cmd --state发现是running
使用systemctl stop firewall.service关闭防火墙再次运行上面的命令就是not running
然后去虚拟机里面启动MySQL
在MySQL里面查看所有库发现mysql库这个库是用户的使用权限
使用命令use mysql;进入了mysql库
使用命令select user ,host from user;然后弹出一个表发现root用户的host是localhost也就是本机即虚拟机能使用MySQL
使用命令update user set host “%” where user “root”; 出现ok字样证明修改成功
最后刷新一下MySQL的配置使用命令flush privileges;再次出现ok即可
直接退出就行就能连上了
卸载MySQL
有安装就有卸载
首先在Linux里面查看有没有安装MySQL使用命令rpm -qa |grep -i mysql
如果有很多MySQL相关的语句就是安装了MySQL
开始卸载
停止MySQL的服务 systemctl stop mysqld.service 依次去把MySQL的文件删除 这条命令就是看mysql文件的rpm -qa |grep -i mysql然后使用命令rpm -ev --nodeps mysql文件名一直重复步骤1和2 删除掉mysql的文件之后还可能有残留 使用命令whereis mysql可以看到有MySQL的空文件夹也就是空目录使用rm删除即可 最后再使用find / -name mysql从整个Linux系统里面去找mysql把出现的路径全部使用rm删除即可最后在etc里面的passwd文件里面最后一行有一个mysql官方配置的用户和用户组使用userdel删除用户还有groupdel删除用户组也可能没有创建用户组就不用删了现在彻彻底底删除了MySQL
进程管理
执行中的程序就是进程
ps -aux
参数
-a 显示所有进程
-u 显示用户及其他信息
-x 没有控制终端的进程
USER 程序的执行者PID 进程号%CPU 占CPU%MEM 占内存VSZ 虚拟内存RSS 固定内存TTY 所在终端STAT 运行状态 R 开头的是运行中S开头的是中断中T是停止Z是进程停止但存在 START 进程开始时间TIME CPU运行时间COMMAND 实际指令
因为是一次性显示很多进程配合管道符可以去找特定的进程
ps aux|egrep ‘(cron |syslog)’我们去找了有关cron和syslog的线程信息ps aux|egrep mysql找MySQL进程
egrep/grep
一样的egrep支持使用正则表达式去搜索
grep不支持正则表达式
top
查看系统状态类似任务管理器 top - 21:14:09当前时间 up 11 min运行时间, 2 users用户数量, load average: 0.04, 0.04, 0.05内存负载 Tasks: 105 total进程数量, 1 running运行的进程数量, 104 sleeping休眠进程, 0 stopped, 0 zombie %Cpu(s): 0.0 us用户使用, 0.0 sy系统使用, 0.0 ni优先态,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 995432 total总内存, 446868 free剩余内存, 376156 used使用内存, 172408 buff/cache缓存 KiB Swap: 2097148 total磁盘, 2097148 free剩余, 0 used使用. 472216 avail Mem 缓存 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 1426 root 20 0 161092 5648 4284 S 0.3 0.6 0:00.15 sshd 1 root 20 0 128172 6732 4164 S 0.0 0.7 0:01.30 systemd 按q退出
top -d 2 可以设置刷新时间每几秒刷新一次当前数据
ps是静态显示信息
top是动态显示
htop
新版的top命令
有部分可视化页面
可以使用鼠标点击 安装epel源 yum install epel-release -y 安装htop yum install -y htop 输入htop验证 kill 进程id
我们用上面ps或者top拿到的进程id对进程进行关闭
参数-9强制停止进程
netstat
监控网络信息进程
参数
-a列出所有端口-at所有TCP端口-au所有UDP端口-ax所有unix端口-atnlp所有ipTCP程序名端口-s所有端口统计信息-st所有TCP统计信息-su所有UDP统计信息-r显示核心路由统计-rn显示所有路由TCP统计
从后台启动进程在命令结尾加
系统服务
service 服务名 状态
状态start stop restart reload重新加载 status查看状态
service network status查看网络状态
systemd 服务名 状态
和service差不多
service启动慢
systemctl 状态 服务名
和service一样都是有5个状态但是使用命令颠倒了一下
是先写状态 再写服务
如果service和systemd的命令是service func start那么systemctl同等命令就是systemctl start func.service 注意服务的后缀
systemd-analyze
查看启动耗时
就像360提醒你本次开机时间打败多少人一样
systemd-analyze 启动耗时systemd-analyze blame 每个服务的启动耗时systemd-analyze critical-chain 瀑布状启动流systemd-analyze critical-chain func.service 指定进程启动流
hostnamectl 查看当前主机信息
sudo hostnamectl set-hostname rehl7
设置主机名
timedatectl 查看当前时区
timedatectl list-timezones 显示所有可用时区sudo timedatectl set-timezone china/shanghai 设置时区
Chkconfig 服务 状态 开机自启
设置某个服务来开机自动运行自启动
原理就是把启动的程序放在目录/etc/rc.d/init.d文件夹里面 [rootlocalhost /]# cd /etc/rc.d/init.d [rootlocalhost init.d]# ll total 40 -rw-r–r–. 1 root root 18281 May 22 2020 functions -rwxr-xr-x. 1 root root 4569 May 22 2020 netconsole -rwxr-xr-x. 1 root root 7928 May 22 2020 network 开机自启动网卡 -rw-r–r–. 1 root root 1160 Dec 7 2023 README 参数
–add 把服务加入开机自启动–del 删除这个服务的自启动–level 查看服务的运行级别–list 查看所有运行服务chkconfig 服务 on 开启服务chkconfig 服务 off 关闭服务
定时服务cron
就是定时启动服务
crontab配置文件
输入命令vim /etc/crontab SHELL/bin/bash PATH/sbin:/bin:/usr/sbin:/usr/bin MAILTOroot # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) 分钟 # | .------------- hour (0 - 23) 小时 # | | .---------- day of month (1 - 31) 几号 # | | | .------- month (1 - 12) OR jan,feb,mar,apr … 几月 # | | | | .---- day of week (0 - 6) (Sunday0 or 7) OR sun,mon,tue,wed,thu,fri,sat 周几 # | | | | | # * * * * * user-name command to be executed 00 02 * * * ls 每天凌晨两点执行ls00 01 1 3 1,3,7 每周的周一、周三、周日3月1号凌晨1点执行如果都是*号那就是每分钟都执行一次
参数 -e 编辑定时任务 -l 查看 -r 删除 -u 指定用户
示例23 5 * * 1,3,5 /sbin/service sshd start
每周的周一周三周五的凌晨 5点23分执行后面的命令
注意后面的命令不能简单的使用service要使用绝对路径的service
如果找不到这个文件在哪里就使用whereis 文件名就可以看到文件的绝对路径了
网络防火墙
firewalld
默认防火墙工具
有两种界面管理方式
CLI命令行界面GUI图形化界面
防火墙有一个区域的概念就是在不同的网络环境有不同的防火墙严格程度
比如在使用公用网络防火墙该阻止哪些用户进来。
一共有9种区域概念
public 默认状态只允许sshdhcpv相关的服务trusted 全开不限制任何服务
防火墙配置
firewall-cmd 命令行工具fire-config 图像工具/etc/firewalld/中的配置文件
常用服务
systemctl start firewalld启动防火墙systemctl stop firewalld关闭防火墙systemctl status firewalld 查看防火墙状态 firewall-cmd --statesystemctl enable firewalld 开机启用防火墙systemctl disable firewalld 开机禁用防火墙
firewalld-cmd防火墙cmd管理工具
因为使用代码的效率比使用图形化界面高
直接搞命令行工具
防火墙的配置默认是关机就失效为了让防火墙的配置一直有效可以加一个永久的参数–permanent
1. 查看当前区域和规则
首先您可以查看当前的区域和设置
# 查看所有区域
firewall-cmd --get-zones# 查看活动区域
firewall-cmd --get-active-zones# 查看特定区域的详细信息
firewall-cmd --zonezone-name --list-all2. 常用区域及其描述
以下是一些常用区域及其含义
drop: 该区域会丢弃所有传入连接。block: 该区域会拒绝所有传入连接只有返回的连接会被允许。public: 该区域用于外部网络或公共网络允许接入的请求不足以被信任。默认external: 该区域用于外部网络适用于具有 IP 转发能力的接口。dmz: 该区域用于 DMZ隔离区允许对某些服务的访问。work: 该区域为工作环境信任局部网络不太安全。home: 该区域用于家庭网络信任独立家用网络。internal: 该区域用于内部网络信任的网络。trusted: 该区域信任所有流量。
3. 设置区域
更改接口区域
# 将接口如 eth0设置为指定区域
firewall-cmd --zonezone-name --change-interfaceinterface-name添加或删除服务
# 向指定区域添加服务如 http
firewall-cmd --zonezone-name --add-serviceservice-name# 从指定区域删除服务
firewall-cmd --zonezone-name --remove-serviceservice-name# 列出区域中的服务
firewall-cmd --zonezone-name --list-services添加或删除端口
# 向指定区域添加端口如 8080/tcp
firewall-cmd --zonezone-name --add-port8080/tcp# 从指定区域删除端口
firewall-cmd --zonezone-name --remove-port8080/tcp# 列出区域中的开放端口
firewall-cmd --zonezone-name --list-ports4. 设置默认区域
# 设置默认区域
firewall-cmd --set-default-zonezone-name5. 永久生效
要使更改永久生效请使用 --permanent 选项。例如
# 永久添加服务
firewall-cmd --zonezone-name --add-serviceservice-name --permanent# 永久添加端口
firewall-cmd --zonezone-name --add-port8080/tcp --permanent# 重新加载防火墙设置
firewall-cmd --reload 可以永久生效6. 查看所有服务
# 查看所有
firewall-cmd --list-all注意事项
使用 --permanent 选项后您需要运行 firewall-cmd --reload 来应用更改。在进行防火墙配置时请确保您不会意外阻止 SSH 连接以免无法访问服务器。
SELinux
美国国家安全局专门开发的安全型Linux内核用来保护隐私
有三种服务方式
enforcing 强制启动安全策略模式拦截不合法请求permissive 服务越权访问只警告不禁止disabled 就是关闭了
我们需要使用vim打开etc下面的selinux修改里面的config文件
在参数SELINUX后面写上面这三种服务模式