一、操作系统介绍
1.计算机的历史
第一代计算机(1946~1958)
电子管为基本电子器件;使用机器语言和汇编语言;主要应用于国防和科学计算;运算速度每秒几千次至几万次。
第二代计算机(1958~1964)
晶体管为主要器件;软件上出现了操作系统和算法语言;运算速度每秒几万次至几十万次。
第三代计算机(1964~1971)
普遍采用集成电路;体积缩小;运算速度每秒几十万次至几百万次。
第四代计算机(1971~ )
以大规模集成电路为主要器件;运算速度每秒几百万次至上亿次。
二、操作系统的分类
常见分类:
手机:Android、IOS
电脑:UNIX、LINUX、MacOS、Windows
1.UNIX
UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。UNIX 最早由Ken Thompson和Dennis Ritchie于1969年在美国AT&T的贝尔实验室开发。
类Unix(Unix-like)操作系统指各种传统的Unix以及各种与传统Unix类似的系统。它们虽然有的是自由软件,有的是商业软件,但都相当程度地继承了原始UNIX的特性,有许多相似处,并且都在一定程度上遵守POSIX规范。类Unix系统可在非常多的处理器架构下运行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。
2.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发行版作为个人计算机操作系统或服务器操作系统,在服务器上已成为主流的操作系统。
3.MacOSX
MacOS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。Macintosh组包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。Mac OS X于2001年首次在商场上推出。它包含两个主要的部分:Darwin,是以BSD原始代码和Mach微核心为基础,类似Unix的开放原始码环境。
4.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消费者预览版。
5.iOS
iOS操作系统是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。
6.Android
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
三、Linux系统的介绍
Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了千上百种不同的Linux系统。
Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在linux系统上的。
2.Linux分类
Linux根据市场需求不同,基本分为两个方向:
1)图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够
2)服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似于DOS,是我们架设服务器的最佳选择。
Linux根据原生程度,又分为两种:
1)内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号
2)发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本
Linux发行版本不同,又可以分为n多种:
红旗、麒麟、cent os 7、ubuntn
3.Linux安装
1.点击Vware-workstation-full
2.安装
3.下一步
4.修改安装路径
5.激活:https://links.jianshu.com/go?to=https%3A%2F%2Fwww.cnblogs.com%2Fzero-vic%2Fp%2F11584437.html
2.VMWare安装Linux( CentOS)
新建虚拟机
image.png
选择自定义配置
image.png
注意:就这里可以选择自定义和典型,如果选择典型就不用下边配置了。
选择Workstation 14.x,点击”下一步”
image.png
选择安装程序光盘的镜像文件iso(选择镜像文件路径),点击”下一步”
1.png
设置全名,用户名,密码(用户名和密码要记住,登录的时候会用,我这边全设置为jack)
3.png
点击”下一步”,选择安装路径,点击”下一步”
image.png
指定磁盘大小。我个人是指定100G。就像我们的windows系统中的磁盘作用一样。点击“下一步”。
image.png
确认虚拟机的信息,点击“完成”
image.png
进入正式安装界面
image.png
选择推荐的即可
image.png
选择创建新虚拟磁盘
image.png
选择默认的即可
image.png
这个是虚拟机在winodow中的名称,不需要修改
image.png
点击”完成”
image.png
打开虚拟机,第一次需要加载一定时间
image.png
进入登录界面,输入用户名和密码
二、服务器版的Linux安装完毕了,但没有图形化界面,我们只能通过控制台去操作系统,我们就要使用类似DOS命令的Linux命令去操作系统,那么下面我们就进行Linux的命令的学习。Linux命令成百上千,课程不能一一涉及,也没有必要一一涉及,根据我们程序员在日常工作中的需求,总结出如下几种供学习
1.目录切换命令
window中通过图形化界面和鼠标可以任意切换需要进入的目录,但Linux必须通过cd命令切换目录。但在学习cd命令之前,我们有必要分清Linux的目录结构
cd usr/ 切换到该目录下usr目录
cd ../ 切换到上一层目录
cd /切换到系统根目录
cd ~ 切换到用户主目录
2.目录操作命令
1.增加目录
命令:mkdir 目录名称
示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test问目录
2.查看目录
命令:ls [-al] 父目录
示例:在根目录 / 下使用ls,可以看到该目录下的所有的目录和文件
3.寻找目录
移动目录位置(剪切)
前提:必须切换到跟目录,否则没有权限
命令: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:“无条件终止”,强制关闭
网络通信命令
查看当前系统的网卡信息: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 系统再过十分钟后自动关机