zoukankan      html  css  js  c++  java
  • 快速了解Linux/Unix系统中最重要的概念——shell

    什么是shell?

    命令解释器

    英文shell是外壳的意思,在计算机领域中,shell即操作系统的外壳。我们可以通过shell来操作和控制操作系统。

    总的来说,shell是一个命令解释器,你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。 说到底,shell是用户与内核进行交互操作的一种接口,用户通过shell命令来启动、暂停、停止程序的运行或对计算机进行控制。

    脚本语言

    所谓脚本语言就是不用编译就可以直接执行的语言。它通过解释器边解释边运行,所以速度相对来说比较慢。

    shell还是一种解释执行的脚本语言,由一系列shell命令组成,这些命令都是可执行程序的名字。在shell中可以调用Linux系统命令。

    shell程序设计语言支持在高级语言里所能见到的绝大多数程序控制结构,比如循环,函数,变量和数组。shell编程语言很易学,并且一旦掌握后它将成为你的得力工具。任何在提示符下能键入的命令都能放到一个可执行的shell程序里,这意味着用shell语言能简单地重复执行某一任务。

    Linux中常见的shell

    一个系统可以存在多个shell,可以通过 cat /etc/shells 命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的,但是最常用的shell还是/bin/bash。

    $ cat /etc/shells 
    /bin/sh
    /bin/bash
    /sbin/nologin
    /usr/bin/sh
    /usr/bin/bash
    /usr/sbin/nologin
    /bin/tcsh
    /bin/csh

    Demo(脚本文件.sh)

    1. 先创建一个脚本文件script.sh, 后缀名是 .sh:

    #!/bin/bash
    
    echo "this is the first shell script"

    注意:执行之前首先要为脚本文件添加可执行权限,不然就得用root权限才能执行!

    2. 添加可执行权限:

    chmod +x script.sh

    3. 执行script.sh。

    三种方式:

    (1) sh script.sh  

    (2) ./script.sh 

    (3)指定脚本文件的绝对路径,即可执行。例如: /home/Min/script.sh 

    区别:

    第一种方式,使用/bin/sh所指向的shell解释器来执行脚本文件;

    第二种方式,它默认使用/bin/sh所指向的shell解释器来执行脚本文件,前提是脚本文件中未指定解释器。但如果在脚本文件中指定了使用哪种脚本解释器,那么它就不管/bin/sh指向哪个脚本解释器,而是使用脚本文件中所制定的那个脚本解释器(本例的脚本文件中指定脚本解释器: #!/bin/bash);

    第三种方式执行使用的脚本解释器和第二种相同

    常用命令

    cat 文件名  #输出文件内容到基本输出(屏幕 or 加>fileName 到另一个文件)
    cb         #格式化源代码
    chmod      #change mode,改变文件的权限
    cp         #copy
    date       #当前的时间和日期
    echo $abc  #在变量赋值之后,只需在变量前面加一个$去引用.
    lint       #语法检查程序
    help 命令   #只能查询shell内置命令
    man 命令    #即可以帮助查询linux内置命令,也可以查询linux外部命令。man查询的内容比help内容都多
    ls         #显示目录内容,linux原装命令
    dir        #也是显示Linux目录内容的命令,来自dos,Linux兼容
    type       #显示指定命令的类型
    du         #查看磁盘空间状况
    ps         #查看当前进程状况
    who        #你的用户名和终端类型
    定义变量    name=abc (bash/pdksh) || set name = abc (tcsh)
    mkdir      #创建目录
    rmdir      #删除目录
    cd         #进入目录
    rm         #删除文件
    more       #显示文件
    echo       #显示指定文本
    mv         #改文件名/移动文件
    pwd        #显示目录路径命令

    这里再推荐一篇从底层逻辑来介绍shell的文章,简明扼要,深入浅出:Shell是什么?1分钟理解Shell的概念!

    有关shell编程的基础内容讲解还可以看看这篇:Linux——shell脚本的基础篇(变量定义、变量种类、变量操作)

    (整理自网络)

    参考资料:

    https://blog.csdn.net/weixin_41122339/article/details/81078900

    https://baike.baidu.com/item/shell/99702

    Min是清明的茗
  • 相关阅读:
    SecureCRT和乱码
    iphone“连接到icloud是出错”的可能原因
    Tcpdump usage examples
    leetcode-pascal triangle I&&II
    How To Capture Packets with TCPDUMP?
    leetcode-two sum
    Linux统计某文件夹下文件、文件夹的个数
    leetcode-Minimum Depth of Binary Tree
    leetcode-Construct Binary Tree from Preorder and Inorder Traversal
    patch 修改有问题的
  • 原文地址:https://www.cnblogs.com/MinPage/p/14141672.html
Copyright © 2011-2022 走看看