当前位置: 首页 > news >正文

「Linux系列」Shell介绍及起步

文章目录

  • 一、Shell简介
  • 二、Shell脚本
  • 三、Shell解释器
  • 四、相关链接

一、Shell简介

Shell本身是一个用C语言编写的程序,它既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

Shell的基本功能

  1. 执行命令:Shell最基本的功能就是执行命令。用户可以在Shell中输入命令并执行,Shell会将命令转换为操作系统能够理解的指令,并执行相应的操作。
  2. 管理文件和目录:Shell还可以用于管理文件和目录。用户可以使用Shell命令来创建、删除、移动和复制文件和目录。
  3. 管理环境变量:环境变量是操作系统中用于存储系统设置和配置信息的变量。用户可以使用Shell命令来设置、修改和删除环境变量。
  4. 管道和I/O重定向:Shell还支持管道和I/O重定向。管道是一种将一个命令的输出作为另一个命令的输入的机制;I/O重定向是一种将命令的输入或输出重定向到文件或其他设备的机制。

Shell的类型和变量

Shell有多种类型,如Bourne Shell、Bash Shell、Korn Shell等。每种Shell都有自己的特点和语法。

Shell中的变量包括字符串、整型、浮点型、布尔型、数组和字典等。用户可以根据需要定义和使用这些变量。

Shell脚本的执行方法

  1. 切换到shell脚本所在的目录,使用“./脚本名”的方式执行。
  2. 使用绝对路径的方式执行bash shell脚本。
  3. 切换到工作目录下,直接使用bash或sh来执行bash shell脚本,无需给shell脚本加执行权限。

Shell编程基础

Shell编程涉及到条件判断、循环结构、函数定义和调用等基本概念。通过掌握这些基础,用户可以编写出复杂的Shell脚本,实现自动化任务和批量处理等功能。

二、Shell脚本

Shell 脚本是一种用 Shell 语言编写的程序,用于自动化执行一系列常见的系统任务。Shell 脚本结合了常见的 Shell 命令、条件判断、循环控制、变量和函数等,以完成复杂的操作。

一个简单的 Shell 脚本示例,演示基本的脚本结构和常用命令

#!/bin/bash
# 这是一个简单的 Shell 脚本示例# 打印欢迎信息
echo "欢迎使用 Shell 脚本!"# 声明一个变量
NAME="张三"# 输出变量的值
echo "我的名字是:$NAME"# 使用条件判断
if [ -f "somefile.txt" ]; thenecho "somefile.txt 文件存在。"
elseecho "somefile.txt 文件不存在。"
fi# 使用循环结构
for i in {1..5}
doecho "这是循环的第 $i 次迭代。"
done# 调用系统命令
ls -l

在上面的脚本中:

  • 第一行 #!/bin/bash 指定了脚本使用的 Shell 解释器。
  • 注释以 # 开头,用于解释脚本的作用或说明某些代码段。
  • echo 命令用于输出文本到终端。
  • 变量使用 NAME="张三" 的形式声明,并在使用时通过 $NAME 引用。
  • if 语句用于条件判断,[ -f "somefile.txt" ] 检查文件是否存在。
  • for 循环用于重复执行一系列命令。
  • ls -l 是一个系统命令,用于列出当前目录下的文件和目录的详细信息。

要运行这个脚本,你需要将它保存到一个文件中,比如命名为 myscript.sh。然后,你需要给这个文件执行权限,使用 chmod 命令:

chmod +x myscript.sh

之后,你就可以通过以下方式运行这个脚本:

./myscript.sh

或者:

bash myscript.sh

Shell 脚本提供了巨大的灵活性,可以执行几乎任何你可以在命令行上手动执行的任务,而且可以通过组合命令和逻辑结构来创建复杂的自动化任务。

三、Shell解释器

Shell常用解释器包括Bash、sh、csh和ksh等。这些解释器各有特点,提供了丰富的功能和灵活性,使得用户可以更方便地进行系统操作和任务自动化。

  1. Bash(Bourne Again Shell)
    • Bash是最常用的Shell解释器之一,也是许多Linux系统的默认Shell。
    • 它提供了许多强大的功能,如命令行编辑、命令历史、命令别名等。
    • Bash的的语法与Bourne Shell(sh)兼容,但增加了一些扩展和特性。

