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

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

 

课程:《数据结构与面向对象程序设计》
班级: 2023
姓名: 王梦欣
学号:20202315
实验教师:王志强
实验日期:2020年9月16日
必修/选修: 必修

# # 1.实验内容

  • 基于命令行进行简单的Java程序编辑、编译、运行和调试。
  • 练习Linux基本命令;
  • 学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html
  • 编写简单的Java程序。

# # 2. 实验过程及结果


一、基于命令行进行简单的Java程序编辑、编译、运行和调试。

1.Linux命令行及vim基本操作

(1)文件目录:cd Java 进入 'Java' 目录     cd .. 返回上一级目录     cd ../.. 返回上两级目录     cd 进入个人的主目录       cd - 返回上次所在的目录      ls 查看目录中的文件

 

 mkdir dir1 创建一个叫做 'dir1' 的目录      mkdir dir1 dir2 同时创建两个目录

 

 rm -f file1 删除一个叫做 'file1' 的文件'     rmdir dir1 删除一个叫做 'dir1' 的目录'    

rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容     rm -rf dir1 dir2 同时删除两个目录及它们的内容

 

cp file1 file2 复制一个文件     cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录      cp -a dir1 dir2 复制一个目录

 

(2) 文件搜索

       find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
  find / -user user1 搜索属于用户 'user1' 的文件和目录
  find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件

(3)vim的基本操作

三种模式的切换:Esc进入普通模式  i 进入插入模式  :进入命令行模式

普通模式

x/Delete 删除游标所在字符
X 删除游标所在前一个字符
dd 删除整行
dw 删除一个单词(不适用中文)
d$/D删除至行尾
d^删除至行首
dG删除到文档结尾处
d1G删至文档首部

在动作前输入数字会使它重复那么多次:
如:输入2w使光标向前移动两个单词,输入3e使光标向前移动至第三个单词的末尾,
输入0(数字零)移动光标到行首。

在正常模式下修改命令的格式:operator 【number】motion
optrator:操作符,代表要做的事情。
motion:动作

插入模式

"i"       在光标所在位置插入字符
"I"      在光标所在行的行首插入字符
"o"     在光标所在行的下一行新行插入字符
"O"    在光标所在行的上以行新行插入
"s"     删除光标所在字符并插入字符
"S"     删除光标所在行并插入字符
"a"     光标所在字符的下一个字符插入
"A"    光标所在行的行尾插入字符
“cw”  替换从光标所在位置后到一个单词结尾的字符

命令行模式

:进入命令模式,输入w回车,保存文档。输入:w<filename>可以将文档另存为其他文件名或存到其他路径下。
:q! 强制退出,不保存
:q 退出        
:wq! 强制保存并退出(可能会丢失东西)
:w<文件路径> 另存为
:saveas文件路径 另存为
:x和:wq 保存并退出

更多的vim的基本操作可以使用命令vimtutor在终端打开学习教程

 

 

2.Java程序操作

(1)界面一:创建一个新file(输入命令vi+文件名),之后进行编辑,使用vim的一些基本操作命令

(2)界面二:进行Linux操作,使用命令 “javac+程序名”对新写的程序进行编译

(3)界面三:当系统报错使用界面三进行调试,可以利用JDB和GDB等调试工具。

(4)调试完成后,进入界面二,使用命令“java+程序名”运行程序

 

 

 

2.练习Linux基本命令

(1)sudo

需要根权限的每一个命令都需要sudo命令,sudo命令可以帮助获取根权限。

 

 

 (2)ls(list)

借助list命令,终端就会显示你正在处理的那个目录里面的所有文件和文件夹。

假设我在/home文件夹里面,想查看/home里面的目录和文件。就可以使用命令:/home$ ls

 

 (3)cd

更改目录(cd)是始终在终端中使用的主要命令。使用该命令时,只要输入你想要从当前目录进入到的那个文件夹的名称。

如果想要返回上一级,可以将双圆点(..)作为参数。如:cd .. 返回上一级目录     cd ../.. 返回上两级目录

 

 

 (4)mkdir

创建一个新的文件夹或子文件夹,可以使用mkdir命令来做到这一点。使用格式为 mkdir+文件夹名称。

 

 (5)cp

使用cp可以从终端拷贝粘贴文件。首先,你确定想要拷贝的那个文件,然后输入目的地位置,即可粘贴文件。即 cp+文件名+目的地位置。

cp也可以用来拷贝整个目录,不过需要加参数-r,即 cp+-r+目录名+目的地位置。

 

 (6)rm

rm这个命令可以移除文件。如果文件需要根权限才能移除,可以使用参数-f,-f就是直接强行删除,不做任何提示的意思。

rm还可以移除整个文件夹,需要使用参数-rf,-r就是向下递归,不管有多少级目录,一并删除。

 

 (7)apt-get

主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统

 

 

 (8)find和grep

find 命令用来在指定目录下查找文件,任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

grep命令用来查找一个忘记确切路径或者文件名文件,使用该命令查找文件里符合条件的字符串,即根据给定关键字帮助找到文件。

(9)tree

Linux下用tree命令列出树形图。

(10)git

Linux git命令是文字模式下的文件管理员,git是用来管理文件的程序。

 

 

3.学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html

准备阶段:

Linux Bash下打开三个标签页:一个使用vim编辑代码;一个使用javac, java编译运行代码;一个使用JDB调试代码。

快捷键:Ctrl+Shift+T:打开标签   Alt+数字n:进入第n个标签页

过程:

在第一个标签页编辑完代码后使用:w进行保存,然后切换到第二个标签页使用javac进行编译,注意加上参数-g。

设置断点:方法断点(stop in) 行断点(stop at) 条件断点 临时断点(help可以查看命令列表)

jdb 文件名 对其进行调试    run使程序运行    next使程序运行至下一行

 

 

4.编写简单的Java程序

hello.world

加减运算法则

 

 

猜数字

 

 

 

5.上传码云

一开始的错误操作:

 

 

 成功上传:

 

 

 

 

 

 

 

 

 

 


## 3. 实验过程中遇到的问题和解决过程

- 问题1:操作过程中对Linux命令及vim的基本操作不甚熟悉
- 问题1解决方案:遇到遗忘的就去查询,多次查询,多次记忆。
- 问题2:对于调试过程不大清楚,掌握不好
- 问题2解决方案:反复尝试,多次调试解决。
- 问题3:一开始没有按需类型导入,导致程序一直无法运行
- 问题3解决方案:对比了书上的程序之后,进行了搜索学习,然后掌握。
- 问题4:使用git上传码云,开始一直搞不明白
- 问题4解决方案:查阅了很多资料



## 其他(感悟、思考等)
Java是一个比较严谨的语言,很多细节需要注意,也有很多需要多多记忆、多多练习的地方。Linux操作系统比较繁琐,他不像集成开发环境那样“智能”,但是更可以锻炼写程序的人的能力,可以让人学习到更多

## 参考资料

-  [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)

-  [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html

 

posted @ 2021-09-23 22:32  王梦欣  阅读(102)  评论(1编辑  收藏  举报