Bash Shell总结笔记

1   Bash 的简介

Shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。通过命令行提示符$,它允许用户输入文本命令,然后解释命令,并在内核中执行。

Bash是GNU项目的shell,即Bourne Again SHell。这是一个由Bourne shell(sh)发展而来的shell,并且兼容sh,包含不少korn shell(ksh)和c shell(csh)的优点。大部分Linux发行版都预装了bash,并且大多数sh脚本(由多个shell命令组成的文件)无需修改即可通过bash运行。

2   shell提示符

shell命令行界面(CLI)

3   bash的配置

source ~/.bashrc
source ~/.profile
echo 'export APP=/opt/tinyos-2.x/apps' >> ~/.bashrc

3.1   删除Git Bash历史记录

%USERPROFILE%(用户配置路径)下找到.bash_history删除即可。

4   参数表达式

4.1   前缀和后缀的获取

${file%.*}:移除最后一个点之后的内容
${file%%.*}:移除第一个点之后的内容
${file#*.}:移除第一个点之前的内容
${file##*.}:移除最后一个点之前的内容

5   test

test可以与&&组成一个条件判断,无需用if命令。

6   case

case命令,无法使用test命令。
case不能用正则表达,只用样式匹配

7   删除特定目录下所有文件,但排除部分文件

find /path/to/directory -type f ! -name 'file_prefix*' | xargs rm -rf

8   Bash脚本加密解密

https://www.jb51.net/article/216095.htm
https://www.qcgzxw.cn/575.html

9   参考文献

[1] BLUM R, BRESNAHAN C. Linux 命令行与 shell 脚本编程大全[M]. 门佳, 武海峰, 译. 3 版. 北京: 人民邮电出版社, 2016.
[2] GNU Bash[EB/OL]. https://www.gnu.org/software/bash/.
[3] Test variable in a bash case statement[EB/OL]. https://unix.stackexchange.com/questions/205084/test‑variable‑in‑a‑bash‑case‑statement.
[4] Regular expressions in a Bash case statement[EB/OL]. https://stackoverflow.com/questions/9631335/regular‑expressions‑in‑a‑bash‑case‑statement.
[5] Adding suffix to filename during for loop in bash[EB/OL]. https://unix.stackexchange.com/questions/600051/adding‑suffix‑to‑filename‑during‑for‑loop‑in‑bash.