# 文本模式下指令的下达
文本模式登陆后取得的程序被称为壳(shell),linx 的壳程序就是厉害的 bash 这一支!关于 bash 后续会介绍
# 开始下达指令
下面是几个重要概念
$ command [-options] parameter1 parameter2
指令 选项 参数1 参数2
2
command:指令(command)或 可执行文件(如批次脚本 script)
command:是指令名称,例如变换工作目录的指令是 cd 等
中括号是可选配置参数
-
一个短横线,如 -h,这是选项的简写--
两个短横线,是选项的完整名称,如 --help
指令、选项、参数等中间以空格来区分,不论空几格 shell 都视为一格,所以空格是很重要的特殊字符
按下 enter 按键后,就代表一行指令的开始启动
指令太长的时候,可以使用反斜杠
\
来跳脱 enter 按键,使指令连续到下一行严格区分英文大小写
其他的介绍,后续 bash 时会详细讲解
ls -al ~
ls -al ~
ls -a -l ~
2
3
以上三条命令都是一样的结果,看明白规则了没
# 语系的支持
很多时候,可能会发现,输入指令之后,显示的结果是乱码,是因为 linux 可以支持多国语系, 终端机在默认情况下,无法支持以中文编码输出数据的,可以更改为英文。
可以这样做:
# 查看目前支持的语系
[mrcode@study ~]$ locale
# 如果是中文的话,则是 LANG=zh_CN.UTF-8
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
# LANG 的语系为 en_US.UTF-8,这已经是英文环境下的编码了
# 但是可以通过以下的方式临时来修改语系
# LANG 只与输出信息有关
[mrcode@study ~]$ LANG=en_US.utf8
# lc_all 则表示所有的都使用该语系
[mrcode@study ~]$ export LC_ALL=en_US.utf8
# 记得,上面的操作方式是临时的,注销 linux 后,就不生效了,后续会讲解这个
# 可以修改 `/etc.local.conf` 来达到持久化改变
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 基础指令的操作
- date:显示日期与时间
- cal:显示日历
- bc:简单好用的计算器
# date
[mrcode@study ~]$ date
Fri Oct 4 23:41:16 CST 2019
# 格式化输出
[mrcode@study ~]$ date +%Y/%m/%d
2019/10/04
[mrcode@study ~]$ date +%H:%M
23:41
2
3
4
5
6
7
前面说到指令后面带选项一般是带 - 号,但是某些特殊情况下是带 + 号, 对于这里的格式化参数占位符,不用死记硬背,后面会告诉你
# cal(calendar) 显示日历
# 显示当前月
[mrcode@study ~]$ cal
October 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
# 显示整年,这里只贴出部分
[mrcode@study ~]$ cal 2019
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
语法为
cal [month] [year]
如 2015 年 10 月
[mrcode@study ~]$ cal 10 2015
October 2015
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
2
3
4
5
6
7
8
9
# bc 计算器
# 进入 bc,会显示当前版本等信息
[mrcode@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
# 下面就可以输入你要计算的公式,按回车显示结果
1+2+3+4
10
7-8+3
2
10*52
520
10^2
100
10/100
0
10*2-1
19
# 离开
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
上面计算发现了一个问题, 10 / 100 = 0,应该有小数才对,设置小数的语法如下
# 在 bc 环境中,使用 scale = 数值
# 后面数值表示你需要几位小数
scale=3
10/100
.100
2
3
4
5
6
# 重要的几个热键 tab、ctrl+c、ctrl+d
在 shell 中有很多的功能组合键,下面是一些重要的几个
# tab
tab 算术 Linux 的 Bash shell 最棒的功能之一了,具有 命令补全、文件补齐 的功能, 但是在不同的地方输入有不一样的结果
[mrcode@study ~]$ ca # 连续按两下 tab tab
# 出来了所有以 ca 开头的指令都出来了
cacertdir_rehash cache_writeback canberra-boot case
cache_check cairo-sphinx canberra-gtk-play cat
cache_dump cal cancel catchsegv
cache_metadata_size ca-legacy cancel.cups catman
cache_repair calibrate_ppa capsh
cache_restore caller captoinfo
# 文件补齐
[mrcode@study ~]$ ls -al ~/.bash
.bash_history .bash_logout .bash_profile .bashrc
# 指令参数补齐
[mrcode@study ~]$ date --
--date --help --reference= --rfc-3339= --universal
--date= --iso-8601 --rfc-2822 --set= --version
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 命令补全:
- 文件补齐:
- 选项/参数补齐:若安装了 bash-completion 在某些指令后面使用,可参数补全
命令和文件笔者没有分清楚到底在什么情况下是什么,书上说了, 由于 CentOS 7 多了 bash-completion,就是有点分不清
# ctrl + c
中断指令的,比如输错了指令,或则这个领了 find /
,会刷屏好一会,这个时候就可以终端它
# ctrl + d
通常代表键盘输入结束(end of file 或 end of Input)。
另外也可以用来取代 exit 的输入,例如在文字界面使用 ctrl + d 就能够直接离开了(相当于 exit)
# shift + Page UP/Page Down
翻页功能,在文本界面执行某些指令时,输出的信息很长,导致前面的部分已不再当前屏幕中了, 就可以使用该按键来前后翻页
# 错误信息查看
[mrcode@study ~]$ DATE # 故意输错了指令
bash: DATE: command not found... # 显示错误信息,后续会详细讲解
Similar command is: 'date' # 给了你一个可能的解决方案
2
3