命令行扩展:$( ) 或 或 ``
把一个命令的输出打印给另一个命令的参数
括号扩展:{ }
打印重复字符串的简化形式
$ echo file{1,3,5}
file1 file3 file5
Tab键
命令补全
CentOS7上命令补全可以补全长选项
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全。否则,再次Tab会给出列表
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全,否则:再次Tab 给出列表
whatis命令
显示命令的简短描述
每晚使用一个数据库更新
刚安装后不可立即使用,需要更新数据库
centos6
makewhatis
centos7
mandb
显示命令章节
#whatis COMMAND
内部命令 :
#help COMMAND
cd.pwd.echo.hash
外部命令:
(1) # COMMAND --help
(2) 使用手册(manual)
# man COMMAND
(3) 信息页
# info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
man命令 manul 手册
提供命令帮助的文件
手册页存放在/usr/share/man
几乎每个命令都有man 的“页面”
man 页面分组为不同的“章节”
1: 用户命令
2: 系统调用
3: C库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9: Linux 内核API
统称为Linux 手册
man [ 章节] 命令
man 5 passwd 查看passwd第5章节
查看命令章节
#whatis COMMAND
#man –f COMMAND
man 命令的配置文件:
centos6
/etc/man.config
centos7
/etc/man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明新手册文件搜索位置
# man - M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜索COMMAND命令的手册页并显示
查看man 手册页
SYNOPSIS 摘要
[] :可选内容
<>: 必选内容
a|b :二选一
...: 同一内容可出现多次
#man –a keyword 列出所有章节帮助
搜索man 手册
#man -k keyword 列出所有匹配的页面
使用 whatis 数据库
man 命令的操作方法:使用less 命令实现
Space: 向文件尾翻一屏
b: 向文件首部翻一屏
Ctrl+d: 向文件尾部翻半屏
Ctrl+u: 向文件首部翻半屏
Enter: 向文件尾部翻一行
y or k:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
man搜索
/KEYWORD:以 以KEYWORD 指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
?KEYWORD:以 以KEYWORD 指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
n: 跟搜索命令同方向,下一个
N: 跟搜索命令反方向,上一个
info
#info COMMAND
man常用于命令参考,GNU工具info适合通用文档参考。
没有参数, 列出所有的页面
info 页面的结构就像一个网站
每一页分为“节点”
链接节点之前有 *
导航info页
方向键,PgUp ,PgDn 导航
Tab键 移动到下一个链接
d 显示主题目录
Home 显示主题首部
Enter进入 选定链接
n/p/u/l进入下/ 前/ 上一层/ 最后一个链接
s 文字 文本搜索
q退出 info
/usr/share/doc 目录
多数安装了的软件包的子目录,包括了这些软件的相关原理说明
不适合其它地方的文档的位置
配置文件范例
HTML/PDF/PS 格式的文档
授权书详情
第三方程序官方文档
通过发行版官方的文档光盘或网站可以获得
http://tldp.org
the linux document project
http://www.slideshare.net
http://www.google.com
Openstack filetype:pdf //搜索.pdf的文档
rhca site:redhat.com/docs //在redhat.com网站中搜索rhca关键字
命令行历史
保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件(~/.bash_history)中记录下的命令
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件(~/.bash_history)中
重复前一个命令,有4 种方法:
使用上方向键,并回车执行
按!! 并回车执行
输入!-1 并回车执行
按Ctrl+p 并回车执行
!字符串: 重复前一个以“字符串”开头的命令
!num: 执行history命令列表中对应num(号数)的命令
!?abc: 重复最近一个包含abc字符串的命令
!-n: 重复命令历史中反向查找的第n条命令
键入ctrl-r 来在命令历史中搜索命令 (reverse-i-search )`’
再键入ctrl-r 可以查找下一条匹配的指令
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc击键后松开,然后点击 . 键)
Alt+ .(按住Alt击 键的同时点击 . 键)
调用历史参数
#cmd !^ 调用上一个命令的第一个参数做cmd的参数
#cmd !$ 调用上一个命令的最后一个参数做cmd的参数
#cmd !* 调用上一个命令的全部参数做cmd的参数
#cmd !:n 调用上一个命令的第n个参数做cmd的参数
!n:^ 调用第n 条命令的第一个参数
!n:$ 调用第n 条命令的最后一个参数
!m:n 调用第m 条命令的第n个参数
!n:* 调用第n 条命令的所有参数
!string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
!string:$ 从命令历史中搜索以 string 开头的命令, 并获取它的最后一个参数
!string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
......
history命令
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c: 清空命令历史
-d: 删除历史中指定的命令;
#: 显示最近的# 条历史
-a: 追加本次会话新执行的命令历史至历史文件
-n: 读历史文件中未读过的行(历史列表中没有的命令)到历史列表
-r: 读历史文件追加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史相关环境变量
HISTSIZE :命令历史记录的条数;
HISTFILE :指定历史文件,默认为~/.bash_history; ;
HISTFILESIZE :命令历史文件记录历史的条数;
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE="str1:str2:… " 忽略string1,string2 在历史命令列表中忽略
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups, ignorespace的结合
erasedups: 删除重复命令,命令连续或者不连续都是重复的
#export 变量名="值" 修改环境变量
环境变量都存放在 /etc/profile 或 ~/.bash_profile
bash中的快捷键
Ctrl+l 清屏,相当于clear 命令
Ctrl+c 取消命令的执行
Ctrl-a 会移动到命令行的最前面
Ctrl-e 会移动到命令行的最后面
Ctrl-u 会删除到行首
Ctrl-k 会删除到行尾
Esc-b 左移一个单词
Esc-f 右移一个单词