shell脚本学习记录(1)

shell脚本语言

bash

历史命令

Tab补全

命令别名设置alias

任务管理、前台、后台控制

程序化脚本

通配符

变量

概念:就是以一组文字或符号等,来替换一些设置或 一串保留数据。

echo(打印变量)

  • 加上$符

变量与变量内容以一个等号=来连接

  • 等号两边不能有空格

  • 变量只能是英文字母或数字,开头不能是数字

  • 双引号中的特殊符保持原有的意思

  • 单引号中的特殊字符则为一般文本

    • 使用转义符(\)可以让特殊字符变成文本
  • 增加变量的内容

    PATH=$PATH:/home/bin

  • 若要把局部变量变为全局变量export

  • 取消变量的方法unset

    unset 【变量】

环境变量的功能

  • 查看默认环境变量

    • env
    • export
  • set查看环境变量和自定义变量

  • PS1提示字符的设置

  • $本身就是一个变量代表这个shell的进程号

    • PID
  • ?也是一个变量代表上一个执行的命令所返回的值,成功返回0,不成功返回相应的错误代号

影响显示结果的语系变量

  • locale

    locale -a:查看linux支持的语系

  • 语系定义的文件在/etc/locale.conf

变量键盘读取、数组与说明

  • read

    read [-pt] 变量名
    -p:后面可接提示字符
    -t:后面可接等待的秒数
    用法举例:
    read swl
    #意思为给变量swl赋值
    read -p ‘快’ -t 30 swl
    #打印‘快’,并且30秒后结束。

    • 要读取来自键盘输入的变量
  • array(数组)

    • 申明数组

      • var[index]=content

        • 意思为我有一个数组var
var[1]="small min"
var[2]="big min"
var[3]="nice min"
echo "${var[1]},${var[2]},${var[3]}"
#small min,big min,nice min
  • declare

    declare 【-aixr】 变量名
    选项和参数:
    -a:将后面为变量定义为数组(array)类型。
    -i:将后面为变量定义为整数(interger)类型。
    -x:用法和export一样,就是将后面的变量变成环境变量。
    -r:将变量设置成为readonly类型,该变量不能被更改范围。
    sum=300+100
    echo $sum

    300+100

    declare -i sum=300+100
    echo $sum
    400

    • 申明变量的类型

      declare的功能:
      将变量设置为环境变量
      declare -x sum
      export | grep sum
      #declare -ix sum=“450”
      让sum变成只读属性,不可修改
      declare -r sum
      sum=testing
      #不能改
      让sum变成非环境变量
      declare +x sum ------>将-变成+可以进行取消的操作。

bash环境中数值运算,默认最多仅能达到整数形态。1/3=0

变量类型默认字符串,所以若干不指定变量类型,则1+2为一个字符串而不是计算式。

变量内容的删除、取代与替换

