Linux应知应会

Posted wsm-loveu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux应知应会相关的知识,希望对你有一定的参考价值。

六、rpm工具使用

6.1 概述

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

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

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

6.2 常用命令

6.2.1 查询

基本语法

rpm -qa  :查询所安装的所有rpm软件包

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

技术图片

 

 

 6.2.2 卸载

基本语法

rpm -e rpm软件包

rpm -e --nodeps 软件包 :--nodeps如果该rpm包的安装依赖其他包,即使其他包没有也可以强行卸载。

技术图片

 

 

 6.2.3 安装

基本语法

rpm -ivh rpm包全名

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

技术图片

 

 

 七、shell编程

7.1 概述

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

Shell还是一个功能非常强大的编程语言,易测试、易调试、灵活性强。Shell是解释执行的脚本语言,在shell中可以调用Linux系统命令。

技术图片

 

 

 7.2 shell脚本的执行方式

  1. echo输出命令

基本语法

echo 【选项】【输出内容】

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

控制字符 作用
\\ 输出本身
a 输出警告音
 退格键,也就是向左删除键
c 取消输出行末的换行符,和“-n”选项一致
e ESCAPE键
f 换页符
换行符
回车键
制表符,也就是TAB键
v 垂直制表符
nnn 按照八进制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;

八、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

以上是关于Linux应知应会的主要内容,如果未能解决你的问题,请参考以下文章

9个应知应会的单行 Python 代码

程序员应知应会之自动化运维那些事儿

网络骇客入门之网络编程:网络应知应会

前端应知应会:flex布局详解

痞子衡嵌入式:嵌入式从业者应知应会知识点 - 索引

Tkinter编程应知应会(23)-活用Canvas的对象tag