Linux 概要

更新日期:2019年8月10日周六

操作系统:linux

常见的版本:
redhat enterprise linux,fedora ,centos,debian,ubuntu, suse等,我目前在使用的版本为:redhat enterprise linux 7

查看目录内容 – ls命令

选项 描述
-l 以长列表的格式列出目录信息
-r 逆序列出目录信息
-d 查看当前目录
-ld 查看当前目录的详细信息
-lh 显示目录中各项文件的大小
-a 列出隐藏文件,包括.和…
-A 列出隐藏文件,不包括.和…
-i 显示文件索引节点号(inode,每个文件的inode都不相同)
普通ls

ls -l

ls -r

ls -d

ls -ld

ls -lh

使用-lh后,在第五列新添加了一列就是文件的大小,单位为字节。

ls -a

使用-a选项后,会显示目录中隐藏的目录,如图所示红框中的.和…

ls -A

与-a不同,-A选项会显示除了.和…之外隐藏的目录或文件。

ls -i

使用-i选项,在每个文件或目录的前面会有该目录的inode序列号。

linux系统的文件类型

标识 描述
- 普通文件
d 目录文件
c 字符设备文件,串行端口设备,顺序读写,键盘
b 块设备文件,可供设备存储的接口设备,随机读写,硬盘
p 管道文件,用于进程之间的通信
l link,链接文件
s 套接字文件

linux系统中与时间相关的命令

date

输出和更改日期时间,只有root用户可以设置时间

更改格式:date+月+日+时+分+年.秒


使用date -s " 时:分:秒 年-月-日" 修改时间:

clock查看硬件时间

cal查看日历

使用cal直接查看当月的日历,黑底白字的为当天日期。

使用cal -y查看本年所有月份:

使用cal+年份查看指定年份的日历。

使用cal+-3查看上个月,这个月和下个月信息

软链接和硬链接

硬链接:当多个文件对同一个文件进行硬链接,那么这些文件之间也互为硬链接

首先创建一个目录,在目录中添加三个文件。
创建目录命令:mkdir+目录名称
默认创建在本目录下,如果要指定创建的位置,需要写出绝对路径,例如:

在根目录下创建目录apple,“/”为根目录,并使用ls命令查看创建的结果,可以发现有新加的目录apple。

硬链接

硬链接:通过文件的inode来产生新档名,而不是产生新档案。
使用ln 命令创建,具体使用方法:ln+源文件目录+目标文件目录
例如,给刚才创建的file1创建硬链接为file1.bak:

当硬链接创建后,file1和file1.bak文件会产生链接。可以看到,两个文件都变色了。

软链接

软链接:类似于windows系统中的快捷方式,可以帮助用户快速的定位到目标档案。
同样使用ln 命令创建,需要携带选项 “-s”,例如:给file2创建软链接file2.bak

可以通过“ll”命令查看目录下的详细信息


如图可知,创建好的硬链接,会显示为蓝底白字,创建好的软链接会用软链接文件指向原文件。

硬链接和软链接的区别

首先,使用echo命令,给file1中加入内容,例如:hello world
echo+hello world+>+file1
然后使用cat命令查看文件信息:cat+文件目录信息

可以看到,文件已经有内容了,现在查看file1.bak的内容:

硬链接文件file1.bak已经链接到了file1的内容。
将file1文件删除,使用rm -f命令:

可以看到,当file1删除后,原本的硬链接文件的蓝底白字消失,此时查看硬链接文件file1.bak的内容:

可以得出,硬链接的原文件删除后,不会影响对应的硬链接文件内容。
用同样的方法为file2文件加入内容:

顺便查看file2的软链接文件内容:

此时删除file2文件:

可以看到,当软链接原文件删除后,查看目录信息,软链接文件为缺失状态,指向的原文件也为缺失状态,尝试打开file2.bak:

已经打不开file2.bak文件了。
总结
1、但不会因为原文件的缺失而导致链接文件不可用
2、软链接的链接文件会因为原文件的缺失导致链接文件不可用。

linux系统下的常见目录

