Linux的初步学习,如何在Linux上编程,上网和一些基本的Linux操作。

下载安装好虚拟机和Linux系统后(这是老师第一节课的任务- -)
我设置了网络,先在windows的网络适配器里找到可用的无限网络或者本地网络,打开属性里面的共享,把网络供给了VM1,在Linux界面找到设置里的网络,打开网络按钮,出现了ip地址。后来的学习中,对于网络问题学习了一些相关命令:

ifconfig  ****查看ip地址,在ens33中显示,用于Sheel6和虚拟机LINUX的连接,但必须要在NAT模式下。

其间碰到了电脑连上热点后,查看LIUNX的ip地址只出现Inet6而无Inet4,是因为LINUX上的网络并没有开,所以LINUX的IP地址无显示,实在是太粗心了。

再克隆后的第二个系统上重新开始学习,(第一个克隆的系统昨天被我弄的功能缺失了,主要是我把他本地的JDK给卸载了,自己还没装成功,于是去了自己的主系统弄好了JDK,用快照还原后,在克隆2号上重新实践一遍)这一次我连上网后又出现了新的状况:Linux能上网,宿主机却始终连不上网络。我查询了资料,大多表示是本机的IP地址和Linux的地址出了问题。于是我重启了电脑,在二号机上看到了网络设置用的是桥接模式而不是NAT模式,这和我查的资料符合了。

为此我还特地再去了解了VM网络的三种模式桥接模式、NAT模式、仅主机模式。
VMnet0:用于桥接模式下的虚拟交换机
VMnet1:用于仅主机模式下的虚拟交换机
VMnet8:用于NAT模式下的虚拟交换机桥(这三种是在LIUNX的网络配置器下,在WINDOWS下只有VM1和VM8)

接模式要求两者的IP地址在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。 大多数情况下是需要自己去配置的,查询好为windows下的IP来配置LINUX的。桥接模式的IP资源会紧却,在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。VMware Network Adapter VMnet8网卡是为了实现主机与虚拟机之间的通信。
可见NAT模式下主机更像是虚拟机们的"路由器",通过VMnet8虚拟网卡为虚拟机分发地址。所以虚拟机和主机不再同一网段下,可以理解为主机是虚拟机的"上级",这也就是为什么桥接模式没有VMnet0这个虚拟网卡,因为桥接模式下的虚拟机和主机是"平等"的,共用同一个路由器。至于仅主机模式不过就是阉割了虚拟NAT设备,通过两个系统下的VM1互相访问,但只能与主机通信。

所以重启后,我用NAT模式连接后就自动连上了网络。前面说到ifconfig下的ens33里有连上网的IP地址,那么有时候查看和修改ens33里的内容,在之前查阅的资料里了解到了命令:

cd /etc/sysconfig/network-scripts  ****cd跟DOS操作是一样的,change directory 

ls       ****list,列出目录下的文件

cat ifcfg-ens33      ****cat 查阅内容,只读不改

或者vim /etc/sysconfig/network-scripts/ifcfg-ens33   ****vim 这里是进入对ifcfg-ens33的编辑模式

sudo service network restart   ****sudo,获取root权限,这里的网络重启动命令host用户是没有权限的

在终端里看到了一些变化,再没有cd之前,左边是~符号,每次cd的末目录,下一行的左边就显示他的目录名,方便你阅读。
同理,当你sudo或者su得到了root权限,你的左边由用户名加@,右边是¥变成了左边是root加@,右边是#号。
中间也出了个小插曲,我用cat的时候后面没有跟内容就按了回车,结果一直显示在输入模式,而且我输入什么,他重复什么,我怎么也退出不了,查资料后按ctrl+D退出!

终于完成了对网络的了解。接下来要完成老师给的任务了。在LINUX下创立和运行C,C++,JAVA程序。

2.C程序的建立和运行

vim HELLO.c   ****表示在当前目录下建立HELLO.c,上面的/xx/xx的写法是进入绝对路径的目录下创建文件
yum -y install gcc automake autoconf libtool make ****安装cc编译软件
gcc -o HELLO HELLO.c  ****编译HELLO.c
ls  ****查看是否出现HELLO绿色文件
./HELLO  ****打开运行HELLO.c程序

