Linux应知应会(三)

6、rpm工具使用

6.1 概述

RPM(RedHat Package Manager),红帽子软件包管理工具,相似windows里面的setup.exe,是Linux系列操做系统里面的打包安装工具,它虽然是Redhat的标志,但理念是通用的。html

RPM包的名称格式:Apache-1.3.23-11.i386.rpm前端

  • “Apache”:软件名称
  • “1.3.23-11”:软件的版本号,主版本和此版本
  • “i386”:是软件运行的硬件平台
  • “rpm”:文件扩展名,表明rpm包

6.2 经常使用命令

6.2.1 查询

基本语法

rpm -qa  :查询所安装的全部rpm软件包node

rpm -qa | grep rpm软件包  :过滤软件包shell

 

 

 6.2.2 卸载

基本语法

rpm -e rpm软件包编程

rpm -e --nodeps 软件包 :--nodeps若是该rpm包的安装依赖其余包,即便其余包没有也能够强行卸载。windows

 

 

 6.2.3 安装

基本语法

rpm -ivh rpm包全名centos

  • -i :install,安装
  • -v :verbose,显示详细信息
  • -h :hash,进度条
  • --nodeps :不检测依赖进度

 

 

 7、shell编程

7.1 概述

shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户能够用shell来启动、挂起、中止甚至是编写一些程序。bash

Shell仍是一个功能很是强大的编程语言,易测试、易调试、灵活性强。Shell是解释执行的脚本语言,在shell中能够调用Linux系统命令。服务器

 

 

 7.2 shell脚本的执行方式

  1. echo输出命令

基本语法

echo 【选项】【输出内容】网络

选项:-e :支持反斜线控制的字符转换

控制字符 做用
\\ 输出\自己
\a 输出警告音
\b 退格键,也就是向左删除键
\c 取消输出行末的换行符,和“-n”选项一致
\e ESCAPE键
\f 换页符
\n 换行符
\r 回车键
\t 制表符,也就是TAB键
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符。其中0为数字0,nnn是三位八进制数
\xhh 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数

 

    2. 第一个shell脚本

  (1)需求:建立一个shell脚本,输出hello world

  (2)实操:

 

 在helloworld.sh中输入以下内容:

 

   (3)脚本的经常使用执行方式

  • 第一种:输入脚本的绝对路径或相对路径

  ①首先要赋予helloworld.sh脚本的+x权限

 

   ②执行脚本

 

  • 第二种:bash或sh+脚本(不用赋予+x权限)

 

 7.3 shell中的变量

(1)Linux Shell中的变量分为“系统变量”和“用户自定义变量”,能够经过set命令查看系统变量

(2)系统变量:$HOME、$PWD、$SHELL、$USER等等

(3)显示当前shell中全部变量:set

7.3.1 定义变量

基本语法

变量=值

变量定义规则

  • 变量名称能够由字母、数字和下划线组成,可是不能以数字开头
  • 等号两侧不能有空格
  • 变量名称通常习惯为大写
  • 双引号和单引号有区别,双引号仅将空格脱意,单引号会将全部特殊字符脱意

7.3.2 将命令的返回值赋给变量

A='ls -la'反引号,运行里面的命令,并把结果返回给变量A

A=$(ls -la)等价于反引号

7.3.3 设置环境变量

基本语法

  • export 变量名=变量值  :设置环境变量的值
  • echo $变量名  :查询环境变量的值
  • source 配置文件  :让修改后的配置信息当即生效

7.3.4 位置参数变量

基本语法

  • $n  :n为数字,$0表明命令自己,$1-$9表明第一到第九个参数,10以上的参数须要用大括号包含,如${10}
  • $*  :这个变量表明命令行中全部的参数,$*把全部的参数当作一个总体
  • $@  :这个变量也表明命令行中全部的参数,可是$@吧每一个参数区分对待
  • $#  :这个变量表明命令行中全部参数的个数

7.3.5 预约义变量

基本语法

  • $?  :最后一次执行的命令的返回状态。若是这个变量的值为0,证实上一个命令正确执行,若是这个变量的值不为0,则证实上一个命令执行不正确了。
  • $$  :当前进程的进程号PID
  • $!  :后台运行的最后一个进程的进程号PID

7.4 运算符

基本语法

  • “$((运算式))”或“$[运算式]
  • expr m + n” ,注意expr运算符之间要有空格

7.5 条件判断

7.5.1 判断语句

基本语法