目录名称 描述
/ 根目录
/bin 可执行文件目录,所有用户都能执行
/sbin 可执行文件,只有管理员用户能执行
/boot 开机启动的文件,包括linux内核以及菜单与开机所需配置
/dev 目录文件,设备文件,任何设备与接口设备都是以文件形式存在这个目录
/home 所有普通用户的家目录所在地,也是目录文件
/root root用户的家目录
/lib 系统的函数库
/mnt 挂载点目录
/media 媒体目录,也是挂载点目录
/opt 可选目录,用于存放第三方软件包和数据文件
/proc 虚拟文件系统
/run 当前系统正在运行的数据
/srv 服务所需要的数据
/sys 虚拟文件系统
/usr unix软件资源目录
/var 日志文件存放地,/var/log/messages
使用alias来编辑命令

在linux系统中,允许用户自行编写命令,alias+name=‘原命令’
例如,自定义命令名称为create,实现的功能是在本目录下创建一个新目录new:


但是这种创建命令的方法,在关闭terminal后重新打开就会失效,还有一种方法,可以永久创建自定义命令:修改配置文件
使用vim命令进入**/etc/bashrc**:vim+/etc/bashrc

vim是linux系统重要的编辑器之一,后面会详细解释

按i键进入插入模式,在插入模式中,可以对文件的内容进行修改

在bashrc文件的末尾添加如图一行命令,切记不要在if和fi之间添加。按ESC键返回到命令模式,按下:键进入末行命令模式,输入wq!,强制保存并退出。
退出之后,设置的自定义命令不会立即生效,可以选择:
1、关闭terminal终端再打开
2、使用source /etc/bashrc 命令来更新配置

接下来,使用自定义的create命令来实现自动创建new目录:

linux下常用的快捷键或命令

快捷键 描述
ctrl+l或输入clear 清屏
ctrl+d 退出/输入已结束
ctrl+c 终端当前请求,终止当前命令
ctrl+s/ctrl+q 暂停/恢复屏幕输出
tab 自动补全命令
ctrl+u 删除光标至行首的内容
ctrl+k 删除光标至行尾的内容
输入date 查看时间
输入clock 查看硬件时间
输入hwclock 查看硬件时间
输入cal 查看日历
输入bc 使用bc计算器

使用echo将内容输出到屏幕上 echo+内容
使用echo将内容输出到文件中 echo+内容+>+文件具体目录
使用echo将内容追加在文件中内容的后面 echo+内容+>>+文件具体目录

文件名称的创建规则

1、不能使用带有“/”的名称作为文件名
2、文件名不能超过255个字符
3、区分大小写
4、目录也是文件,在同一目录下,不能出现同名文件

使用touch命令创建文件的技巧:
1、在{}中写入要创建的文件名

2、在大括号中批量新建文件

3、将大括号穿插在名称中

4、直接写出多个要创建的文件名
5、通过多个大括号来实现组合排序创建

通过stat命令可以查看文件的access时间,modify时间和change时间

使用cat将file1内容重定向到file2

命令格式:cat+file1+>+file2

使用命令cat:


第一个cat的目的:在未进行重定向之前,file2内容为空
第二个cat的目的:实现重定向
第三个cat的目的:查看重定向之后的结果

删除文件操作

在linux中,使用rm命令来删除各种文件
rm -r 递归删除(删除目录时需要加上此选项)
rm -f 强制删除(所谓强制删除就是不会提示用户,命令立即生效)
rm -fr 强制递归删除

复制文件操作

在linux中,使用cp命令来复制各种文件
格式:cp+原文件路径+目标文件路径
当目标文件不存在时,会创建新文件

移动文件操作

在linux中,使用mv命令来移动各种文件
格式:mv+原文件路径+目标文件路径
在files目录内添加新文件filex和filey,将filex放在files目录所在的目录,也就是root用户的桌面,/root/Desktop

linux下的命令

1、由shell程序的自带的命令:内置命令(builtin)
2、由独立的可执行程文件,文件名即命令名:外部命令

