2326 实验一《Linux基础与Java开发环境》实验报告
# 20202326 2021-2022-1 《数据结构与面向对象程序设计》实验一报告
课程:《程序设计与数据结构》
班级: 2023
姓名: 张修齐
学号:20202326
实验教师:王志强
实验日期:2020年9月21日
必修/选修: 必修
## 1.实验内容
基于命令行进行简单的Java程序编辑、编译、运行和调试。
练习Linux基本命令;
学习Java程序的JDB调试技能;
编写简单的Java程序。
## 2. 实验过程及结果
(1)编写简单Java程序,编辑、编译、运行和调试。
【1】试编写一个程序,将输入的整数和字符串输出。
结果:
【2】试编写一个程序,将输入的时间秒数转换成小时、分、秒的格式。
结果:
(2)常用Linux指令:
【1】find命令:用于查找指定目录下的文件,同时可以调用其他指令执行相应操作;
find语法格式: find 路径名称 选项
-name 按照文件名查找文件。 “名称”
-perm 按照文件权限来查找文件。666 777 等
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n / +n 按照文件的更改时间来查找文件,
- n 表示文件更改时间距现在n天以内
+ n 表示文件更改时间距现在n天以前
-type 查找某一类型的文件
b - 块设备文件
d - 目录
c - 字符设备文件
p - 管道文件
l- 符号链接文件
f - 普通文件
-size n 查找符合指定的文件大小的文件
-exec 对匹配的文件执行该参数所给出的其他linux命令, 相应命令的形式为\' 命令 {} ;,注意{ }和 ;之间的空格,{}代表查到的内容
例:用find查找文件名为bin、Java的文件;
【2】man指令:帮助命令,是一个了解各种指令的资料和功能,具有以下几个方面的内容:
1:查看命令的帮助
2:查看可被内核调用的函数的函数的版主
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev目录下的文件)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其他杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件的帮助
例:用man man指令查看命令的帮助:
【3】grep指令:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。
grep格式:grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --invert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。
例:查看Java格式文件中包含shijian的那一行内容
【4】locate命令:locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
locate格式:locate [-d ][--help][--version][范本样式...]
-b, --basename -- 仅匹配路径名的基本名称
-c, --count -- 只输出找到的数量
-d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
-e, --existing -- 仅打印当前现有文件的条目
-1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
-0, --null -- 在输出上带有NUL的单独条目
-S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息
-q -- 安静模式,不会显示任何错误讯息。
-P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接
-l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目
-n -- 至多显示 n个输出。
-m, --mmap -- 被忽略,为了向后兼容
-r, --regexp REGEXP -- 使用基本正则表达式
--regex -- 使用扩展正则表达式
-q, --quiet -- 安静模式,不会显示任何错误讯息
-s, --stdio -- 被忽略,为了向后兼容
-o -- 指定资料库存的名称。
-h, --help -- 显示帮助
-i, --ignore-case -- 忽略大小写
-V, --version -- 显示版本信息
例:用locate命令查找本目录中含有s字母的文件
例:用locate命令查找含有Java的文件的位置
【5】whereis/which指令:在本机数据库中快速查找指定文件,需要及时更新数据库;
whereis/which格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。
例:用whereis查找bin目录下含有Java的文件
【6】cheat 指令:man功能的简化版。cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
例:用cheat find查找后缀名为Java的文件
(3)jdb的调试
【1】(无输入型)调试Hellojava文件
【2】(有输入型)使用jdb调试shijian程序
## 3. 实验过程中遇到的问题和解决过程
- 问题1:对Linux常用指令操作不熟练,将各部分搞混淆;
- 问题1解决方案:借助云班课和网上资料完善学习;
- 问题2:对于有输入型的程序jdb调试很不熟练,照着打也能打错。
- 问题2解决方案:云班课上有专门调试有输入型的视频,建议再输入指令界面进行截屏,一字一字对照。再不行问老师。
## 其他(感悟、思考等)
我认为对于Linux指令可能我们常用的就只有几个,我们也不会都用,要针对自己的情况了解常用指令,对于jdb调试方面的话还是要多去实践,特别是对于有输入型的程序,指令比较复杂,照着打也不一定答对,所以一定要熟能生巧。
## 参考资料
- [Linux命令|菜鸟教程](https://www.runoob.com/linux/linux-comm-grep.html)
- [Linux命令的使用方法](https://blog.csdn.net/huanhuanq1209/article/details/72673365)
以上是 2326 实验一《Linux基础与Java开发环境》实验报告 的全部内容, 来源链接: utcz.com/z/390775.html