RHCE033学习笔记
组合键
|
符号名称
|
约定使用
|
Ctrl+C
|
SIGINT
|
非常规中断——终止前台进程
|
Ctrl+D
|
EOT
|
输入完成的正常信号
|
Ctrl+G
|
BEL
|
终端声效
|
Ctrl+H
|
BS
|
后退一格——删除前一个字符
|
Ctrl+J
|
LF
|
换行——与Enter键功能相同
|
Ctrl+L
|
FF
|
换页——使bash清屏
|
Ctrl+Q
|
|
解锁终端显示
|
Ctrl+S
|
|
锁住终端显示
|
Ctrl+U
|
NAK
|
删除当前的行
|
Ctrl+Z
|
SIGSTOP
|
挂起进程
|
符号
|
意义
|
.
|
当前工作目录,相对引用中可使用
|
..
|
父目录
|
~
|
用户主目录
|
-
|
上个工作目录
|
字符
|
作 用
|
*
|
匹配0个或多个字符(开头的“.”除外)
|
?
|
匹配一个字符(开头的“.”除外)
|
[…]
|
匹配在给出的列表或范围内的任何一个字符
|
[^…]
|
匹配在给出的列表或范围外的任何一个字符
|
用户ID范围
|
用户类型
|
0
|
根用户
|
1-499
|
系统用户
|
500+
|
普通用户
|
命令
|
功能
|
id
|
显示用户信息和组信息
|
whoami
|
获取当前用户名
|
users、who、w
|
获取正在会话中的用户
|
finger
|
输出用户最后登陆系统时间及其它信息
|
操作
|
可以执行的用户
|
chmod
|
根用户和文件的所有者
|
chgrp
|
根用户和文件所有者(必须是新组成员)
|
chown
|
只有根用户
|
|
r(读)
|
w(写)
|
x(执行)
|
常规文件
|
浏览文件
|
修改文件
|
将文件作为命令执行
|
目录
|
列出目录内容
|
添加或删除文件
|
在目录中”搜索”已知文件
|
硬链接
|
软链接
|
目录之间不能用硬链接
|
软链接可以关联的目录
|
硬链接没有原始文件和复制文件的概念,硬链接一旦创建,它链接的两端文件得到同等待遇
|
软链接有引用和被引用的概念,删除被引用的文件就会导致空链接的产生
|
硬链接必须关联同一个文件系统下的文件
|
软链接也可关联不同文件系统中的文件
|
Chroot的目录间可共享硬链接
|
软链接不能引用chroot目录外的文件
|
设备节点
|
磁盘
|
/dev/fd0
|
软盘
|
/dev/hda
|
IDE1通道上的主盘
|
/dev/hdb
|
IDE1通道上的从盘
|
/dev/hdc
|
IDE2通道上的主盘
|
/dev/hdd
|
IDE2通道上的从盘
|
/dev/sda
|
SCSI的第一个硬盘
|
/dev/sdb
|
SCSI的第二个硬盘
|
/dev/cdrom
|
到CD/ROM的符号链接
|
语法
|
替换
|
!!
|
前一个命令
|
!n
|
命令号n
|
!-n
|
倒数第n个命令
|
!cmd
|
最后用来启动cmd的命令
|
变量
|
含义
|
BASH_VERSION
|
但前bash 的版本
|
HOSTNAME
|
当前机器的DNS主机名
|
OLDPWD
|
上次工作目录
|
PWD
|
当前工作目录
|
RADOM
|
介于0到32767之间的任意整数
|
SECONDS
|
自shell启动以来的秒数
|
变量
|
含义
|
?
|
最新执行的命令的退出状态,即查看返回值
|
-
|
当前启用中的shell选项标记
|
$
|
当前shell的进程ID
|
_
|
前一个命令的最后标记
|
!
|
最新后台命令的进程ID
|
PPID
|
Shell父进程的ID
|
SHELLOPTS
|
被冒号隔开的当前启用中的shell选项列表,和set – o结果一样
|
UID
|
当前用户的UID
|
变量
|
功能
|
TERM
|
指定了用户终端的底层配置,该变量在使用串行线控制台时更由用
|
PATH
|
指定了可执行文件的搜索目录
|
DISPLAY
|
指定了图像环境中客户程序应该使用的X服务器
|
LANG
|
指定了国家化程序的首选语言
|
EDITOR
|
指定了默认的编辑器
|
PRINTER
|
指定了默认的打印机
|
替换
|
语法
|
含义
|
历史(history)
|
!
|
前一个命令行
|
大括号
|
{}
|
指定的文本
|
代字号
|
~或~username
|
用户的主目录
|
变量
|
$、${…}
|
变量Shell和环境变量
|
算术
|
$((…))
|
整数算术运算(+、-、*、/)
|
命令
|
`…`、$(…)
|
运行在子shell中命令的输出
|
路径名
|
*、?、[…]、[^…]
|
文件系统中匹配的文件
|
语法
|
作用
|
\
|
避免一个字符被shell解释
|
“…”
|
避免双引号内除了$、!和`…`(反引号)字符以外的其他字符被shell解释
|
‘…’
|
避免引号内的字符被shell解释
|
序列
|
替换
|
\a
|
终端响铃
|
\d
|
以“星期月份日期”格式显示日期
|
\h
|
直到第一个“.”的主机名
|
\T
|
以12小时格式HH:MM:SS显示当前时间
|
\u
|
当前用户的用户名
|
\W
|
当前工作目录的basename(即最后一个目录)
|
\!
|
命令的历史记录号码
|
\$
|
如果用户的ID为0,则提示符为#,否则提示符为$
|
\n
|
原样输出后面的字符
|
\nnn
|
与八进制数字nnn对应的字符
|
标记
|
作用
|
-f
|
使路径名替换无效
|
-n
|
读取命令、但不执行(用来对脚本进行语法检查)
|
-o optionname
|
设置指定的选项,一些常用选项如下:
emacs 使用emacs风格的命令行快捷键
ignoreeof 当EOF(ctrl+D)被读取时,不退出shell
vi 使用vi风格的命令行快捷键
|
-v
|
在命令被读取时,打印命令(调试脚本时有用)
|
-x
|
在替换被应用之后打印命令(调试脚本和检查shell替换时有用)
|
-C
|
不允许shell在重定向中损坏文件
|
选项
|
作用
|
cdspell
|
使用cd内置命令时,试图改正目录名的拼写错误
|
expand_alias
|
启动shell别名
|
extglob
|
启动替换的模式匹配语法
|
nocaseglob
|
应用文件名替换时不区分大小写
|
上下文
|
登录shell
|
交互式shell
|
从虚拟控制台登录shell
|
是
|
是
|
通过网络shell到一台远程机器上时登录shell
|
是
|
是
|
X初始化shell
|
是
|
是
|
X终端shell
|
否
|
是
|
手动运行bash启动的子shell
|
否
|
是
|
用在命令替换中的子shell
|
否
|
否
|
被圆括号分组的命令使用的子shell
|
否
|
否
|
执行脚本时使用的子shell
|
否
|
否
|
文件
|
Shell类型
|
预期功能
|
/etc/profile
|
登录shell
|
通用的有效环境变量
|
/etc/profile.d/*.sh
|
登录shell
|
软件包特有的环境变量
|
~/bash_profile
|
登录shell
|
用户特有的环境变量
|
~/.bashrc
|
所有交互式shell
|
用户特有的别名、shell功能和shell选项
|
/etc/bashrc
|
所有交互式shell
|
通用别名、shell功能和shell选项
|
流
|
描述符
|
缩写
|
标准输入
|
0
|
stdin
|
标准输出
|
1
|
stdout
|
标准错误
|
2
|
stderr
|
表达式
|
字符类
|
ASCII中的对应域
|
[:alnum:]
|
字母数字混排
|
A-Za-z0-9
|
[:alpha:]
|
字母字符
|
A-Za-z
|
[:blank:]
|
空格符或者制表符
|
|
[:digit:]
|
数字
|
0-9
|
[:lower:]
|
小写字母
|
a-z
|
[:punct:]
|
可打印字符,不包括空格和字母数字混排字符
|
|
[:space:]
|
空白字符
|
|
[:upper:]
|
大写字母
|
A-Z
|
字符
|
功能
|
正则表达式语法
|
解释
|
.
|
通配符
|
基本
|
代表一个或者任意字符
|
[abc],[a-z]
|
包含域
|
基本
|
代表域内任意一个字符
|
[^abc],[^a-z]
|
排除范围
|
基本
|
代表不包含在域内的任意一个字符
|
?
|
修饰符
|
扩展
|
代表0或1个前面的项
|
*
|
修饰符
|
基本
|
代表0或多个前面的项
|
+
|
修饰符
|
扩展
|
代表1个或者多个前面的项
|
{m,n}
|
修饰符
|
扩展
|
代表前面的项出现了m到n次之间
|
{n}
|
修饰符
|
扩展
|
代表前面的项具体的出现次数为n
|
^
|
锚
|
基本
|
标出一行的开始
|
$
|
锚
|
基本
|
标出一行的结束
|
\<
|
锚
|
基本
|
标出一个单词的开始
|
\>
|
锚
|
基本
|
标出一个单词的开始
|
(…)
|
分组
|
基本
|
允许修饰符修饰一组字符
|
(…|…)
|
分组
|
扩展
|
允许指定可选的模式
|
\
|
转义
|
扩展(基本)
|
取消(或启动)后续字符的特殊含义
|
正则表达式
|
文件名匹配
|
在执行搜索或者搜索及替换功能时,比如grep、vi、sed以及许多脚本语言,如perl、python等
|
有bash shell执行,是为了匹配文件名,并减少在一些应用程序或者脚本语言中搜索的范围
|
使用表达式“.*”代表任意项
|
使用表达式“*”代表任意项
|
使用表达式“.”来表达单个字符
|
使用表达式“?”来表达任何单个字符
|