选项: 指定命令的运行特性,知名要运行命令中的哪一个功能代码
选项有两种表现形式:
1、短选项:例如-l,-d
如果同一命令同时使用多个短选项,多数可以合并,例如:
ls 和加了 -l,-a,-i,-h,将多个短选项连在一起使用:liah

注意:有些选项可以带参数,此称为选项参数
参数: 命令的作用对象:命令对什么生效

使用histroy查看已经输入过的命令

使用history -c清除历史命令


使用histroy -c后,再次查看历史命令,只显示这条history命令。

linux下的文本编辑

特点:所有的UNIX like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;
很多软件的编辑接口都会调用vi
vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计,根据文件的扩展名或者是文件内的开头信息判断该文件的内容而自动调用该程序的语法判断式,再以颜色来显示程序代码与一般信息,程序简单,编辑速度相当快速。

vim

一般模式:按ESC键可回到命令模式

名称 描述
dw 按照单词删除
u 撤销当前操作
dd 删除当前行,=剪切
ctrl+r 重做上一个操作
yy 复制光标所在行
2 yy 复制光标所在行和光标下一行
p 粘贴到光标下一行
P 粘贴到光标上一行
cc 剪切
行数 cc 剪切当前行开始的几行
x 删除光标所在位置的内容,即向后删除一个字符
X 向前删除一个单词
w,b 按单词进行移动光标
gg 跳转到文档首部行首
dgg 删除光标至文档首部
G 跳转到文档尾部行首
$ 行尾
^ 行首
n[enter] n为数字,将光标向下移动n行
h 往左按字符移动光标
j 往下(后)按行移动光标
k 往上(前)按行移动光标
l 往右按字符移动光标
H 跳转到当前屏幕输出的最上面一行
L 跳转到当前屏幕输出的最下面一行
M 跳转到当前屏幕输出的中间一行

插入模式:

名称 描述
i 在光标前插入内容
l 在光标所在行第一个非空格符前插入内容
a 在光标后插入内容
A 在光标所在行末尾插入内容
s 删除光标所在位置字符并插入
S 删除光标所在行并插入
o 在光标所在行下一行插入内容
O 在光标所在行上一行插入内容

命令行模式:

名称 描述
:wq 保存退出
:q 退出
:wq! 强制保存退出
:q! 强制退出,不保存
:set nu 显示行号
:set nonu 不显示行号
:行号 跳转到指定行号
:3,5 d 删除第3行到第5行
:r 文件名 1 读出文件1的内容到当前文件里
:%s/1/2/g 将1替换为2,全局修改
:w 文件名1 另存为文件名1
/word 向下寻找一个字符串名称为word的字符里
? word 向上寻找一个字符串名称为word的字符串
ZZ 若文件没有改动,则不保存离开,若文件已经被改动过,则保存后离开

多文件编辑:
vim 文件1 文件2 文件3
:files 显示多个文件文件名
:n 查看下一个文件内容
:N 查看上一个文件内容
多窗口功能
vim 文件1
:sp 文件名 – 在同一个窗口启动另一个文件
:sp 同一个文件出现在两个窗口间

向上翻页
ctrl+w+↑
向下翻页
ctrl+w+↓
退出(等同于:q)
ctrl+w+q

文本查看命令 – cat

cat 连接并显示文件内容到标准输出
显示文件内容并显示行号:cat+-n+文件名

黑洞机制: (常用于shell脚本)
将文本重定向到 /dev/null,用这种方法可以检查文件是否存在
不带任何选项时,从标准输入接收输出到标准输出

逆序显示文件:tac(其实就是将cat命令反着写)

从头开始逐行查看: more/var/log/messages
在没有翻到最后一屏时支持向前翻

前后查看文件内容:less/var/log/messages
man手册查看命令用法默认用less打开

默认查看文件前10行:head/etc/passwd
指定查看前5行:head -5/etc/passwd

默认查看后10行:tail/etc/passwd

文本处理

文本切割显示:
cut -d指定分隔符 -f,指定第几列,被切割文件
-f 1,3 第一列和第三列
-f 1-3 第一列到第三列
-c 1-4 指定第一到第四个字符
指定分割符的时候空格需要用单引号或双引号引起来

