14.1 操作系统介绍
14.1.1 计算机的历史
第一代计算机(1946~1958)
电子管为基本电子器件;使用机器语言和汇编语言;主要应用于国防和科学计算;运算速度每秒几千次至几万次。
第二代计算机(1958~1964)
晶体管为主要器件;软件上出现了操作系统和算法语言;运算速度每秒几万次至几十万次。
第三代计算机(1964~1971)
普遍采用集成电路;体积缩小;运算速度每秒几十万次至几百万次。
第四代计算机(1971~ )
以大规模集成电路为主要器件;运算速度每秒几百万次至上亿次。
14.1.2 操作系统的分类
操作系统的定义
操作系统(Operating System,简称OS),是电子计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计算机系统的核心与基石。操作系统是控制和管理计算机软硬件资源、合理组织计算机工作流程,以及方便用户操作的程序集合。它的职责常包括对硬件的直接监管、对各种计算资源(如内存、处理器时间等)的管理、以及提供诸如作业管理之类的面向应用程序的服务等等。操作系统的理论是计算机科学中一个古老而又活跃的分支,而操作系统的设计与实现则是软件工业的基础与核心。
常见分类:
手机:Android、IOS
电脑:UNIX、LINUX、MacOS、Windows
UNIX
UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。UNIX 最早由Ken Thompson和Dennis Ritchie于1969年在美国AT&T的贝尔实验室开发。
类Unix(Unix-like)操作系统指各种传统的Unix以及各种与传统Unix类似的系统。它们虽然有的是自由软件,有的是商业软件,但都相当程度地继承了原始UNIX的特性,有许多相似处,并且都在一定程度上遵守POSIX规范。类Unix系统可在非常多的处理器架构下运行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。
Linux
基于Linux的操作系统是20世纪1991年推出的一个多用户、多任务的操作系统。它与UNIX完全兼容。Linux最初是由芬兰赫尔辛基大学计算机系学生Linus Torvalds在基于UNIX的基础上开发的一个操作系统的内核程序,Linux的设计是为了在Intel微处理器上更有效的运用。其后在理查德·斯托曼的建议下以GNU通用公共许可证发布,成为自由软件Unix变种。它的最大的特点在于他是一个源代码公开的自由及开放源码的操作系统,其内核源代码可以自由传播。
经历数年的披荆斩棘,自由开源的Linux系统逐渐蚕食以往专利软件的专业领域,例如以往计算机动画运算巨擘──SGI的IRIX系统已被Linux家族及贝尔实验室研发小组设计的九号计划与Inferno系统取代,皆用于分散表达式环境。它们并不像其他Unix系统,而是选择自带图形用户界面。九号计划原先并不普及,因为它刚推出时并非自由软件。Linux有各类发行版,通常为GNU/Linux,如Debian(及其衍生系统Ubuntu、Linux Mint)、Fedora、openSUSE等。Linux发行版作为个人计算机操作系统或服务器操作系统,在服务器上已成为主流的操作系统。
MacOSX
MacOS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。Macintosh组包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。Mac OS X于2001年首次在商场上推出。它包含两个主要的部分:Darwin,是以BSD原始代码和Mach微核心为基础,类似Unix的开放原始码环境。
Windows
Windows是由微软公司成功开发的操作系统.Windows是一个多任务的操作系统,他采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现。
MicrosoftWindows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。Windows系统,如Windows 2000、Windows XP皆是创建于现代的Windows NT内核。NT内核是由OS/2和OpenVMS等系统上借用来的。Windows可以在32位和64位的Intel和AMD的处理器上运行,但是早期的版本也可以在DEC Alpha、MIPS与PowerPC架构上运行。虽然由于人们对于开放源代码作业系统兴趣的提升,Windows的市场占有率有所下降,但是到2004年据库服务等一些功能。
WindowsXP在2001年10月25日发布,2004年8月24日发布服务包2,2008年4月21日发布最新的服务包3。微软上一款操作系统Windows Vista(开发代码为Longhorn)于2007年1月30日发售。Windows Vista增加了许多功能,尤其是系统的安全性和网络管理功能,并且其拥有界面华丽的Aero Glass。但是整体而言,其在全球市场上的口碑却并不是很好。Windows 8微软在2012年10月正式推出,系统有着独特的metro开始界面和触控式交互系统,2013年10月17日晚上7点,Windows 8.1在全球范围内,通过Windows上的应用商店进行更新推送。2014年1月22日,微软在美国旧金山举行发布会,正式发布了Windows 10消费者预览版。
iOS
iOS操作系统是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。
Android
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
14.1.3 Linux系统介绍
Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了千上百种不同的Linux系统。
Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在linux系统上的。
14.1.4 Linux分类
Linux根据市场需求不同,基本分为两个方向:
1)图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够
2)服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似于DOS,是我们架设服务器的最佳选择。
Linux根据原生程度,又分为两种:
1)内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号
2)发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本
Linux发行版本不同,又可以分为n多种:
14.2 Linux安装
因为Linux也是一个系统,本质上跟我们电脑的Window没有区别,所以我们要学习Linux就首先将我们电脑的Window系统换成Linux系统,或者在我们电脑上安装双系统,听上去是不是很可怕。其实我们可以在我们电脑上安装一个软件,这个软甲可以模拟一台或多台虚拟的电脑机器,这就是虚拟机
虚拟器常用的有两种:
VMware(威睿)公司的虚拟机软件,功能强大
14.2 Linux安装
因为Linux也是一个系统,本质上跟我们电脑的Window没有区别,所以我们要学习Linux就首先将我们电脑的Window系统换成Linux系统,或者在我们电脑上安装双系统,听上去是不是很可怕。其实我们可以在我们电脑上安装一个软件,这个软甲可以模拟一台或多台虚拟的电脑机器,这就是虚拟机
虚拟器常用的有两种:
VMware(威睿)公司的虚拟机软件,功能强大
由于市场上VMware使用率很高,所以我们安装VMware 。
背景
服务器版的Linux安装完毕了,但没有图形化界面,我们只能通过控制台去操作系统,我们就要使用类似DOS命令的Linux命令去操作系统,那么下面我们就进行Linux的命令的学习。Linux命令成百上千,课程不能一一涉及,也没有必要一一涉及,根据我们程序员在日常工作中的需求,总结出如下几种供学习。
15.1 目录切换命令
15.1.1 目录切换命令
window中通过图形化界面和鼠标可以任意切换需要进入的目录,但Linux必须通过cd命令切换目录。但在学习cd命令之前,我们有必要分清Linux的目录结构
image-20201117200454774.png
cd usr/ 切换到该目录下usr目录cd ../ 切换到上一层目录cd /切换到系统根目录cd ~ 切换到用户主目录
15.2 目录操作命令
15.2.1 增加目录
命令:mkdir 目录名称
示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test问目录
image-20201117200517283.png
15.2.2 查看目录
命令:ls [-al] 父目录
示例:在根目录 / 下使用ls,可以看到该目录下的所有的目录和文件
image-20201117200537182.png
示例:在根目录 / 下使用ls -a,可以看到该目录下的所有文件和目录,包括隐藏的
image-20201117200556513.png
示例:在根目录 / 下使用ls -l,可以看到该目录下的所有目录和文件的详细信息
image-20201117200620587.png
注意:ls -l 可以缩写成ll
15.2.3 寻找目录
命令:find 目录 参数(重点)
示例:查找/root下的与test相关的目录(文件)find / -name ‘test*
image.png
注意:注意这里涉及权限问题,需要先切换到root目录
// 切换到root目录su root// 切换到普通用户目录su anfly
15.2.4 修改目录名称
命令:mv 目录名称 新目录名称
image.png
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作
15.2.5 移动目录位置(剪切)
前提:必须切换到跟目录,否则没有权限
命令:mv 目录名称 目录的新位置
示例:在test下将newTest目录剪切到 /usr下面,使用mv newTest usr/
image-20201117200655557.png
注意:
mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
文件显示为黑色,文件夹显示为蓝色,剪切的时候必须是在新位置后加/
15.2.6 拷贝目录
命令:cp -r 被目录名称 目录拷贝的目标位置 -----r代表递归拷贝
1. 被复制目录和目标目录需要写全路径,否则按照根目录处理2. 可以在任意位置复制
示例:将/usr下的newTest拷贝到根目录下的test中,使用cp -r /usr/newTest test/rm
image-20201117200715468.png
注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归
15.2.7 删除目录
(7)删除目录(删)
命令:rm [-rf] 目录
示例:删除/usr下的newTest,进入/usr下使用rm -r newTest
image-20201117200731190.png
示例:删除/test下的newTest而不需要询问强制删除,在/test下使用rm -rf newTest
image-20201117200745859.png
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆,无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包
15.3 文件操作命令
15.3.1 文件创建
命令:touch 文件名称 ----- 空文件
示例:在test目录下创建一个空文件 touch aaa.txt
image-20201117200801504.png
15.3.2 文件查看
命令:cat/more/less/tail 文件
示例:使用cat查看/etc/profile文件,只能显示最后一屏内容
示例:使用more查看/etc/profile文件,可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看
示例:使用less查看/etc/profile文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
示例:使用tail -10 查看/etc/profile文件的后10行,Ctrl+C结束
注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控 文 件的变化
补充:公司的日志的格式
15.3.3 修改文件内容
三种模式:命令模式,编辑模式,底行模式
命令:vim 文件
示例:编辑/test下的aaa.txt文件,使用vim aaa.txt
image.png
但此时并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式,可以 编辑文件
image.png
编辑完成后,按下Esc,退回命令模式
此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模 式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。
image.png
总结:
vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑修改文件的方式基本会使用就可以了。附:《vi使用方法介绍》和《vim命令合集》
关于vim使用过程:
在实际开发中,使用vim编辑器主要作用就是修改配置文件
vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q!
15.3.4 删除文件
同目录删除:熟记 rm -rf 文件 即可
15.4 压缩文件操作命令
15.4.1 打包并压缩文件
打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件
其中:
z:调用gzip压缩命令进行压缩c:打包文件v:显示运行过程f:指定文件名
示例:打包并压缩/test下的所有文件 压缩后的压缩包指定名称为xxx.tar.gz
tar -zcvf xxx.tar.gz aaa.txt bbb.txt ccc.txt
或:tar -zcvf xxx.tar.gz /test/*
image.png
15.4.2 解压压缩包(重点)
命令:tar [-xvf] 压缩文件
其中:x:代表解压
示例:将/test下的xxx.tar.gz解压到当前目录下:tar -xvf xxx.tar.gz
image.png
示例:将/test下的xxx.tar.gz解压到根目录/usr下
tar -xvf xxx.tar.gz -C /usr------C代表指定解压的位置
image.png
15.5 其他命令
15.5.1 显示当前所在位置
命令:pwd
image.png
15.5.2 搜索命令
命令:grep 要搜索的字符串 要搜索的文件
示例:搜索/usr/sudu.conf文件中包含字符串to的行
image.png
示例:搜索/usr/sudu.conf文件中包含字符串to的行 to要高亮显示
15.5.3 管道命令
命令:| 将前一个命令的输出作为本次目录的输入
示例:查看当前系统中所有的进程中包括system字符串的进程ps -ef |grep system
image.png
15.5.4 查看进程
命令:ps -ef
示例:查看当前系统中运行的进程
image.png
15.5.5 杀死进程
命令:kill -Signal 进程的pid
Signal:发送给进程的信号
15:默认信号,你需要被关闭,请自行停止运行并退出。
9:“无条件终止”,强制关闭
mage.png
15.5.6 网络通信命令
查看当前系统的网卡信息:ifconfig
image.png
查看与某台机器的连接情况:ping
image.png
15.5.7 查看当前系统的端口使用
netstat –an,通常和 | grep一起使用
image.png
也可以单独使用
15.6 Linux的权限命令
15.6.1 Linux的权限命令
权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限
示例:在随意某个目录下ls -l
image.png
第一列的内容的信息解释如下:
权限.png
这个字符串有10位,可以分为4段来解读。
第一段(第1位)表示是目录还是文件,-表示是文件,d表示是目录;
第二段(第2-4位,共3个字符串)表示文件所属用户对它的权限 - 属主权限(User);
第三段(第5-7位,共3个字符串)表示文件所属用户组用户对它的权限 - 属组权限(Group);
第四段(第8-10位,共3个字符串)表示其他用户对它的权限 - 其他权限(other);
注:
①我们用3位8进制来表示文件的权限,r(read)用4标识,w(write)用2标识,x(excute)用1标识
②r–可读,w–可写,x–可执行。
③每一段的三位顺序不可变,如果没有对应的权限,则使用-表示
上图中的-rwxrw-r–可以用八进制数字764表示。
案例:
-rwxrwxrwx
转算成八进制,777,代表这是一个对所有人开发权限的文件。
15.6.2 修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt
image-20201117201923200.png
上述示例还可以使用数字表示:
chmod 764 aaa.txt
15.7 free查看内存信息
15.7.1 free查看内存信息
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
image.png
df df -h 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
image.png
15.8 top查看资源信息(CPU)
15.8.1 top查看资源信息(CPU)
image.png
补充:
关机命令
reboot 重新启动操作系统
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 10:23
shutdown -h +10 系统再过十分钟后自动关机
总结
Linux命令
目录操作
cd usr/ 切换到该目录下usr目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
mkdir 目录名称 创建目录
ls 目录名称 查询该目录下所有的目录和文件
ls [-a] 目录名称 查询该目录下所有的目录和文件,包含隐藏文件
ls [-l] 目录名称 查询该目录下所有的目录和文件的详细信息
find / -name 目录名称 查找/root下的目录(文件)
mv 目录名称 新目录名称 修改目录名称
mv 目录名称 目录的新位置 剪切
cp -r 目录名称 目录的目标位置 拷贝
rm -rf 目录 强制删除目录
文件操作
touch 文件名称 创建空文件
cat/more/less/tail 文件 查看文件内容
tail -f 文件 动态查看/实时查看文件(日志)
grep 要搜索的字符串 要搜索的文件 关键字搜索
vi/vim 文件 修改文件内容
rm -rf 文件 强制删除文件
文件的打包
tar -zcvf 文件名.tar 要打包的文件
文件的解压
tar -xvf 文件名.tar
扩充:将文件解压到固定位置
tar -xvf 文件名.tar -C 指定解压的位置
查询当前所在位置
pwd
查看进程
ps -ef | grep 进程名称(tomcat/mysql)
杀死进程
kill -9 进程pid
查看端口号
netstat -an | grep 端口号(3306)
查看服务器ip
ifconfig
查看网络是否能正常使用
ping 外网地址 查看是否能访问外网
ping 内网ip 查看是否能访问内网
权限命令
chmod 777 文件 赋权
查看cpu
top
查看磁盘信息
df -h
查看内存信息
free
关机命令
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 10:23
shutdown -h +10 系统再过十分钟后自动关机
重新启动
reboot 重新启动操作系统
```·