您现在的位置是:首页 > 文章详情

linux命令使用帮助

日期:2017-11-28点击:634

内部命令和外部命令

内部命令:系统集成的命令,集成到bash程序中的命令,可以用enable和help查看内部命令,直接和系统一样运行在内存中,执行速度快。内部命令中的:相当于TRUE,即什么都不干。

enable cmd启用内部命令

                    enable –n cmd 禁用内部命令

                    enable –n 查看所有禁用的内部命令

                    enable –n enable 自杀,重新注销即可恢复

外部命令:在文件系统路径下有对应的可执行程序文件

查看路径:which  -a |--skip-alias; whereis

区别指定的命令是内部或外部命令

type COMMAND

如果执行过一个外部命令,它会把这个命令的路径记录到内存中,这个就是hash缓存表

hash常见用法:

                            hash       显示hash缓存

                            hash -l    显示hash缓存,可作为输入使用,更详细。

                            hash –p  path name 将命令全路径path起别名为name

                            hash –p /usr/bin/free f

     hash –t name 打印缓存中name的路径

                     hash –t f

                            hash –d name 清除name缓存

                            hash –r 清除所有缓存

       which –a free 显示所有路径下的free

命令执行优先级:别名>内部命令>外部命令 

问:为什么有的命令既有内部又有外部?

       有可能有的shell中没有这个内部命令,外部有还可以执行。

 [root@centos7 ~]#alias alias cp='cp -i' ......

显示当前shell进程所有可用的命令别名

 [root@centos7 ~]#alias date='date +%F'

定义别名date,其相当于执行命令date +%F

在命令行中定义的别名,仅对当前shell进程有效

如果想永久有效,要定义在配置文件中

       仅对当前用户:~/.bashrc

       对所有用户有效:/etc/bashrc  添加到最后即可

编辑配置给出的新配置不会立即生效,需要bash进程重新读取配置文件

source  /path/to/config_file

.  /path/to/config_file

撤销别名:unalias

unalias  [-a]  name [name …]

-a 取消所有别名

如果别名同原命令同名,要执行原命令,可使用

\COMMAND

‘COMMAND’

/PATH/COMMAND

退出某个执行的命令:

Ctrl+c:强制退出,有可能数据丢失。

Ctrl+d:正常退出。

tab键

 [root@centos7 ~]#rpm -qa bash* bash-completion-2.1-6.el7.noarch

需要安装了上面这个包才能启用Tab功能

命令补全

内部命令:直接补全

外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令

路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名

如果唯一:则直接补全

否则:再次Tab给出列表

双击Tab

command 2Tab 所有子命令或文件补全

string2Tab   以string开头命令

复制代码
 [root@centos7 ~]#/ app/ etc/ lost+found/ proc/ srv/ usr/ bin/ home/ media/ root/ sys/ var/ boot/ lib/ mnt/ run/ testdir/ dev/ lib64/ opt/ sbin/ tmp/
复制代码

/2Tab   显示所有根目录下一级目录,包括隐藏目录

 [root@centos7 ~]#./ .cache/ .dbus/ Documents/ .local/ Music/ Public/ Videos/ .config/ Desktop/ Downloads/ .mozilla/ Pictures/ Templates/

./2Tab   当前目录下子目录,包括隐藏目录

 [root@centos7 ~]#* Desktop Downloads Pictures Templates Documents Music Public Videos

*2Tab   当前目录下子目录,不包括隐藏目录

复制代码
 [root@centos7 ~]#~ ~dbus/ ~polkitd/ ~sunan/ ~ftp ~postfix/ ~sync/~gnome-initial-setup ~root/ ~usbmuxd/ ......
复制代码

~2Tab   所有用户列表

复制代码
 [root@centos7 ~]#$ $_ $LINENO $BASH $LOGNAME ......
复制代码

$2Tab   所有变量

复制代码
 [root@centos6 ~]#@ @::1 @localhost4.localdomain4 @localhost.localdomain @localhost @localhost6 @localhost4 @localhost6.localdomain6 
复制代码

@2Tab  /etc/hosts记录    (centos7不支持)

复制代码
 [root@centos6 /]#= app/ dev/ lost+found/ opt/ srv/ .autofsck etc/ media/ proc/ sys/ bin/ home/ misc/ root/ tmp/ boot/ lib/ mnt/ sbin/ usr/ .dbus/ lib64/ net/ selinux/ var/ 
复制代码

=2Tab   相当于ls –A     (centos7不支持)

命令行历史 

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

重复前一个命令,有4种方法

  1. 重复前一个命令使用上方向键,并回车执行
  2. !! 并回车执行
  3. 输入!-1并回车执行
  4. 按Ctrl+p并回车执行

!:0 执行前一条命令(去除参数)

Ctrl + n 显示当前历史中的下一条命令,但不执行

Ctrl + j 执行当前命令

!n 执行history命令输出对应序号n的命令

!-n 执行history历史中倒数第n个命令

!string 重复前一个以“string”开头的命令

!?string 重复前一个包含string的命令

!string:p仅打印命令历史,而不执行

!$:p 打印输出!$(上一条命令的最后一个参数)的内容

!*:p打印输出!*(上一条命令的所有参数)的内容

^string删除上一条命令中的第一个string

^string1^string2将上一条命令中的第一个string1替换为string2

!:gs/string1/string2将上一条命令中所有的string1都替换为string2

使用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 开头的命令,并获取它的所有参数

命令history:

history [-c] [-d offset] [n]

history -anrw[filename]

history -psarg[arg...]

-c: 清空命令历史

-d offset: 删除历史中指定的第offset个命令

n: 显示最近的n条历史

-a: 追加本次会话新执行的命令历史列表至历史文件

-r: 读历史文件附加到历史列表

