本人小白,如若有错请各位大牛指点,虚心讨教学习
一、命令历史
shell进程会保存此前用户提交执行过的命令
1、history命令用法:
1)、history [-c] [-d offset(偏移量)] [n]
-c:清空内存中的历史记录
-d offset: 删除指定的第多少行到偏移的多少行
#history //不加参数,显示当前内存列表中的记录
# history -c //清空内存列表中的历史记录
# history -d 166 10 //删除内存列表中的第166行及下面10行
2)、history -anrw [filename(文件名)]
//anrw:
a:添加内存列表(history)中的命令到命令历史文件 (~/.bash_history)中。
n:读取没有从历史文件中读取的所有历史记录到内存列表中
r:读取历史文件并将内容附加到历史内存记录列表中
w:将当前内存中历史记录写入历史文件中并将其附加到历史记录列 表中。
#history -a \ -n \ -r \-w //对照上面的含义。
2、历史调用
1)、调用执行历史命令
!! #!! //调用上一个命令
!# #!100 //调用第一百行历史命令
!-n #!-2 //调用倒数第二条命令
!string #!sos //搜索命令历史中以sos开头的命令
ctrl+r (reverse-i-search): //直接在命令行输入Ctrl+r,再输入输入要查找的字符,会在
历史记录中查询你输入的字符串对应的命令
2)、调用历史记录中的命令参数
!$ /alt+. /esc+.
#!$ //调用前一个命令的最后一个参数,后两者直接分别按键盘。
!^ #ls !^ //调用上一个命令的第一个参数
!$ #ls !$ //调用上一个命令的最后一个参数
!* #ls!* //调用上一个命令的所有参数
!:n #ls !:1 //调用上一个命令的指定第几个参数
!n:^ #ls !128:^ //调用第N条命令的第一个参数
!n:$ #ls !128:$ //调用第N条命令的最后一个参数
!n:* #ls !128:* //调用第N条命令的所有参数
!m:n #ls !128:3 //调用第N条命令的第N个参数
3)、控制命令历史的记录方式(常用变量)
变量配置文件:etc/profile 或~/.bash_profile
HISTSIZE:定义历史记录条目数:
#echo $HISTSIZE //输出变量内的值 (历史记录最大条目)
#HISTSIZE="1000" //从定义历史记录最大条目,只在当前生效,重启后失效。
#echo "HISTSIZE='1000'" >> /etc/profile
//直接追加“HISTSIZE='1000'”到配置文件中,重读配置文件生效,永久生效。
HISTFILE:定义历史文件路径
# echo $HISTFILE //显示history的个人配置文件绝对路径地址
#HISTFILE=“PATH/TO/SOMEFILE” //更改配置文件到指定位置
HISTFILESIZE:定义历史记录配置文件的存放最大条目
#echo $HISTFILESIZE //显示history配置文件的最大记录条数
#HISTFILESIZE="1000" //自定义配置文件最大记录条数
#echo "HISTFILESIZE='1000'" >> /etc/profile
//直接追加“HISTFILESIZE='1000'”到配置文件中,重读配置文件生效,永久生效。
HISTTIMEFORMAT: 添加历史记录中的命令使用时间
#HISTTIMEFORMAT=‘%F %T’ 直接定义变量值,只在当前生效,重启后失效。
#echo “HISTTIMEFORMAT=‘%F %T’” >> /etc/profile
//直接追加“HISTTIMEFORMAT=‘%F %T’”到配置文件中,重读配置文件生效, 历史记录列表中个每个命令就有具体执行时间,永久生效。
HISTIGNORE:忽略命令不存放在内存列表中,若要隐藏命令后面的参数直接在命令后加 *
#echo $HISTIGNORE //输出变量内的值
#HISTIGNORE="passwd:ls*" //定义之后输入执行变量内的命令将不会记录在命令历 史记录中。只是单独执行时不记录,若加参数或选项依 然会记录在内存中,若想后面的参数也不显示可在命令 后面加 * 号。
// 也可直接追加到配置文件中用法同上。
HISTCONTROL 隐藏命令,不记录或删除重复命令 变量值如下可用,直接定义即可。
=ignoredups: 忽略连续重复命令到内存中
=ignorespace:忽略空格开头的命令
=ignoreboth:(ignoredups+ignorespace)
=erasedups:删除重复命令
二、使用帮助
查看帮助:获取帮助的能力决定了技术的能力
1.whatis:查看命令的各个说明章节,依赖于专有数据库
(centos 6 更新数据库为makewhatis centos 7 更新whatis数据库为mandb)
# whatis ls 查看ls命令的章节
man -f 等价于whatis 查看命令的各个章节
2.whereis :查看命令的完整路径
#whereis ls 查看ls命令的完整路径
3.type:查看命令是内置命令还是外部命令
#type ls 查看ls命令是内置还是外部命令
4.help :显示用法总结和参数列表 (help为内置命令)
-d:简单描述命令 (只针对内置命令)
-m:man格式的方式来显示 (只针对内置命令)
-s:显示命令的大概的用法语法格式 (只针对内置命令)
其中:命令使用格式中符号含义
[]:可选
<>:必选
...:多选
a|b:二选一
命令用help查看帮助方式,分为内置和外部命令:
内置命令:
help COMMAND 此方式只针对内部命令
#help cd 查看cd的帮助说明
# man bash 能查看内部所有命令的帮助
部分内部命令: type pwd cd help hash echo
外部命令:
COMMAND --help 此方式针对大多数命令,可简写为COMMAND --h
touch --help 查看touch的帮助说明
5.使用手册(manual)查询命令帮助,简写:man
man命令的配置文件:Centos 6: /etc/man.config
Centos 7:/etc/man_db.conf
man COMMAND
可使用whatis或man -f查看命令的man章节,各章节号代表含义如下:
1:用户命令
2.系统调用
3.c库调用
4.设备文件及特殊文件
5.配置文件格式
6.游戏
7.杂项
8.管理类的命令
9.linux内核API
#whatis ls / man -f ls 查看ls命令的所有章节
#man 5 ls // 查看第五章的ls命令 ,5指定章节
/keyword 向下搜索字段,不区分字符大小写
在查看命令详细是可直接输入' / ' 加要查询的字段,即可查询man里信息与之匹配的字段
/user 在光标当前位置上向下搜索user字段
操作 : n同向 上一个
N反向 下一个
?keywork 向上搜索字段 ,不区分字符大小写
在查看命令详细是可直接输入' ? ' 加要查询的字段,即可查询man里信息与之匹配的字段
?user 在光标当前位置上向上搜索user字段
操作 :n同向 上一个
N反向 下一个
man命令的操作方法:使用less命令实现
Space, ^V, ^f, ^F: 向文件尾翻一屏
b, ^B: 向文件首部翻一屏
d, ^D: 向文件尾部翻半屏
u, ^U: 向文件首部翻半屏
ENTER, ^N, e, ^E or j or ^J: 向文件尾部翻一行
y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
(3)信息页
info COMMAND
# info ls 查看ls命令的信息页
info内部操作:
方向键:控制上下左右移动
Pgup、Pgdn:控制上下移懂
tab键:移动到下一个链接
在info界面内按tab键会自动跳转到链接上,连续按tab键在链接中转换。
enter:进入选定的连接(光标必须在连接行内)
n/p/u/l:进入上、前、上一层、最后一个链接
s:文本搜索
在info界面内按s然后输入要查询的字段,
q:退出info
三、bash基础特性之快捷键:
ctrl+a 回到行首
ctrl+e 回到行尾
ctrl+u 删除光标之前的内容
ctrl+k 删除光标之后的内容
esc -b 左移一个单词
esc -f 右移动一个单词
另参照红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com