Unix
1965年,AT&T贝尔电话实验室、通用电气公司、麻省理工学院MAC课题组一起联合开发一个称为Multics的新操作系统。该项目目的是让大型主机可以同时提供300台以上的终端机连接使用。其被设计运行在GE-645大型主机上。
贝尔实验室认为该项目不可能成功之后,便退出了该项目,其中一位开发者──肯•汤普逊则继续为GE-645开发软件,并最终编写了一个太空旅行游戏“Space Travel”。发现游戏速度很慢而且耗费昂贵。正好有一部闲置的PDP-7。使用尼斯•里奇的帮助下,汤普逊用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。
汤普逊的File Server System。这次经历加上Multics项目的经验,促使汤普逊开始了一个DEC PDP-7上的新操作系统项目。汤普逊和里奇领导一组开发者,开发了一个新的多任务操作系统。在1970年时,那部PDP-7却只能支持两个使用者,当时,实验室的人就开玩笑地戏称他们的系统其实是:“UNiplexed Information and Computing System”,缩写为“UNICS”。后来,大家取其谐音这个名字被改为UNIX。
最初的Unix是用汇编语言编写的,一些叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。
注意:1979年贝尔实验室出于商业考虑,收回了版权并且规定“不可对学生提供源码”。
MINIX
荷兰阿姆斯特丹的Vrije大学计算机科学系的Andrew S. Tanenbaum(谭宁帮)教授为了能够教导学生学习UNIX,自己动手写了一个Minix,是一个Mini的UNIX系统。MINIX是一个廉价的小型类Unix操作系统,是为在计算机科学用作教学而设计的,可以在80286的Intel芯片上运行。
Torvalds的linux
1991年,芬兰人林纳斯•托瓦兹在赫尔辛基大学上学,对操作系统很好奇,并且对MINIX只允许在教育上使用很不满(其不允许任何商业使用),于是开始写他自己的操作系统,这就是后来的Linux内核。
1991年9月Linux的第一个版本0.0.1版本发布,Linux只具有操作系统内核的勉强的雏形,甚至不能运行,你必须在有Minix的机器上编译以后才能玩,时仅有10000行程序码,仍必须执行于Minix操作系统之上。10月份第二个版本(0.02版)发布了94年初,Linux 1.0诞生 。Linux 1.0已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也表现得非常好Linux的发展历程上还有一件重要的事 Linux加入GNU并遵循公共版权许可证 (GPL)。
GNU项目
目标在于建立一个完全相容于UNIX的自由软件环境。发展GNU系统的计划,最早由理查德•斯托曼在1983 年启动,它是自由软件基金会最早致力的目标。最近一个GNU系统版本,是于2011年4月1日释出的GNU 0.401,采用GNU Hurd作为操作系统内核。其他的内核,最著名的是Linux kernel,也被应用在GNU系统中。GNU是“GNU’s Not Unix”的递归缩写。这个项目的目的是创建一个自由的开放的操作系统。 Linux
GPL
GNU的通用公共许可证GPL为了避免GNU开发的软件被其他人利用成为专利软件,推出了通用公共许可证GPL(General Public License)并称之为Copyleft(专利软件是Copyright)就是用户获得GNU 软件后可以自由使用和修改,但是用户在散布GNU软件时,必须让下一个用户有获得源代码的权利并且必须告知他这一点。这一条看似古怪的规定是为了防止有些别有用心的人或 公司将GNU软件稍加修改就去申请版权,说成是自己的产品。其目的就是要让GNU永远 是免费和公开的。 http://www.gnu.org/
Linux
Linux是一种自由和开放源码的类UNIX操作系统,使用Linux内核。目前存在着许多不同的Linux发行版,可安装在各种各样的电脑硬件设备,从手机、平板电脑、路由器和影音游戏控制台,到桌上型电脑,大型电脑和超级电脑。 Linux是一个领先的操作系统,世界上运算最快的10台超级电脑运行的都是Linux操作系统。
Linux操作系统也是自由软件和开放源代码发展中最著名的例子。只要遵循GNU通用公共许可证,任何人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统(也被称为GNU/ Linux)。通常情况下,Linux被打包成供桌上型电脑和服务器使用的Linux发行版本。一些流行的主流Linux发行版本,包括Debian(及其衍生版本Ubuntu),Fedora和openSUSE等。Kernel+Softwares+Tools 就是linux distribution
著名linux 发行版
Red Hat、Fedora Mandriva Novell SuSE Debian Slackware Gentoo Ubuntu CentOS
Linux特点
开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面(命令界面,图形界面等),出色的速度性能。
Linux的组成
1、内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
2、Shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。
3、文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等。
4、应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等。
Linux版本
1、内核:Linux内核Kernel目前最新稳定版 3.4 http://www.kernel.org/
2、发行版本:是一些厂商将Linux系统内核与应用软件和文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合,例如RedHat Linux,Debian,Ubuntu, Novell/SuSE Linux等。
3、ubuntu Ubuntu版本号由该次发布的年份和月份组成,并未反映其实际版本.首次发行
是在2004年10月,因此该版本为4.10。于2009年4月23日发布,因此版本号为9.04。
Linux发展与未来
现在有很多公司都在使用Linux操作系统,Linux操作系统从桌面到服务器,从操作系统到嵌入式系统,从零散的应用到整个产业都初见雏形 。Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,并且形成了大规模的应用局面。
android
Android是一种以Linux为基础的开放源代码操作系统
Ubuntu的安装
vmware 虚拟机
(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。先安装vmware虚拟机。
vmware虚拟机中安装ubuntu
linux系统环境
默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道
命令交互模式切换:ctrl+alt+f1—f6
图形交互界面 ctrl+alt+f7
图形界面交互模式
- terminal: 图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面
命令交互模式
命令提示符:
itcast@ubuntu:~$
- itcast:用户名
- ubuntu :主机名
- ~ :路径 ,假如当前的路径正好是 该用户存放数据的根目录 ,则显示~
- $ :用户的类型 $代表普通用户 # 代表 超级用户
linux 基本目录结构
bin 存放二进制可执行文件(ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件
- 文件权限分析
w :可写 r: 只读 x:可执行 - :无权限
文件权限
1. 字符表示法
drwxr-xr-x
第一个字符 :文件的类型 d :普通文件 - :文件夹 c :串口文件 l :连接文件
2-4 字符 : 该文件的属主用户的权限
5-7 字符 : 与属主用户同一组的其他用户的权限
2.数字表示法
-rw-r--r-- :文件的默认权限 644
drwxr-xr-x : 目录的默认权限 755
linux常用指令介绍
文件目录操作命令
1.注销、关机、重启
- 注销 :logout :登出 、exit
- 关机 :
shutdown - h 时间
- h :关机
- 时间 :
1. now :马上
2. 12.30 :指定具体时间
3. 3 :几分钟以后
sudo : superuser do :由超级用户来执行该命令
要配置sudo 命令 : 授权 哪些用户能执行哪些命令
由超级用户配置 sudo
/etc/sudoers
sudo shutdown -h now 当前账号:itcast
- 重启 :
shutdown -r 时间
-r :restart
2.linux基本命令 :文件操作命令
1. ls : 查看目录内容
- l :查看详细信息
- a :查看所有文件(隐藏)
man :manual : 手工,帮助 ,帮助命令,好比windows help
命令: man ls
2. mkdir :创建目录
Desktop:
- java
- JEE : aa.txt bb.txt
- Android
3. cd 切换目录
- cd .. 返回上级目录 记得要加空格
- cd ./java 进入当前目录的子目录
- cd ../xxx 进入上一级目录的子目录
tab :自动补全
4. touch :创建一个空白的普通文件
touch aa.txt
5. echo :把内容重定向到指定的文件中 ,有则打开,无则创建
6. cat、more :查看文件内容
- cat :查看文件内容
- more :分页查看文件内容,按空格键换页
7. cp、mv、rm
- cp :复制
cp bj.txt ./java/jee
- mv :剪切、重命名
1. 剪切 :mv aa.txt ../android/
2. 重命名 :假如剪切的文件 存放在同一个目录中 ,则是重命名
mv bb.txt cc.txt
- rm :删除文件或者文件夹
-f : 假如要删除的文件不存在,也不提示
-i : 删除前提示 ,默认不删除,要删除,输入y
-d : 删除空白目录
-r :递归删除
8. wc :word count :统计字符数
154 233 3418
- 154 :行数
- 233 :单词数
- 3418 :字符数
命令: wc bj.txt
9. ln :创建连接文件
- 默认创建的是硬连接,好比复制 ,但是两个文件会同步
命令:ln ./java/android/aa.txt aaa
- s :创建的是软连接
10. pwd :查看当前目录的绝对路径
11. 管道命令 |
命令: ls -la | wc
12. 重定向
- > :覆盖模式
命令: echo "ww">aaa
- >>:追加模式
命令: echo "ww">>aaa
13. passwd :设置密码 ,ubuntu默认 root账号是没有开启 ,只要设置root密码即可开启
sudo passwd root
14. su 切换目录
su root
root用户切换到其他账号不需要密码
打包、压缩文件
windows : zip、rar
linux :gz ,bzip,zip
1.tar :打包、拆包命令
tar - cxzjvf <打包后的文件> <欲打包的目录>
- c :创建的一个归档文件 ,即打包文件夹
- x :拆包
- z :以gzip 格式压缩,默认压缩倍数 6倍 (0-9)
- j :以bzip2格式压缩
- v :显示打包或者拆包的文件信息
- f : 后面紧接一个 归档文件
- 打包文件
tar -cvf news.tar ./java 摘要
- 拆包文件
tar -xvf news.tar
gzip 、bzip2 压缩与解压
1. 压缩文件
gzip news.tar
2. 解压文件
gzip -d news.tar.gz
-d :解压
3.打包及压缩
- 打包及压缩
tar -czvf news.tar.gz ./java
- 拆包及解压缩
tar -xzvf news.tar.gz
软件管理
windows : .exe 安装 、卸载
安装: mysql.exe cc.exe
卸载 : 该软件唯一的标识 ,包名 alibaba
android : *.apk 卸载 包名
red hat :*.rpm
ubuntu : 对debian的升级 *.deb 格式
1.安装软件
- dpkg :debian package
离线安装:
安装 : sudo dpkg - i <文件名>
-i :install
命令:sudo dpkg -i ./tree_1.6.0-1_i386.deb
卸载 : sudo dpkg - r <包名>
-r :remove
命令:sudo dpkg -r tree
- apt-get :advance package tools
对dpkg命令的升级,在线安装
安装 : sudo apt-get -install <包名>
卸载 : sudo apt-get -remove <包名>
vim 软件 :好比记事本 ,但是比记事本要强大
1. 安装vim
2. 使用vim
操作模式:
1. 一般模式 ,默认进入的一般模式,该模式不能编辑文档 ,只能查看
按 i(insert) 进入 插入模式
2. 编辑模式、插入模式
该模式可以编辑文档,按esc 退出插入模式,进入到一般模式
3. 命令模式 :在 一般模式中按:进入命令模式
- q: 安全退出,当没有操作该文档,则直接按q退出vim
- q!:当修改了内容,但是不想保存,则q!强制退出
- wq :保存退出
- set number 显示行号
- set nonumber 取消行号显示
搭建Java服务器,并且实现远程安全访问linux系统
1.通过ssh实现安全远程访问linux系统
ssh :secure shell
加密:
1. 对称加密 (加密密钥与解密密钥相同)
des 、aes
2. 非对称加密(加密密钥与解密密钥不同)
RSA :公钥、私钥
数字摘要:
md5 \sha1
1. 查看是否安装了ssh服务端与客户端
sudo apt-cache policy openssh-client openssh-server
2. 安装ssh 服务端与客户端软件
sudo dpkg -i ./ssh/*
3. 通过windows ssh客户端来访问linux服务端
- putty :远程登录
- winscp433setup.exe :文件传输
2. 安装jdk
进入 root用户
实现步骤:
1. jdk 存放在哪里 /opt
2. 把软件拷贝到/opt
3. 绿色软件,解压
4.设置环境变量
vim /etc/profile
export JAVA_HOME="/opt/jdk1.6.0_39"
export PATH="$JAVA_HOME/bin:$PATH"
5. 刷新配置 ,让配置生效
source /etc/profile
6. 编写Demo.java,测试
-javac Demo.java
- java Demo
3. 安装tomcat
步骤:
1. 安装在哪里 /opt
2. 拷贝、解压
tar -xzvf apache-tomcat.tar.gz
3. 运行
- ./startup.sh
- ./shutdown.sh
4. 安装Eclipse
步骤:
1.安装在/opt
2. 拷贝、解压
cp eclipse.tar.gz /opt
tar -xzvf eclipse.tar.gz