-w: 保存历史列表到指定的历史文件

-n: 读历史文件中未读过的行到历史列表

-p: 展开历史参数成多行,但不存在历史列表中

-s: 展开历史参数成一行,附加在历史列表后

复制代码
 [root@centos6 ~]#history -p `ls` `pwd` ------------命令中调用命令使用反向单引号,就是键盘tab键上方的键 Desktop Documents ...... ------------ls执行结果 /root ------------pwd执行结果
复制代码

ls和pwd全执行了,但历史中没有记录,-p选项作用。

 [root@centos6 ~]#history -s reboot

历史命令显示的是reboot,但系统没有重启,可以伪造历史

命令历史相关环境变量:

HISTSIZE:命令历史记录的条数,命令的记录的内存中历史的长度,修改/etc/profile文件即可。

HISTFILE:指定历史文件,默认为~/.bash_history,磁盘上历史文件

HISTFILESIZE:命令历史文件记录历史的条数

内存中记录的历史命令和磁盘文件记录的历史命令数可以不一样,但一般相同。

HISTTIMEFORMAT=“%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  组合快捷键经常和其它软件冲突

       在SecureCRT有时候Alt键会有冲突:

       解决办法:右击会话选择会话选项,选择Emacs,选中使用ALT作为元键,然后选中第三项。

使用帮助:

whatis command

依赖于后台数据库,刚刚装上的系统,执行makewhatis(centos6)或mandb(centos7)

command –-help

直接敲help或者enable显示所有的内部命令

man and info

本地帮助文档/usr/share/doc/

官网在线文档

其他网站和搜索

命令帮助:

内部命令:help COMMAND

man bash

               注意:不要用man内部命令,man内部命令其实是打开的man bash

外部命令:

(1)COMMAND –-help(有些命令不支持,使用较少)

    COMMAND  -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

{ } 表示分组

(2)使用手册(manual)

    man  COMMAND(使用较多,比较通用)

    提供命令帮助的文件

    手册页存放在/usr/share/man

    几乎每个命令都有man的”章节”

    man页面分组为不同的“章节”

    统称为Linux手册

       man命令的配置文件:/etc/man.config(centos6)|man_db.conf(centos7)

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

       自己手工安装第三方软件,需要按上面的格式,放置帮助文档路径,不然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

复制代码
 [root@centos6 /]#whatis date date (1) - print or set the system date and time date (1p) - write the date and time [root@centos6 /]#whatis passwd passwd (1) - update user's authentication tokens  passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes
复制代码

通过whatis命令可以查看命令有那些章节,带p的适合开发相关的。

复制代码
 [root@centos6 /]#man 5 passwd Formatting page, please wait... PASSWD(5) Linux Programmer's Manual PASSWD(5)  NAME passwd - password file
复制代码

需要添加第几章节,才是查看的是第几章节的命令,否则按1来看

 [root@centos6 /]#whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

前面是命令的路径,后面是文档的man帮助路径

man帮助段落说明

帮助手册中的段落说明:

        NAME 名称及简要说明

               SYNOPSIS 用法格式说明

               []   可选内容

              <>   必选内容

              a|b   二选一

              { }   分组

              …   同一内容出现多次

              DESCRIPTION 详细说明

              OPTIONS  选项说明

              EXAMPLES 示例

              FILES  相关文件

              AUTHOR 作者

             COPYRIGHT 版本信息

             REPORTING BUGS bug信息

             SEE ALSO  其它帮助参考

man帮助:

查看man手册页

               man [章节]  keyword

               列出所有帮助

复制代码
 [root@centos6 /]#man -a passwd Cannot open the message catalog "man" for locale "zh.CN" (NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N") Formatting page, please wait... PASSWD(1) User utilities PASSWD(1)
复制代码

man –a keyword列出所有章节的passwd帮助,按q切换到下一个

搜索man手册

复制代码
 [root@centos6 /]#man -k hostname dnsdomainname [hostname] (1) - show the system's DNS domain name  domainname [hostname] (1) - show or set the system's NIS/YP domain name  gethostname (2) - get/set hostname gethostname (3p) - get name of current host hostname (1) - show or set the system's host name  hostname (7) - hostname resolution description hosts (5) - The static table lookup for hostnames logresolve (1) - Resolve IP-addresses to hostnames in Apache log files nisdomainname [hostname] (1) - show or set system's NIS/YP domain name
复制代码

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

复制代码
 [root@centos6 /]#man -f passwd passwd (1) - update user's authentication tokens  passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes [root@centos6 /]#whatis passwd passwd (1) - update user's authentication tokens  passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes
复制代码

man –f keyword,相当于whatis

 [root@centos6 /]#man -w 5 passwd /var/cache/man/cat5/passwd.5.lzma (<-- /usr/share/man/man5/passwd.5.gz)

打印man帮助文件的路径,man –w  [章节]  keyword

       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:

以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;

n: 下一个

N:上一个

               ?KEYWORD:

以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;

n: 跟搜索命令同方向,下一个

N:跟搜索命令反方向,上一个

(3)信息页

info COMMAND

方向键,PgUp,PgDn 导航

Tab键移动到下一个链接

d 显示主题目录

Home 显示主题首部

Enter进入选定链接

n/p/u/l进入下/前/上一层/最后一个链接

s文字文本搜索

q退出info

(4)程序自身的帮助文档

README

INSTALL

ChangeLog

(5)程序官方文档

复制代码
 [root@centos7 /]#sosreport sosreport (version 3.4) This command will collect diagnostic and configuration information from this CentOS Linux system and installed applications.
复制代码

向redhat官方发送系统分析包

    官方站点:Documentation

(6)发行版的官方文档

(7)Google

原文链接:https://www.centoschina.cn/command/help/9340.html
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章