Linu学习笔记之——ubuntu安装、卸载JDK1.7
摘要:主要记录如何在ubuntu12.0.4 系统下手动安装安装和使用shell脚本安装JDK1.7、手动删除JDK1.7。同时涉及到一些小命令。scp、tar。
一:手动安装
1.1 获取相应安装包
我这里是另一台ubuntu机器上下载好的、从那里荡过来的。可以使用scp来拷贝同一局域网内不同Linux系统的文件、前提是两台电脑的IP能互相ping的通。
假设我的机器是A、IP是:192.168.26.222
另一台有JDK是B、IP是:192.168.26.249
那么在B的终端界面上使用如下命令
scp jdk-7u51-linux-x64.tar.gz root@192.168.26.222:
输入192.168.26.222的root用户密码、则就会将指定文件(jdk)传输到192.168.26.222的/root文件夹下。
1.2解压jdk-7u51-linux-x64.tar.gz
1.2.1 tar 命令
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具。linux中最流行的tar是麻雀虽小,五脏俱全,功能强大。
tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。
命令格式:
tar[必要参数][选择参数][文件]
命令功能:
用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
命令参数:
必要参数有如下:
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
--help 显示帮助信息
--version 显示版本信息
(注:tar是打包,不是压缩!)
1.2.2解压
一定要注意文件所在的路径、和解压后的路径、这个在后面设置环境变量很重要、我的是放在root用户下的家目录中的、也就是/root目录下、解压后的文件也是在这个目录下的。解压后的jdk文件名称为:jdk1.7.0_51。
解压命令:
tar–xzvf jdk-7u51-linux-x64.tar.gz
1.3设置环境变量
可以通过编辑/etc/profile来添加环境变量、也可以使用echo 将环境变量写入。两种方式目的都是当启动一个bash的时候、关于Java的环境变量就已经可以使用。
1.3.1编辑/etc/profile、添加环境变量
记得先备份!
cp/etc/profile /etc/profile.bak
vim/etc/profile
export JAVA_HOME=/root/ jdk1.7.0_51
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASS_PATH
保存并退出、source文件、使修改生效。
source/etc/profile
1.3.2 通过echo写入
记得先备份(备份一个原始的/etc/profile即可)!
cp/etc/profile /etc/profile.bak
备份之后在终端输入如下命令:
echo export JAVA_HOME=`pwd`/ jdk1.7.0_51 >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASS_PATH' >> /etc/profile
source /etc/profile
1.4验证
a) java -version
使用java –version验证、如果显示JDK7的版本信息、则说明安装成功。
b) 确保有效:新建一个Java文件、编译并执行、看是否能正确执行。
二:Shell安装
其实Shell安装就是将上面使用终端输入命令的方式过程中使用的命令整合成一个Shell脚本即可、安装就是执行一下Shell脚本。需要注意的是目录文件、这里使用的是root账户的家目录——/root 。就是说要正确使用这个Shell、需要把jdk压缩文件和这个shell都放在/root目录下即可、然后运行install_jdk7.sh
install_jdk7.sh脚本内容:
#!bin/bash
#andyChen461857202@qq.com
#2014-4-9
#thefirst time of create it .
cd~
tar–xzvf jdk-7u51-linux-x64.tar.gz
cp/etc/profile /etc/profile.bak
echo export JAVA_HOME=`pwd`/ jdk1.7.0_51 >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASS_PATH' >> /etc/profile
source /etc/profile
java –version
运行install_jdk7.sh
bash install_jdk7.sh
如果输入jdk7的版本信息、则jdk可以正常使用。
真的非常方便!
三:JDK卸载
jdk不像安装软件一样、从他的配置过程也可以看出、就是解压、然后配置环境变量、所谓的卸载也就是删除文件和还原环境变量就OK
3.1 删除解压的JDK文件
cd~
rm-rfjdk1.7.0_51
3.2修改环境变量
删除/etc/profile中关于环境变量的设定、
sourc /etc/profile
四:补充
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
命令格式:
scp [参数] [原路径] [目标路径]
命令功能:
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
命令参数:
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
使用实例:
从本地服务器复制到远程服务器:
(1) 复制文件:
命令格式:
scp local_fileremote_username@remote_ip:remote_folder
或者
scp local_fileremote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
(2) 复制目录:
命令格式:
scp -r local_folderremote_username@remote_ip:remote_folder
或者
scp -r local_folderremote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;