案例:使用Bash编写一个简单的脚本,用于输出当前登录的用户信息。

#!/bin/bash
# 输出当前登录用户信息
echo "当前登录用户: $USER"
echo "用户家目录: $HOME"

保存为user_info.sh,赋予执行权限后运行:

chmod +x user_info.sh
./user_info.sh
  1. sh(Bourne Shell)
    • sh是Unix系统上的标准Shell,也是最早的Shell解释器之一。
    • 它的语法相对简单,主要用于编写脚本。

案例:使用sh编写一个脚本,用于打印指定的文本信息。

#!/bin/sh
# 使用sh打印文本信息
echo "Hello, this is a script running with sh."

保存为text_print.sh,赋予执行权限后运行:

chmod +x text_print.sh
./text_print.sh
  1. csh(C Shell)
    • C Shell使用C语言风格的语法,提供了一些便于程序员使用的功能,如命令行编辑和作业控制。
    • 它在某些Unix系统中是默认的Shell解释器。
  2. ksh(Korn Shell)
    • Korn Shell是由Bourne Shell和C Shell发展而来的Shell解释器。
    • 它继承了两者的特性,并添加了一些新的功能和语法,如命令历史、命令别名等。

每种Shell解释器都有其独特的语法和特性,用户可以根据需要选择合适的解释器来编写脚本。在实际应用中,Bash由于其强大的功能和广泛的兼容性,通常是最常用的选择。

四、相关链接

  1. Linux官网
  2. Linux常用命令
  3. CentOS官网下载地址
  4. 「Linux系列」Linux简介及常见的Linux系统
  5. 「Linux系列」Linux 系统启动过程
  6. 「Linux系列」Linux 系统目录结构/忘记密码解决方法
  7. 「Linux系列」Linux 远程登录/文件基本属性
  8. 「Linux系列」Linux 文件与目录管理
  9. 「Linux系列」Linux 如何学习用户和用户组管理
  10. 「Linux系列」聊聊Linux磁盘管理的事
  11. 「Linux系列」聊聊vi/vim的3种命令模式
  12. 「Linux系列」了解下Linux yum(包管理工具)
http://www.lryc.cn/news/322038.html

相关文章:

  • 用pdf2docx将PDF转换成word文档
  • STM32U5 ADC 自校准不成功的问题分析
  • 使用光标精灵更换电脑鼠标光标样式,一键安装使用
  • 微服务day04(上)-- RabbitMQ学习与入门
  • Halcon 3D 平面拟合(区域采样、Z值过滤、平面拟合、平面移动)
  • npm 插件 中 版本号为 星号 是什么意思
  • Codeforces\ Round\ 930(C.Bitwise Operation Wizard)
  • 监控系统prometheus+grafana+发送告警信息
  • IoT 物联网场景中如何应对安全风险?——青创智通
  • 滴滴基于 Clickhouse 构建新一代日志存储系统
  • 虚拟主机去除index.php目录地址
  • JD商品详情原数据 API 返回值说明
  • python日常刷题(一)
  • Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库
  • Stable Diffusion训练图片时,简陋的数据处理
  • 如何在ubuntu 18.04中升级python 3.6到3.7
  • python爬虫基础实验:通过DBLP数据库获取数据挖掘顶会KDD在2023年的论文收录和相关作者信息
  • 简单记录一次帮维修手机经历(Vivo x9)
  • ap聚类是什么
  • C数据类型(C语言)---变量的类型决定了什么?
  • axios、axios二次封装、api解耦
  • HTML 特殊元素:展示PDF、展示JSON 数据
  • 算法·动态规划Dynamic Programming
  • 鸿蒙Harmony应用开发—ArkTS-转场动画(共享元素转场)
  • 【C语言】循环语句(语句使用建议)
  • Spring Data访问Elasticsearch----响应式Reactive存储库
  • 堆排序(c语言)
  • 开源IT自动化运维工具Ansible解析
  • 【C++】仿函数优先级队列反向迭代器
  • UE4_调试工具_绘制调试球体