- Windows系列—用户群体大,安全性不好,稳定性不好
- masOS—适合于开发人员
- Linux—应用软件少,更加适合于服务器和嵌入式领域
- Linux—安全,稳定,免费,占有率高
- Windows Server—付费,占有率低
- Linux
- iOS
- Android(基于Linux)
就是一个软件,辅助我们操作系统
1.4 操作系统的发展史(科普) 1.4.1 Unix
- **内核(kernel)**是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在逻辑设备与应用程序间的抽象层;
- Linux内核版本又分为稳定版和开发板,两种版本相互关联,相互循环;
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序;
- 开发版:由于要实验各种解决方案,所以变化很快;
!!发行版本多个!!内核版本只有一个!!
1.5.2 Linux发行版- **Linux发行版(也被叫做GNU/Linux发行版)**通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件;
- 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源;
- Windows XP之前的版本都是单用户操作系统
- 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源;
- Unix和Linux的设计初衷就是多用户操作系统;
(1)Wnidows下的文件系统
(2)Linux下的文件系统,没有盘符概念
上图中,多个用户(theima/python/laowang)是多个用户,可以同时都在home下进行自己的操作,但python下自己的文件是别的用户是不可以访问的;
- Ubantu中没有盘符,因此用/表示根目录;
- 需要注意的是,下图所有文件都是操作系统的文件,随意改动删除都会造成操作系统出现问题,所以,尽量以后文件都在home文件夹中操作;
- 学习Linux终端命令的原因
- Linux刚面世时并没有图形界面,所有操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等;
- 职场中,大量的服务器维护工作都是远程通过SSH客户端完成没有图形界面,所有维护工作都需要通过命令来完成;
- 常用Linux命令就10多个而已,其他再百度;
-
放大:ctrl+shift+=
-
缩小:ctrl±
-
rm是删除文件,删除目录需要额外操作;
-
命令和选项之间,选项和参数之间要有空格;
-
查阅命令帮助信息:man是mannual的简称
- –help:command --help;
- man: man command;
- 查看目录内容
- ls
- 切换目录
- cd
- 创建和删除操作
- touch
- rm
- mkdir
- 拷贝和移动文件
- cp
- mv
- 查看文件内容
- cat
- more
- grep
- 其他
- echo
- 重定向>和>>
- 管道l
(1)自动补全
- 在敲出文件/目录/命令的前几个字幕之后,tab键会自动补全;
- 不能确定时,两次tab,系统会提示可能存在的命令;
(2)曾经使用过的命令
- 按上/下光标键可以在曾经使用过的命令之间来回切换;
- 如果想要退出选择,并不想执行当前选中的命令,可以按ctrl+c;
-
ls是英文单词list的简写,列出目录内容,用户最常用命令之一,类似于DOS下的dir命令;
-
Linux下的文件和目录的特点
-
Linux文件或者目录名称最长可以有256个字符;
-
以 . 开头的文件尾隐藏文件,需要用-a参数才能显示;
-
.代表当前目录
-
…代表上一级目录,cd …就可以返回上一级目录
-
-
ls常用选项 -h要配合-l一起使用,不能单独使用-h
-
可以将选项合在一起,例如:ls -lha
-
ls通配符的使用
| 通配符 | 含义 |
|---|---|
| ***** | 代表任意个数个字符,ls *1.txt; ls 1 *, ls * 3 * |
| ? | 代表任意一个字符,至少1个,ls 1?1.txt |
| [] | 表示可以匹配字符组中的任意一个, |
| [abc] | 匹配abc中的任意一个,ls [12345]23.txt; |
| [a-f] | 匹配从a到f范围内的任意一个字符,ls [1-5]23.txt |
1、cd
- cd是change directory的简写,更改当前的工作目录;
- 注意:Linux所有的目录和文件名都是大小写敏感的
2、相对路径和绝对路径
- 相对路径:在输入路径时,最前面不是/或者~,表示相对当前目录所在的目录位置;
- 绝对路径:在输入路径时,最前面的是/或者~,表示从根目录/家目录开始的具体目录位置;
1、touch
- 创建文件或修改文件时间
- 文件不存在,就创建一个空白文件
- 文件已经存在,修改文件的末次修改日期
2、mkdir
- 创建一个新的目录
- 注意:在Linux中同一个目录下,文件和目录不可以同名!
3、rm
-
删除文件或目录
-
注意:rm会直接从磁盘上删除文件或目录,所以要谨慎使用!
-
这条指令会删除当前目录下的所有文件或目录!
1、tree
-
tree命令可以以树状图列出文件目录结构
-
~表示家目录,/表示根目录,.表示隐藏
2、cp
- cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令;
- 如果文件名不发生改变,可以只指定目标路径;
3、mv
-
mv命令用来移动文件或目录,也可以给文件或目录重命名
-
**重命名:**与目标文件路径相同,就不执行移动,而是重命名;
-
注意:在终端命令行中对文件的操作不可以回撤,因此-i很重要
1、cat
-
cat命令可以用来查看文件内容,创建文件,文件合并,追加文件内容等功能;
-
cat会一次显示所有的内容,适合查看内容较少的文本文件;
2、more -
more命令可以用于分屏显示文件内容,每次只显示一页内容;
-
适合于查看内容较多的文本文件;
3、grep
- Linux系统中grep命令是一种强大的文本搜索工具;
- grep允许对文本文件进行模式查找,所谓模式查找就是正则表达式;
- 常用的两种模式查找
1、echo文字内容
- echo会在终端中显示参数指定的文字,通常会和重定向联合使用;
- 使用echo可以直接在创建新文件的同时,指定文件内容
2、重定向>和>>
- Linux允许将命令执行结构重定向到一个文件
- 重定向:将本应该显示在终端上的内容输出/追加到指定文件中
其中 - >表示输出,会覆盖文件原有内容
- >>表示追加,会将内容追加到已有文件的末尾
3、管道|
- Linux允许将一个命令的输出可以通过管道作为另一个命令的输入
常见的管道命令有:
- more:分屏显示内容;
- grep:在命令执行结果的基础上查询指定的文本;
- shutdown命令可以安全关闭或者重新启动系统;
| 选项 | 含义 |
|---|---|
| -r | 重新启动 |
- 不指定选项和参数,默认表示1分之后关闭电脑;
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统;
1、网卡:
- 网卡是一个专门负责网络通讯的硬件设备;
- IP地址是设置在网卡上的地址信息;
- 我们可以把电脑比作电话,网卡相当于sim卡,IP地址相当于电话号码;
2、IP地址
- 每台联网的电脑都有IP地址,是保证电脑之间正常通讯的重要设置
- 注意:每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯;
3、ifconfig
-
ifconfig可以查看/配置计算机当前的网卡配置信息
-
一台计算机中可能有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示;
-
127.0.0.1被称为本地回环/环回地址,一般用来测试本地网卡是否正常;
4、ping
- ping一般用来检测当前计算机到目标计算机之间的网络是否畅通,数值越大,速度越慢;
- ping的工作原理与潜水艇的声呐相似,ping这个命令取自声呐的声音
- 原理:网络上机器都有唯一确定的IP地址,给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,确定目标主机的存在;
- 提示:在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用ctrl+c
1、ssh基础(重点)
2、域名和端口号
(1)域名
- 由一串用点分隔的名字组成,例如:www.itcast.cn
- 是IP地址的别名,方便用户记忆
(2)端口号
-
IP地址:通过IP地址找到网络上的计算机;
-
端口号:通过端口号可以找到计算机运行的应用程序
- SSH服务器(也是一个软件)的默认端口号是22,如果是默认端口号,在连接的时候可以省略;
-
常见服务器端口号列表
3、SSH客户端的简单使用—exit退出连接
4、scp(掌握)
- 例如,一个01.py的传送
- 目录(多个文件)一起传送,-r
- 注意:
- 免密码登录
- 配置别名
提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下,.表示隐藏目录;-a才可以看到;
- 当第一次连接,会提示yes授权信息,在连接一次之后,就会生成known_hosts文件用来保存刚刚连接的授权信息,再次连接时,就不会出现询问信息;而这个文件就是保存在.ssh目录下的;
(1)步骤(!!在客户端执行以下两个命令,就可以免密登录!!)
-
配置公钥
- 执行ssh-keygen即可生成SSH钥匙,一路回车即可;
-
上传公钥到服务器
- 执行ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥;
2、免密码登录工作原理
-
每次都输入ssh -p port user@remote,会比较麻烦,配置别名可以简化;
-
在~/.ssh/中创建文件config;并将上述内容写入;
-
gedit打开文件;
- 用户和权限的基本概念
- 用户管理终端命令
- 组管理终端命令
- 修改权限终端命令
1、基本概念
- 用户是Linux系统工作中重要的一环,用户管理包括用户与组管理;
- 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限;
- 对文件/目录的权限包括:
2、组—为了方便用户管理,不需要单独用户设置,而是针对组设置不同权限
-
ls -l可以查看文件夹下文件的详细信息,从左到右依次是:
-
权限,第1个字符如果是d表示目录;
-
硬链接数,通俗讲,就是有多少种方式,可以访问到当前目录/文件;
-
拥有者,家目录下文件/目录的拥有者通常都是当前用户;
-
组,在Linux中,很多时候,会出现组名和用户名相同的情况;
-
大小
-
时间
-
名称
-
**硬链接数3分别是绝对路径+cd .+cd ..(n个子目录就有n个cd…可返回,对应硬链接数也会+n!!):**文件硬链接一般是1,目录硬链接数取决于有多少子目录;
-
chmod可以修改用户/组对文件/目录的权限;
-
提示:以上方式会一次性修改拥有者/组的权限;
-
目录如果没有可执行权限就不能访问;
-
提示:创建组/删除组的中断命令都需要通过sudo执行;
-
提示:
- 组信息保存在/etc/group文件中;
- /etc目录是专门用来保存系统配置信息的目录;
- /根目录,~家目录;
- 提示:创建用户/删除用户/修改其他用户密码的中断命令都需要通过sudo执行
1、passwd文件
-
uid是用户代号,gid是群组代号;
-
下面,只有python : x:1000:表示的是python组,其他都是表示python用户在不同的组中;即定义一个用户,将用户放入不同组中拥有不同的权限;
-
zhangsan:123
-
与上图对应,一个主组后面都是附加组;
-
Shell是一个软件,在ubuntu中就是可以输入命令行的终端窗口;
-
提示
- /etc/passwd是用来保存用户信息的文件;
- /usr/bin/passwd是用于修改用户密码的程序;
-
which命令可以查看执行命令所在位置,例如:
bin和sbin,bin是普通的可执行文件,sbin是系统管理有关的可执行文件;
- 提示:cd这个终端命令是内置在系统内核中的,没有独立文件,因此用which无法找到;
- chmod在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限;
- chmod演练目标
-
本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况;
-
本小节学习的终端命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解;
-
目标
- 时间和日期
- date
- cal
- 磁盘和目录空间
- df
- du
- 进程信息
- ps
- top
- kill
- 时间和日期
-
所谓进程,就是当前正在执行的一个程序
-
要退出top可以直接输入q;
-
不用轻易使用kill杀死root进程,因为有系统服务的程序/进程;
- 目标
- 查找文件
- find
- 软链接
- ln
- 打包和压缩
- tar
- 软件安装
- apt-get
- 查找文件
- 源文件要使用绝对路径
-
在使用ln创建链接时,如果没有-s选项,就会创建一个**硬链接,**而不是软链接;
-
硬链接,即使源文件删除,也并不会影响到硬链接文件,对应硬链接数2->1;
-
只有当一个文件数据的所有硬链接都删除之后,文件数据才会被移除磁盘!
- 在不同操作系统中,常用的打包压缩方式不同
- Windows常用rar
- Mac常用zip
- Linux常用tar.gz
- tar是Linux中最常用的备份工具,可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件;
- tar只负责打包,不负责压缩
(1)gzip
- 注意:可以使用-C直接解压缩到指定目录
(2)bzip2(two)
-
apt是Advanced Packaging Tool,是Linux下的一款安装包管理工具;
-
可以在终端中方便安装/卸载/更新软件包;
-
安装演练



