查看帮助
首先使用type 查看命令是外部还是内部命令
内部命令:help COMMAND 或 man bash
外部命令:1、COMMAND –help 或 COMMAND -h
2、使用手册 man COMMAND
3、信息页 info COMMAND
4、程序官方文档
5、GOOGLE
其中man 命令一共有9个章节
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\]
如果结尾不添加 \[\e[m\] 会导致最后一个颜色之后包括输入的文字也是最后一个的颜色。
history:
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空命令历史
-d N: 删除历史中指定的第N条命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 伪造历史,且命令不执行
命令历史相关环境变量
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 开头的命令,并获取它的第一个参数
!string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
!string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
screen命令:
创建新screen会话
screen –S [SESSION]
显示所有已经打开的screen会话
screen -ls
提示为Detached为表示为中途退出的会话需使用 screen -r 进行恢复
如果提示为Attached的需要使用 screen -x 进行加入
echo $STY 检查自己是否是在一个screen会话里 如果在会显示会话号及会话名称,反则为空
退出并关闭screen会话
exit 或着只有一个会话窗口的话可以用 C+a K 退出
剥离当前screen会话
Ctrl+a,d
screen 进阶
Ctrl+a ? 显示所有 键位信息
在连接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 水平分割
Ctrl+a | 垂直分割 低版本无法执行
Ctrl+a TAB 切换
C-a X 关闭当前焦点所在的屏幕区块(并不会真的关闭)例如分割后取消分割
C-a Q 关闭除当前区块之外其他的所有区
screen -X -S ID quit 可以删除会话
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 最后不加上换行符号
\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) “
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