范例一:先让小写的path自定义变量设置的与PATH一样
path=$PATH
echo $path
#范例二:假设我不喜欢local/bin,所以要将前一个目录删掉
echo ${path#/*local/bin:}
#从代表变量内容的最前面开始向右删除,且仅删除最短的那个。
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
#以上是path本来的内容,现在来解释一下这条命令,一个#代表删除最短的,/*local/bin:,代表以/开始以local/bin:结束,*代表任意个字符。它会寻找满足条件的删除短的。
##两个#代表删除最长的。
-----------------
#是从前面开始删除,那从后面开始向前删除要使用%,和上面的#一样的用法。
-----------------------------------------
替换:
范例三:将path的变量内容的sbin替换成大写的SBIN。
也很简单。使用‘/’
echo ${path/sbin/SBIN}
#两/中间的旧字符,但是只会替换找到的第一个,后面的不替换,要替换需要加上两个/“//sbin/SBIN”
-----------------------------------
不一样替换-、:、=:?
username=${username1-root}
#username1若存在则复制给username,若不存在则给username赋值root
username=${username1:-root}
#若username为空字符串或不存在
var=${str=newer}
#给str和var变量都赋值
unset str;var=${str?无此变量}
#若无str时,则var的测试结果直接显示为“无此变量”

#若str存在,var的值会与str相同。

与文件系统及程序的限制关系ulimit

bash是可以限制用户的某些系统资源的,包括可以开启的文件数量,可以使用的Cpu时间,可以使用的内存总量

ulimit [-SHacdfltu] [配额]
-H hard limit 严格设置不能超过这个值
-S soft limit 警告的设置
-a 后面不接任何选项和参数,可列出所有的限制额度
-c 当程序发生错误时系统会将该程序在内存中的信息写成文件
-f 此shell可以建立的最大文件容量(一般为2G),单位为k
-d 程序可以使用的最大段内存容量
-l 用于锁定内存容量
-t 可以使用的最大CPU时间
#范例一:列出目前身份的所有限制数据数值
ulimit -a
#0代表没限制
范例二:限制使用者仅能建立10m一下的容量
ulimit -f 10240

命令别名设置

相当于快捷键

  • alias lm=‘ls -al | more’

  • 取消快捷键

    • unalias

history

n:数字,意思是【要列出最近的n条命令行表】
-c:将目前的shell中的所有history内容全部清掉
-a:将新增的history命令新增入hisfiles中,若没有hisfiles,则默认写入~/。bash_history
-r:将hisfiles的内容读到这个shelll中
-w:将目前的history写入hisfiles中。

历史命令除了用来查询外还可以用来执行

  • !+命令编号

一些符号的意思

\d

  • 可显示出【星期 月 日】的日期格式

\H

  • 完整的主机名

\h

  • 仅取主机名在第一个小数点之前的名字

\t

  • 显示时间,为24小时格式【HH:MM:SS】

\T

  • 显示时间,为12小时格式【HH:MM:SS】

\A

  • 显示时间,为24小时格式【HH:MM】

@

  • 显示时间,为12小时格式【HH:MM】

\u

  • 目前用户的账号名称

\v

  • BASH的版本信息

\w

  • 完整的工作目录名称

#

  • 执行的第几个命令

$

  • 提示字符,root为#,其他为$
  • 说明:第一次写CSDN,不是很了解,主要是想记录一下学习过程,以上是xmind导出的markdown,好像不能添加xmind的附件,之后再摸索吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 什么是shell脚本Shell脚本是一种编程语言,它是在Unix和Linux操作系统中使用的一种脚本语言。它可以帮助用户自动化任务,并且可以运行一系列命令。 Shell脚本通常以.sh扩展名结尾。 2. 为什么要学习shell脚本学习shell脚本可以帮助你自动化任务,提高工作效率。Shell脚本也可以帮助你编写小工具,方便你自己或其他人使用。Shell脚本还可以帮助你更好地理解Linux和Unix操作系统。 3. 如何编写一个简单的shell脚本? 首先,在命令行中输入命令nano test.sh,创建一个名为test.sh的文件。然后,在文件中输入以下内容: #!/bin/bash echo "Hello World" 接着,按下Ctrl + X,然后按下Y,最后按下Enter,保存并退出文件。接下来,您需要在命令行中输入以下命令: chmod +x test.sh ./test.sh 这将使test.sh文件可执行,并运行脚本。在命令行中,您应该看到输出“Hello World”。 4. shell脚本中的注释是什么? 注释是用于向脚本中添加说明和文档的文本。在Shell脚本中,注释以“#”开头。注释不会被脚本解释器执行,但可以帮助其他人更好地理解脚本。 5. 如何在shell脚本中使用变量? 变量是一个用于存储值的占位符。在Shell脚本中,您可以使用以下语法来定义变量: my_variable="Hello World" 您可以使用echo命令来输出变量的值: echo $my_variable 6. 如何在shell脚本中使用条件语句? 在Shell脚本中,您可以使用条件语句来执行基于条件的操作。以下是一个示例条件语句: if [ $my_variable = "Hello World" ] then echo "The variable contains Hello World" else echo "The variable does not contain Hello World" fi 7. 如何在shell脚本中使用循环? 在Shell脚本中,您可以使用for循环或while循环来执行重复的操作。以下是一个示例for循环: for i in 1 2 3 4 5 do echo $i done 以上代码将输出数字1到5。 8. 如何在shell脚本中使用函数? 在Shell脚本中,您可以使用函数来组织和重复使用代码。以下是一个示例函数: function say_hello { echo "Hello World" } 您可以通过以下方式调用函数: say_hello 9. 如何从shell脚本中读取用户输入? 在Shell脚本中,您可以使用read命令来从用户那里读取输入。以下是一个示例: echo "What is your name?" read name echo "Hello $name" 以上代码将提示用户输入他们的名字,并输出“Hello”后跟用户的名字。 10. 如何在shell脚本中使用命令行参数? 在Shell脚本中,您可以使用$1、$2、$3等变量来访问命令行参数。例如,以下是一个示例脚本,它接受两个命令行参数并将它们相加: #!/bin/bash sum=$(($1 + $2)) echo "The sum of $1 and $2 is $sum" 您可以使用以下命令来运行脚本并传递两个参数: ./test.sh 2 3 以上代码将输出“The sum of 2 and 3 is 5”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无法长大的Panda

您的鼓励是最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值