第十章、认识与学习BASH

简介: 第十章、认识与学习BASH

10.1 认识BASH这个shell

10.1.1 硬件、核心与shell


当你要计算机传输出来“音乐”的时候,你的计算机需要什么东西呢?


1. 硬件:当然就是需要你的硬件有“声卡芯片”这个配备,否则怎么会有声音;


2. 核心管理:操作系统的核心可以支持这个芯片组,当然还需要提供芯片的驱动程序;


3. 应用程序:需要使用者 (就是你) 输入发生声音的指令


必须要“输入”一个指令之后,“硬件”才会通过你下达的指令来工作。下达指令就是kernel的控制工作,必须要通过“shell”将我们输入的指令与kernel沟通,好让kernel可以控制硬件来正确无误的工作。


只要能够操作应用程序的接口都能够称为壳程序。狭义的壳程序指的是命令行方面的软件,包括本章要介绍的 bash 等。 广义的壳程序则包括图形接口的软件!因为图形接口其实也能够操作各种应用程序来调用核心工作。


10.1.2 为何要学命令行的shell?


X Window 与 web 接口的工具,他的接口虽然好友,功能虽然强大, 但毕竟他是将所有利用到的软件都整合在一起的一组应用程序而已, 并非是一个完整的套件,所以某些时候当你升级或者是使用其他套件管理模块 (例如 tarball 而非 rpm 文件等等) 时,就会造成设置的困扰了。甚至不同的 distribution 所设计的 X window 接口也都不相同,这样也造成学习方面的困扰。


命令行的shell,就可以转换不同的distributions。


远端管理:命令行快


Linux 的管理常常需要通过远端连线,而连线时命令行的传输速度一定比较快, 而且,较不容易出现断线或者是信息外流的问题。


10.1.3 系统的合法 shell 与 /etc/shells 功能


目前我们的 Linux (以 CentOS 7.x 为例),至少就有下面这几个可以用的 shells:


/bin/sh (已经被 /bin/bash 所取代)


/bin/bash (就是 Linux 默认的 shell)


/bin/tcsh (整合 C Shell ,提供更多的功能)


/bin/csh (已经被 /bin/tcsh 所取代)


10.1.4 Bash shell 的功能

bash 是 GNU 计划中重要的工具软件之一,目前也是 Linux distributions 的标准 shell 。 bash 主要相容于 sh,并且依据一些使用者需求而加强的 shell 版本。不论你使用的是那个 distribution ,你都难逃需要学习 bash 的宿命。bash 主要的优点有下面几个:


命令编修能力 (history):


在很多distribution 里头,默认的指令记忆功能可以到达 1000 个!也就是说,你曾经下达过的指令几乎都被记录下来了。


这么多的指令记录都存在主文件夹内的.bash_history中,需要留意的是,~/.bash_history记录的是前一次登陆以前所执行过的指令, 而至于这一次登陆所执行的指令都被暂存在内存中,当你成功的登出系统后,该指令记忆才会记录到 .bash_history 当中。


命令与文件补全功能: ([tab] 按键的好处)


[Tab] 接在一串指令的第一个字的后面,则为命令补全;


[Tab] 接在一串指令的第二个字以后时,则为“文件补齐”!


若安装 bash-completion 软件,则在某些指令后面使用 [tab] 按键时,可以进行“选项/参数的补齐”功能!


命令别名设置功能: (alias)


假如我需要知道这个目录下面的所有文件 (包含隐藏文件) 及所有的文件属性,那么我就必须要下达“ ls -al ”这样的指令串。


alias lm='ls -al'


工作控制、前景背景控制: (job control, foreground, background)


程序化脚本: (shell scripts)


万用字符: (Wildcard)


除了完整的字串之外, bash 还支持许多的万用字符来帮助使用者查询与指令下达。

相关文章
|
10月前
|
Shell Linux
认识与学习BASH
认识与学习BASH
50 0
|
运维 Shell
善用chatGPT学习 | bash脚本如何判断字符串在数组中
善用chatGPT学习 | bash脚本如何判断字符串在数组中
159 0
|
存储 Shell 调度
学习系统编程No.8【bash实现】
学习系统编程No.8【bash实现】
|
Shell 开发工具 git
git-bash 常用命令学习
git-bash 常用命令学习
git-bash 常用命令学习
|
Linux Shell Java
由“-bash: XX: command not found”开始的linux的环境变量学习入门
“-bash: XX: command not found”的解决方法
4208 0
|
测试技术 Shell 索引
|
Linux Shell
Linux 学习记录 四(Bash 和 Shell scirpt).
一、什么是 Shell?        狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工作。
1136 0
|
2月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
145 0