【 condition 】:注意condition先后要有空格,非空返回true,可以使用$?验证(0为true,>1为false)

7.5.2 经常使用判断条件

(1)两个整数之间比较

= -lt -le -eq -gt -ge -ne
字符串比较 小于 小于等于 等于 大于 大于等于 不等于

(2)按照文件权限进行判断

-r -w -x
有读的权限 有写的权限 有执行的权限

(3)按文件类型进行判断

-f -e -d
文件存在而且是一个常规文件 文件存在 文件存在且是一个目录

7.6 流程判断

7.6.1 if判断

基本语法

if [ 条件判断式 ];then

  程序

fi

或者

if [ 条件判断式 ]

  then

    程序

fi

注意:[ 条件判断式 ],中括号和条件判断式之间必须有空格

7.6.2 case语句

基本语法

case $变量名 in

“值1”)

  若是变量的值等于值1,则执行程序1

  ;;

“值2”)

  若是变量的值等于值2,则执行程序2

  ;;

……省略其余分支……

*)

  若是变量的值都不是以上的值,则执行此程序

  ;;

esac

 

 7.6.3 for循环

基本语法

(1)for 变量 in 值1 值2 值3 ...

  do

    程序

  done

 

 

 

 

 (2)for((初始值;循环控制条件;变量变化))

  do

    程序

  done

  

7.6.4 while循环

基本语法

while [ 条件判断式 ]

  do

    程序

  done

 

 

 

 

 7.7 read读取控制台输入

基本语法

read 【选项】【参数】

选项:

  • -p  :指定读取值时的提示符
  • -t  :指定读取值时等待的时间(秒)

参数:变量:指定读取值的变量名

 

 

 7.8 函数

7.8.1 系统函数

basename基本语法

basename [pathname] [suffix]

basename [string] [suffix]:basename命令会删除掉全部的前缀包括最后一个“/”字符,而后将字符串显示出来。

选项:suffix为后缀,若是suffix被指定了,basename会将pathname或string中的suffix去掉。

dirname基本语法

dirname 【文件绝对路径】:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),而后返回剩下的路径(目录的部分)。

 

 

 7.8.2 自定义函数

基本语法

[ function ] funname[()]
{
    Action;
    [return int;]
}

function start() / function start / start()

注意:(1)必须在调用函数地方以前,先声明函数,shell脚本是逐行运行。不会像其余语言同样先编译。

      (2)函数返回值,只能经过$?系统变量得到,能够显示加:return返回,若是不加,将以最后一条命令运行结果做为返回值。return后跟数值n(0-255)。

打印出比你小的全部数(单参)

#!/bin/bash
function LoopPrint()
{
    count=0;
    while [ $count -lt $1 ]
    do
        echo $count;
        expr ++count;
        sleep 1;
    done
    return 0;
}
read -p "please input the number:" n;
LoopPrint $n;

多参

#!/bin/bash
function LoopPrint()
{
    echo $2
    count=0;
    while [ $count -lt $1 ];
    do
        echo $count;
        expr ++count;
        sleep 1;
    done
    return 0;
}
read -p "please input the num1:" n;
read -p "please input the num2:" m;
LoopPrint $n $m;

8、yum仓库配置

8.1 概述

YUM(Yellow dog Updater,Modified)是一个在Fedora和Redhat以及CentOS中的shell前端软件包管理器。基于RPM包管理,可以从指定的服务器自动下载RPM包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的安装包,无需繁琐的一次次下载、安装。

8.2 yum经常使用命令

基本语法

yum install -y httpd 安装httpd并确认安装
yum list 列出全部可用的package和package组

yum clean all

清除全部缓冲数据
yum deplist httpd 列出一个包全部依赖的包
yum remove httpd 删除httpd

8.3 关联网络yum源

(1)前期文件准备

  • 前提条件Linux系统必须能够联网
  • 在Linux环境中访问
    http://mirrors.163.com/.help/centos.html
    

    在使用说明中点击CentOS8在点击保存

  • 查看文件保存的位置

(2)替换本地yum文件

  把下载的文件移动到/etc/yum.repos.d/目录

mv CentOS8-Base-163.repo /etc/yum.repos.d

  进入到/etc/yum.repos.d/目录,用CentOS8-Base-163.repo替换CentOS-Base.rep

mv CentOS8-Base-163.repo CentOS-Base.rep

(3)安装命令

yum clean all
yum makecache

 

 

============================================================================================================

2020-07-16

23:34:58