Linux入门基础01--shell

2 篇文章 0 订阅
1 篇文章 0 订阅
  • 0.介绍

    最近对Linux有点发烧,希望让大家了解一下Linux,写一些博客。希望有问题的地方大家可以帮我斧正。

     1
    

    1.shell

    1.01:什么是shell
    shell的本义是壳,其实已经很形象的说明了shell在linux系统中的作用,shell就是围绕在linux内核之外的一个"壳“程序,用户在操作系统上完成的所有任务都是通过shell与linux系统内核的交互来实现的。
    各个操作系统都有自己的shell。每个版本的shell功能基本相同,但各有千秋,现在linux系统发行版一般都以bash作为默认的shell
    bash
    shell本身是一个以C语言编写的`程序,是用户和操作系统内核之间通信的桥梁。shell既是一种命令解释程序又是一种功能强大的解释性程序设计语言。作为命令解释程序,shell解释用户输入的命令,然后交给内核处理,最后把结果返回给客户。
    为了加快命令的执行,同时更有效的定制shell程序,shell中定义了一些内置命令,一般把shell自身解释执行的命令称为内置命令。例如cd,echo,pwd等等,都是shell的内置命令,当用户登陆后,shell以及内置命令被系统载入到内存,直到用户退出系统为止。除了内置命令外,Linux上还有许多可执行文件(就像Windows上的.exe),这些可执行文件也可以作为shell的命令去执行。例如ls就是一个可执行文件,存放在/bin/ls中。这些命令与shell的内置命令不同,只有当他们被调用时,才由系统装入内存执行。
    当用户登录后,如果登录字符界面,就会出现shell命令指示符。“#”表示root用户,“$”表示普通用户。shell执行命令解释的具体过程为:用户在输入命令后,shell首先检查它是否为内置命令,如果是就通过shell内部的解释器将命令解释给系统调用;如果不是,那么shell会按照用户给出的路径或者根据系统环境变量的配置信息在系统硬盘上去寻找相应的命令,然后将其调入内存,最后再将其解释为系统调用提交给内核去执行。
    最后,shell是强大的解释性程序设计语言,它定义了各种选项和变量,几乎支持高级程序语言的所有程序结构,如变量,函数,表达式,循环等,利用shell可以编写shell脚本程序。

1.02:shell的命令语法分析

  • 1.02.1:

shell的命令格式 shell根据一定的语法格式将用户输入的命令进行分析解释并传递给系统内核,shell的命令一般格式为 command [option] [arguments]
其中command是表示命令的名称,option是命令的选项,arguments是表示命令的参数。根据习惯,我们把有以上称为命令行,命令行是用户与shell之间对话的基本单位。在命令行中,选项是包含一个或多个字母的代码,主要用于改变命令的执行方式,一般在选项前面有一个“-”符号用于区别参数。
例如:lsls命令加上-a选项后就会列出包括隐藏文件在内的所有文件,一般命令都有很多选项,可以单独列出他们,也可以在-后面把需要的选项都列出来。例如:
命令
很多命令都可以接受参数,例如要显示、etc命令下的所有文件的信息:ls -al /etc

在shell的一个命令行中,可以输入多个命令,用";"将各个命令隔开,例如:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190302184104194.png)
也可以在多行中输入一个命令,用"\"将一个命令延续到下一行,例如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190302184404495.png)
  • 1.02.2:通配符 “*”:匹配一个或多个字符 “?”:匹配单一任意字符 “[]":匹配任意包含在[]内的字符 通配符可以按需求混合使用。

  • 1.02.3:shell的重定向 linux上系统打开三个文件,即标准输入,标准输出,和标准错误输出。用户的shell将键盘设为默认的标准输入,屏幕是默认的标准输出和标准错误输出。。也就是说,用户从键盘输入命令,然后将结果和错误信息输出到屏幕。
    所谓的重定向是不使用系统的默认标准输入/输出,而是重新指定,因此重定向分为输入重定向,输出重定向,错误输出重定向,要实现重定向就要了解重定向操作符,shell就是根据重定向操作符来决定重定向操作的。
    (1)输入重定向:输入重定向用于改变命令的输入源,利用输入重定向,就可以将文件的内容作为命令的输入,而不是从键盘。
    用于输入重定向的操作符有"<”和"<<",例如:
    在这里插入图片描述
    这里的wc可以统计给他文件/etc/inittab的行数,单词数,字符数。
    用"<<“时,这种重定向告诉shell,当前命令的标准输入来自命令行中一对分隔号之间的内容:在这里插入图片描述
    如本例数以dir作为分隔符,shell将在第一个分隔号后开始读取内容,直到出现另一个分隔号读取结束,然后将内容送给wc处理。
    (2)输出重定向:输出重定向不是将内容输出到屏幕,而是输入到一个指定的文件中。
    在linux上输出重定向用的很多,比如某个命令输出很长可以把命令输入到一个文件中,然后用more命令查看这个文件。
    用于输出重定向的操作符有”>",">>".
    在这里插入图片描述tree可以把当前文件夹的机构以树型打印出来,把它的输出重定向到123.txt里,然后用more命令查看123.txt,可以看到tree命令的输出已经重定向到了文件里。如果">“后面的文件不存在,那么shell会自动创建;如果存在则会覆盖该文件原来的内容;如果不想覆盖原来的内容可以用”>>"。
    (3)错误重定向:可以使用操作符"2>"和"2>>"来将错误信息打印到文件中:
    在这里插入图片描述

  • 1.02.3:shell管道
    - 管道(“|”)可以把很多命令连接起来,把一个命令的输入作为另一个命令的输出,不需要任何中间文件:在这里插入图片描述
    - 这里将ls的输出通过管道作为more命令的输入。

  • 1.02.4:shell中的引用
    在bash中有很多特殊的字符本身具有特殊的含义。如果在参数中直接使用会出问题,如转义字符\可以用\,或者用单引号’’,或者双引号""来避免原来字符的特殊意义。双引号和单引号基本相同,但是双引号在遇到$
    \等会失效。

  • 1.02.5:shell的自动补全
    按tab键可以根据前面的输入自动补全命

令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值