文本排序显示:
排序显示:(默认根据字符再ASCII码中的升序排序)
sort+文件名
按照数值大小排序:
sort+-n+文件名

排序并去掉重复的:
sort+-u+文件名

逆序排序:
sort+-r+文件名

按照用户uid数字大小排序显示:
sort -t 指定分隔符 -k 指定第几列 -n /etc/passwd

选项 描述
-f 排序时忽略字符大小写65 97
-d 只显示重复的行
-D 显示所有重复的行
-c 显示重复行重复的次数
文本统计:wc – word count

显示文件行数、单词数、字节数、文件名:wc文件名

只显示单词数:wc -w 文件名
只显示字节数:wc -c 文件名
只显示行数:wc -l 文件名
只显示字符数:wc -m 文件名
显示最长的一行的字符数(不包括断行符):wc -L 文件名

统计当前目录下的文件数:
ls -l | wc -l
ls | wc -l

文本过滤:grep

grep可以根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容。
查找文件里的字符和字符串
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep ^ [q] 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep ^ [0-9] 文件名
匹配以q或f开头的行:grep ^ [qf] 文件名
匹配以 # 开头的行:grep ^ #
过滤空白行:grep ^ $
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2

管道符 “|”

管道符左边命令的输出作为管道符右边命令的输入
tee命令:在输出到文件的同时输出到屏幕和文件里,例如:使用管道符将hello world输出到屏幕和文件hello中

文件搜索

查找文件路径:
格式find+路径+-name+文件名
例如:在根目录下创建新目录fruits,在这个新目录下创建文件banana,然后使用find命令来查找这个文件

find的结果是该文件的绝对目录。
如果只记得文件的前几个字符,可以使用通配符来概括后不记得的字符,例如:
find+/+-name+ban

这样的查询结果会将ban开头的所有文件的路径都显示出来,同样的,包括真正要找的banana

linux的通配符

“*” 表示匹配任意零个或多个字符
“?” 表示匹配任意单一字符
“[]” 表示匹配任意包含在方括号内的单字符

文件的压缩和解压缩

在linux中,常见的压缩文件有:

扩展名 描述
.gz gzip程序压缩的文件
.bz2 bzip2程序压缩的文件
.tar tar程序打包的数据,并没有经过压缩
.tar.gz tar程序打包的文件,其中经过gzip的压缩
.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩

最常见的压缩命令:gzipbzip2
gzip的使用格式:
1、不保留原文件
gzip+压缩后的文件名
2、保留原文件
gzip+-c+文件名1+>+文件名1.gz
其中-c选项的功能是将压缩的文件同时输出到屏幕
gzip解压:
1、不保留原文件
gzip+-d+文件名.gz
gunzip+文件名.gz
2、保留原文件
gzip+-cd+文件名.gz+>+文件名
查看压缩过的压缩文件中的内容
zcat+文件名.gz

bzip2的使用格式:
1、不保留原文件
bzip2+文件名
2、保留原文件
bzip2+-c+文件名+>+文件名.bz2
bzip2解压:
1、不保留原文件
bzip2+-d+文件名.bz2

bunzip2+文件名.bz2
2、保留原文件
bzip2+-cd+文件名.bz2
查看压缩过的压缩文件的文件内容
bzcat+文件名.bz2

文件归档即打包文件:tar [主文件+辅选项] 文件或目录
主选项:只能出现一个主选项

主选项 描述
c create,创建一个新归档文件
x 从归档文件中提取文件出去
t 列出归档文件的内容,查看已经打包了哪些文件
辅选项 描述
z 通过gzip的支持进行压缩/解压缩,一般格式为.tar.gz
j 通过bzip2的支持进行压缩/解压缩,一般格式为.tar.bz2
v 归档或解包过程中显示被打包的文件
c 这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f 输出结果到文件,必须写该选项
exclude=文件名 在打包的过程中,不将exclude指定的文件打包

用户管理的配置文件
使用ls -lih来查看文件的详细信息:

存在根目录下的etc下的passwd文件,被称为用户的配置文件
使用vim来查看文件的内容:

