1.Sql导入数据方式:(1)软件选择导入,分隔符类型,直接导入
(2)写入代码导入
2、Hadoop下载安装:官网下载安装
3、HDFS
HDFS的可靠性:创建了多份数据备份,放置在了其他计算机节点中,读取速度也很快。
结构:NameNode(元数据 内存)和DataNodes(文件内容 磁盘)
运行机制:(1)一个名字节点和多个数据节点
(2)故障检测
计算机网络
1 电路交换与分组交换的区别是什么?优劣对比?
答:先介绍基本概念:
- 电路交换
概念:必须经过建立连接(占用通信资源)--->通话(一直占用通信资源)--->释放连接三个步骤的交换方式称为电路交换。
- 优点:
- 通信质量有保证。
- 缺点:
- 线路传输效率比较低。
- 特点:
- 在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
- 分组交换(也称包交换)
- 报文:我们把要发送的整块数据称为一个报文。
- 分组又称包。分组的首部也可以称为“包头”。
- 概念:通信双方以分组为单位、使用存储--转发机制实现数据交互的通信方式,被称为分组交换。
优点:高效
- 灵活
- 迅速
- 可靠
缺点:分组在路由器存储转发需要时延。
- 携带首部控制信息造成一定开销。
2 电路交换、报文交换和分组交换
- 电路交换:整个报文的比特流连续地从原点直达终点,好像在一个管道中传送。
- 报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
- 分组交换:单个分组(只是报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
3 计算机网络的定义
- 概念:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和 信息传递的计算机系统。
4 相关概念
- 带宽:用来表示网络的通信线路所能传送数据的能力。
- 吞吐量:单位时间内通过某个网络的数据量。
- 时延(也叫延迟或迟延):指数据从网络的一端传送到另一个端所需的时间。
- 发送时延:主机或路由器发送数据帧所需要的时间。
- 网络协议(简称协议):为进行网络中的数据交换而建立的规则、标准或约定。
- 体系结构:计算机网络的各层以及协议的集合称为网络的体系结构
- 网关:网络层使用的路由器
5 网络各分层的功能
- 差错控制:使的和网络对等端的相应层次的通信更加可靠
- 流量控制:是的发送端发送速率不要太快,要使接收端来得及接收。
- 分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其复原。
- 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
- 连接建立和释放:交换数据前先建立一条逻辑连接。数据传送结束后释放连接。
6 体系结构
网络体系
1.网络体系具有一系列的规范来管理介质访问、物理寻址、计算机与传输介质的交互。在决定网络体系时,实际上是在决定如何设计网络访问层。
2.网络体系包含对物理网络的定义,以及该物理网络上定义的通信规范。
OSI的七层协议体系结构
7、应用层|
6、表示层|
5、会话层|
4、传输层|
3、网络层|
2、数据链路层|
1、物理层|
从上而下提供端到端的服务。
巧记:应示、会传、网数理
TCP/IP
TCP/IP:在Internet和很多其他网络上使用的网络协议簇。
- 1.TCP/IP是一类协议系统,它是一套支持网络通信的协议集合。网络是计算机或类似计算机的设备之间通过常用的传输介质进行通信的集合。
- 2.网络协议就是一套通用规则,用来帮助定义复杂数据传输的过程。数据传输从一台计算机上的应用程序开始,通过计算机网络硬件,经过传输介质到正确目的地,然后上传到目的地计算机网络硬件,最后到达负责接收的应用程序。
- 3.TCP/IP协议定义了网络通信过程,更重要的是,定义了数据单元的格式和内容,以便接收计算机能够正确解释接收到的消息。TCP/IP被称为协议簇。
- 4.TCP/IP标准定义了TCP/IP网络的通信规则;TCP/IP实现是一个软件组件,计算机通过它参与到TCP/IP网络中。
TCP/IP的特性
- 1.逻辑编址:TCP/IP通过逻辑编址提供了子网化的能力。逻辑地址是一个通过网络软件来配置的地址。在TCP/IP中,计算机的逻辑地址称为IP地址。
- 2.路由选择:路由器是一种特殊的设备,能够读取逻辑地址信息,并将数据通过网络直接传送到它的目的地。在局域网中,数据传输到另一台计算机或设备时,不用经过路由器,因此不会给大型网络的传输线路带来负担。如果数据要传送到子网以外的计算机上,路由器将负责转发数据。
- 3.名称解析:域名到IP地址的映射称为名称解析。域名服务器的专用计算机中存储了用于显示域名和IP地址转换方式的表。
- 4.错误控制和流量控制:TCP/IP协议簇提供了确保数据在网络中可靠传送的特性。这些特性包括检查数据的传输错误(确保到达的数据与发送的数据一致)和确认成功接收到网络信息。
- 5.应用支持:同一台计算机可以运行多种网络应用程序。协议软件必须提供某些方法来判断接收到的数据包属于哪个应用程序。在TCP/IP中,这个通过系统的逻辑通道实现从网络到应用程序的接口被称为端口。
TCP/IP体系结构
应用层(各种应用层协议如TELNET/FTP/SMTP等)|
传输层(TCP或UDP)|
网际层IP|:寻址与发送
网络接口层|
五层协议的体系结构
5、应用层(HTTP/FTP/SMTP)|
4、运输层(TCP/UDP)|
3、网络层(ICMP/IGMP/IP/RARP/ARP)|
INTERNET控制消息协议——ICMP
2、数据链路层|
1、物理层|
巧记:应运而生网络、数据+物理。
7 各层次简介
- 应用层
应用层直接为用户的应用进程提供服务。这里的进程就是正在运行的程序。应用层的协议很多:HTTP、SMTP、FTP等等。 - 一些协议
- 运输层
运输层的任务就是负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。
复用:就是多个应用层进程可以同时使用下面运输层的服务。
分用:运输层把收到的信息又分别交付给上面应用层中相应的进程。
多路复用/多路分解
1.多路复用是指把多个来源的数据导向一个输出,而多路分解是把从一个来源接收的数据发送到多个输出。多路传输/多路分解让TCP/IP协议栈较低层的协议不比关心哪个程序在传输数据。与应用程序相关的操作都由传输层完成了,数据通过一个与应用程序无关的管道在传输层与网际层之间传递。
2.多路复用是指两个或多个用户共享公用信道的一种机制。通过多路复用技术,多个终端能共享一条高速信道,从而达到节省信道资源的目的,多路复用有频分多路复用(FDMA),时分多路复用(TDMA),码分多路复用(CDMA)几种。
运输层有以下两种协议:
传输控制协议TCP(Transmission Control Protocol)
面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
TCP数据格式:
用户数据报协议UDP(User Datagram Protocol)
无连接的,数据传输单位是用户数据报,不保证可靠的交付,只能提供“最大努力的交付”。
- 网络层
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或者用户数据包封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,简称数据报。
网络的另一个任务就是选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。 - 数据链路层
简称链路层,两个相邻结点之间传送数据都是直接传送的。这就需要使用专门的链路层协议 。
在相邻结点传输时,数据链路层把网络层交下来的IP数据报组装成帧。用帧进行传输。 - 物理层
在物理层上所传数据的单位是比特。
物理层的任务就是透明地传送比特流。
8 数据链路层
- 使用的信道类型有:
- 点对点信道
- 广播信道
- 三个基本问题:
- 封装成帧:在一端数据的前后分别添加首部和尾部,构成了一个帧。
- 透明传输:
- 差错检测:检测方法:CRC(循环冗余校验码)
9 MAC地址的概念以及作用
- 概念:MAC是硬件地址,用于定义网络设备的位置。也叫物理地址。它就像我们身份证上的身份证号码,具有全球唯一性。
- 一个主机会有一个MAC地址,而每个网络地址会有一个专属于它的IP地址。
- 作用
专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个结点。
10.物理寻址
1.网络访问层需要把逻辑IP地址与网络适配器的固定物理地址相关联。
2.物理寻址是由介质访问控制(MAC)子层负责的。
3.TCP/IP使用地址解析协议(ARP)和逆向地址解析协议(RARP)把IP地址关联到网络适配器的物理地址。ARP和RARP为用户提供的逻辑IP地址与局域网上使用的硬件地址建立了一个对应关系。
11 MAC地址和IP地址的区别
- 对于网络上的某一设备,IP地址是基于网络 拓扑设计出的,可以改动。而MAC地址则是生产厂商烧录好的,不能改动。
- 长度不同。IP是32位,MAC地址是48位。
- 分配依据不同。IP是基于网络拓扑、MAC是基于制造商
- 寻址协议层不同。IP应用于网络层,MAC应用于数据链路层。
12 MAC帧格式
其中类型表示的是上一层使用的是什么协议,以便把收到的Mac帧交给上一层的这个协议。
13 网际层:寻址与发送
网际协议IP
- 地址解析协议ARP(Address resolution protocol)
- 逆地址解析协议RARP(Reverse Address Resolutaion Protocol)
- 网际控制报文协议ICMP(Internet Control Message Protocol)
- 网际管理协议IGMP(Internet Group Management Protocol)
14 IP
- IP地址的定义:网络号+主机号
- IP数据报的格式
IP寻址:
1.划分网络ID和主机ID的最初方案是使用地址分类。
2.A类:0.0.0.0~127.255.255.255
B类:128.0.0.0~191.255.255.255
C类:192.0.0.0~223.255.255.255
D类:224.0.0.0~239.255.255.255
E类:240.0.0.0~247.255.255.255
规定首字节不能是127、0、255,主机各位不能同时为0和1
15 ARP协议的用途、算法,在哪一层会使用arp?
- 用途:把IP地址解析为物理地址。
- 在网络层会用到ARP
16 如何实现透明传输?
- 概念:不管从键盘上输入什么字符都可以放在这样的帧中传输过去,这样的传输就是透明传输。也就是说用户不受协议中任何限制,可随机的传输任意比特编码的信息。
*实现方法: - 转义字符填充法
- 零比特填充法
- 采用特殊的信号与编码法
- 确定长度法
17 路由表的内容是什么?
- 目的网路地址
- 距离
- 下一跳路由器地址
18 UDP的首部格式
19 三次握手+四次断开
- 建立连接时,客户端向服务器端发送一个SYN包,进入SYN_SEND状态,在该状态下,客户端等待服务器的确认包。
- 服务器端收到客户端的SYN包后,首先向客户端确认自己已收到的客户端的SYN包,同时也要发送自己的SYN包,即要向发送方发送ACK包+SYN包,然后进入SYN—RECEIVE状态。
- 客户端收到服务器端的ACK包+SYN包,向服务器端发送ACK包确认。然后完成三次握手,建立连接。 其中:
- SYN:在连接建立时用来同步序号。
- SYN=1而ACK=0表示这是一个请求报文段。对方若同意建立连接,则应在响应报文段中使SYN=1和ACK=1。因此SYN置1就表示这是一个连接请求或连接接收的报文。
- ACK:TCP数据包首部中的确认标志,对已接收的TCP报文进行确认。0时确认号无效。TCP规定:在建立连接以后所有传送的报文段都必须把ACK置1。
TCP如何保证可靠性:
TCP的可靠性是通过顺序编号和确认(ACK)来实现的。TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中就对数据可靠传输做了保障,握手与断开都需要通讯双方确认,数据传输也需要双方确认成功,在协议中还规定了:分包、重组、重传等规则;而UDP主要是面向不可靠连接的,不能保证数据正确到达目的地。
20 FTP和TFTP的区别:
- FTP 是完整、面向会话、常规用途文件传输协议;而 TFTP 用作 bones bare - 特殊目的文件传输协议。
- 因为 TFTP 不支持验证, 所以Windows NT FTP服务器不支持 TFTP
- 可以以交互方式使用 FTP; TFTP 允许文件只能单向的传送。
- FTP 提供用户身份验证; TFTP 却不。
- FTP 依赖于 TCP 是面向连接并提供可靠的控件; TFTP 依赖 UDP,需要减少开销, 几乎不提供控件。
- FTP 使用周知 TCP 端口号: 数据和连接对话框的 21 20; TFTP 使用它的文件传输活动 UDP 端口号 69。
- FTP使用的是TCP21端口,而TFTP使用的是UDP69端口; 一般防火墙都会封TCP端口而不会封UDP的,所以TFTP有时比FTP好用,不过TFTP传输的文件一般较小,你要传大文件就要用FTP了
21 以太网
1.以太网是目前使用最广泛的局域网技术,是当今现有局域网采用的最通用的通信协议标准。
2.在典型的以太网上,全部计算机共享同一个传输介质。以太网使用成为载波侦听多路访问/冲突检测(CSMA/CD)的方法,来判断计算机何时可以把数据发送到访问介质。通过CSMA/CD,所有计算机都监视传输介质的状态,在传输之前等待线路空闲。如果两台计算机尝试同时发送数据,就会发生冲突,计算机就会停止发送,等待一个随机的时间间隔,然后再次尝试发送。
3.传统以太网在中低负载情况下运行良好,但在大负载情况下会由于冲突的增多而影响性能。在现代以太网中,像网络交换机这样的设备会对流量进行管理,减少冲突的发生,从而让以太网的运行更具效率。
22交换机:每台计算机也是通过一条线路连接到交换机。但是,交换机知道应该把接收到的数据发送到哪一个端口。大多数交换机把端口与所连接设备的物理地址关联起来。当一个端口所连接的计算机发送数据帧时,交换机会查看帧的目的地址,把帧发送到目的地址相关联的端口
23 访问过程
浏览器输入网址之后的过程
1应用层:客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
HTTP访问服务器
2传输层:在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3.客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,通过查找路由表决定通过那个路径到达服务器,其中用到路由选择协议。
4.客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
Linux知识点
linux 操作系统概述
1.常见操作系统
- 服务端操作系统 : linux、unix、windows server
- 单机操作系统 : windows(dos 、ucdos、win95、win98、win2000、xp、vista、win7、win8)
MAC 、linux(ubuntu)
- 移动操作系统 Android、IOS 、Windows phone
2.linux操作系统介绍
- 为什么要学习linux操作系统
1. 大部分服务端都采用linux ,JEE部署到服务器中
2. 一些企业和学校采用linux研发和教学
3. 很多嵌入式开发 用linux
4. 云计算、大数据 是集群网 linux : centos
- 特点
1. 开放、开源、多用户的网络操作系统
2. 基于unix(unix-->minix-->linux(linus :林纳斯 芬兰 )),可以定制内核
3. 假如了GNU组织(自由软件组织 ,copyLeft) ,通过GPL(通用公共许可) 许可对外发布
- linux组成
1. linux内核(linus 团队管理)
2. shell :用户与内核交互的接口
3. 文件系统 : ext3、ext4 等 windows 有 fat32 、ntfs
4. 第三方应用软件
- linux操作系统版本
1. 内核版本 (linus 团队管理) 3.8
2. 发行版本 :一些软件公司以内核为基础,再添加一些软件和文档形成发行版本
- red hat : rhel ,centos
- debian : debian,ubuntu(桌面)
- android
二.安装linux系统
vmware安装 : 创建虚拟机的软件
vitual box :oracle 公司提供
虚拟机安装
直接安装
创建虚拟机
安装ubuntu镜像
打开虚拟机镜像: 虚拟机+操作系统(ubuntu)
打开*.vmx 文件
用户名 itcast 密码 123
三.linux系统环境
默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道
命令交互模式切换:ctrl+alt+f1—f6
图形交互界面 ctrl+alt+f7
1.图形界面交互模式
- terminal: 图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面
2.命令交互模式
命令提示符:
itcast@ubuntu:~−itcast:用户名−ubuntu:主机名− :路径,假如当前的路径正好是该用户存放数据的根目录,则显示 −−itcast:用户名−ubuntu:主机名− :路径,假如当前的路径正好是该用户存放数据的根目录,则显示 − :用户的类型 $代表普通用户 # 代表 超级用户
3.linux文件系统
- 目录结构
- 文件权限分析
w :可写 r: 只读 x:可执行 - :无权限
文件权限
1. 字符表示法
drwxr-xr-x
第一个字符 :文件的类型 - :普通文件 d:文件夹 c :串口文件 l :连接文件
2-4 字符 : 该文件的属主用户的权限
5-7 字符 : 与属主用户同一组的其他用户的权限
8-10 字符 : 不同组的其他用户的权限
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用户切换到其他账号不需要密码
3.linux 系统命令
1.stat :查看文件的详细信息
stat bj.txt
2.who与whoami
who : 查看在线的用户
whoami :查看当前自己的用户
3.hostname : 显示主机名
hostname
4.uname :显示系统信息
-a :显示完整的系统信息
5.top :显示当前耗时的进行的信息 ,每3秒刷新一次
cltr+c 中断
6.ps :显示当前进程的快照
- axu
7.du :显示文件的大小信息
8.df :磁盘使用情况 disk free
9.ifconfig :查看或者配置网卡信息 ,好比windows 的ipconfig
ipv4:32位 2-32次方 ipv6 128位 是 ipv4 2-96次方倍数
设置虚拟机ip地址:
1. 设置vmware的连接方式
- 共享宿主机的ip地址,在网上邻居找不到
- 桥接方式,需要单独设置ip,可以在网上邻居查找
2. 图形界面设置ip地址
edit connection --》ipv4--》manual(手工设置)--》add (ip地址,子网掩码)
3.命令方式设置ip地址
静态设置ip:
sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0
10.ping 测试与目标主机连接情况
11.clear : 清除屏幕 windows: cls
12.man :帮助命令
man 命令
13.kill :杀死进程
kill pid
14.netstat :网络连接详细信息
15. useradd
- 查看用户信息
sudo cat /etc/passwd
itcast:x:1000:1000:UbuntuA,,,:/home/itcast:/bin/bash
- itcast:用户名
- x :密码 :已经加密 ,密码存放在 /etc/shadow
- 1000: 账号id ,userId
- 1000: 组id ,group id
- UbuntuA,,, :账号描述
- /home/itcast :该账号存放文件的默认位置 ~
- /bin/bash:该用户的shell脚本的解析方式 ,sh 、bash、rbash
- 创建用户
sudo useradd lijun -d /home/lijun -s /bin/bash
-d :指定该用户的home 路径
- s :该用户的shell解析方式
步骤:
1. 创建 /home/lijun 目录
2. 执行 useradd 命令
3. 用 passwd 设置密码
4. su 切换用户
五、打包、压缩文件
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
2.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 <包名>
2.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
重点:
1.linux系统环境
命令交互通道
命名提示符
2. linux 目录结构、文件权限
drwxr-xr-x
3. linux 命令
- 开关机
- 文件操作
- 系统命令
1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat
4. 软件管理
- dpkg :离线 .deb .rpm .apk
- apt-get :在线
5. 压缩解压
tar -cxgzvf 打包后的文件 要打包的文件
6. vim 的使用
三种模式
7. ssh理解 secure shell
8. java开发环境搭建
Python 知识点
Python是一个面向对象的解释型的交互式高级脚本语言:Python被设计成一种高可读性的语言,因为它大量地使用了英语中的单词作为关键字,而且不像其他语言使用标点符号构成复杂的语法结构,Python的语法结构非常少。
Python是一种面向对象的语言:即Python是支持面向对象的,支持在对象中进行代码封装。
Python是一种解释型语言:即Python程序是在运行时由解释器解释执行的,因而不用事先编译源程序。这一点和Perl和PHP类似。
Python是一种交互式语言:即你能够在Python提示符下直接交互式地编写你的程序。
Python是初学者的语言:Python是一种非常适合初学者的语言,它支持多种类型的应用程序的开发,如简单的文本处理、www浏览器应用程序开发、游戏开发等等。
1)什么是Python?使用Python的优点有哪些?缺点有哪些?
Python是一种面向对象的解释性的交互式语言,带有对象、模块、线程、异常和内存自动管理的机制。
使用Python的优点有:简单、易学、轻便可移植、可扩展、可读性、具有多种内建数据类型、开源等等。
使用Python的缺点有:运行速度慢,代码不能加密(解释性语言,发布python应用只能发布源代码,不像C发布编译后的应用文件)
2)什么是PEP 8?
PEP 8是一种编码规范,是一系列关于如何让Python代码更加具有可读性的编码建议。
3)什么是序列化(pickling)和反序列化(unpickling)?
序列化:将在内存中的变量转为可存储或传输的过程。应用JSON传输,序列化为统一格式json
反序列化:与序列化的过程相反
Pickle模块允许我们将Python对象转换成一个string表示的信息,并且可以使用dump函数将其保存到一个文件中去,这样的过程称为序列化。而使用文件中保存的对象信息重构Python对象的过程称为反序列化。
4)Python是如何被解释执行的?
Python是一种解释型语言,它可以直接从源代码运行程序。程序员编写的源代码首先转变成一种中间语言代码,然后再被转换成能够直接执行的机器语言代码。
5)Python是如何进行内存管理的?
Python内存空间是以Python私有堆的形式进行管理的。所有的Python对象和数据结构都存放在一个私有堆中。解释器可以访问私有堆,而程序员不可以。
将Python堆空间中的内存分配给Python对象的工作是由Python内存管理器完成的。而内核API则会提供给程序员一些相关的工具来完成涉及到内存的编码工作。
Python还内置垃圾回收器,从而进行回收释放内存到堆空间。
6)能够找到程序中的bug进行静态分析的工具有哪些?
PyChecker是一种能够发现Python源代码中的bug并对其中的代码风格和复杂度进行警告的静态分析工具。另外一种工具是Pylint,它能够验证模块是否满足编码标准。
7)什么是Python装饰器?
用来装饰一个函数从而使这个函数在不修改本身的函数定义外,动态产生额外的功能;装饰函数的入参为需要被装饰的函数。装饰器本质上是一个返回函数的高阶函数
一个Python装饰器是我们在符合Python语法的同时又方便地对函数做的一些特定的修改。
8)列表、元组、集合、字典的区别是什么?
列表:元素可变(任何数据类型),有序(可索引),append/insert/pop;
元组:元素不可变,但元素中的可变元素是可变的;有序(可索引);而且元组可以被散列,例如作为字典的键。
集合:无序(不可被索引)、互异
字典:无序,键值对(key:value),key唯一不可重复
9)怎样理解字典和列表?
它们是一种用来创建可变对象的语法结构,数据容器。
dic插入、查找速度比list快,不会随key的增加而增加,但list会随着元素的增加而增加(偏移量)
10)参数是如何通过值或者引用传递的?
python中确切说应该是“传对象引用”的方式,引用对象传递。 一切皆对象,参数皆引用
如果函数收到的是一个可变对象(比如列表、字典)的引用,则可修改对象的原始值==相当于“引用传递”方式;
如果函数收到的是一个不可变对象(比如数字、字符、元组),就不能直接修改原始对象指向的值==相当于“值传递”方式;
11)Python提供哪些内置类型?(原文有语法错误,根据个人理解翻译)
分为可变类型和不可变类型。
可变类型:
列表
集合
字典
不可变类型:
字符串
元组
数字
12)Python中的命名空间是什么?
名字到对象的一个映射;
一个对象拥有一个ID(内存地址)、一个类型、一个值,但可以有不同的名字,比如:a=1,b=a,a和b指向同一个对象;
命名空间就是用来映射这个关系的;
13)Python中的lambda表达式是什么?
lambda表达式是一个匿名函数,省去了对函数命名,所以叫匿名函数。通常用作代码行内的嵌入函数。
14)为什么Python中的lambda表达式没有声明?
Python中的lambda表达式没有声明是因为它只是用来创建一个新的函数对象,并且在运行时才返回值给对象。
15)Python中的pass是什么意思?
pass是Python中的空操作语句,或者说,它是一个复杂语句中的一个空间占位符,只是用来表示空白,什么都不用写。
16)Python的迭代器是什么?
迭代器是用来迭代可迭代对象的,比如包含一组元素的列表。 iter()生成迭代器对象,next()依次访问迭代器对象的下一个值
17)Python中的unittest是什么?
unittest是Python中的单元测试框架。它支持共享的测试建立、自动测试、关闭测试、聚集测试等等。
18)什么是切片?
从一组序列中截取一段序列的机制,比如列表、元组、字符串等类型中选择一个范围中的元素。
19)Python中的生成器是什么?
一种特殊的迭代器,用关键字yield表示,它特殊的地方在于运用在函数中函数体没有return返回,而是使用关键字yield返回值,yield每返回一次,函数状态挂起 。这种函数叫做生成器函数,被调用时返回一个生成器对象;
20)Python中的docstring是什么?
docstring是一个py文件、函数、类开头部分的用'''编写的一段注释文档和说明,通过help函数可查看该文档说明。
docstring是Python中产生文档的方式,它可以为Python中的函数、模块和类产生说明文档。
21)Python中如何拷贝一个对象?
使用标准库的copy模块:copy.copy()浅拷贝,copy.deepcopy()深拷贝
copy.copy()浅拷贝:拷贝了对象,但拷贝对象的值仍然是指向原对象的值(相当于引用),修改拷贝对象的元素,则被拷贝对象的值也会被修改
copy.deepcopy()深拷贝: 不仅拷贝了对象,同时也拷贝了对象中的元素,获得了全新的对象,与被拷贝对象完全独立;但这需要牺牲一定的时间和空间。
22)Python中负的索引是什么意思?
Python中可以使用整数和负数进行索引。对于正索引,0是第一个,1是第二个,以此类推。对于负索引,-1是最后一个,-2是倒数第二个,以此类推。
23)怎样将一个数字转换成字符串?
使用内置函数str()即可。如果想要八进制或者十六进制的形式,可以使用oct或者hex函数。
24)xrange和range的区别是什么?
xrange返回一个xrange生成器对象,而range返回一个list对象。
生成很大数列的时候,range会使用和其范围大小相同的内存;相比xrange的性能要高很多
25)Python中的模块和包是什么?
在Python中,模块就是一种构建程序的方式。每一个Python程序文件都是一个模块,这个文件还可以引入其他模块如对象和属性等。
包就是一个带有__init__.py文件的文件夹,里面可包含多个模块
26)@property、@staticmethod、@classmethod:
@property:特性,被其装饰过的方法(函数),可以当成属性一样去调用和访问。如:a()是一个方法==》c.a(对象.属性)调用
@staticmethod:静态方法,被其装饰的函数中不含self参数,相当于类外面的方法,但会在类中被调用(跟类有关系但在运行时又不需要实例和类参与)。通过类名调用
@classmethod:类方法,通过类名调用(一般类中的方法是实例方法,通过实例调用),使用时将类作为方法的第一个参数传入,如:
@classmethod
def test(cls):
print(cls,cls.x)
27) 如何理解self?
self为类中方法的默认第一个参数,self指向创建的实例本身。 调用时self不需要传,Python解释器自己会把实例变量传进去