首页 > 系统相关 >Shell入门(保姆级教学)

Shell入门(保姆级教学)

时间:2024-08-01 21:58:58浏览次数:15  
标签:bin Shell NAME sh 保姆 test echo 入门

Shell是一种命令行解释器,也是一种脚本语言,广泛应用于Unix和类Unix系统中,例如Linux。它是用户与操作系统内核交互的桥梁,通过Shell可以执行系统命令、管理文件系统、处理文本数据等。本文将带你入门Shell编程,涵盖基础的语法、常用命令和一些实用技巧。

Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

1.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)

在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。

#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序

作为可执行程序   将上面的代码保存为 test.sh,并 cd 到相应目录

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找

2.基础语法

1.用户定义变量(User-defined variables):

  • 这些是用户自己定义的变量,可以随时创建和修改。定义时不需要声明类型。
NAME="John"
AGE=30

2.环境变量(Environment variables):

  • 环境变量是在Shell启动时设置的变量,对所有Shell和Shell脚本都可见。
export PATH="/usr/local/bin:$PATH"

3.环境变量(Environment variables):

  • 这些变量用于访问脚本或者函数的命令行参数。
  • $0 表示脚本名,$1$2, ... 表示第一个、第二个命令行参数,以此类推。

3.变量的使用

  • 赋值和引用:

    • 赋值使用等号 =,但在使用时不需要 $。例如:NAME="John"
    • 引用变量的值使用 $ 符号,例如 echo $NAME
  • 特殊变量:

    • $0: 当前脚本的文件名。
    • $$: 当前Shell进程的ID。
    • $?: 上一个命令的退出状态。
#!/bin/bash

NAME="Alice"
AGE=25

echo "Hello, $NAME! You are $AGE years old."

# 使用环境变量
echo "My home directory is $HOME."

# 位置参数
echo "First argument: $1"
echo "Second argument: $2"

# 特殊变量
echo "Script name: $0"
echo "Process ID: $$"

高级用法

  • 数组:

    • Shell支持数组,可以使用类似array[index]的语法访问数组元素。
  • 间接引用:

    • 可以使用 ${!var} 实现间接引用,例如 varname="NAME",然后使用 echo ${!varname} 访问 NAME 变量的值。
  • readonly和unset:

    • readonly NAME 可以将变量设为只读,不允许修改。
    • unset NAME 可以删除变量。

标签:bin,Shell,NAME,sh,保姆,test,echo,入门
From: https://blog.csdn.net/2401_84670644/article/details/140856430

相关文章

  • 如何通过PowerShell批量修改O365用户的office phone属性值
    我的博客园:https://www.cnblogs.com/CQman/如何通过PowerShell批量修改O365用户的officephone属性值?需求信息: 组织中的O365用户在创建时,已手动录入了办公电话(Officephone),现在需要在办公电话前面加上统一的数字,如“0571-0985”,以批量的方式统一修改。备注:O365用户的Offic......
  • where /? 在 Windows 中,where 命令是用于在命令提示符或 PowerShell 中查找指定命令的
     在Windows中,where命令是用于在命令提示符或PowerShell中查找指定命令的位置的工具。它可以帮助用户确定系统中某个可执行文件的路径。使用方法:基本用法:shellCopyCodewherecommand其中command是你要查找的命令或可执行文件的名称。例如,如果你想查找notepad的......
  • C++入门基础
    文章目录一、C++的由来1、C++的起源2、C++的版本更新二、C++的第一个程序三、命名空间1、namespace的价值2、namespace的定义3、命名空间的使用四、C++输⼊&输出五、缺省参数六、函数重载七、引用1、引用的概念和定义一、C++的由来1、C++的起源C++的起源可......
  • Oracle数据库教程:入门到精通
    Oracle数据库教程:入门到精通大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!Oracle数据库是市场上最强大的关系数据库管理系统之一。无论是大数据分析、企业级应用还是高性能交易系统,Oracle都能提供卓越的性能和可靠性。本文将带你从Oracle数据库的基本操......
  • C++-入门(下)
    一、前言:目标:1.C++关键字2.命名空间3.C++输入&输出4.缺省参数5.函数重载6.引用7.内联函数8.auto关键字(C++11)9.基于范围的for循环(C++11)10.指针空值---nullptr(C++11)二、目标的实现:6.引用:6.1引用概念:        引用不是新定义一......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
    前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先科普......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
    前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先科普......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
    前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先科普......
  • 资源|Python入门必看书籍,适合零基础小白,附PDF
    小编为初学Python的朋友们汇总了7本零基础入门书籍,包括Python三剑客等,都是在编程届多年畅销的书籍,也是众多从业者的选择,全文详细介绍了书籍主要内容,有需要的宝子根据自身情况自取需要书籍PDF的宝子评论区留言哦**1、三剑客之一《Python编程从入门到实践》**推荐理由:**本......
  • Robot Framework 入门指南:高效学习接口自动化测试
    开源自动化测试利器:Robot FrameworkRobot Framework 是一个用于实现自动化测试和机器人流程自动化(RPA)的开放源代码框架。它由一个名为RobotFrameworkFoundation的组织得到推广,得到了多家领军企业在软件开发中的广泛应用。框架以其开放性和灵活性为特点,能够无缝整合各种......