前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系列--shell基础语法

Linux系列--shell基础语法

作者头像
用户11147438
发布2024-06-04 11:34:02
1360
发布2024-06-04 11:34:02
举报
文章被收录于专栏:Linux系列

一、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文件系统命令的一个选项,作用是列出指定目录或文件的信息


结束语

觉得有用的话点个赞 👍🏻 呗。 ❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、shell简介
  • 二、shell解释器
  • 三、shell变量
  • 四、shell参数
  • 五、shell命令
  • 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档