第10章:Shell基础

这里写图片描述
这里写图片描述
这里写图片描述

一、shell概述

1、介绍与功能
(1shell是命令解释器,是用户与内核交互的图形化界面
(2shell是一个功能强大的编程语言,易编写、易调试、灵活性强。在shell中可以直接调用linux中的命令。
2、分类
    Shell的两种主要语法类型有Bourne和C,这两注语法彼此不兼容。
    Bourne家族主要包括:sh、ksh、Bash、psh、zsh;
    C家族主要包括:csh、tcsh。
注:主流shell是Bash。
3、Linux中支持的shell
    /etc/shells文件中有Linux默认支持的shell类型

二、shell脚本的执行方式(shell脚本是怎么运行的?)

1、命令:echo 选项 内容
    -e  支持反斜杠\控制的字符转换
2、第一个脚本
    vi hello.sh
开始写脚本:
    #!/bin/bash   //此句话的作用是:说明hello.sh是一个Bash脚本程序
    echo -e "Hello World!\n"
保存退出:wq
3、执行脚本
(方法1)修改脚本的权限755
    chmod 755 hello.sh
    ./hello.sh
(方法2)直接用Bash执行
    bash hello.sh
注解:     
    安装dos2unix   yum -y install dos2unix

三、bash的基本功能

1、history 选项 历史命令保存文件
    -c 清空所有的命令
    -w 把缓存中的历史命令写入到历史命令保存文件~/.bash_history
注:默认保存1000条历史命令,可以在环境变量配置文件/etc/profile中修改。
2、历史和文件补全(Tab键)
3、快捷键
Ctrl + a  移动光标到行首
Ctrl + e  移动光标到行尾

Ctrl + c  强制终止
Ctrl + l  清屏

Ctrl + u  删除/剪切光标之前的行内容
Ctrl + k  删除/剪切光标之后的行内容
Ctrl + y  粘贴

4、命令的别名(给命令起了一个小名)
    alias 查看别名
    alias vi = "vim"
注1:执行命令顺序优先级:绝对路径 > 别名 > Bash内部命令 > 环境变量$PATH
注2:让别名永久生效
    vi /root/.bashrc

    删除别名unalias 别名

5、输入输出重定向

【标准输入、输出】
这里写图片描述
输出重定向 > 、 >>
这里写图片描述
输入重定向 < 、<<

命令: wc 选项 文件名
选项      -c 统计字节数
        -w 统计单词数
        -l 统计行数
例:
    wc -l < oldboy.txt   把文件oldboy.txt作为命令wc -l的输入

" 命令 << " 的用法更加少见,见下图:

这里写图片描述

6、多命令顺序执行
    ;
    &&
    ||

dd命令:主要用于磁盘复制
    dd if=输入文件 of=输出文件 bs=字节数 count=个数
if=输入文件   指定源文件或源设备
of=输出文件   指定目标文件或目标设备
bs=字节数     指定一次输入或输出多少个字节,即一个数据块
count=个数   指定输入或输出多少个数据块
例,见下图:

这里写图片描述

7、管道符  |
    命令1 | 命令2
解释:命令1的结果作为命令2的输入

grep 选项 文件/目录
选项:
    -v 反向查找
    -n 输出行号
    -i 忽略大小写

8、通配符和其它特殊符号
这里写图片描述

这里写图片描述

$符号:
    可以调用变量的值。如 name=SC; echo $name;

单引号''、双引号""的相同点、不同点:
    相同点:引号中都可以包含字符串,为了把字符串当做一个整体来看待
    不同点:单引号中的内容,会当做本身来看待,特殊字符在单引号中会失去含义; 双引号中的特殊符号不会失去特殊含义。
例,见下图:

这里写图片描述

反引号``$() :会告诉系统,反引号中的内容是系统命令
    abc=`date`
    echo $abc    

四、bash的变量
变量设置规则

1)在Bash中,默认情况下变量类型是“字符串”,如果要进行数值运算,要转换成“数值”类型。
(2)如果把变量的结果作为变量值赋值给变量,则用下面的格式:$(变量名)或`变量名`
(3)变量的叠加:格式-- "$变量名" 或者 ${变量名} 
(4)变量赋值时用等号连接,中间不能有空格;若变量的值中间有空格,要用单引号或者双引号

变量分类:

1、用户自定义的变量:举例子说明
    name=jawee 定义并初始化变量
    echo $name 变量的调用
    name=guo"$name" 或 name=guo${name} 变量叠加
    echo $name   调用本地变量
    set 查看所有的变量
    unset 变量名 :删除本地变量
本地变量和环境变量的区别:作用域的大小--->用户自定义变量只在当前shell中生效;而环境变量在当前shell和子shell中生效,如果把环境变量写入配置文件,那么会永久生效。
2、环境变量(一部分是系统自己定义好的,另外一部分也可以自己定义)
    export age=18  定义环境变量用export声明
    export name  把上面的本地变量转为环境变量
    echo $age   enho $name  调用环境变量
    env  查询环境变量
    unset 删除环境变量
系统常见的2个环境变量:
(1)PATH  系统查询命令的路径
(2)PS1   定义系统提示符的变量,看下图:

这里写图片描述
这里写图片描述

3、位置参数变量
①$n: n表示的是数字,0表示脚本的名称,1-9$9表示,10${10}表示,例子:
vim add.sh  编辑一个加法脚本
    #!/bin/bash
    num1=$1
    num2=$2
    sum=$(($num1+$num2))
    echo "sum = num1+num2 = $sum"
执行脚本:
    chmod 755 add.sh
    ./add.sh 100 1$#:返回参数的总个数
③$*与$@,相同点:都表示所有参数; 不同点:
$*:把参数看做一个整体
$@:把参数独立看待
举例子:
vim canshu.sh
    #!/bin/bash
    for i in "$*"
        do 
            echo $i
        done

    for y in "$@"
        do
            echo $y
        done
:wq

chmod 755 canshu.sh
./canshu.sh

4、预定义变量
①$? : 最后一次执行命令的返回状态:如果正确执行,返回为0;如果不正确执行,返回非0。
    用于:&& || 判断两边的执行结果是否正确
②$$ : 当前进程的进程号PID
③$! : 后台运行最后一个进程的进程号PID

5、接受键盘输入:read
read 选项 变量名
选项:
    -p 在等待read输入时,输出提示信息
    -t 指定等待时间
    -n read命令只接受指定的字符数,就会执行
    -s 隐藏输入的数据,适合保密
例:
    read -p "please input name:" -t 100 -n 10 -s name 
    echo $name
**数值运算与运算符**
    数值运算符号:+-*/等
declare 声明变量的类型
    declare [+-] [选项] [变量名]
        -  设定变量类型
        +  取消变量类型
        -i 设定为整数类型
        -x 设置为环境变量
        -p 显示变量类型
例:
    a=1 
    b=2
几种方式:
    c=$a+$b          输出结果:1+2
    d=$(($a+$b))     输出结果:3
    f=$[$a+$b]       输出结果:3
    e=$(expr $a + $b)  输出结果:3   注:运算符+两边的空格不能省略

**变量测试与内容替换**   

环境变量配置文件(简介和作用)

sorce命令:
    sorce 配置文件 或 . 配置文件    作用:让修改完的配置文件不用注销重启直接生效

系统中有下面一组环境变量配置文件:
    /etc/profile
    /etc/profile.d/*sh
    ~/.bash_profile
    ~/.bashrc
    /etc/bashrc
注:/etc/的环境变量配置文件是系统中所有用户都生效,~/的环境变量配置文件只针对于某个用户生效(~/家目录)

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

注:环境变量可以写在上面的配置文件中,写在后面的配置文件中会覆盖前面的配置文件中的环境变量,除非用变量叠加。
    /etc/profile 登陆的用户
    /etc/bashrc 不登录的用户

其他配置文件和登录信息

注销时生效的环境变量配置文件 ~/.bash_logout
历史命令配置文件  ~/bash_history
Shell登录信息

这里写图片描述

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值