使用“:”分割开的每一项的含义:
用户名:密码:用户UID:GID:备注:用户的家目录:和根交互时使用的shell

其中,用户的编号决定了用户的身份:
超级用户: root,UID为0
系统用户: 用来管理和运行服务,系统用户的shell为sbin/nologin,不让该用户登录,UID为201-999,添加系统用户时,不创建主目录和邮箱:
useradd+-r+用户名
一般用户: UID为1000-60000,添加一般用户时,系统默认为该用户创建主目录(/home/用户名)和邮箱(/var/mail/用户名)

添加用户的格式:
useradd+用户名或者adduser+用户名

添加用户时的选项:

选项 描述
-u uid号
-g gid号/组名
-G 附加组号/附加组名
-c 备注
-s 指定shell
-d 指定家目录

使用userdel -r 用户名 来删除某一用户
用户的密码文件:
用户的密码文件存放在/etc/shadow
使用vim查看该文件内容:

如图,图中的roedeer用户的密码为
roedeer:$1 $PA9vumw4 $5cJLMnQIzdfDN0ponxyCN/:18118:0:99999:7:::
其中第一个“ $ ”后跟的数字1表示该密码是由md5算法来表示的,如果是2a,则为Blowfish加密,5为SHA-256加密,6为SHA-512加密,salt是一个最多16字符的随机生成的字符里,用来增加破解难度,encrypted是经过加密算法和salt算出的密文,“!!”表示锁定状态。
“18118”表示的是最后一次密码修改的时间,从1970年1月1日到最后一次修改密码所经过的天数。
“0”表示密码的最短使用期限,为0表示不限制
“99999”表示密码的最长使用期限,即使用多长时间后必须改密码,99999表示可不更改密码
“7”表示密码过期警告时间,密码过期前多少天进行警告,提示用户改密码,但不会锁定密码
然后是密码过期宽限时间,密码过期后必须修改密码的时间,如果还没改,则锁定用户
然后是账号过期精确时间,如果为99999,则永不过期,计算方法是从1970年1月1日之后的天数。
最后是保留字段。

组管理的配置文件
组管理的配置文件是根目录下的etc下的group文件
使用vim查看文件内容:
表示格式为:组名:组密码:组ID:用户列表
组类型:

组类型 描述
私有组 当组里只有一个成员时,该成员的基本组也叫私有组
基本组 用户的默认组
附加组 默认组意外的组

如何添加组:groupadd+-g+gid+组名

修改组密码:gpasswd
-a+用户名 添加用户到组
-d+用户名 将某用户从组中移除
-M+用户1,用户2,… 设置用户列表
-A+用户名 将某一用户设置成组的管理员
-r 删除组的密码

newgrp – 登录一个新组
使用exit 退出新组

组密码的相关信息:
在根目录下的etc下的gshadow文件,使用vim查看文件内容

表示格式: 组名:组密码:群组管理员账号:用户列表

使用** “usermod + 选项 + 用户名” **修改用户属性:

选项 描述
-c 改变用户的全名或者描述名称
-d 改变用户的家目录
-e 设置用户账号的过期时间
-f 密码的过期宽限时间
-g 改变用户的gid
-G 将用户添加到一个新组
-s 改变用户的默认shell
-l 改变用户的用户名
-u 改变用户的uid
-L 锁住密码,使账号不可用
-U 为用户密码解锁

给用户追加附加组:usermod + -a + -G + 组名 + 用户名
给用户修改密码:passwd + 选项 + 用户名

选项 描述
-n 指定密码的最短使用期限
-x 指定密码的最长使用期限
-w 设置密码的过期警告时间
-l 锁定用户账号密码
-u 解锁用户账号
-d 删除用户密码

也可以使用 “echo + 密码 + | + passwd + --stdin + 用户名” 来修改密码,这种修改方式不会提示,直接修改。

