Linux运维之初识shell

这篇具有很好参考价值的文章主要介绍了Linux运维之初识shell。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.补充知识点

1.系统定时任务

系统定时任务需要用到crontab命令,但是使用此命令有一个前提,即需要打开crond服务。为了不那么复杂,可以直接使用我之前学的systemctl命令重新启动crond服务。

  • 语法:``crontab [-e -l -r] `

  • 选项:-e 编辑crontab定时任务;-l 查询系统crontab任务;-r 删除当前用户的所有crontab任务

  • 参数:

    项目 含义 范围
    第一个“*” 一小时当中的第几分钟 0-59
    第二个“*” 一天当中的第几个小时 0-23
    第三个“*“ 一个月当中的第几天 1-31
    第四个“*” 一年当中的第几天 1-12
    第五个“*” 一周当中的星期几 0-7
  • 参数特殊符号:

    特殊符号 含义
    * 代表任意时间
    , 代表不连续的时间
    - 代表连续的时间
    */n 代表每隔多久执行一次

注意,这里使用crontab -e进入编辑后(界面此时是一个vim编辑器),先输入要设置的5个“*”,然后输入命令保存即可。

2.克隆虚拟机

之前我们了解了虚拟机快照技术,这对我们个人平时试错有很大的帮助,同时这里再补充一种技术,克隆虚拟机。它不仅能有助于恢复,同时对如果想把我们的虚拟机分享给别人(假设你的虚拟机配置了许多东西,别人重新安装配置很麻烦,而你们需要相同工作环境),那么这个时候使用克隆虚拟机技术就相当方便了。

如果你需要使用克隆技术,这里有一个其他博主的链接,或许对你有帮助虚拟机克隆

二.初识shell

1.shell

Shell (外壳)是一个用C语言编写的程序,它是用户使用Linux 的桥梁。Shell既是一种命令语言,又是一种程序设计语言。

Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

2.脚本

脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。常见的脚本: JavaScript, VBScript,ASP, JSP, PHP, SQL, Perl, Shell, python, Ruby, JavaFX,Lua等。

3.常见shell

在Linux中有很多类型的shell, 不同的shell具备不同的功能,shell 还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash,流行的shell 有ash、bash、 ksh、 csh、zsh等,不同的shell都有自己的特点以及用途。

大多数Linux系统默认使用的shell, bash shell是Bourne shell的一个免费版本,它是最早的Unix shell, bash 还有一个特点, 可以通过help 命令来查看帮助。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。

4.shell基础

  • 约定俗成,文件以.sh结尾代表一个shell文件
  • shell文件开始必须是#!/bin/bash,代表选择这个版本解释器
  • 执行shell文件。使用命令bash(sh) 路径

其实执行shell文件的方式有许多中,但是上面这种不需要任何其他命令辅助,其他方式或多或少都有一些问题,使用这一种即可。

三.shell变量

1.系统预定义变量

$HOME$PWD$SHELL$USER等是系统预定义的变量,是环境变量,在所有的shell文件中都能使用。

关于环境变量(全局变量)或者说系统预定义变量可以参考我的上一篇博客:环境变量

补充:

Bash是一种Unix/Linux操作系统的命令行解释器,它允许用户在终端上输入命令并执行它们。可以单独使用bash命令来启动一个新的Bash shell会话,在该会话中,您可以执行各种命令和操作。例如,在终端上输入bash并按Enter键可以启动新的Bash shell会话。此时,您将看到一个新的命令提示符,表示您现在位于一个新的Bash shell中,可以在此处输入各种命令以进行操作。要退出Bash shell会话,请输入exit并按Enter键即可。

2.自定义变量

1.基本语法

  • 定义变量:变量名=变量值,注意,=号前后不能有空格
  • 撤销变量:unset 变量名
  • 声明静态变量(只读变量,无法更改):readonly 变量,注意:不能 unset

2.变量定义规则

  • (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
  • (2)等号两侧不能有空格
  • (3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
  • (4)变量的值如果有空格,需要使用双引号或单引号括起来

3.演示

Linux运维之初识shell

3.特殊变量

1. $n

$n (功能描述:n 为数字,$0 代表该脚本名称,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})

 touch parameter.sh
 vim parameter.sh
#!/bin/bash
echo '==========$n=========='
echo $0
echo $1
echo $2
[atguigu@hadoop101 shells]$ chmod 777 parameter.sh
[atguigu@hadoop101 shells]$ ./parameter.sh cls xz
==========$n==========
./parameter.sh
cls
xz

2.$#

$# (功能描述:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性)

 vim parameter.sh
#!/bin/bash
echo '==========$n=========='
echo $0
echo $1
echo $2
echo '==========$#=========='
echo $#
[atguigu@hadoop101 shells]$ chmod 777 parameter.sh
[atguigu@hadoop101 shells]$ ./parameter.sh cls xz
==========$n==========
./parameter.sh
cls
xz
==========$#==========
2

3.$*、$@

  • $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
  • $@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
 vim parameter.sh
#!/bin/bash
echo '==========$n=========='
echo $0
echo $1
echo $2
echo '==========$#=========='
echo $#
echo '==========$*=========='
echo $*
echo '==========$@=========='
echo $@
[atguigu@hadoop101 shells]$ ./parameter.sh a b c d e f g
==========$n==========
./parameter.sh
a
b
==========$#==========
7
==========$*==========
a b c d e f g
==========$@==========
a b c d e f g

4.$?

$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)

./helloworld.sh
hello world
 echo $?
0

四.运算符和条件判断

1.运算符

基本语法:$((运算式))$[运算式]

在其他语言中,定义变量的方式你应该不陌生,但是如果在shell中定义变量a=1+5,你可以尝试一下他输出的是什么,针对shell里面的运算,有一个新的命令expr可以计算,但由于乘法运算的星号在shell中有其他意思,它会报错,所以才设置了运算符。

实际操作:

Linux运维之初识shell

2.条件判断

语法:(1)test condition (2)[ condition ](注意 condition 前后要有空格)两种方式任选一种即可
注意:条件非空即为 true,[ atguigu ]返回 true,[ ] 返回 false。

常用判断条件

(1)两个整数之间比较

  • -eq 等于(equal) -ne 不等于(not equal)
  • -lt 小于(less than) -le 小于等于(less equal)
  • -gt 大于(greater than) -ge 大于等于(greater equal)

注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。

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

  • -r 有读的权限(read)
  • -w 有写的权限(write)
  • -x 有执行的权限(execute)

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

  • -e 文件存在(existence)
  • -f 文件存在并且是一个常规的文件(file)
  • -d 文件存在并且是一个目录(directory)

多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)

演示:

Linux运维之初识shell

五. read 读取控制台输入

在shell变量中我们知道输入.sh文件参数可以通过特殊变量$n的意义进行操作,但是不可能总是这种输入,shell里面也有类似于C语言中scanf()函数的键盘输入函数,即这里用的read函数。

1.基本语法

  • 语法:read (选项) (参数)
  • ①选项:
    -p:指定读取值时的提示符;
    -t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待
  • ②参数
    变量:指定读取值的变量名

2.演示代码

$ touch read.sh
$ vim read.sh
#!/bin/bash
read -t 7 -p "Enter your name in 7 seconds :" NN
echo $NN

上面两行为终端输入命令,下下面三行即read.sh文件的内容,运行即可。

六.说明

新星计划:Linux运维@刘晨阳导师创作打卡4!文章来源地址https://www.toymoban.com/news/detail-426937.html

到了这里,关于Linux运维之初识shell的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS运维之根目录扩容

    若home分区有足够的空间且从来不使用,则可以将home分区空间扩容给/根目录 1.解除挂载并删除/home卷 若提示分区正在被使用,则通过名称查询占用进程并将进程杀死 2.分配冗余空间给根目录 1.分区 使用fdisk等命令对冗余空间创建一个分区 2.创建pv卷 使用pvcreate命令创建pv卷 3

    2024年01月18日
    浏览(57)
  • linux运维知识点

    Linux作为一种开源操作系统,被广泛地应用于企业、政府和私人用户的计算机系统中,其优越的稳定性、安全性和灵活性使得 Linux 成为了云计算、大数据和人工智能等最热门领域的重要组成部分。对于从事 Linux 运维的人员来说,了解其知识点和技能是必不可少的。本文将从以

    2024年02月15日
    浏览(52)
  • 系统运维之docker磁盘爆满-搭配解决方法

    问题描述:日常巡检发现本地registry仓库磁盘爆满,如何解决?  解决步骤分析: 确定哪个文件或者目录爆满? 什么原因引起的爆满? 确认此目录或者文件作用? 确认解决方式? 配置预防手段 直接上图,查看哪里满了? 此处看出为/var/lib/docker/overlay2目录爆满 看到这里应该

    2024年01月16日
    浏览(44)
  • 初识Linux运维

    内核提供了Linux系统的主要功能,如硬件调度管理的能力。 Linux内核是免费开源的,任何人都可以查看内核的源代码,甚至是贡献源代码。 内核无法被用户直接使用,需要配合应用程序才能被用户使用。在内核之上,封装系统级应用程序,组合在一起就称之为 Linux发行版 。

    2023年04月23日
    浏览(36)
  • Apache Doris 极简运维之BE扩缩容(1)

    已部署三个BE节点并且状态显示正常运行中 CPU :1C CPU型号 :ARM64 内存 :2GB 硬盘 :36GB SSD VM镜像版本 :CentOS-7 Apahce Doris版本 :1.2.4.1 集群规模 :1FE * 3BE 注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!! 所以强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节

    2024年02月11日
    浏览(34)
  • 大数据云计算运维之Nginx反向代理与负载均衡

    一、Nginx概述 1.1 概述 Nginx(“engine x”)是一个高性能的 HTTP /反向代理的服务器及电子邮件(IMAP/POP3)代理服务器。 官方测试nginx能够支撑5万并发,并且cpu,内存等资源消耗却非常低,运行非常稳定。最重要的是开源,免费,可商用的。 Nginx还支持热部署,几乎可以做到7 *

    2024年02月11日
    浏览(58)
  • 初识Linux shell

    Linux系统可以划分为4个部分: Linux内核 :Linux系统的核心,控制着系统的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。 内核主要功能: 系统内存管理:内核通过硬件上称为交换空间的存储区域来实现虚拟内存;内核在交换空间和实际的物理内存之间反复交换

    2024年02月02日
    浏览(29)
  • 【powershell】Windows环境powershell 运维之历史文件压缩清理

    🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油! 目录 一、Power Shell概述 1.1 Windows Power Shell简介 1.2 PowerShell是什么 1.3 windo

    2024年02月04日
    浏览(67)
  • 区块链学习笔记(6(1),深入理解Linux运维的核心知识点

    (3)检查创世块文件 (4)  检查通道文件(fabric2.2及以前会用到) 创建节点的方式有两种: (1)在创建任何节点之前,必须在本机上自定义其配置文件。对于peer节点,该文件称为 core.yaml ,而orderer节点的配置文件称为 orderer.yaml; (2)使用一个docker容器,将docker节点跑在一个

    2024年04月29日
    浏览(50)
  • 【运维工程师学习三】Linux中Shell脚本编写

    Shell程序有很多, 如 Korn shell(ksh)、Bourne Again shell(bash)、C shell(包括csh与tcsh) 等等, 各主要操作系统下缺省的shell: AIX下是 Korn Shell Solaris缺省的是 Bourne shell FreeBSD缺省的是 C shell HP-UX缺省的是 POSIX shell Linux缺省的是 Bourne Again shell 但这种在命令行中的命令是即时输出结果的,不

    2024年02月11日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包