20202303 实验一 《Linux基础与Java开发环境》实验报告

 # 20202303  2021-2022-1 《数据结构与面向对象程序设计》实验一报告

课程:《程序设计与数据结构》
班级: 2023
姓名: 马澜
学号:20202303
实验教师:王志强
实验日期:2021年9月22日
必修/选修: 必修

## 1.实验内容

  • 基于命令行进行简单的Java程序编辑、编译、运行和调试。
  • 练习Linux基本命令;
  • 学习Java程序的JDB调试技能
  • 编写简单的Java程序。
  • 使用git让虚拟机上的程序上传到码云上

## 2. 实验过程及结果
(1)对于基于命令行进行简单的Java程序编辑、编译、运行和调试的进行

   首先对于Java的编辑使用vim新建hello.java格式的文件,然后进行编写(这里我使用了云班课的例子文件)

      然后对于编译和运行,直接使用javac  hello.java    java hello即可,但为了下一步的调试,选择加入参数(-g),如图,随后利用下载好的jdb进行调试,而且反复进行

(2)练习Linux基本命令

!!总结常用目录结构

 

bin 存放二进制可执行文件
sbin 存放二进制可执行文件,只有root才能访问
etc 存放系统配置文件
usr 用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
dev 用于存放设备文件
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 存放系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp 用于存放各种临时文件
var 用于存放运行时需要改变数据的文件


!!总结常用命令

1.磁盘管理

ls :列出目录内容 -al 列出所有文件以及详细信息

cd :切换目录

cd ~ :用户当前目录

cd / :根目录

cd - :上一次访问的目录

cd .. :上一级目录

pwd :显示当前工作目录

mkdir :创建目录

rmdir :删除空目录

2.文件管理

cat :显示文本文件内容

cp :复制文件或目录 cp -r [源文件或目录] [目标文件或目录]

mv:移动或重命名现有的文件或目录 mv [源文件或目录] [目标文件或目录]

rm:删除文件或目录 rm -rf [文件或目录]

find:查找文件或目录 find /root/ -name 'test'

3.文档编辑

vi 或vim命令

1.输入 vi 文件名 进入一般模式

2.按下i 从一般模式进入插入模式

3.按下 esc 从插入模式退出到一般模式

4.在一般模式下,输入:wq 退出编辑

4.grep命令

grep -i control /root/install.log #查看install.log文件中是否含有control字符的内容 -i 忽略大小写

5.ps 命令 提供对进程的一次性查看

ps -ef | grep -i ping

6. kill命令 杀死进程

kill -9 pid

7.ifconfig 显示网络设备

8.ping 测试与目标主机的联通性

9.备份压缩 tar

压缩: tar -zcvf aaa.tar ./aaa/

解压: tar -zxvf aaa.tar -C [目标位置]

10.文件权限 chmod命令

chmod 777 xxx

4.其它操作

1.man: Linux 下的帮助指令,通过 man 指令可以查看 Linux 中的指令帮助、配置文件帮助和编程帮助等信息。所有有任何不懂得指令都可以使用 man 来获得帮助,man几乎是万能的。

2.locate:用来查找文件或目录。 locate命令要比find -name快得多,缘由在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有linux

本地全部文件信息。Linux系统自动建立这个数据库,而且天天自动更新一次,所以,用locate 查找文件时,有时会找到已经被删除的数据,或者刚刚创建文件,却git

没法查找到,缘由就是由于数据库文件没有被更新。为了不这种状况,能够在使用locate以前,先使用updatedb命令,手动更新数据库。整个locate工做实际上是由四部分组成的:

  1. /usr/bin/updatedb   主要用来更新数据库,经过crontab自动完成的数据库

  2. /usr/bin/locate         查询文件位置svn

  3. /etc/updatedb.conf   updatedb的配置文件ui

  4. /var/lib/mlocate/mlocate.db  存放文件信息的文件spa

用法:

locate [OPTION]... [PATTERN]

3.where is:用来查看一个命令或者文件所在的路径,只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

实例:whereis grep

4.which在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

实例:which grep

