菜鸟学Linux 第008篇笔记 bash及其特性

简介:

菜鸟学Linux 第008篇笔记 bash及其特性


bash 及其特性:

shell: 外壳(是一个可执行程序)

GUI: Gnome, KDE, Xfce

CLI: sh, csh, ksh(付费和社区版), bash, tcsh, zsh(不是特别流行)

shell,子shell

shell设定,对子shell无效(反之亦然)


程序只有一个,进程可以有多个 进程(进程名可以同名)是程序的副本(仅作理解)



bash特性:可以自定义工作环境(默认相同)

1、命令行编辑

2、命令历史

3、路径/命令补全

4、命令别名

5、命令替换

6、文件名通配

7、变量

8、编程(shell脚本)

9、管道、重定向

10、命令行展开

……等等


Detail

命令行编辑

光标:

Ctrl+a:行首

Ctrl+e:行尾

Ctrl+u: 删除光标至行首

Ctrl+k: 删除光标至行尾

Ctrl+l: 清屏

命令历史:

查看命令历史:history

-c 清空命令历史

-d offset [n]删除指定位置的历史命令

-w 保存命令历史至历史文件中(每个用户家目录隐藏文件.bash_history)

命令历史使用技巧

!n  执行命令历史中第N条命令

!-n 执行命令历史中倒数第N条命令

!!  执行上一条命令

!string 执行命令历史中最近一个以指定字符串开头的命令

!$  引用前一个命令的最后一个参数

按完Esc 后再按. 也可引用上一个参数

Alt+. 同上


命令补全

搜索PATH环境变量所指定的每个路径下以我们给出的字符串开关的可执行文件,如果多于一个,按两次TAB,可以给出可选执行命令文件列表,否则直接补全。

路径补全

搜索我们所给出的起始路径下的每个文件名,并试图补全。

命令别名

alias commandalias='COMMAND [options] [arguments]' 定义别名仅在当前shell的生命周期有效

alias 不加任何参数显示已经定义好的别名列表

unalias aliasname 取消定义的别名

命令替换 $() ``反引号,波浪线上的

把命令中某个子命令替换为其执行结果的过程

touch ./file-$(date +%F-%H-%M-%S).txt 先执行date命令将执行结果返回做touch创建文件用的名字

文件名通配,globbing

* 匹配任意长度的任意字符

?匹配任意一个字符

[] 匹配指定范围内的任意单个字符 [abc] [a-m] [a-z] [A-Z] [0-9]

[:space:] [:punct:] [:lower:] [:upper:] [:alpha:] [:digit:] [:alnum:]

[^] 匹配指定范围外的任意单个字符


bash支持的引号

``:命令替换

"":弱引用,可以实现变量替换

'':强引用,不完成变量替换


环境变量

PATH: 命令搜索路径

HISTORY: 命令历史大小(默认1000)

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1859709如需转载请自行联系原作者


Winthcloud

相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
168 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
116 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
4月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
118 2
linux笔记 diff及patch的制作与使用
|
4月前
|
Unix Shell Linux
在Linux中,什么是 BASH?
在Linux中,什么是 BASH?
|
4月前
|
Shell Linux
在Linux中,哪⼀个bash内置命令能够进行数学运算?
在Linux中,哪⼀个bash内置命令能够进行数学运算?
|
4月前
|
缓存 Shell Linux
在Linux中,bash shell 中的 hash 命令有什么作用?
在Linux中,bash shell 中的 hash 命令有什么作用?
|
4月前
|
人工智能 物联网 Shell
在Linux中,BASH 和 DOS之间的区别是什么?
在Linux中,BASH 和 DOS之间的区别是什么?
|
4月前
|
Unix Shell Linux
在Linux中,什么是Bash脚本,并且如何使用它。
在Linux中,什么是Bash脚本,并且如何使用它。
|
4月前
|
Ubuntu Linux Shell
【linux】PetaLinux 2024.1安装笔记
【linux】PetaLinux 2024.1安装笔记
309 0