讲师_@王晓春
本章内容
▼用户登录
- root 用户
一个特殊的管理帐户,也被称为超级用户
root已接近完整的系统控制 , 对系统损害几乎有无限的能力 , 除非必要,不要登录为 root - 普通( 非特权 )
用户,权限有限,造成损害的能力比较有限
▼终端terminal
- 设备终端
键盘鼠标显示器 - 物理终端( /dev/console )
控制台console - 虚拟终端(tty:
teletypewriters, /dev/tty# #为[1-6]) tty 可有n个,Ctrl+Alt+F[1-6] - 图形终端( /dev/tty7 )
startx, xwindows
CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪个终端启动,即位于哪个虚拟终端 - 串行终端( /dev/ttyS# )
ttyS - 伪终端( pty:pseudo-tty , /dev/pts/# )
pty, SSH远程连接 - 查看当前的终端设备命令:
[root@CentOS7 ~]$ tty
▼交互式接口
- 交互式接口:启动终端后,在终端设备附加一个交互式应用程序
- GUI:Graphic User Interface
X protocol, window manager, desktop
Desktop: GNOME (C, 图形库gtk),
KDE (C++,图形库qt)
XFCE (轻量级桌面) - CLI:Command Line Interface
- shell程序:sh (bourn 史蒂夫·伯恩) csh tcsh ksh (korn) bash (bourn again shell)GPL zsh
▼什么是shell
- Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。 它接收用户输入的命令并把它送入内核去执行
- shell也被称为LINUX的命令解释器(command interpreter)
- shell是一种高级程序设计语言
▼bash shell
- GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也 是 Linux标准的shell,与sh兼容
- 显示当前使用的shell
[root@CentOS7 ~]$echo $SHELL
/bin/bash
- 显示当前系统使用的所有
[root@CentOS7 ~]$cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
▼命令提示符
- 命令提示符:prompt [root@localhost ~]#
# 管理员 $ 普通用户 - 显示提示符格式
[root@CentOS7 ~]$echo $PS1
[\u@CentOS7 \W]$
- 修改提示符格式
[root@CentOS7 ~]$ PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
符号 | 用途 |
---|---|
\u | 当前用户 |
\h | 主机名简称 |
\H | 主机名 |
\w | 当前工作目录 |
\W | 当前工作目录基名 |
\t | 24小时时间格式 |
\T | 12小时时间格式 |
\! | 命令历史数 |
\# | 开机后命令历史数 |
▼内部命令
- 输入命令后回车
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后 提交给内核分配资源将其运行起来 - 在shell中可执行的命令有两类
内部命令:由shell自带的,而且通过某命令形式提供
help 内部命令列表
[root@CentOS7 ~]$help
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
job_spec [&] history [-c] [-d offset] [>
(( expression )) if COMMANDS; then COMMANDS>
. filename [arguments] jobs [-lnprs] [jobspec ...>
: kill [-s sigspec | -n sign>
[ arg... ] let arg [arg ...]
[[ expression ]] local [option] name[=value>
alias [-p] [name[=value] ..> logout [n]
bg [job_spec ...] mapfile [-n count] [-O ori>
bind [-lpvsPVS] [-m keymap]> popd [-n] [+N | -N]
break [n] printf [-v var] format [ar>
builtin [shell-builtin [arg> pushd [-n] [+N | -N | dir]>
caller [expr] pwd [-LP]
case WORD in [PATTERN [| PA> read [-ers] [-a array] [-d>
cd [-L|[-P [-e]]] [dir] readarray [-n count] [-O o>
command [-pVv] command [arg> readonly [-aAf] [name[=val>
compgen [-abcdefgjksuv] [-o> return [n]
complete [-abcdefgjksuv] [-> select NAME [in WORDS ... >
compopt [-o|+o option] [-DE> set [-abefhkmnptuvxBCHP] [>
continue [n] shift [n]
coproc [NAME] command [redi> shopt [-pqsu] [-o] [optnam>
declare [-aAfFgilrtux] [-p]> source filename [arguments>
dirs [-clpv] [+N] [-N] suspend [-f]
disown [-h] [-ar] [jobspec > test [expr]
echo [-neE] [arg ...] time [-p] pipeline
enable [-a] [-dnps] [-f fil> times
eval [arg ...] trap [-lp] [[arg] signal_s>
exec [-cl] [-a name] [comma> true
enable –n cmd 禁用内部命令
[root@CentOS7 ~]$enable -n help
[root@CentOS7 ~]$help
bash: help: command not found...
enable cmd 启用内部命令
[root@CentOS7 ~]$enable help
[root@CentOS7 ~]$help
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
enable –n 查看所有禁用的内部命令
外部命令:在文件系统路径下有对应的可执行程序文件
查看路径:
which -a |–skip-alias ; whereis
3. 区别指定的命令是内部或外部命令
[root@CentOS7 ~]$type echo
echo is a shell builtin
▼Hash缓存表
- 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 | 清除缓存 |
`显示hash缓存`
[root@CentOS7 ~]$hash
hits command
4 /usr/bin/tty
2 /usr/bin/echo
1 /usr/bin/cat
1 /usr/bin/man
`显示hash缓存,可作为输入使用`
[root@CentOS7 ~]$hash -l
builtin hash -p /usr/bin/tty tty
builtin hash -p /usr/bin/echo echo
builtin hash -p /usr/bin/cat cat
builtin hash -p /usr/bin/man man
`将命令全路径path起别名为name`
[root@CentOS7 ~]$hash -p /usr/bin/echo haha
[root@CentOS7 ~]$haha 123
123
`打印缓存中name的路径`
[root@CentOS7 ~]$hash -t echo
/usr/bin/echo
`清除某个缓存`
[root@CentOS7 ~]$hash
hits command
4 /usr/bin/tty
1 /usr/bin/echo
1 /usr/bin/cat
1 /usr/bin/echo
1 /usr/bin/man
[root@CentOS7 ~]$hash -d tty
[root@CentOS7 ~]$hash
hits command
1 /usr/bin/echo
1 /usr/bin/cat
1 /usr/bin/echo
1 /usr/bin/man
`清除缓存`
[root@CentOS7 ~]$hash -r
[root@CentOS7 ~]$hash
hash: hash table empty
▼命令别名----alias
- 显示当前shell进程所有可用的命令别名: alias
[root@CentOS7 ~]$alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
- 定义别名NAME,其相当于执行命令VALUE
alias NAME='VALUE'
[root@CentOS7 ~]$echo 123
123
[root@CentOS7 ~]$alias echo='echo -n'
[root@CentOS7 ~]$echo 123
123[root@CentOS7 ~]$
-
在命令行中定义的别名,仅对当前shell进程有效
-
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc -
编辑配置给出的新配置不会立即生效
-
bash进程重新读取配置文件
source /path/to/config_file
. /path/to/config_file -
撤消别名:unalias
unalias [-a] name [name …]
-a 取消所有别名 -
如果别名同原命令同名,如果要执行原命令,可使用
\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand
▼命令格式
- COMMAND [OPTIONS…] [ARGUMENTS…]
- 选项:用于启用或关闭命令的某个或某些功能
- 短选项:-c 例如:-l, -h
- 长选项:–word 例如:–all, --human-readable
- 选项:用于启用或关闭命令的某个或某些功能
[root@CentOS7 ~]$ls -a
. .bashrc echo new_1.txt thson
.. .cache .esd_auth Pictures Videos
1 .config f1 .pki .viminfo
123 .cshrc .ICEauthority Public .vimrc
anaconda-ks.cfg .dbus initial-setup-ks.cfg .rnd .w3m
.bash_history Desktop .lesshst .tcshrc w3m-0.5.3.tar.gz
.bash_logout Documents .local Templates
.bash_profile Downloads Music text1
[root@CentOS7 ~]$ls --all
. .bashrc echo new_1.txt thson
.. .cache .esd_auth Pictures Videos
1 .config f1 .pki .viminfo
123 .cshrc .ICEauthority Public .vimrc
anaconda-ks.cfg .dbus initial-setup-ks.cfg .rnd .w3m
.bash_history Desktop .lesshst .tcshrc w3m-0.5.3.tar.gz
.bash_logout Documents .local Templates
.bash_profile Downloads Music text1
- 参数:命令的作用对象,比如文件名,用户名等
- 注意:
- 多个选项以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:Ctrl+c,Ctrl+d
- 多个命令可以用
;
符号分开 - 一个命令可以用\分成多行
[root@CentOS7 ~]$hostname;uname -r ;who;whoami
centos7
3.10.0-957.el7.x86_64
root pts/0 2019-05-10 09:48 (192.168.88.1)
root tty1 2019-05-10 08:39
root
[root@CentOS7 ~]$wh\
> o\
> am\
> i
root
▼日期和时间
- Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板 - 相关命令
- date 显示和设置系统时间
- date +%s
- date -d @1509536033
- hwclock,clock: 显示硬件时钟
- -s, --hctosys 以硬件时钟为准,校正系统时钟
- -w, --systohc 以系统时钟为准,校正硬件时钟
[root@CentOS7 ~]$date
Fri May 10 17:44:26 CST 2019
[root@CentOS7 ~]$clock
Sat 11 May 2019 05:44:24 PM CST -0.584304 seconds
`以硬件时钟为准,校正系统时钟`
[root@CentOS7 ~]$date
Sun May 10 10:30:35 CST 2020
[root@CentOS7 ~]$clock
Sat 11 May 2019 05:45:44 PM CST -0.287186 seconds
[root@CentOS7 ~]$clock -s
[root@CentOS7 ~]$date
Sat May 11 17:46:24 CST 2019
-
时区:/etc/localtime
-
显示日历:cal –y
[root@CentOS7 ~]$cal -y
2019
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30
31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 4 1
7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8
14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15
21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29
30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7
7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14
14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21
21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28
28 29 30 31 25 26 27 28 29 30 31 29 30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2 3 4 5 6 7
6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14
13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21
20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28
27 28 29 30 31 24 25 26 27 28 29 30 29 30 31
[root@CentOS7 ~]$
▼简单命令
1. 关机:halt, poweroff
2. 重启:reboot
-f: 强制,不调用shutdown
-p: 切断电源
3. 关机或重启:shutdown
shutdown [OPTION]… [TIME] [MESSAGE]
[OPTION]
-r: reboot
-h: halt
-c:cancel
[TIME]:无指定,默认相当于+1(CentOS7)
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间
4. 用户登录信息查看命令:
whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作
5. screen命令:
创建新screen会话 screen –S [SESSION]
加入screen会话 screen –x [SESSION]
退出并关闭screen会话 exit
剥离当前screen会话 Ctrl+a,d
显示所有已经打开的screen会话 screen -ls
恢复某screen会话 screen -r [SESSION]
6. echo命令
Linux命令详解用法_echo [OPTION] … [STRING]
- 功能:显示字符
- 语法:echo [-neE][字符串]
- 说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
- 选项:
-E
(默认)不支持\
解释功能
-n
不自动换行
-e
启用\
字符的解释功能 - 显示变量
echo "$VAR_NAME”
变量会替换,弱引用
echo '$VAR_NAME’
变量不会替换,强引用 - 启用命令选项-e
特定字符 | 用途 |
---|---|
\a | 发出警告声 |
\b | 退格键 |
\c | 最后不加上换行符号 |
\n | 换行且光标移至行首 |
\r | 回车,即光标移至行首,但不换行 |
\t | 插入tab |
\\ | 插入\ 字符 |
\0nnn | 插入nnn(八进制)所代表的ASCII字符 echo -e ‘\033[43;31;5mmagedu\033[0m’ |
\xHH | 插入HH(十六进制)所代表的ASCII数字(man 7 ascii) |
▼字符集和编码
- ASCII码:计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美 国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。 ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的 一位统一规定为0
- Unicode:用于表示世界上所有语言中的所有字符。每一个符号都给予一个独 一无二的编码数字,Unicode 是一个很大的集合,现在的规模可以容纳100多 万个符号。Unicode 仅仅只是一个字符集,规定了每个字符对应的二进制代码, 至于这个二进制代码如何存储则没有规定
- Unicode编码方案:
UTF-8:变长,1到4个字节
UTF-16:变长,2或4个字节
UTF-32:固定长度,4个字节
- 扩展阅读:ASCII码对照表
- UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,可变长存储。使 用1-4个字节表示一个字符,根据字符的不同变换长度。编码规则如下:
- 对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode 码。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着 ASCII 码的文档可用 UTF-8 编码打开
- 对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设 为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的 二进制位则使用这个字符的 Unicode 码来填充
- 编码转换和查询:
http://www.chi2ko.com/tool/CJK.htm
https://javawind.net/tools/native2ascii.jsp?action=transform http://tool.oschina.net/encode
▼命令行扩展、被括起来的集合
- 命令行扩展:$( ) 或 ``
把一个命令的输出打印给另一个命令的参数
echo "This system’s name is $(hostname) "
This system’s name is server1.example.com
echo "i amwhoami
"
i am root - 括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5} 结果为:file1 file3 file5
rm -f file{1,3,5}
echo {1…10}
echo {a…z}
echo {000…20…2}
▼tab键补全
- 命令补全 内部命令: 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻 以给定命令名命名的文件,第一次找到的命令即为要执行的命令 用户给定的字符串只有一条惟一对应的命令,直接补全 否则,再次Tab会给出列表
- 路径补全 把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字 符串开头的文件名 如果惟一:则直接补全 否则:再次Tab给出列表
▼命令行历史
- 保存你输入的命令历史。可以用它来重复执行命令
- 登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
- 登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追 加”至命令历史文件中
命令 | 用途 |
---|---|
↑ 和 ↓键 | 上下浏览从前输入的命令 |
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 |
▷调用前一个命令中最后一个参数
重新调用前一个命令中最后一个参数 |
---|
!$ |
Esc+. |
Alt+. |
▷调用历史参数
序号 | 命令 | 用途 |
---|---|---|
1. | command !^ | 利用上一个命令的第一个参数做cmd的参数 |
2. | command !$ | 利用上一个命令的最后一个参数做cmd的参数 |
3. | command !* | 利用上一个命令的全部参数做cmd的参数 |
4. | command !:n | 利用上一个命令的第n个参数做cmd的参数 |
5. | command !n:^ | 调用第n条命令的第一个参数 |
6. | command !n:$ | 调用第n条命令的最后一个参数 |
7. | command !n:m | 调用第n条命令的第m个参数 |
8. | command !n:* | 调用第n条命令的所有参数 |
9. | command !string:^ | 从命令历史中搜索以 string 开头的命令,并获取它的第一 个参数 |
10. | command !string:$ | 从命令历史中搜索以 string 开头的命令,并获取它的最后一 个参数 |
11. | command !string:n | 从命令历史中搜索以 string 开头的命令,并获取它的第n 个参数 |
12. | command !string:* | 从命令历史中搜索以 string 开头的命令,并获取它的所有 参数 |
示例
1.
[root@CentOS7 ~]$cp /etc/yum.repos.d/epel.repo /data
[root@CentOS7 ~]$echo !^
echo /etc/yum.repos.d/epel.repo
/etc/yum.repos.d/epel.repo
2.
[root@CentOS7 ~]$cp /etc/yum.repos.d/epel.repo /data
[root@CentOS7 ~]$echo !$
echo /data
/data
3.
[root@CentOS7 ~]$cp /etc/yum.repos.d/epel.repo /data
[root@CentOS7 ~]$echo !*
echo /etc/yum.repos.d/epel.repo /data
/etc/yum.repos.d/epel.repo /data
9.10.11.12.
[root@CentOS7 ~]$cp /etc/yum.repos.d/epel.repo /data
[root@CentOS7 ~]$echo !cp:^
echo /etc/yum.repos.d/epel.repo
/etc/yum.repos.d/epel.repo
[root@CentOS7 ~]$echo !cp:$
echo /data
/data
[root@CentOS7 ~]$echo !cp:2
echo /data
/data
[root@CentOS7 ~]$echo !cp:*
echo /etc/yum.repos.d/epel.repo /data
/etc/yum.repos.d/epel.repo /data
▼命令history
- history [-c] [-d offset] [n]
- history -anrw [filename]
- history -ps arg [arg…]
[OPTION] | 用途 |
---|---|
-c | 清空命令历史 |
-d offset | 删除历史中指定的第offset个命令 |
n | 显示最近的n条历史 |
-a | 追加本次会话新执行的命令历史列表至历史文件 |
-r | 读历史文件附加到历史列表 |
-w | 保存历史列表到指定的历史文件 |
-n | 读历史文件中未读过的行到历史列表 |
-p | 展开历史参数成多行,但不存在历史列表中 |
-s | 展开历史参数成一行,附加在历史列表后 |
▷命令历史相关环境变量
- HISTSIZE:命令历史记录的条数
- HISTFILE:指定历史文件,默认为~/.bash_history
- HISTFILESIZE:命令历史文件记录历史的条数
- HISTTIMEFORMAT=“%F %T “ 显示时间
- HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史 控制命令历史的记录方式: 环境变量:HISTCONTROL ignoredups 默认,忽略重复的命令,连续且相同为“重复” ignorespace 忽略所有以空白开头的命令 ignoreboth 相当于ignoredups, ignorespace的组合 erasedups 删除重复命令 export 变量名="值“
- 存放在 /etc/profile 或 ~/.bash_profile
- 扩展阅读:Linux命令详解用法_history
▼bash的快捷键
名称 | 快捷键 |
---|---|
清屏 | Ctrl + l |
执行当前命令并重新显示 | Ctrl + o |
阻止屏幕输出 | Ctrl + s |
允许屏幕输出 | Ctrl + q |
终止命令 | Ctrl + c |
挂起命令 | Ctrl + z |
光标到首 | Ctrl + a |
光标到尾 | Ctrl + e |
右移1 | Ctrl + f |
左移1 | Ctrl + b |
右移单词 | Alt + f |
左移单词 | Alt + b |
光标头和尾 | Ctrl + xx |
光标删到头 | Ctrl + u |
光标删到尾 | Ctrl + k |
删除行 | Ctrl + u |
删除左单词 | Ctrl + w |
删除右单词 | Alt + d |
删除当前 | Ctrl + d |
删除左 | Ctrl + h |
粘贴删除的字符 | Ctrl + y |
▼获得帮助
- 多层次的帮助
whatis command
--help
man
info
/usr/share/doc/
- 命令
whatis
- 显示命令的简短描述
- 使用数据库
- 刚安装后不可立即使用
- makewhatis | mandb制作数据库
- 使用示例: whatis cal 或 man –f cal
whatis
- 显示命令的简短描述
- 使用数据库
- 刚安装后不可立即使用
- makewhatis | mandb制作数据库
- 使用示例:
- 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) 程序官方文档
(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
-
man帮助手册中的段落说明:
NAME
名称及简要说明SYNOPSIS
用法格式说明 • [] 可选内容 • <> 必选内容 • a|b 二选一 • { } 分组 • … 同一内容可出现多次DESCRIPTION
详细说明OPTIONS
选项说明EXAMPLES
示例FILES
相关文件AUTHOR
作者COPYRIGHT
版本信息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
- 查看man手册页
-
man命令
- man命令的操作方法:使用less命令实现
space
or^v
or^f
or^F
: 向文件尾翻屏b
or^b
: 向文件首部翻屏d
or^d
: 向文件尾部翻半屏u
or^u
: 向文件首部翻半屏RETURN
or^N
ore
or^E
orj
or^J
: 向文件尾部翻一行y
or^Y
or^P
ork
or^K
:向文件首部翻一行q
: 退出#
:跳转至第#行1G
: 回到文件首部G
:翻至文件尾部
-
man搜索
/KEYWORD
- 以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区 分字符大小写;
n: 下一个
N:上一个
- 以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区 分字符大小写;
?KEYWORD
- 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区 分字符大小写;
n: 跟搜索命令同方向,下一个
N:跟搜索命令反方向,上一个
- 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区 分字符大小写;
▷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://tldp.org
http://www.slideshare.net
http://www.google.com
Openstack filetype:pdf rhca site:redhat.com/docs
登录前后显示信息
- 修改
/etc/issue
- 修改
/etc/motd
- 可参考:
man agetty
练习
1、显示当前时间,格式:2016-06-18 10:20:30
2、显示前天是星期几
3、设置当前日期为2019-08-07 06:05:10
4、在本机字符终端登录时,除显示原有信息外,再显示当前登录终端号,主机名和当前时间
5、今天18:30自动关机,并提示用户
练习答案
- date “+%F %T”
[root@CentOS7 ~]$date "+%F %T"
2019-05-11 11:35:06
- date -d “-2 day” +%A
[root@CentOS7 ~]$date -d "-2 day" +%A
Thursday
- date -s “20190807 06:05:10”
[root@CentOS7 ~]$date -s "20190807 06:05:10"
Wed Aug 7 06:05:10 CST 2019
[root@CentOS7 ~]$date "+%F %T"
2019-08-07 06:05:16
- 修改
/etc/issue
文件
[root@CentOS7 ~]$vim /etc/issue
`特殊的转义字符`
\m:机器类型
\r:内核版本
\d:日期
\t:时间
\l:登录到的终端
\n:主机名
\s:操作系统类型
\u:已经登录的用户数
\v:操作系统版本
- shutdown -P 18:30
[root@CentOS7 ~]$shutdown -P 18:30
Shutdown scheduled for Wed 2019-08-07 18:30:00 CST, use 'shutdown -c' to cancel.
Broadcast message from root@centos7 (Sat 2019-05-11 18:29:00 CST):
The system is going down for poweroff at Sat 2019-05-11 18:30:00 CST!