练习

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 别名; 撤销别名


如有错误,敬请指正!

谢谢!