linux_常用命令相关推荐

  1. LINUX_常用命令讲解

    Linux大纲版本:CentOS7.0 下载路径: 第一节 Linux简介和安装 1.1 基础简介 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于 ...

  2. Linux_常用命令符每天积累

    登陆相关 exit   安全退出用户登陆 shutdown 关机,管理员使用 shutdown [选项] [时间] [警告信息]  命令中各选项的含义为:  - k 并不真正关机而只是发出警告信息给所 ...

  3. linux_常用命令小总结

    netstat -ntpa|grep 8001 tomcat 过多的时候,知道端口可以使用下面的命令快速查找进程cp -r xxx/ xxx/ 才不会报错.for i in `ls` ;do tar ...

  4. linux挂载03磁盘,Linux_常用命令_03_磁盘/挂载_信息查看(示例代码)

    1. 1.1. mount 不带参数的话,显示的是 当前已经挂载的情况 1.2. df 不带参数的话,硬盘分区状况查询 2. 2.1. cat /proc/partitions 2.2. fdisk ...

  5. Linux_学习_01_常用命令大全

    一.文件目录 1.列出目录 ls -a #显示隐藏文件 -l #显示文件和目录的详细资料 -h-lrttree #显示文件和目录由根目录开始的树形结构 lstree #显示文件和目录由根目录开始的树形 ...

  6. linux sh语法进入目录,Linux_常用的Linux shell命令详解收集整理,1 文件与目录操作命令 1.1文 - phpStudy...

    1 文件与目录操作命令 1.1文件内容查询命令 grep.fgrep.egrep 语法:grep[选项][查找模式][文件名1,文件名2,--] 选项: -E 每个模式作为一个扩展的正则表达式对待 - ...

  7. Linux 学习笔记2 常用命令

    Linux 学习笔记1 安装linux详细教程_O丶ne丨柒夜的博客-CSDN博客 Linux_目录结构 基本介绍 1.liux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录&quo ...

  8. Kubectl 常用命令, 开发人员常用k8s命令

    Kubectl 常用命令: 什么是常用,我用的,就是常用的

  9. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

最新文章

  1. SQL begin end 块作用
  2. python基础===Python 代码优化常见技巧
  3. Python定义函数的三种方式
  4. WMI介绍及简单实际运用(二,Win32_Processor内容)
  5. python列表索引超出范围 等于啥_python - IndexError:列表分配索引超出范围,Python
  6. OpenERP 关于页码总页数
  7. 眼擎科技CEO朱继志:如何设计自动驾驶的视觉成像系统 | 吃瓜笔记
  8. 查python的软件_Python制作天气查询软件【python实战必学】
  9. 静态绑定(前期绑定)
  10. \t\t对80后玩家影响深远的12款单机游戏
  11. 小觅相机SDK安装与报错解决
  12. 关于EmmyLua插件创建Lua脚本Require失败的问题
  13. 怎么篡改计算机硬盘大小,怎么样更改Parallels Desktop硬盘大小 Parallels Desktop虚拟机硬盘大小如何更改...
  14. 基于MATLAB的特征值与特征向量(附完整代码)
  15. 数据库原理(三):Sql Server操作语句
  16. 大数据(分布式计算框架+分布式存储)
  17. 解决ps默认打开显卡的设置
  18. onedrive电脑手机不同步_onedrive无法同步
  19. JAVA EE框架课程考点复习(大题和判断题)
  20. android 图案解锁忘记了,安卓手机忘记图形解锁、锁屏密码的解决方法

热门文章

  1. 虚拟机安装Linux教程
  2. 特征方程求数列的通项公式(二阶线性递推式)
  3. rust为什么找不到服务器,rust找不到朋友的服务器 | 手游网游页游攻略大全
  4. 1. Win 10 :在此处打开命令窗口
  5. 15份PPT,透视网易云音乐/严选/新闻/游戏背后的AI实践(合集下载)
  6. [DP]JZOJ 5804 简单的序列
  7. SOC2- 安全性、可用性、进程完整性、机密性和隐私性五大控制属性
  8. 【西瓜创客】2022学年5月21日NOC大赛-初赛线上试题
  9. 对话庄表伟:开源第一课
  10. 电机学他励直流发电机matlab,华南理工电机学随堂练习答案完整版