我们通过shell将我们输入的命令与内核通信,好让内核可以控制硬件来正确无误地工作
bash是我们Linux默认的shell

用户界面(Shell,application)--------核心(Kernel)-------硬件(Hardware)

操作系统其实是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件被用户随便操作,若用户应用不当,将会使得整个系统崩溃。

因为操作系统管理的是整个硬件功能,所以当然不能够被随便被一些没有管理能力的终端用户随意使用。
但是我们总是需要让用户操作系统的,所以就有了在操作系统上发展的应用程序。

软件=程序+文档=数据结构+算法+文档

shell的功能只是提供用户操作系统的一个接口。
像cmake,man,chown这些命令都是独立安装的应用程序,但是我们可以通过shell(就是命令行模式)来操作这些应用程序,让这些应用程序调用内核来运行所需的工作。

只要能够操作应用程序的接口都可以称为shell
狭义的shell时命令方面的软件如bash,广义的shell包括图形界面的软件

为什么要学习shell?
1.X Window与Web界面工具一样,界面虽然亲善,功能虽然强大,但毕竟它是将所有利用到的软件集成在一起的一组应用程序而已,并非一个完整的套件,所以某些时候当你升级或者使用其它套件管理模块时,就会造成设置的困扰。而且不同的distribution设计的X Window界面也不同,造成学习的困扰。而几乎所有distributions使用的bash都是一样的。
2.远程管理,命令行界面比较快:Linux管理经常需要远程联机,联机时命令行传输速度一定比较快。而且,较不容易出现断线或者时信息外流的问题。
3.是Linux的任督二脉,书到用时方恨少:如果真的有心想要将你的主机管理好,那么良好的shell程序编写时一定需要的 。

shell有很多种,如Bournce SHell(sh),Sun默认的C SHell、商业常用的K SHell, 还有TCSH等
一般是“Bournce Again Shell”(bash),时sh的增强班,也是基于GUN的架构下发展出来的

要查看Linux主机上有多上shell,可以查看/etc/shells文件

/bin/sh已经被/bin/bash替代

为什么我们系统上合法的shell要写入/etc/shells这个文件?
因为系统的某些服务在运行过程中,会去检查用户能够使用的shells,而这些shell的查询就是借助/etc/shells这个文件

用户什么时候可以取得shell来工作呢?还有用户默认会使用哪种shell?
查看/etc/passwd就知道了,在用户登录时取得默认的shell
一些奇怪的shell,以后再看

bash时GUN计划中重要的工具软件之一
bash的主要优点:
1.命令记忆能力(history)
    默认记忆功能一般有1000个,记录在/home/用户名/.bash_history(没有home目录的用户怎么办)
    .bash_history记录的是前一次登录以前所执行的命令,这次登录所执行的命令被暂时存在临时内存中,当成功注销系统后,该命令记忆才会记录再.bash_history中
2.命令与文件补全功能:tab功能
3.命令别名设置功能(alias)
4.作业控制、前台后台控制(job control,foreground,background)
    可以随时将工作丢到后台执行,不怕不小心ctrl+c终端进程。ctrl+z
    也使得可以在单一登录的环境中达到多任务的目的
5.程序脚本(shell script)
    shell scripts可以将平时管理系统常需要执行的连续命令写成一个文件,该文件并且可以通过交互的方式进行主机的检车工作
6.通配符
    帮助用户查询和命令执行,加快用户操作 如ls -l /usr/bin/X*

如果shell命令比较长,可以"\[Enter]"换行执行

