查看帮助
首先使用type 查看命令是外部还是内部命令
内部命令:help COMMAND 或 man bash
外部命令:1、COMMAND –help 或 COMMAND -h
2、使用手册 man COMMAND
3、信息页 info COMMAND
4、程序官方文档
5、GOOGLE
其中man 命令一共有9个章节
![Image [3]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
1: 用户命令
2: 系统调用
3: C库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9:Linux 内核API
通过whatis keyword 或man -f keyword 查看命令所在章节
通过man [章节] keyword 查看
或者通过 man –a keyword 查看命令全部内容
帮助手册中的段落说明: man命令的操作方法:
NAME 名称及简要说明 space, ^v, ^f, ^F: 向文件尾翻屏
SYNOPSIS 用法格式说明 b, ^b: 向文件首部翻屏
• [] 可选内容 d, ^d: 向文件尾部翻半屏
• <> 必选内容 u, ^u: 向文件首部翻半屏
• a|b 二选一 RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
• { } 分组 y or ^Y or ^P or kor ^K:向文件首部翻一行
• … 同一内容可出现多次 or ^K:向文件首部翻一行
DESCRIPTION 详细说明 q: 退出
OPTIONS 选项说明 #:跳转至第#行
EXAMPLES 示例 1G: 回到文件首部
FILES 相关文件 G:翻至文件尾部
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
man 搜索
/KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;n: 下一个 N:上一个
PS(Prompt Sign): 是指命令提示符。根据个人喜好可以对命令提示符进行修改
man bash 使用/PS1 按N 一直到最后一个PS1 可看到帮助

\d :代表日期,格式为weekday month date,例如:”Mon Aug1″
\H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
如果需要修改ROOT的指命令提示符,可编辑/root/.basbrc进行添加,普通用户需在各自家目录下进行修改例如编辑/home/test/.bashrc进行修改。如过需要所有用户都使用统一的话,需要在/etc/bashrc里添加。
我们可以通过设置PS1变量使提示符成为彩色。
前景 背景 颜色 代码 意义
30 40 黑色 0 OFF
31 41 红色 1 高亮显示
32 42 绿色 4 underline
33 43 黃色 5 闪烁
34 44 蓝色 7 反白显示
35 45 紫紅色 8 不可见
36 46 青蓝色
37 47 白色
也可以设置多种颜色 例如 :PA1=\[\e[1;39m\][\[\e[1;31m\]\u\[\e[1;33m\]@\[\e[1;34m\]\H \[\e[1;32m\]\W\[\e[1;39m\]]\[\e[1;35m\]\$\[\e[1;39m\]
![Image [2]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
如果结尾不添加 \[\e[m\] 会导致最后一个颜色之后包括输入的文字也是最后一个的颜色。
history:
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空命令历史
![Image [5]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-d N: 删除历史中指定的第N条命令
![Image [6]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
n: 显示最近的n条历史
![Image [7]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
![Image [9]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-s: 伪造历史,且命令不执行
![Image [8]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数 ; 默认不设置为500条
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
export 变量名=”值“
存放在 /etc/profile 或 ~/.bash_profile
命令行历史操作方法
重复前一个命令,有4种方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入 !-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
Ctrl + n 显示当前历史中的下一条命令,但不执行
Ctrl + j 执行当前命令
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
![Image [10]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
!string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
!string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
![Image [14]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
![Image [15]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
screen命令:
创建新screen会话
screen –S [SESSION]
显示所有已经打开的screen会话
screen -ls
提示为Detached为表示为中途退出的会话需使用 screen -r 进行恢复
![Image [17]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
如果提示为Attached的需要使用 screen -x 进行加入
![Image [16]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
echo $STY 检查自己是否是在一个screen会话里 如果在会显示会话号及会话名称,反则为空
退出并关闭screen会话
exit 或着只有一个会话窗口的话可以用 C+a K 退出
![Image [18]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
剥离当前screen会话
Ctrl+a,d
screen 进阶
Ctrl+a ? 显示所有 键位信息
![Image [21]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
在连接screen会话后 可以在里面再创建多个窗口 例如一台机器不同tty类似
Ctrl+a c :创建窗口 或使用命令 screen -m
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
Ctrl+a S 水平分割
![Image [20]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
Ctrl+a | 垂直分割 低版本无法执行
![Image [31]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
Ctrl+a TAB 切换
C-a X 关闭当前焦点所在的屏幕区块(并不会真的关闭)例如分割后取消分割
C-a Q 关闭除当前区块之外其他的所有区
screen -X -S ID quit 可以删除会话
![Image [24]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命
令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解
释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。
利用hash缓存表可大大提高命令的调用速率
hash常见用法
hash 显示hash缓存
hash –l 显示hash缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name
hash –t name 打印缓存中name的路径
hash –d name 清除name缓存
hash –r 清除缓存
echo命令
功能:显示字符
语法:echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,
并在最后加上换行号
选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
显示变量
echo “$VAR_NAME“ 变量会替换,弱引用
echo ‘$VAR_NAME‘ 变量不会替换,强引用
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成
一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
![Image [33]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行,且替换本行内容
\t 插入tab
\\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII字
echo -e ‘\033[43;31;5m666666\033[0m’
把一个命令的输出打印给另一个命令的参数
echo “This system’s name is $(hostname) “
![Image [25]](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
echo “i am `whoami` “
括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5}
echo {a..z}
echo {001..20..3} {起始数..结尾数..间隔}
echo “hello” >或>> file 也可以将内容输出到文本 > 清空并写入 >> 追加
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93832

