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.