csh shell_Bash编程入门-1:Shell与Bash

671872ec15973e080bce7227cec045f0.png

前言:之前写过一篇介绍Linux系统基本技能的文章,文章的最后放了一张基本操作的思维导图,把这张图掌握了,就能像使用wins系统一样使用linux系统了。

青山屋主:生信自学之linux操作基础​zhuanlan.zhihu.com
8e31b0563d9b9b30244b84dd82722aca.png

这之后需要学什么呢?需要继续学习写shell脚本,用脚本来处理数量庞大的且重复性高的工作。本系列就从shell和bash的介绍开始,教大家如何用把shell命令写成可以重复使用的脚本。

说明:本文是对Vamei知乎文章Vamei:快速学习Bash一文的学习笔记,根据个人理解调整了内容顺序,补充了一些注释和说明等内容。

1. shell和bash

shell是运行在终端中的文本互动程序,bash(GNU Bourne-Again Shell)是最常用的一种shell。是当前大多数Linux发行版的默认Shell。

Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。

f64843bc1b44120060a2c93778266344.png

其他的shell还有:sh、bash、ksh、rsh、csh等。Ubuntu系统常用的是bash,Bio-linux系统是基于ubuntu定制的,但是却使用了zsh。

sh的全名是Bourne Shell。名字中的玻恩就是这个Shell的作者。

而bash的全名是Bourne Again Shell。最开始在Unix系统中流行的是sh,而bash作为sh的改进版本,提供了更加丰富的功能。一般来说,都推荐使用bash作为默认的Shell。

  • 如何查看当前系统中shell的类型?
echo $SHELL

2. shell命令

shell命令可以分为以下三类:

  • 内建函数(built-in function):shell自带的功能
  • 可执行文件(executable file):保存在shell之外的脚本,提供了额外的功能。
  • 别名(alias):给某个命令的简称

shell的内建函数是自带的预先写好的,实现一定功能的程序。

可执行文件是shell之外的脚本,提供了使用者自定义的功能。Shell必须在系统中找到对应命令名的可执行文件,才能正确执行。我们可以用绝对路径来告诉Shell可执行文件所在的位置。如果用户只是给出了命令名,而没有给出准确的位置,那么Shell必须自行搜索一些特殊的位置,也就是所谓的默认路径。Shell会执行第一个名字和命令名相同的可执行文件。我们可以通过which命令,来确定命令名对应的是哪个可执行文件:

which date
which pwd  
#以上两个命令分别返回date和pwd命令对应的可执行文件的绝对路径

别名是给某个命令一个简称,以后在Shell中就可以通过这个简称来调用对应的命令。在Shell中,我们可以用alias来定义别名:

alias freak=“free -h”

可以用alias将一些常用的命令进行简化,比如“ls -l”简化为“ll”。

  • 如何了解命令的类型?
type date
type pwd
#可以用type命令查看命令类型。如果是内建函数会返回builtin字样,如果是可执行文件,将返回文件的路径

3. 命令的选项和参数

我们已经看到,一行命令里还可以包含着选项参数。总的来说,选项用于控制命令的行为,而参数说明了命令的作用对象。

比如说uname命令,该命令的主要功能是输出系统信息。它有很多个选项,不同的选项指定输出不同想系统信息。

uname --help
Usage:uname [OPTION]...
print certain system information. with no OPTION, same as -s.
-a,--all               print all informationin the follow order,except omit -p and -i if unknown
-s,--kernel-name       print the kernel name
-n,--nodename          print the network node hostname
-r,--kernel-release    print the kernel release
-v,--kernel-version    print the kernel version
-m,--machine           print the machin hardware name
-p,--processor         print the processor type or "unknown"
-i,--hardware-platform print the hardware platform or "unknown"
-o,--operating-system  print the operating system
 --help              display this help and exit
 --version           output version information and exit
....

上面例子中短横引领的字母叫短选项,双短横引领的单词叫长选项,对应的短选项等价于长选项。比如“uname -s”等价于“uname --kenel-name”。

多个短选项的字母可以合在一起,跟在同一个"-"后面。比如,下面的两个命令就等价:

uname -m -r 
uname -mr

一个命令可能有非常多的选项,要弄清楚它们的用法还需要阅读相应的帮助文档。一般情况下是该命令后加“-h”选项,或者是加"--help"选项。

参数说明了命令的作用对象。就拿echo这个命令来说,它能把字符打印到终端。它选择打印的对象,正是它的参数:

echo hello

有的时候,选项也会携带变量,以便来说明选项行为的原材料。比如:

sudo date --set="1999-01-01 08:00:00"

date是参数,选项"--set"用于设置时间,用等号连接的,就是它的参数。date会把日期设置成这一变量所代表的日期。如果用短选项,那么就要用空格取代等号了:

sudo date -s "1999-01-01 08:00:00"

值得注意的是,Shell对空格敏感当一整个参数信息中包含了空格时,我们需要用引号把参数包裹起来,以便Shell能识别出这是一个整体

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值