练习
1 如何创建目录:x_m, x_n, y_m, y_n?
[roger@oc3137372501 ~]$ mkdir -pv /tmp/test/{x,y}_{m,n} mkdir: created directory /tmp/test' mkdir: created directory `/tmp/test/x_m' mkdir: created directory `/tmp/test/x_n' mkdir: created directory `/tmp/test/y_m' mkdir: created directory `/tmp/test/y_n'
2 显示/etc/目录下,以非字母开头,后面跟了一字母及其它任意长度任意字符的文件或目录;
$ ls -p /etc/[^a-z][a-z]*
3 复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu.com目录中;
mkdir /tmp/mageedu.com | sudo cp -r /etc/*.d /tmp/mageedu.com/
(源文件为多个文件,目标目录不存在的情况下,要先创建目标目录
若源文件为单个文件,则不需要先创建目录)
Bash 的基础特性:
1 历史命令:
History命令:显示历史指令记录内容
history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
参数:
-c: 清除命令历史
-d #:删除指定历史命令
#: 显示最近#条历史命令
-a:将缓存中的历史命令写入文件
-r:将histfile的内容读入到当前shell的历史命令中
-w:将当前的历史命令缓存内容写入histfile中
快捷键: Ctrl+r 实现搜索历史命令
调用执行历史命令:
!! 快速重复上一条命令
!-1 快速重复上一条命令
Ctrl+P 快速重复上一条命令
!# 执行第#条历史命令
!String 执行指定字符串开头的命令
调用执行过命令的参数:
!^前一条命令的第一个参数
!:#前一条命令的第#个参数
!$前一条命令的最后一个参数
!*前一条命令的所有参数,命令名除外
History命令环境变量设置:
HISTSIZE: 命令历史记录条数
HISTFILE:命令历史记录文件路径
HISTFILESIZE:命令历史文件记录条数
HISTTIMEFORMAT:命令历史打上时间戳
示例:
给history命令加上时间戳:
[roger@oc3137372501 ~]$export HISTTIMEFORMAT="%F %T"
显示最近执行的4条命令:
[roger@oc3137372501 ~]$ history 4 658 2015-08-24 18:16:01history 10 659 2015-08-24 18:16:35history | more 660 2015-08-24 18:20:20export HISTTIMEFORMAT="%F %T" 661 2015-08-24 18:21:07history 4
2 命令补全:
TAB在一个命令的第一个字后面,则为命令补全
TAB在一个命令的第二个字以后,则为文件补全
3 路径补全:
如果路径唯一,则直接补全
否则,两次TAB TAB,可列出
4 命令行展开功能:
~:展开为当前用户的主目录
~USERNAME:展开为指定目录的家目录
{}:可承载一个以都好分隔的列表,并且其展开为多个路径
[roger@oc3137372501 test]$ mkdir -v {x,y}_{m,n} mkdir: created directory `x_m' mkdir: created directory `x_n' mkdir: created directory `y_m' mkdir: created directory `y_n'
5 命令的执行结果状态,有bash追踪和保存
成功:0
失败:1-255
Bash使用特殊变量$?保存最近一条命令的状态结果
程序的执行结果有两种:
程序的返回值;
程序的状态结果;
6 程序别名:
命令的另一个引用符号,由bash程序维护;
alias、 unalias
alias 查看所有已经定义别名
[roger@oc3137372501 test]$ alias alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias 别名=命令参数...; 定义别名
unalias 别名; 撤销别名
如有错误,敬请指正!
谢谢!