Bash
Contents
第一章 Bash Shell编程基本
将光标移动到行首:control + a 将光标移动到行尾:control + e 清除屏幕:control + l 搜索以前使用命令:control + r 清除当前行:control + u 清除至当前行尾:control + k 单词为单位移动:option + 方向键
01 Shell脚本编程简介
什么是Shell
- GNU/Linux分为三个部分 内核、shell、应用程序
- Shell就是内核与应用程序以及用户之间的沟通桥梁和语义翻译
- 命令行解释器
02 Bash Shell 环境说明
Bash Shell的配置文件
/etc/bashrc
文件(全局)/etc/profile
文件(全局)/etc/profile.d
文件(全局)~/.bashrc
文件(用户配置文件)~/.bash_profile
文件(用户配置文件)
切换不同类型和版本的Shell
通过修改配置文件修改用户的shell
/etc/passwd
/etc/shells
通过命令切换
chsh
命令
如何查看shell登陆时候执行的那些配置文件?
添加以下内容到对应位置
|
|
重新登陆得到的结果是
|
|
03 Bash Shell 编程基本概念1
登陆与注销
- 本地登陆 (进入机器tty)
- 远程登录
- 虚拟机终端
- 虚拟控制台
- 用户切换
- 注销或登出
文件与目录
文件分类
普通文件-纯文本或者是二进制文件
1 2
-rw-r--r--. 1 root root 851 Jul 30 14:17 /etc/passwd 第一位 - 普通文件
目录文件-保持文件名和上下关系
设备文件-块设备文件和字符文件
通信文件-socket文件和有管道名文件
1 2 3
#创建管道文件 mkfifo /tmp/fifo file /tmp/fifo
特殊文件-符号链接文件(软连接文件)
使用
file
命令查看文件类型
通配符
- 代替字符的样式
*
任意字符串?
不为空的一个字符
e.g.
1 2 3 4 5
mkdir -pv tmp && cd tmp touch {a..d}{1..10} ls ?10 ls 1? ls *2
转义符
\
反斜线,也叫“逃逸字符”- 使用后接的字符恢复其原来作为单纯字符的意义。
e.g.
1 2 3
cd tmp echo * echo \*
续行符号
- 转义字符的特例
\
的后方是换行服好的时候,上下输入的两行将会被视为是一行。
e.g.
1 2
echo "line 1 \ line 1 too"
字符集
[]
- 字符集集合就是
[]
中所列字符范围中的一个符号,其长度为1 [a-z]
小写字母[A-Z]
大些字母[a-zA-Z]
字母[0-9]
数字[!0-9]
非数字
e.g.
1 2 3
ls [a-z]* ls [a,b]* ls a[1-5]
- 字符集集合就是
括号扩展
{}
{a,b}_{1,2} = a_1 a_2 b_1 b_2
echo {A,a}pple
- 方便快速创建和删除文件以及目录
- 方便匹配制定范围的字符串
目录操作
相对路径和绝对路径
./
/
切换当前路径
1
cd e.g.
查看当前路径
1
pwd
Bash Shell 编程设计权限问题
- UGO 权限
- ACL 权限
04 Bash Shell 编程基本概念2
- 标准输入以及标准输出
- 输入输出重定向
- 管道
- 前台运行程序和后台运行应用程序