tab键 自动补全

支持命令补全,支持文件名补全(centos6 不支持参数补全 centos7 支持参数补全 )

  • 命令补全

内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全
否则,再次Tab会给出列表

  • 路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab给出列表

获取帮助

  • 获取帮助的能力决定了技术的能力!
  • 多层次的帮助

whatis
command —help
man and info
/usr/share/doc
Red Hat documentation
其他网站和搜索

whatis

  • whatis 命令 显示命令的简短描述
  • 使用数据库
  • 刚安装后不可立即使用
  • makewhatis 制作whatis数据库 (Centos6)/mandb 制作whatis数据库 (Centos7)
  • 使用示例

whatis vim == man -f vim
whatis cal 或 man -f cal

命令帮助

  • 内部命令:help COMMAND 或 man bash
  • 外部命令:

(1)command —help
command -h
(2)使用手册(manual)
man command
(3)信息页
info command
(4)程序自身的帮助文档
README
INSTALL
ChangeLog
(5)程序官方文档
官方站点:Documentation
(6)发行版的官方文档
(7)Google

—help 和 -h选项

  • 显示用法总结和参数列表
  • 使用的大多数,但并非所有的
  • 示例:

date —help
Usage:date [OPTION]…[+FORMAT] or date [-u|—utc|—universal] [MMDDhhmm[[CC]YY][.ss]]
CAPS或<>表示变化的数据
…表示一个列表
x|y|z的意思是”x或y或z”
-abc的 意思是 -a -b -c
{} 表示分组

man命令**

  • 提供命令帮助的文件
  • 手册页存放在/usr/share/man
  • 几乎每个命令man的“页面”
  • man页面分组为不同的“章节”
  • 统称为Linux手册
  • man命令的配置文件:/etc/man.config|man+db.conf

MANPATH /PATH/TO/SOMEWHERE:指明man文件搜索位置

  • man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索

COMMAND命令的手册页并显示

  • 中文man需安装包man-page-zh-CN

    man章节**

    1:用户命令
    2:系统调用
    3:C库调用
    4:设备文件及特殊文件
    5:配置文件格式
    6:游戏
    7:杂项
    8:管理类的命令
    9:Linux内核API
    eg :查看passwd
    先whatis passwd,看在第几章,如果看命令,用 man 1 passwd,如果看文件配置,用man 5 passwd

    登录前提示:cat /etc/issue
    [root@Centos6 ~]#cat /etc/issue
    CentOS release 6.10 (Final)
    Kernel \r on an \m
    [root@centos7 ~]# cat /etc/issue
    \S
    Kernel \r on an \m
    增加主机名,当前时间,终端编号后:
    cat /etc/issue
    \S
    Kernel \r on an \m
    My hostname is \n
    Login time is at \d
    Login terminal is \l
    /etc/issue 本地登陆显示的信息,本地登录前
    /etc/issue.net 网络登陆显示的信息,登录后显示,需要由sshd配置
    /etc/motd 常用于通告信息,如计划关机时间的警告等,登陆后的提示信息

将107.191.53.9服务器上的时间同步过来:
ntpdate 107.191.53.9

man 帮助段落说明**

  • 帮助手册中的段落说明:
    • NAME 名称及简要说明
    • SYNOPSIS 用法格式说明
      • [] 可选内容
      • <> 必选内容
      • a|b 二选一
      • {} 分组
      • … 同一内容可出现多次
    • DESCRIPTION 详细说明
    • OPTIONS 选项说明
    • EXAMPLES 示例
    • FILES 相关文件
    • AUTHOR 作者
    • COPYRTGHT 版本信息
    • REPORTING BUGS bug信息
    • SEE ALSO 其他帮助参考

**

man帮助**

  • 查看man手册页

man [章节] keyword

  • 列出所有帮助

man -a keyword

  • 搜索man手册

man -k keyword 列出所有匹配的页面
使用 whatis 数据库

  • 相当于whatis

man -f keyword

  • 打印man帮助文件的路径

man -w [章节] keyword**
manual手册
centos6: cat /etc/man.config
centos7:cat /etc/man_db.conf
Ubuntu:cat /etc/manpath.config

man命令**

  • man命令的操作方法:使用less命令实现

space,^v,^f,^F:向文件尾翻屏
b,^b:向文件首部翻屏
d,^d:向文件尾部翻半屏
u,^u:向文件首部翻半屏
RETURN,^N,e,^E or j or ^J:向文件尾部翻一行
y or ^Y or ^P or k or ^K:向文件首部翻一行
q:退出
#:跳转至第#行
1G:回到文件首部
G:翻至文件尾部

