Linux系列--shell基础语法

2024-06-04 11:34:02 浏览数 (2)

一、shell简介

  1. shell是一种用C语言编写的程序,是连接Linux系统的桥梁,既是一种命令语言也是一种程序设计语言。
  2. shell本质上讲是一个应用程序,这个应用程序提供一种可视化界面,我们通常是在该界面访问Linux的内核系统。
  3. 我们通常所说的shell,指的是shell脚本(shell script),但我们要清楚shell和shell script是两个完全不同的概念。

二、shell解释器

  • Linux的shell种类有如下几种: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) 我们常用的shell解释器是Bourne Again Shell(/bin/bash)和Bourne Shell(/usr/bin/sh或/bin/sh)。 Bourne Again Shell是免费的,也是大多数Linux系统默认的shell。 我们在编写shell脚本的时候,通常都会在第一行标记: #!/bin/bash。#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

三、shell变量

变量的命名规则:

  • 只包含字母、数字和下划线: 变量名可以包含字母(大小写敏感)、数字和下划线 _,不能包含其他特殊字符。
  • 不能以数字开头: 变量名不能以数字开头,但可以包含数字。 避免使用 Shell 关键字: 不要使用Shell的关键字(例如 if、then、else、fi、for、while 等)作为变量名,以免引起混淆。
  • 使用大写字母表示常量: 习惯上,常量的变量名通常使用大写字母,例如 PI=3.14。
  • 避免使用特殊符号: 尽量避免在变量名中使用特殊符号,因为它们可能与 Shell 的语法产生冲突。
  • 避免使用空格: 变量名中不应该包含空格,因为空格通常用于分隔命令和参数。

四、shell参数

在执行shell脚本时可以对脚本传递参数,脚本内获取参数的格式为 n,n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数。 例如可以使用 1、2 等来引用传递给脚本的参数,其中 1 表示第一个参数,

关于参数的一些特殊字符整理:

参数名称

参数说明

$#

表示传递参数的个数

$$

表示 脚本运行的当前进程ID号

$!

表示后台运行的最后一个进程的ID号

$*

以一个单字符串显示所有向脚本传递的参数,使用时要用"$*“引号括起来,以”$1 $2 … $n"的形式输出所有参数

$@

同$*,使用时也要用引号括起来,以"$1" “ 2 " … " 2" … " 2"…"n” 的形式输出所有参数

$?

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。通常用在if [ $? -ne 0 ]; then条件判断语句中

$(…)

代表这部分是命令替换,它会执行括号内的命令并将其输出作为外部命令的参数

五、shell命令

命令名称

命令功能说明

cat

用于查看文件内容

grep

用于用于搜索文本中的模式,[grep -i ] -i参数表示忽略大小写

cut

用于分割并裁剪文本 例如 [cut -d = -f 2 ] -d = 表示以等号(=)为分隔符,-f 2 表示选取第二个字段,即等号后面的部分

tr

命令用于字符替换或删除 tr -d ‘[ ]’ -d 参数表示删除指定字符,‘[ ]’ 表示空格,所以此命令将删除提取出的字符串中的所有空格

set

是流编辑器,用于对输入流进行各种文本转换操作,例如【sed ‘s/r//g’】‘s/r//g’ 是一个替换命令,寻找每一行结尾的回车符(r),并将它们替换为空(即删除)

[ ! -d “$LOCAL_LOG_PATH” ]

这是一个条件测试命令,检查变量$LOCAL_LOG_PATH所表示的路径是否是一个已存在的目录

mkdir

创建文件命令

| while read LINE; do … done

将文件内容通过管道(|)传递给while循环,每次从文件中读取一行到变量LINE

fs -ls

fs 是一个简写形式,代表文件系统(File System)操作, -ls 是Hadoop文件系统命令的一个选项,作用是列出指定目录或文件的信息


结束语

觉得有用的话点个赞

0 人点赞