Linux 命令帮助和快捷使用
1 命令格式和选项
1.1 命令格式
user
表示当前用户
linux
表示主机名
~
表示当前目录,~
表示用户 home 目录
$
表示用户类型,$
表示普通用户,#
表示 root 用户
命令:一般一行一个命令,也允许多行,使用 \
表示这一行命令没有结束,多行的命令以 >
起始。
命令格式:一般命令包括了三个部分
1 command [options] arguments
command
代表命令,可以是别名、shell 内置命令、外部命令、shell 函数等
options
代表选项,命令执行时要使用的可选的属性或者功能
arguments
代表参数,是命令作用的对象,0 个或者多个
1 2 3 4 5 6 rm -r ~/documents/doc
1.2 命令格式:选项 [options]
选项根据连字符 -
个数分为短选项 和长选项 :
短选项:以 -
开始,紧跟单个字符。当选项无须参数时,可以合并单字符。
长选项:以 --
开始,紧跟单词。后跟参数采用 --option=value
等号前后都不能有空格。
几乎 所有命令都有 --help
和 --version
选项。
2 联机手册 man 命令
对于外部命令,我们需要查看帮助文档。
软件文档:一般存放在 /usr/share/doc
中,可通过 less
、zless
(查看压缩过的文本文件)和 web
浏览器(查看html文件)查看。
man
命令查看联机手册,采用 less
分页查看。
联机手册可以理解为一些命令的帮助文档,一般包含了:
man cmd
:查看名字为 cmd 的联机手册
whatis cmd
:在索引库中查找命令名与 cmd 匹配的条目,并且仅仅显示这些条目的一句话的 NAME 信息
apropos cmd
:在索引库中,基于命令名以及 NAME 部分的内容,查找与 cmd 匹配的条目,仅仅显示 NAME 信息
2.1 已知命令使用 man 查看帮助
-f
查看名字匹配的命令的 NAME 部分的内容(whatis 提供类似更全面的功能)
1 ls (1) - list directory contents
-k
搜索 NAME 部分,列出匹配的命令(apropos 提供类似更全面的功能)
1 2 3 man -k 'list directory contents' apropos –r 'list directory contents'
2.2 whatis 通过匹配查找命令
1 2 3 4 5 whatis [options] name -e, --exact : 采用精确匹配,默认 -r, --regex : 正则表达式匹配,命令名部分匹配 -w, --wildcard : 通配符匹配
1 2 3 4 5 whatis -e ls whatis -r mkdi whatis -w 'm*dir'
2.3 apropos 通过 NAME 匹配命令
1 2 3 4 5 6 apropos [OPTION] keywords -r, --regex : 默认,采用正则表达式,模糊匹配 -e, --exact : 采用精确匹配 -w, --wildcard : 采用通配符匹配 -a, --and : 匹配所有的关键字,缺省匹配任意一个
1 2 3 apropos -r 'list directory contents' apropos -e 'list directory contents on'
3 内置命令帮助
3.1 help 查看内置命令帮助
外部命令 :可独立运行的可执行程序
例如 ls
可执行程序位于 /usr/bin/ls
内置命令 :当前正在执行的终端 shell 所提供的命令
help
内置命令可查看 shell 内置命令相应的帮助信息
1 2 3 4 5 6 help [options] [arguments]-s : 仅查看语法 -m : 以联机手册形式查看,即采用 less 分页方式查看帮助文档 [arguments] 可以指定特定的命令
例如:
1 2 3 4 help -s cd cd : cd [-L|[-P [-e]] [-@]] [dir ]
1 2 3 4 5 6 7 8 9 10 11 12 13 help for for : for NAME [in WORDS ... ] ; do COMMANDS; done Execute commands for each member in a list. The `for ' loop executes a sequence of commands for each member in a list of items. If `in WORDS ...;' is not present, then `in "$@ " ' is assumed. For each element in WORDS, NAME is set to that element, and the COMMANDS are executed. Exit Status: Returns the status of the last command executed.
3.2 info 查看任意命令
针对不同的命令,查看帮助文档却要用不同的指令,这显然是很繁琐的。所以,info
提供了简单的查找方式。直接通过 info cmd
即可查看 cmd
的联机手册。
1 2 3 4 root@iZuf695p5vw7py8urm4h4fZ:~# help ls -bash: help : no help topics match `ls '. Try `help help' or `man -k ls ' or `info ls' . root@iZuf695p5vw7py8urm4h4fZ:~# info ls ...
help
查看不了 ls
这个外部命令,但是 info ls
却可以直接跳转进 ls
的联机手册。
<Space>
查看下一页
<Delete>
查看上一页
q
退出 info
界面
H
查看 info
所有命令
h
进入 info
教程
4 命令历史
用户输入的命令会被保存到历史列表,文件存放于 ~/.bash_history
,下次打开终端 shell 时也会去 ~/.bash_history
加载。
如果当前命令与上一个命令完全一致,不会加入
以空白字符开始的命令,不会加入(所以,可以通过先键入空格,而后输入命令的方式,使得命令不被记录)
4.1 history 命令
history
命令查看命令历史列表,n
指定最近 n 条记录。
1 2 3 history -c history -r history -w (history -a)
4.2 历史记录扩展
调用历史记录的命令
作用
!num
执行编号 num 的历史命令
!!
执行最近一次历史命令,等价于 !-1
!str
执行最近一次以 str 开始的命令
!?str
执行最近一次包含 str 的命令
!$
上一条命令的最后一个单词
!*
上一个命令的所有参数
例如:
注意 !
后均无空格
5 自动完成
输入命令的一部分,按 <Tab>
键或 <Ctrl> + I
触发自动完成功能。如果有多个可选项或者没有可选项时会发出提示声表示有歧义。
例如:下例按下 Tab 键后,会发出提示音,再按一下,则会返回所有可能结果(文件)
1 2 3 4 ls .bash<Tab>.bash_history .bashrc
例如:按下 Tab 键后,会发出提示音,再按一下,则会返回所有可能结果(命令)
1 2 3 4 ls <Tab>ls lsb_release lscpu lsinitramfs lslocks lsmem lsns lspci lsusb lsattr lsblk lshw lsipc lslogins lsmod lsof lspgpot
6 命令别名
6.1 alias 查看命令别名
有时设置一些命令的别名能方便命令的输入。可以使用 alias
查看别名:
1 2 3 4 5 6 7 8 9 10 alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls ='ls --color=auto'
这说明了输入 l
相当于输入 ls -CF
;输入 la
相当于输入 ls -A
6.2 自定义别名
可以进入 ~/.bashrc
中修改(永久修改)【推荐单独创建文件 .bash_aliases
】
在用户目录下创建文件 .bash_aliases
写入例如:
1 2 3 4 5 6 7 alias ..='cd ..' alias h='history 20'
然后 source .bashrc
之后,便可永久保存别名。
例如:
1 2 alias h='history 20' alias ..='cd ..'
设置 h
扩展为 history 20
;..
扩展为 cd ..
1 2 3 alias halias h='history 20'
1 2 3 4 alias ..alias ..='cd ..'
6.3 取消别名与不进行别名扩展
unalias -a
取消所有别名
7 终端组合键
7.1 终端 shell 组合键
组合键
含义
Ctrl + D
EOF 输入结束
Ctrl + C
中断进程
Ctrl + \
退出进程,对应的内存状态保存到 core 文件
Ctrl + Z
发送终端停止信号,前台作业暂停并放入后台
Ctrl + H
或 <Delete>
删除光标前的最后一个字符
Ctrl + W
删除光标前的最后一个单词,以空格为分割
Ctrl + U
删除这一行
fg
命令:将后台作业切换到前台执行;bg
命令:将暂停的作业切换到后台执行
使用命令,可以查看这些组合键
1 2 3 4 5 6 7 stty -aspeed 9600 baud; rows 35; columns 130; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; ...
输入 Ctrl + V
再按 Ctrl +
得到字符 ^
7.2 bash 组合键
bash 使用 readline
库新增其他组合键。
快捷键
含义
Ctrl + A
光标移动到行首
Ctrl + E
光标移动到行尾
Ctrl + L
清屏并移动光标到左上角,等价于 clear
命令
Ctrl + _
撤回之前的操作
Ctrl + K
剪切光标处到结尾的字符
Ctrl + Y
在光标处粘贴
配置文件位于 /etc/inputrc
,建议在 ~/.inputrc
中配置。