man搜索

/KEYWORD:
以KWYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
n:下一个
N:上一个
?KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
n:跟搜索命令同方向,下一个
N:跟搜索命令反方向,上一个

info

  • man常用于命令参考,GNU工具info适合通用文档参考
  • 没有参数,列出所有的页面
  • info 页面的结构就像一个网站
  • 每一页分为“节点”
  • 连接节点之前*
  • info [命令]

    导航info页**

  • 方向键,PgUp,PgDn导航

  • Tab键 移动到下一个链接
  • d 显示主题目录
  • Home 显示主题首部
  • Enter进入 选定链接
  • n/p/u/l 进入下/前/上一层/最后一个链接
  • s 文字 文本搜索
  • q 退出 info

    通过本地文档获取帮助

  • System->help (centos6) |

  • Applications -> documentation -> help (centos7)

提供的官方使用指南和发行注记

  • /usr/share/doc目录
    • 多说安装了的软件包的子目录,包括了这些软件的相关原理说明
    • 常见文档:README INSTALL CHANGES
    • 不适合其他地方的文档的位置

配置文件范例
HTML/PDF/PS 格式的文档
授权书详情

通过在线文档获取帮助

  • 第三方应用官方文档

http://www.nginx.org
http://tomcat.apache.org
http://httpd.apache.org
http://www.python.org

  • 通过发行版官方的文档光盘或网站可以获得

安装指南、部署指南、虚拟化指南等
红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com

红帽全球技术支持服务

  • rhn.redhat.com或者本地卫星服务器/代理服务器
    • 基于网络管理的服务器
    • RHN代理服务器为RHN流量提供缓存
    • RHN卫星服务器提供自主的RHN
  • RHN账户
    • 为及其注册和基于网络管理的RHN用户
    • 用于系统自动验证的系统ID
  • sosreport

收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术人员和红帽全球支持提供分析问题依据

网站和搜索

http://tldp.org
http://www.slidesshare.net
http://www.google.com
Openstack filetype:pdf
rhca site:redhat.com/docs

命令行历史

记录历史命令文件:./.bash_history
登录时,会读取历史命令文件中的数据

  • 保存你输入的命令历史。可以用它来重复执行命令
  • 登录shell时,会读取命令历史文件中记录下来的命令~/.bash_history
  • 登录进shell后新执行的命令只会记录在缓存中;这些命令会在用户退出时“追加”至命令历史文件中**

    命令历史 history

    history [-c] [-d offset] [n]
    history -anrw [filename]
    history -ps arg [arg…]
    -c:清空命令历史(清空缓存)
    -d:offset:删除历史命令中指定的第offset个命令
    n:显示最近的n条历史
    -a:追加本次会话新执行的命令历史列表至历史文件
    -r:读取历史文件附加到历史列表
    -w:保存历史列表到指定的历史文件
    -n:读历史文件中未读过的行到历史列表
    -p:展开历史参数成多行,但不存放在历史列表中
    -s:展开历史参数成多行,附加在历史参数列表后
    命令历史可记录的最大条数(阈值)存放在 /etc/profile
    echo $HISTSIZE
    1000

[root@centos7 ~]#history | tail
293 whatis ls
294 mandb
295 whatis mandb
296 whatis makedb
297 whatis vim
298 man -f vim
299 history
300 cat ./.bash_history
301 cat ./.bash_history | head
302 history | tail
#重复执行 第 297条命令
[root@centos7 ~]#!297
whatis vim
vim (1) - Vi IMproved, a programmers text editor

  • 重复前一个命令,有4种方法
    • 重复前一个命令使用上方向键,并回车执行
    • 按!!并回车执行
    • 输入!-1并回车执行
    • 按Ctrl+p并回车执行
  • !:0 执行前一条命令 (去除参数)
  • Ctrl+n 显示当前历史种的下一条命令,但不执行
  • Ctrl+j 执行当前命令
  • !n 执行history命令输出对应序号n的命令
  • !-n 执行history历史中倒数第n个命令

重启网络:systemctl restart network
[root@centos7 ~]#!local
localectl set-locale LANG=zh_CN.utf8
[root@centos7 ~]#systemctl restart network
[root@centos7 ~]#!sys
systemctl restart network
[root@centos7 ~]#localectl set-locale LANG=en_US.utf8
[root@centos7 ~]#!local
localectl set-locale LANG=en_US.utf8
[root@centos7 ~]#!?rest
systemctl restart network