5.cheat:简单来说,像一个小抄一样,就是告诉你一个命令如何使用。它没有提供其他额外多余的信息,只通过使用实例告诉你一个命令如何使用。

 

(3)学习Java程序的JDB调试技能

    同(1)调试步骤中的第1,2,3张图片

 

 

 

    在jdk调试的过程中,使用Ctrl+Shift+T可以打开三个Tab,很方便,编辑完使用命令行w保存可以随时修改

    使用jdb -classpath .:./bin hello进行调试

    断点方法很多,主要是使用step  in  hello.main开始断点,一边step,一边list显示进度;其中注意next与step的区别,在调试过程中如果step遇到

循环会跳出来,虽然可以利用step up调回去,但最好使用next!!

    退出时可以使用quit/exit

(4)编写简单的Java程序。

   详见此图(例子文件)拥有固定格式

 

 (5)利用git上传到程序

首先在码云选择创建一个仓库,然后根据下方的提示进行上传整理

 

然后在虚拟机上操作

 

 然后在相对应的仓库里找到了相对应的程序

 

 

## 3. 实验过程中遇到的问题和解决过程
- 问题1:在Java的程序编写中,由于格式记忆错误,将XXX.java写成XXX.test,导致最后打不开,这个问题比较低级但我真的没发现
- 问题1解决方案:最后请教同学后,发现自己的格式直接错误。
- 问题2:在jdk的安装过程中,明明按照教程,把所有的程序都打了一遍,甚至自己试着换了源代码,一直提示我无release文件,这个问题困扰了我四天。
- 问题2解决方案:最后在同学的测试下,发现它不知道为啥自己装好了,现在原因仍旧未知。
- 问题3:在jdk的调试中,一开始查找视频,然后在文件资源里找到了调试,一步步进行时,发现有一步程序scr/hello.java没有这个文件,我认为我的电脑再一次报废了

然后选择了跳过。

- 问题3解决方案:在接下去的调试里,我重新找到了一个调试方法,bin.:.这个程序,最后进行了完美调试,并且看到了next与step的明显区别

- 问题4:在git码云的过程中,完全不会操作,甚至新建了一个仓库后自己突然就有了上传内容,我自己都不知道怎么回事。
- 问题4解决方案:去看看csdn里的教程,发现自己的仓库一开始的黑色提示被自己删掉了,只好自己又新建了一个仓库,然后名字方面请教了

学姐,进一步发现了很多虚拟机里的神仙操作,然后改好了设置,自己安装git,安装过程我觉得挺复杂的,包括百度,文件以及图片都查找了,

找了一个小时。最后终于上传成功,然后在电脑里的文件夹里分好类,分为src和bin,然后才指导原来调试的src是因为我没创建。

- 问题5:用vim编写程序,对于三种模式的切换还不是很熟练,还有移动和删除和保存
- 问题5解决方案:用纸记下来,然后反复操作,最后差不多可以熟练。


## 其他

感悟:感觉Java好难啊,大学每个学期给我惊喜,总有我不会的教我做人。感觉Java是离我很遥远的东西,自己操作起来完全懵乎乎的,啥也

不清楚,甚至于看到那无数的代码就开始头晕,仿佛之前C语言的基础啥也用不上,对于这个新奇的学科,难度也感觉很大,尤其是虚拟机,我

自己装了3天,真的有点疲惫,对于这次实验,其实可操作性还是很强的,只不过我可能水平不够,才会在原地打转,对于git和码云和命令系统

都是可以多多练习的,对于刚开始也许很难,但尽管再难也有大学生过了这一关,我相信只是时间问题,第一次做这个,可能不太熟练,还是

希望可以多多努力,希望下次可以做得更好。


## 参考资料

-  《Java程序设计教程(第九版)》

-  《Java软件结构与数据结构(第四版)》

 
- 网页搜索资料:https://blog.csdn.net/qq_26219679/article/details/79647221

- 网页搜索资料:https://blog.csdn.net/weixin_30384217/article/details/99115000

- 云班课《使用JDB调试Java程序》:https://www.cnblogs.com/rocedu/p/6371262.html

 

 

posted @ 2021-09-23 12:35  20202303马澜  阅读(98)  评论(0编辑  收藏  举报