(二)Linux尝鲜

是时候动手了

安装问题

使用VMware 15 Pro安装Linux时黑屏

在windows命令行输入netsh winsock reset解决

照书上所有流程后有了图型界面

为什么Linux有登陆、注销、关机这么多选项?

  • Linux是一个多人多任务环境,随时有不同的用户的任务在执行,不正常的关机会导致数据损毁
  • 所以通常Linux主机都会挂一个UPS(不间断电源)
  • 注销不是关机,只是让你的账户离开系统

X Windows与命令行模式切换

  • X Windows是窗口管理系统

  • 命令行界面也叫终端、Terminal、Console

Linux默认有6个终端,使用Alt+Ctrl+(F1-F6)切换tty1-6

因为虚拟机默认装了图形界面,所有tty1默认是图形界面

  • 在终端中,输入startx也能进入图形界面,不过有几个条件
    • 并没有其他的X Window被占用
    • 必须安装X Window,且X Sever能够启动
    • 有窗口管理器,比如GNOME、KDE

图形环境就是命令行界面加上X Window软件的结合

Terminal

~代表用户的家目录,是一个变量,$代表普通用户,#代表root用户,root就是Linux的神

指令

1
$ command [-options] parameter1 parameter2
  • 第一个输入的一定是command或者可执行文件(如shell脚本)
  • []代表可选,-表示选项,如-h--表示选项全称,如--help
  • 命令、选项、参数之间使用空格分开,不管空多少格都被认为一格
  • 按下回车开始执行命令
  • 命令太长使用\转行,也是转义字符
  • 命令区分大小写
  • 多个指令可以使用;分隔

date

1
2
[manu@study ~]$ date
2019年 12月 29日 星期日 03:20:42 CST

格式化输出

1
2
[manu@study ~]$ date +%Y/%m/%d
2019/12/29

cal(calendar)

  • 基本语法:
1
$ cal [month] [year]
1
2
3
4
5
6
7
8
[manu@study ~]$ cal
December 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 27 28
29 30 31
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
32
33
34
35
[manu@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
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

bc

进入简单的计算器,scale显示小数点后的位数,quit退出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[manu@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'.
8^8
16777216
8*8
64
7/2
3
7%3
1
scale=3
1/3
.333
quit

总结

命令有两种情况

  1. 输入指令–>输出–>等待输入下一个指令(命令提示符环境)
  2. 输入指令(进入软件环境)–>输出–>结束该指令(退出软件环境)–>命令提示符环境

热键

TAB

  • 在第一个字段连按两次,可以补全指令
  • 在后面的字段连按两次,可文件补全
    • 若安装了Bash-completion,可以补全参数/选项

Ctrl+C

  • 可以停止错误的、不停运行的指令

Ctrl+D

  • 代表键盘输入结束(End Of file,EOF或End Of Input)
  • 也相当于输入了exit

Shift+PU/PD

  • 向上、向下翻页

在线求助

--help

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
[manu@study ~]$ date --help 
用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.

Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC] output date/time in ISO 8601 format.
TIMESPEC='date' for date only (the default),
'hours', 'minutes', 'seconds', or 'ns' for date
and time to the indicated precision.
-r, --reference=文件 显示文件指定文件的最后修改时间
-R, --rfc-2822 以RFC 2822格式输出日期和时间
例如:2006年8月7日,星期一 12:34:56 -0600
--rfc-3339=TIMESPEC output date and time in RFC 3339 format.
TIMESPEC='date', 'seconds', or 'ns' for
date and time to the indicated precision.
Date and time components are separated by
a single space: 2006-08-07 12:34:56-06:00
-s, --set=STRING set time described by STRING
-u, --utc, --universal print or set Coordinated Universal Time (UTC)
--help 显示此帮助信息并退出
--version 显示版本信息并退出

给定的格式FORMAT 控制着输出,解释序列如下:

%% 一个文字的 %
%a 当前locale 的星期名缩写(例如: 日,代表星期日)
%A 当前locale 的星期名全称 (如:星期日)
%b 当前locale 的月名缩写 (如:一,代表一月)
%B 当前locale 的月名全称 (如:一月)
%c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d 按月计的日期(例如:01)
%D 按月计的日期;等于%m/%d/%y
%e 按月计的日期,添加空格,等于%_d
%F 完整日期格式,等价于 %Y-%m-%d
%g ISO-8601 格式年份的最后两位 (参见%G)
%G ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
%h 等于%b
%H 小时(00-23)
%I 小时(00-12)
%j 按年计的日期(001-366)
%k hour, space padded ( 0..23); same as %_H
%l hour, space padded ( 1..12); same as %_I
%m month (01..12)
%M minute (00..59)
%n 换行
%N 纳秒(000000000-999999999)
%p 当前locale 下的"上午"或者"下午",未知时输出为空
%P 与%p 类似,但是输出小写字母
%r 当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
%R 24 小时时间的时和分,等价于 %H:%M
%s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S 秒(00-60)
%t 输出制表符 Tab
%T 时间,等于%H:%M:%S
%u 星期,1 代表星期一
%U 一年中的第几周,以周日为每星期第一天(00-53)
%V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
%w 一星期中的第几日(0-6),0 代表周一
%W 一年中的第几周,以周一为每星期第一天(00-53)
%x 当前locale 下的日期描述 (如:12/31/99)
%X 当前locale 下的时间描述 (如:23:13:48)
%y 年份最后两位数位 (00-99)
%Y 年份
%z +hhmm 数字时区(例如,-0400)
%:z +hh:mm 数字时区(例如,-04:00)
%::z +hh:mm:ss 数字时区(例如,-04:00:00)
%:::z 数字时区带有必要的精度 (例如,-04,+05:30)
%Z 按字母表排序的时区缩写 (例如,EDT)

默认情况下,日期的数字区域以0 填充。
The following optional flags may follow '%':

- (hyphen) do not pad the field
_ (underscore) pad with spaces
0 (zero) pad with zeros
^ use upper case if possible
# use opposite case if possible

在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字。
作为一个可选的修饰声明,它可以是E,在可能的情况下使用本地环境关联的
表示方式;或者是O,在可能的情况下使用本地环境关联的数字符号。

Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'

Show the time on the west coast of the US (use tzselect(1) to find TZ)
$ TZ='America/Los_Angeles' date

Show the local time for 9AM next Friday on the west coast of the US
$ date --date='TZ="America/Los_Angeles" 09:00 next Fri'

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告date 的翻译错误
要获取完整文档,请运行:info coreutils 'date invocation'

man

()里面数字的含义

代号 代表内容
1 用户在shell环境中可以操作的命令或可执行文件
2 系统内核可调用的函数与工具等
3 一些常用的函数和函数库
4 设备文件说明,通常在/dev下
5 配置文件或是某些文件的格式
6 游戏
7 惯例与协议,网络协议、ASCII代码等
8 系统管理员可用的管理命令
9 跟内核有关的文件

man page里面一些常用的操作

按键 进行工作
空格键 向下翻页
PU 向上
PD 向下
Home 第一页
End 最后一页
/string 向下寻找string
?string 向上寻找string
n,N n寻找下一个,N返向寻找
q 退出

man page的数据一般在/usr/share/man里,可以通过修改/etc/man_db.conf来修改查找路径

  • 使用man -f man可以查到与man相关所有的相关文件(要完整名称)
1
2
3
4
5
[manu@study ~]$ man -f man
man (1) - 格式化并显示在线帮助手册页
man (7) - 格式化手册页的宏
man (1p) - display system documentation
[manu@study ~]$
  • 输出结果的左边是命令和数字(代表这个命令的意义),右边是简要说明
    • 然后可以使用man 1 manman 7 man来查看这些说明文档
    • man man默认是man 1 man
  • 使用man -k man会找到有man这个关键字的所有说明文件

在root的Terminal下输入mandb

whatis == man -f

apropos == man -k

info

info page将文件数据拆拆成一个一个段落,每个段落用自己的页面来编写,各个页面中还有类似超链接的跳转,每个独立的界面叫做节点(node)

  • File:代表这个info page来自info.info文件
  • Node:代表这个页面来自Top节点,Top只是info.info的一个内容节点
  • Next:表示下一个节点名,按N跳入
  • Up:表示上一层节点,按U回退一层
  • Prev:表示上一个节点,按P回退一节

node

按键 工作
Tab 在节点之间移动,每个节点前有*提示
Enter 进入某节点
b 首页
e 尾页
n 下一节点
p 上一节点
u 上一层
s(/) 搜索
h/? 显示帮助选项
q 退出

/usr(Unix System Resource)/share/doc/

一些软件说明在里面

总结

  • 忘记命令的选项和参数,使用--help
  • 不知道的命令,使用maninfo
  • 利用软件的功能,使用doc
  • 因为对中文支持不完整,还是多学英语吧。我们遇到英语不要怕,而是要勇敢的面对英语,加油^ _ ^奥里给!!

文本编辑器nano

^代表Ctrl,M代表Alt

多余的不写了

正确的关机方法

  • sync
    • 数据同步写入磁盘,为了效率,一些数据会在内存反复被CPU使用,使用指令后将数据写入硬盘
  • shutdown
    • 可以选择关机模式
    • 设置关机时间
    • 可以设置关机信息
    • 可以设置禁告信息
  • halt
    • 系统停止,可能会保留系统已停止的信息
  • reboot
    • 重启
  • poweroff
    • 系统关机

以上指令都会调用systemctl,这个指令很复杂

参考《鸟哥的Linux私房菜 基础学习篇》

作者

manu

发布于

2020-01-01

更新于

2023-01-06

许可协议


:D 一言句子获取中...