shell、bash的关系及bash的特性(一)

一、概念

shell是壳,是运行在终端中的文本互动程序。Shell相当于是一个翻译,把我们在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。shell软件有:sh、bash、ksh、rsh、csh等。

bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。最开始在Unix系统中流行的是sh,其全名是Bourne Shell,名字中的玻恩就是这个Shell的作者。而bash作为sh的改进版本,提供了更加丰富的功能。

查看系统当前shell的类型:echo $SHELL

二、bash的特性

bash命令格式:命令 选项 参数

ls -a /home

bash有两种使用方式:1、命令;2、脚本

(1)命令历史 history

history -d OFFSET 删除某条记录

-c 删除所有历史

n 显示历史中最近n条记录

环境变量:

HISTSIZE:命令记录的条数

HISTFILE:~/.bash_history

HISTFILESIZE:命令历史文件记录历史的条数

调用历史中命令,输入!表示调用历史命令:

!字符串:执行最近一条"字符串"开头的命令

!!:执行上条命令

ctrl+r:搜索历史命令,根据关键字

调用上一条命令的最后一个参数:Esc . 或 !$

控制命令历史的记录方式:

环境变量:HISTCONTROL

ignoredups:忽略重复的 连续且相同

ignorespace:忽略空白开头的命令

ignoreboth:上面两个都生效

修改环境变量的方式:export 变量名=值

(2)命令补全功能

内部命令:

外部命令:bash根据PATH环境变量定义的路径,自左向右搜索;

直接补全:tab键,只有唯一对应命令;不唯一在按tab会给出命令列表

(3)路径补全功能:

把用户给定的字符串当做路径的开头;

(4)命令行展开

~:展开为用户的主目录

~USRNAME:展开为指定用户下的主目录

{}:可承载一个以逗号分隔的列表,并将其展开为多个路径

(5)命令的执行结果状态:成功or失败

bash使用特殊变量$?保存最近一条命令执行结果状态

0:成功 1~255:失败

程序执行有两类结果:

程序的返回值,

程序执行的状态结果。

(6)命令别名(alias):

通过alias命令别名

alias:不带参数显示系统所有别名

alias NAME='命名' 定义别名,当前会话有效

当前用户有效:~/.bashrc

所有用户有效:/etc/bashrc

修改配置文件后让文件生效需要:source FILENAME

撤销别名:unalias

如果别名同原命令同名,要使用原命令通过:\ls

(7)glob(globing)通配符

bash中用于实现文件名通配的机制

通配符*、?、[]

*:任意长度的任意字符

?:任意单个字符

[]:匹配指定范围的任意单个字符,不区分大小写

取反:^

专用字符集:

[:alnum:] [:alpha:] [:blank:] [:cntrl:]

[:digit:] [:graph:] [:lower:] [:print:]

[:punct:] [:space:] [:upper:] [:xdigit:]

(8)bash的快捷键

ctrl+l:相当于clear,清屏操作

ctrl+c:取消命令的执行

ctrl+d:退出、exit

ctrl+a:光标跳转至命令首部

ctrl+e:跳转至命令尾部

ctrl+u:删除光标前的内容

ctrl+k:删除光标后的内容

ctrl+r:搜索历史命令,根据关键字

相关推荐
涛ing17 分钟前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__19 分钟前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚19 分钟前
【Linux】日志设计模式与实现
linux·运维·设计模式
学问小小谢22 分钟前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
yaoxin5211231 小时前
第十二章 I 开头的术语
运维·服务器
ProgramHan1 小时前
1992-2025年中国计算机发展状况:服务器、电脑端与移动端的演进
运维·服务器·电脑
马立杰4 小时前
H3CNE-33-BGP
运维·网络·h3cne
云空6 小时前
《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
运维·人工智能·web安全·网络安全·开源·网络攻击模型·安全威胁分析
深度Linux6 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术
没有名字的小羊6 小时前
Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)
运维·网络·安全