原文出处:http://mtyblog.sinaapp.com/?p=20
文章摘要:
本篇文章主要是介绍一些基础的常用的linux下的操作。包括以下几项:
- ssh、scp
- 重定向
- 配置java环境
- wget、tar,环境变量配置
SSH简介:
ssh是安全外壳协议,是Secure Shell的缩写。最初是Unix上的一个程序,后来扩展到其他的平台上。专门用于远程登录会话和其他网络服务提供安全性的协议。
——摘自百度百科
其实说白了,就是可以用来登陆到别的电脑或者服务器的小程序。
scp简单说一下,就是一个可以传输文件到别的服务器上的程序。类似于发邮件的感觉。
概念可以参考一些文章,我们主要来实战说明。
SSH实战:
我是将mac连接到linux上,都在本地局域网中。不管是什么系统相连接。原理都一样。
以下简称mac为A,linux为B
分为四步:
- 安装ssh
- A生成密钥
- A登陆B并且传输公钥
- 写入公钥到B
安装ssh:
B要安装OpenSSH-server(OpenSSH是SSH的一个开源实现)。A要安装OpenSSH-client端。以ubuntu为例就是:
sudo apt-get install openssh-server openssh-client
win就是下安装包安装。mac下源码或者是用brew都可以。sudo命令是为了获得权限,会提示你输入密码,输入完回车就好。
A生成密钥:
配置好环境之后,输入下列命令就可以生成密钥。
ssh-keygen -t rsa
输入命令后,一路回车即可,即都是默认配置。高级配置以后自己摸索吧。
生成好之后,发现目录下多了id_rsa和id_rsa.pub两个文件。前者是密钥,后者是公钥。公钥要传输给B。
A登陆B并且传输公钥:
生成密钥之后,我们先尝试登陆一下B,输入以下命令登陆:
ssh user@hostip
user是你要登陆的B的用户名,也就是B的一个用户。
hostip是B的ip地址,这个在B中输入ifconfig查看。
例如我的命令就是:
ssh fkysly@192.168.1.108
机子会提示你不在known host里面,输入yes继续,再输入user的密码。然后终端提示符就会变成B的样子了,这就成功登陆了。输入exit可以退出。
我们要将A生成的公钥传输给B,为什么直接登录不行呢?不是不行,而是这样更安全,具体解释可以自己Google一下。
用scp就可以传输了,记住这里是在A上进行传输,要退出B的控制。
要先进入A的.ssh目录:
cd .ssh
输入命令:
scp id_rsa.pub user@hostip:~/id_rsa.pub
这里有:~记住就行了,能理解就理解。
写入公钥到B:
我们将文件传输过去了,但是还没有在B上生效。我们要将公钥内容添加到B的.ssh目录下的authorized_keys文件中。
如果B中没有.ssh文件夹和authorized_keys文件,可以新建一个:
sudo mkdir .ssh
sudo gedit .ssh/authorized_keys
然后就可以写入公钥了:
sudo cat id_rsa.pub >> authorized_keys
操作完毕,现在退出之后输入命令:
ssh user@hostip
应该就可以直接登录了。
使用config配置ssh(可选):
经过了以上步骤,我们不需要输入密码了,但是我们需要每次都指定用户名和主机的ip地址。这是非常麻烦的,我们需要办法来解决这个。ssh给我们提供了设置的办法,可以在A的.ssh目录下新建一个config文件,按照标准格式配置别名就可以了。
命令如下:
cd .ssh
sudo gedit config
config设置如下(比如我要配置个别名叫dog):
Host dog
HostName 192.168.1.108
Port 22
User fkysly
IdentityFile id_rsa
这里port是端口号,可以根据需要填写。IdentityFile是指向你的密钥,也可以理解就是A的那个私钥了。id_rsa.pub对A来说已经没有用了。
现在登录B只需要输入:
ssh dog
大功告成!
重定向:
在上文中我们用到了重定向,这里简单说一下。
重定向是*nix下非常有用的命令,非常方便。
拿刚刚的命令举例:
sudo cat id_rsa.pub >> authorized_keys
cat命令是显示文件内容,”>>”是重定向的符号,它就把cat要显示的内容重定向到了authorized_keys文件。因为文件已经存在,所以就添加到了authorized_keys文件的末尾。这样就完成了我们要添加公钥的过程。
LINUX下配置JAVA环境
wget、tar命令:
首先需要下载java源码包。如果是桌面版可以直接登录 Oracle官网 下载jdk的包,
这里要介绍的是wget命令,可以直接下载文件的命令。
wget http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-solaris-x64.tar.gz
我这里下载的是linux64位的gz包,你也可以下其他的,只要跟着的是url就行了。
下载完毕,发现目录下多了一个文件,那个就是jdk的压缩文件了。
我们需要将其解压,我们一般在win下都是用WinRAR或者是7zip解压。这里可以用命令tar解压:
sudo tar -zxvf jdk-8-solaris-x64.tar.gz -C jdk
我们这里解压出来了,发现目录下多了一个jdk文件夹。cd命令打开它,可以看到里面是jdk1.x.xx(x是你下的版本)。
cd jdk
比如我下的是jdk8.0,那么我的文件夹就是jdk1.8.0。
我们不需要外层的jdk文件夹,直接移动出来里面的,并且删掉它。
sudo mv jdk1.8.0 ..
sudo rm -rf jdk
现在目录下就剩下jdk1.x.xx文件夹了。
但是目前还不能用,环境变量还需要配置。
环境变量配置
linux下有两个文件可以配置(ubuntu版本)。一个是/etc/profile,一个是用户目录下的.bashrc。前者是系统共用的,所以最好别改。后者是单个用户的自己的,我们改后面的。
打开.bashrc:
sudo gedit ~/.bashrc
文件末尾添加我们的环境变量设置:
export JAVA_HOME=~/jdk1.8.0
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
这里我用简单理解的方式说明一下:
export可以理解就是定义环境变量的命令,这里定义了4个环境变量,如果要在一个变量里面引用其他的变量,只要加个$前缀即可。linux下的环境变量分隔符是”:”。这里我们将jdk目录路径设置为JAVA_HOME变量,设置JRE_HOME为jdk目录下的jre目录。然后利用JAVA_HOME变量和JRE_HOME变量分别设置了CLASSPATH和PATH变量。其实前面两个也可以不需要,直接定义后面两个变量就行了。这里是为了以后的扩展性和可读性。
ok,现在可以测试一下是否成功:
java -version
出来信息就成功了!
转载请注明原文地址!
原文出处:http://mtyblog.sinaapp.com/?p=20