认识bash这个shell的更多相关文章

  1. 单行bash、shell、perl命令

    主题:单行经典bash.shell.perl命令 作者:luomg 摘要: 会陆陆续的写自己工作中的常用有意思的命令,争取你能看完后就能搞定常见操作, 且尽量自少提供基本shell.perl的实现方式 ...

  2. 什么是shell? bash和shell有什么关系?

    什么是shell? bash和shell有什么关系? 博客分类: Linux   什么是Shell?      shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序 ...

  3. bash和shell的关系

    bash是borne again shell的缩写,它是shell的一种,Linux上默认采用的是bash. shell脚本中的方法带不带function的区别,例如: function foo () ...

  4. bash反弹shell检测

    1.进程 file descriptor 异常检测 检测 file descriptor 是否指向一个socket 以重定向+/dev/tcp Bash反弹Shell攻击方式为例,这类反弹shell的 ...

  5. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  6. 用bash反弹shell

    用bash反弹shell 受害主机:linux系统 攻击机:需要安装netcat(nc) 受害主机执行:ifconfig  ## 查看受害主机ip 攻击机执行:nc -lvp 19999 ## 在攻击 ...

  7. 修改shell 将当前shell(默认是bash B SHELL )改为csh C SHELL

     在修改当前shell时,用命令: usermod -s  /bin/csh   home     home 为 你所想要改变的用户地址     此处home 为家目录,一般自己创建的用户都会在家目录 ...

  8. Linux 学习记录 四(Bash 和 Shell scirpt)

    一.什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工 ...

  9. bash编程-Shell变量

    bash中,所有变量的值默认均为字符串. 1. 变量操作 调用变量 $变量 查看变量(所有类型) set 删除变量 unset 变量 2. 变量分类 2.1 自定义变量 自定义变量仅对当前Shell有 ...

随机推荐

  1. [改变自己wordpress.2]给wordpress加上简单debug sql调试.

    或者说,同事. 需要帮她打印出来sql 调试输出到页面sql 在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug 在插件文件夹 wordpress/wp-content/pl ...

  2. SAP ABAP规划 SY-REPID与SY-CPROG差额

    首先.它的两个解释   sy-repid is the name of the current program.  "当前程序的程序名                             ...

  3. zoj 3820 Building Fire Stations(树上乱搞)

    做同步赛的时候想偏了,状态总是时好时坏.这状态去区域赛果断得GG了. 题目大意:给一棵树.让求出树上两个点,使得别的点到两个点较近的点的距离最大值最小. 赛后用O(n)的算法搞了搞,事实上这道题不算难 ...

  4. 【从零学习openCV】IOS7根据人脸检测

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  5. SQL Server 2008 R2 安全性专题(一):安全原则

    原文:SQL Server 2008 R2 安全性专题(一):安全原则 本系列主要专注与SQL Server 2005以后的DBMS,由于本人工作使用2008 R2,所以目前就针对2008 R2来做说 ...

  6. NHibernate框架魅力美

    Nhibernate属于ORM框架之中的一个,在了解NHibernate之前我们先来了解什么是ORM? ORM框架是为了将类对象和关系建立映射.事实上说白了,就是通过一个 Mapping将我们的实体类 ...

  7. SQL入门学习0-数据库与SQL

    1.1 DBMS DatabaseManagermentSystem 数据库管理系统 DBMS种类 层次型数据库(HDB) 最古老的数据库之一,把数据通过层次结构的方式表现. 关系型数据库(RDB) ...

  8. Oracle 数据库 JOB 失败后解密法重试

    因为官方文档上没有找到相关的说明,所以这里进行了例如以下測试,为了找到oracle数据库中 job 失败后重试时间的规律. 数据库版本号:11.2.0.3 測试说明:这里创建了一个日志表以及一个执行时 ...

  9. [Elasticsearch] 部分匹配 (一) - 前缀查询

    部分匹配(Partial Matching) 敏锐的读者可能已经发现到眼下为止,介绍的查询都是在整个词条层面进行操作的. 匹配的最小单元必须是一个词条.你仅仅能找到存在于倒排索引(Inverted I ...

  10. java NIO中的Reactor相关知识汇总 (转)

    一.引子 nio是java的IO框架里边十分重要的一部分内容,其最核心的就是提供了非阻塞IO的处理方式,最典型的应用场景就是处理网络连接.很多同学提起nio都能说起一二,但是细究其背后的原理.思想往往 ...