!string 重复前一个以“string”开头的命令
!?string 重复前一个包括string的命令
!string:p 仅打印命令历史,而不执行
!$:p打印输出!$ (上一条命令的最后一个参数)的内容
!:p 打印输出!(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string^string 将上一条命令中的string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为string2

[root@centos7 ~]#echo /dev/sda /dev/sdb
/dev/sda /dev/sdb
[root@centos7 ~]#^dev
echo //sda /dev/sdb
//sda /dev/sdb
[root@centos7 ~]#echo /dev/sda /dev/sdb
/dev/sda /dev/sdb
[root@centos7 ~]#^dev^vda
echo /vda/sda /dev/sdb
/vda/sda /dev/sdb
[root@centos7 ~]#echo /dev/sda /dev/sdb
/dev/sda /dev/sdb
[root@centos7 ~]#!:gs/dev/vda
echo /vda/sda /vda/sdb
/vda/sda /vda/sdb

  • 使用up(向上)和down(向下)键来上下浏览从前输入的命令
  • ctrl-r来在命令历史中搜索命令
    • (reverse-i-search)`’:
  • Ctrl+g:从历史搜索模式退出
  • 要重新调用前一个命令中最后一个参数
    • !$ 表示
    • Esc,.(点击Esc键后松开,然后点击.键)
    • Alt+.(按住Alt键的同时点击.键)

调用历史参数

  • command !^ 利用上一个命令的第一个参数做cmd的参数
  • command !$ 利用上一个命令的最后一个参数做cmd的参数
  • command !* 利用上一个命令的全部参数做cmd的参数
  • command !:n 利用上一个命令的第n哥参数做cmd的参数
  • command !n:^ 调用第n条命令的第一个参数
  • command !n:$ 调用第n条命令的最后一个参数
  • command !n:m 调用第n条命令的第m个参数
  • command !n:* 调用第n条命令的所有参数

  • command !string:^ 从命令历史中搜索以string开头的命令,并获取它的第一个参数

  • command !string:$ 从命令历史中搜索以string开头的命令,并获取它的最后一个参数
  • command !string:n 从命令历史中搜索以string开头的命令,并获取它的第n个参数
  • command !string:* 从命令历史中搜索以string开头的命令,并获取它的所有参数

命令历史相关环境变量

  • HISSIZE:命令历史记录的条数
  • HISFILE:指定历史文件,默认为~/.bash_history
  • HISFILESIZE:命令历史文件记录历史的条数
  • HISTIMEFORMAT=”%F%T” 显示时间
  • HISTIGNORE=”str1:str2*…” 忽略str1命令,str2开头的 历史
  • 控制命令历史的记录方式:

环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups,ignorespace的组合
erasedups 删除重复命令

  • export 变量名=”值”
  • 存放在 /etc/profile 或~/.bash_profile

    bash的快捷键

  • Ctrl+l 清屏,相当于clear命令

  • Ctrl+o 执行当前命令,并重新显示本命令
  • Ctrl+s 阻止屏幕输出,锁定
  • Ctrl+q 允许屏幕输出
  • Ctrl+c 终止命令
  • Ctrl+z 挂起命令

  • Ctrl+a 光标移到命令行首,相当于Home

  • Ctrl+e 光标移到命令行尾,相当于End
  • Ctrl+f 光标向右移动一个字符
  • Ctrl+b 光标向左移动一个字符
  • Alt+f 光标向右移动一个单词尾
  • Alt+b 光标向左移动一个单词首
  • Ctrl+xx 光标在命令行首和光标之间移动
  • Ctrl+u 从光标处删除至命令行首
  • Ctrl+k 从光标处删除至命令行尾
  • Alt+r 删除当前整行

  • Ctrl+w 从光标处向左删除至单词首

  • Alt+d 从光标向右删除至单词尾
  • Ctrl+d 删除光标处的一个字符
  • Ctrl+h 删除光标前的一个字符
  • Ctrl+y 将删除的字符粘贴至光标后
  • Alt+c 从光标处开始向右更改为首字母大写的单词
  • Alt+u 从光标处开始,将右边一个单词更改为大写
  • Alt+l 从光标处开始,将右边一个单词更改为小写
  • Ctrl+t 交换光标处和之前的字符位置
  • Alt+t 交换光标处和之前的单词的位置
  • Alt+N 提示输入指定字符后,重复显示该字符N次
  • 注意:Alt组合快捷键经常和其他软件冲突

ntpdate 从指定主机同步时间
ntp network time protocol 网络时间协议
hexdump 16进制
sosreport 生成红帽的日志
whatis 查看命令简单解释信息
iconv 转换字符编码