Shell 是在操作系统内核的基础上编写的程序,也是一种脚本语言。Shell 为用户提供了操作界面,让用户高效安全地访问 Linux 内核。
执行命令
command [-options] parameter1 parameter2
-
command
: 命令的名称,如 ls
, cd
等
-
-options
: 可选项,通常选项前会带 -
号,如 -h
。有时候使用选项的完整名,则选项前带 --
,如 --help
-
parameter1
parameter2
: 依附在选项后的参数,或 command
的参数
- 命令,选项,参数间以空格区分,按下回车会执行命令。如果命令太长,可以在回车前输入
\
转义回车键
- Linux 系统中英文字母的大小写存在区别,如
cd
和 CD
并不相同
基础命令的执行
date
在命令行模式输入 date
可以知道目前Linux系统的时间,还可以添加参数如[+%Y%m%d]
对时间进行格式化输出。
cal
显示当前月份的日历。cal
也可以显示任意一个月或一整年的日历,可以按 cal [month] [year]
输入命令。
bc
计算程序,可以进行简单的数学运算。退出 bc 环境需要输入 quit
。bc 默认输出整数,如果要输出小数点后的数据,需要执行 scale=number
命令,number
是小数点的位数。
热键
[Tab]
[Tab] 具有命令补全与文件补齐的功能,也可以避免打错命令或文件名。
- [Tab] 接在一串命令的第一个字段后面,为命令补全。
- [Tab] 接在一串命令的第二个字段后面,为文件补齐。
[Ctrl] + c
如果想让当前正在运行的程序中断,可以按下 [Ctrl] 和 c 的组合按键。但如果运行的程序比较重要,最好不要着急使用。
[Ctrl] + d
这个组合按键通常代表键盘输入结束(EOF),也可以用来代替 exit
的输入。
[Shift] + {[Page Up]|[Page Down]}
当命令的输出信息相当长,先前显示的信息不在屏幕中时,可以使用 [Shift] + [Page Up] 来往前翻页,也能够使用 [Shift] + [Page Down] 向后翻页。
在线求助
–help
对于大部分的命令,使用 --help
选项,就能够对该命令的用法有个大致的理解。
首先是执行命令的语法(Usage),cal
可以加上年月日显示日历,也可以加上时间戳或者月份名。下面介绍了 cal
函数的作用,后面的选项(Options)说明了各个选项如 -1
的意义。
通常 --help
用在查询命令的选项与参数,但如果完全不了解一个命令,或要查询的是文件的格式,就要通过 man page
命令了。
man page
需要详细的了解 cal
函数,可以通过输入 man cal
查询 cal
函数。进入 man
的功能后,可以按下空格键往下翻页,按下 q 键退出环境。
上图中左上角的 CAL(1)
,(1)代表一般用户可使用的命令。常见的几个数字对应的意义如下:
代号 |
代表内容 |
1 |
用户在 shell 环境中可以操作的命令或可执行文件 |
2 |
系统内核可调用的函数与工具等 |
3 |
一些常用的函数与函数库,大部分为 C 的函数库 |
4 |
设备文件的说明,通常是 /dev 下的文件 |
5 |
配置文件或是某些文件的格式 |
6 |
游戏 |
7 |
惯例与协议等,如 Linux 文件系统、网络协议 |
8 |
系统管理员可用的管理命令 |
9 |
跟内核有关的文件 |
通过 man -f man
命令可以查询 man
命令相关的信息。如果出现 nothing appropriate
的情况,需要切换 root 用户后执行 mandb
建立资料库。
man
命令输出的结果和执行数字有关,如果忘记了执行数字,直接输入man man
,就会显示查找到的文件,通常是执行数字较小的文件。如果要查找与 7 相关数据,执行 man 7 man
。
如果要查询的不是完整名称,而是关键词,可以执行 man -k man
。只要说明文件中含有 man
就会被取出来。
man page
的内容分成好几个部分介绍命令,以 NAME 开始介绍,以 SEE ALSO 作为结束。man page
大致分成一下几个部分。
代号 |
内容说明 |
NAME |
简短的命令、数据名称说明 |
SYNOPSIS |
简短的命令语法简洁 |
DESCRIPTION |
较为完整的说明 |
OPTIONS |
针对 SYNOPSIS 的部分中,有列举的所有可用的选项说明 |
COMMANDS |
这个程序(软件)在执行的时候,可以再此程序(软件)中执行的命令 |
FILES |
这个程序或数据所使用或参考或链接到的某些文件 |
SEE ALSO |
可以参考跟这个命令或数据有关的其他说明 |
EXAMPLE |
一些可以参考的范例 |
在 man page
中可以输入关键字,例如在 man cal
中输入 /calendar
。
下表是常用按键,这些按键在 man page
的界面中才能使用。
按键 |
进行工作 |
空格键 |
向下翻页 |
[Page Down] |
向下翻页 |
[Page Up] |
向上翻页 |
[Home] |
前往首页 |
[End] |
前往尾页 |
/string |
向下查找字符串 string |
?string |
向上查找字符串 string |
n, N |
在 / 或 ? 查找字符串时,可以用 n 继续查找,或用 N 反向查找 |
q |
结束 man page |
man page
的文件通常存放在 /usr/share/man
目录下,可以通过修改 /etc/man_db.conf
(有的版本为 man.conf
或 manpath.conf
等)改变 man page
的查找路径。
info page
在 UNIX-like 系统中,都可以用 man
来查询命令或相关文件,在 Linux 里还额外提供了一种在线求助方法 info
。info
与 man
的用法差不多,但 info page
会将文件数据分成不同的段落,每个段落有类似网页的超链接跳到各自的页面。每个独立的页面也称为一个节点。需要查询的说明文件以 info
的格式写成,默认放在 /usr/share/info/
目录下。info
命令的说明文件有 info
格式,可以用 info info
查询。
下表是 info page
常用的按键。
按键 |
进行工作 |
空格键 |
向下翻页 |
[Page Down] |
向下翻页 |
[Page Up] |
向上翻页 |
[Tab] |
在节点之间移动 |
[Enter] |
当光标在节点上时,按下 Enter 可进入该节点 |
b |
移动光标到当前界面开头 |
e |
移动光标到当前页面结尾 |
n |
前往下一个节点 |
p |
前往上一个节点 |
u |
向上移动一层 |
s (/) |
查找 |
H, ? |
显示帮助选项 |
q |
结束 info page |
关机
Linux下程序与服务在后台执行,可能有很多用户在一台主机上工作。如果直接关闭电源,不仅会中断他人的数据,还可能造成文件系统的损毁。
执行 who
可以查看有哪些用户在线,执行 netstat -a
可以 查看网络的联机状态,执行 ps -aux
可以查看后台执行的程序。关机前使用 shutdown
指令,让在线的用户有时间结束他们的工作。
在 Linux 系统中,为了加快数据的读取速度,默认情况下加载到内存的数据不会直接被写回硬盘,而是先暂存在内存中。当系统不正常关机时,由于数据尚未写入硬盘,就会造成数据的更新不正常。输入 sync
命令可以将内存中尚未被更新的数据写入硬盘。虽然 shutdown
,reboot
,halt
等命令在关机前均执行了 sync
命令,但最好多做几次以防意外。
主机终端前使用物理终端登录时可以用任何身份关机,使用远程管理工具只有 root 有权力关机。较常使用使用的命令是 shutdown
,可以通过 man
命令详细了解。简单的语法规则如下。
shutdown [-krhc] [时间] [警告信息]
选项与参数:
-k :不关机,只发送警告信息
-r :将系统的服务停止后重新启动
-h :将系统的服务停止后关机
-c :取消正在进行的 shutdown 命令
时间 :指定系统关机的时间,
reboot
, halt
, poweroff
也可以进行重新启动或关机的任务,这三个命令调用的函数库差不多,可以使用 man
查询详细的功能。
目前系统中所有服务的管理是使用 systemctl
命令,前面的命令都是调用 systemctl
,这个命令相关的语法如下。
systemctl [命令]
命令:
halt 进入系统停止的模式,屏幕可能保留一些信息,这与电源管理模式有关
poweroff 进入系统关机模式,直接关机
reboot 直接重新启动
suspend 进入休眠模式