Linux学习笔记 -- rpm 与 shell 编程
目录
- rpm 与 YUM
- rpm 包的管理
- rmp 包 查询 安装 卸载
- yum
- 安装 JDK
- mysql 8.0 离线安装
- Centos 7 忘记mysql的root密码
- Shell 编程
- shell 脚本执行方式
- shell 变量
- 设置环境变量
- shell 程序位置参数变量(传参)
- 预定义变量 --- 不多
- 运算符、 流程控制(if,case,for ,while)
- if
- case
- for
- while
- read 读取控制台输入 -- 程序交互
- 函数
- 系统函数 - basename (获取文件名)、dirname (获取文件路径)
- ☆自定义函数
- shell 编程案例--- 备份MySQL数据 -- 菜
- python - hello world
- 传送门
rpm 与 YUM
rpm 包的管理
.RPM 扩展文件 类似于 setup.exe
rmp 包 简单查询指令:
查询 已安装的rpm列表rpm -qa | grep xxxx
rpm -qa | grep firefox
查看是否安装了火狐
rmp 包 查询 安装 卸载
rmp 包 简单查询指令:
查询安装过的所有rpm软件包 ;rpm -qa | more
即已安装程序
查询软件包是否 安装:rpm -q 软件包名
查询软件包信息:rpm -qi 软件包名
查询软件包中的文件:rpm -ql 软件包名
安装后的文件
查询文件所属的软件包:rpm -qf 文件全路径名
rmp -q firefox
rpm -qi firefox
rpm -ql firefox
rpm -qf /etc/passwd
删除 rpm 包
rpm -e rpm包名 (卸载软件)
rpm -e firefox
删除 firefox 软件包
安装 rpm 包rpm -ivh RPM包全路径名称
i : install ; v ; verbose 提示 ; h : hash 进度条
yum
yum list
| grep xxx 查看 yum 服务器是否有所需要安装的软件包,
yum install xxx 下载安装
yum install firefox
安装 JDK
1、将
.tar.gz
安装包mv
到/opt
/jdk 目录 ; jdk 通过mkdir
新建 ; opt 存放安装包
2、cd
到 jdk 目录下,并解压tar -zvxf jdkxxxx.zar.gz
解压 jdk 安装包
3.、将 解压后的文件夹mv
到/usr/local/
java ;类似于 windows 的program
; java 新建 ;
4、修改环境变量的配置文件vim /etc/profile
在末尾添加:
export JAVA_HOME=/usr/local/java/jdk-16.0.1
export PATH=$JAVA_HOME/bin:
$PATH
$PATH必须,相当跟原PATH进行拼接
5、
echo $PATH
查看环境变量 此时还未更新环境变量
6、source /etc/profile
刷新环境变量 必须
mysql 8.0 离线安装
1、选择此版本,链接点击这里 centos 7 版本;具体查找下载方法查看此视频
2、由于 centos 自带有类mysql数据库:MariaDB 会跟mysql冲突,要先删除
rpm -qa | grep mari
查看mariadb 相关安装包
rpm -e --nodeps xxxx
强制卸载相关安装包
3、将下载的安装包 .tar
移动mv
到 /opt/mysql
目录下 ,并解压; mkdir 新建目录
tar -xvf mysql-xxxx.tar
4、 安装 rpm 包
具体版本根据自己调整
rpm -ivh mysql-community-common
-8.0.25-1.el7.x86_64.rpm--nodeps
rpm -ivh mysql-community-libs
-8.0.25-1.el7.x86_64.rpm--nodeps
rpm -ivh mysql-community-client
-8.0.25-1.el7.x86_64.rpm--nodeps
rpm -ivh mysql-community-server
-8.0.25-1.el7.x86_64.rpm--nodeps
5、启动 mysql 服务
systemctl start mysqld.service
6、mysql 自动给 root 用户 设置随机密码
grep "password" /var/log/mysqld.log
查看初始命令
7、 重设密码:
调整密码验证规则:否则设置密码简单无法通过校验
set global validate_password.policy=0;
set global validate_password.length=1;
alter user 'root'@'localhost' identified by '新密码';
Centos 7 忘记mysql的root密码
1、关闭mysql服务
service mysqld stop
停止
2、修改 mysql 的配置文件:vim /etc/my.cnf
添加skip-grant-tables
设为无命令进入
3、启动服务service mysqld start
启动
4、登录mysqlmysql -u root -p
密码未空直接回车
5、选择设局库use mysql;
6、flush privileges;
后
7、修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
修改密码若提示:
Your password does not satisfy the current policy requirements
,表示密码设置简单,则须调整密码验证规则
MySQL 8.0 调整密码验证规则:
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
8、退出
exit
9、关闭服务service mysqld stop
10、重新进入my.cnf
配置文件vim /etc/my.cnf
,把之前添加的skip-grant-tables删除
至此 密码修改完毕。
开启服务并进入mysql
若无法启动mysql服务,通过查看日志
vim /var/log/mysqld.log
解决问题
Shell 编程
Shell : 命令解释器
shell 脚本执行方式
Shell 脚本
脚本要求:
1、以!/bin/bash
开头
2、须有可执行权限
;chmod
指令修改文本权限1、
vim hello.sh
2、chmod u+x hello.sh
增加用户可执行权限
3、./hello.sh
执行shell
脚本相对路径或绝对路径
执行脚本
sh hello.sh
cat hello.sh
查看脚本内容
shell 变量
运行shell时,会同时存在三种变量:
局部变量
局部变量在脚本或命令中定义
,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
Linux Shell 中的变量分为 :
使用set
指令查看当前 shell 中的所有变量;echo $变量
查看变量内容
系统变量:如
$PATH,$HOME,$USER ,...........
;
自定义变量:
基本语法:
1、定义变量 :变量名=值禁止加空格
2、撤销变量:unset
变量
3、声明静态变量:readonly
变量,注意:静态变量无法使用unset
cat -n var.sh
显示按行显示脚本内容
在 vim 编辑器中 输入nu 命令
可以显示 鼠标所在行的行号及内容
命令返回值赋给变量 两种方式:
设置环境变量
export 变量名=变量值
将 shell 变量 输出为环境变量/全局变量
source 配置文件
让修改后的配置信息立即生效
echo $变量名
查询环境变量的值
修改/opt/profile文件: 末尾添加:
export TOMCAT=/opt/tomcat
source /etc/profile
echo $TOMCAT
或echo "tomcat: $TOMCAT"
多行注释:
#!/bin/bash
:<<!
#多行注释
echo "hello"
echo "hello"
!
shell 程序位置参数变量(传参)
预定义变量 — 不多
运算符、 流程控制(if,case,for ,while)
expr \* , / , %
; 乘 除 取余 ** expr : expression **
if
if [ condition ]
中括号与条件判断式之间必须有空格
then codes
enif [ condition ]
then codes
fi
case
case $变量名 in
"value_1") codes
;;
"value_2") codes
;;
"*") 以上条件均不满足codes
;;
esac
for
# 离散量 $* 与 $@ 区别
for 变量 in value_1 value_2 value_3
docodes
done
# 范围量
for ((变量赋初值;循环条件;变量变化)) 注意 for 循环条件表达式 与 while 循环条件表达式的区别
docodes
done
while
while [ condition ] 注意存在空格 中括号 使用 条件运算符 呢块
do codes
done
read 读取控制台输入 – 程序交互
read (选项) (参数)
-p
指定读取值时的提示符
-t
指定等待时间/秒
函数
系统函数 - basename (获取文件名)、dirname (获取文件路径)
basename
: 返回完整路径最后 / 部分 , 常用于获取 文件名
basename pathname suffix
; suffix 为 后缀名
basename 命令会删除 pathname 字符串中 所有的前缀包括最后一个/
字符,然后将字符串显示出来
若 suffix 被指定了,basename 会将 pathname 字符串中的 后缀 去掉
dirname
: 返回完整路径最后 一个 / 的前面部分 , 常用于返回文件路径
部分
dirname 文件绝对路径
☆自定义函数
shell 编程案例— 备份MySQL数据 – 菜
python - hello world
vim hello.py
python3 hello.py
传送门
【小白入门 通俗易懂】2021韩顺平 一周学会Linux
CentOS7忘记mysql的root密码_处理方法.
解决MySQL8.0报错:Unknown system variable 'validate_password_policy’
Job for mysqld.service failed because the control process exited with error
Linux:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cann
【报错】ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds t
完美解决 ERROR 1064 (42000): You have an error in your SQL…
shell 学习笔记1-什么是shell,shell变量
什么是环境变量,Linux环境变量及作用
☆Linux下的环境变量
Linux学习笔记 -- rpm 与 shell 编程相关推荐
- 【Linux】Linux学习(四)Shell编程
Linux学习(四)Shell编程 Shell概述 Shell脚本入门 变量 系统预定义变量 自定义变量 特殊变量 运算符 条件判断 流程控制(重点) if判断 case语句 for循环 while循 ...
- 《Linux编程》学习笔记 ·003【Shell编程】
注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 Tips:其实主要也就是把菜鸟教程上的shell编程教程过了一 ...
- linux学习笔记-rpm
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" rpm 执行安装包 二进制包(Binary)以及源代码 ...
- Linux学习笔记四--Bash Shell
查看某一命令是否是来自于外部命令还是内置于bash中:type [-tpa] name 也可用来查找命令,如:type -p touch 有/bin/touch:type -p vbird无 ...
- 【Linux学习笔记】 -- 基本Shell命令
常见的目录名均基于文件系统层级标准(filesystem hierarchy standard,FHS) Linux的四个部分: 1 Linux内核:控制所有硬软件,必要时分配硬件根据需要执行软件 系 ...
- 写得蛮好的linux学习笔记五-认识SHELL(收藏)
认识SHELL alias 显示当前所有的命令别名 alias lm="ls -al" 命令别名 unalias lm 取消命令别名 type ...
- 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】
⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...
- Linux学习笔记(3)- 网络编程以及范例程序
Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...
- 史上最牛最强的linux学习笔记 10.shell基础
史上最牛最强的linux学习笔记 10.shell基础 写在最前面: 本文是基于某站的视频学习所得,第一个链接如下: https://www.bilibili.com/video/BV1mW411i7 ...
最新文章
- java向量vector类,java数据结构——Vector(向量类)
- Android通过ShareSDK实现新浪微博分享
- 浅谈 UC 国际信息流推荐
- PAT甲级1111 Online Map (30分):[C++题解]两次dijkstra求单源最短路、保存路径、长度最短、时间最短
- c++求矩阵的秩_Matlab:矩阵的秩,简化梯形矩阵和线性方程组
- java jpa注解哪个包好,Spring Data JPA 中常用注解详解
- c#_导出table功能
- css简单的数学运算
- grpc java 泛型_关于使用GRPC遇到的BUG-Go语言中文社区
- Oracle修改数据时提示“record is locked by another user”的解决办法
- 并发减库存,怎么保证不超卖?
- kali暴力破解WiFi
- 电子发票专用的邮箱—理票侠
- Jzoj5424 凤凰院凶真
- mongodb类型转换
- html后代元素选择器,怎么使用html5中的后代选择器?后代选择器的用法详解!
- 5G通信呼啸而来,对未来WiFi覆盖有何影响?
- 自定义组合键进入u-boot
- ffmpeg学习笔记之创建音频解码器失败 avcodec_open2() 返回值为-22
- 小王的架构师之旅路----面试
热门文章
- 树磁盘[HBase] LSM树 VS B+树
- 父游标、子游标及共享游标
- SqlServer2008 数据库同步的两种方式(Sql JOB)
- Springboot构建Echarts数据可视化
- 乐玩自动化测试模块_深圳大数据测试培训推荐班
- python数据库操作批量sql执行_Python批量修改数据库执行Sql文件
- LinuxC语言のUDP简易聊天室 sokcet
- 图论最短路及生成树(Prim,Djikstra,Spfa,Bellan-ford,kruskal,topsort)
- ajax点击a load,jQuery:在ajax load()之后运行脚本
- [USACO12OPEN]Unlocking Block【BFS / 广搜】