3.C++程序的建立和运行

vim HELLO.cpp
g++ apt-get install g++
g++ -o HELLO HELLO.cpp
./HELLO (和c程序的创立没有很大区别)

4.JAVA程序的建立和运行

java -version    ****查看LINUX下的JDK版本,如果有,就直接用,没有就要下载通过Shell脚本传输文件
vim HELLO.java   ****注意这里编写的类名要和文件名一样
vim /etc/profile
(在末尾添加
AVA_HOME=/usr/java/jdk1.8.0_131-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
配置好环境变量后)
source /etc/profile
javac HELLO.java  ****如果这里出现未找到命令的报错,执行yum install java-devel装原生的
(执行后javac编译通过)
java HELLO     *****如果这里出现了找不到或者无法加载主类的报错,问题是main函数和编译文件不在同一个目录下,解决办法是在环境变量的CLASSPATH=后面加上  .:  (一个点和一个冒号),表示在当前目录下建立。
./HELLO

5.从WINDOWS上传输文件到LINUX上

然而在java文件的建立和编译上出现了小插曲。我在网上找到的方法是让我重新下载一个新版本的JDK,把LINUX上自带的JDK卸载。而在WINDOWS上传输文件,要用脚本文件Shell6和Xftp文件传输,而用脚本软件Shell6连接虚拟机LINUX系统最重要的步骤就是知道LINUX上的IP地址,然后新建会话连接LINUX。

或者用rz/sz命令,但是虚拟机上用该命令会出现乱码情况。

第三个方法我并没有成功过,就是直接在WINDOWS上把文件脱进LINUX的桌面下,一般别直接拉进文件里,这可能出现叉的符号。拉进桌面后,再把安装包放进你要放置的文件中。进入终端进行安装:

cat /proc/version 或者uname -a  ****查看LINUX的版本信息,找到对应的JDK安装包

rpm -ivh jdk-8u221-linux-x64.rpm  ****JDK-8u221就是你下载的jdk8-221版本

6.课堂上的命令笔记

rpm-qa ****查询安装包

rpm the number of rpm和cat -n xxx
同理tar the number of tar 都是查看以.rpm或者.tar文件结尾的安装包数量和数目

who am i   ****查询当前文件

pwd  ****查看当前工作目录的绝对路径

tree  ****显示路径结构 一般要 yum -y install tree 来安装该工具

./ 当前目录  ../当前的前一目录

mkdir ****创建一个空白目录

rmdir  ****只能删除空目录

rm -rf xxx  ****删除某路径下的文件或或者目录 强制删除,不管是否有内容

-p: mkdir -p xx/xx/xx   ****创建多目录文件,不然只能通过cd不断进入创建的文件再mkdir
同理 rmdir -p     ****连同上层的空目录一起删除

cd  ****不加路径返回root目录,cd -表示返回上次目录

ls    ****list,ls -a 表示查看隐藏文件和目录,ls -l简为ll 查看当前目录下的目录和文件属性

man xxx  ****查看命令的用法

find -name xxxx   **** 查看某某文件或再目录的路径

touch xx  ****创建一个新的文件

echo  “xxx” >> xxx   ****写入内容到xxx文件里

cat和more和less和head和tail    ****都是查看内容信息,cat查询内容少的文件,more查询更多空格下一页和b键上一页,less 分页显示和more差不多,可以用键盘方向键查看,q键退出。head -n 查询前几行,tail -n查询后几行

cp xxx(源文件)  xxx(目标文件)   ****可以复制文件到目录,也可以复制文件覆盖另一个文件。

mv xxxx  xxxx   ****同上,移动或者重命名文件或目录,但cp文件增加,mv文件不增加,移动过去了。所以可以移动和重命名。
 

上一篇:面试复习之计算机网络


下一篇:【VirualBox虚拟机】CentOS7设置NAT网络并且后台启动