20202326 实验一《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)

 

posted @ 2021-09-21 16:58  20202326张修齐  阅读(42)  评论(0编辑  收藏  举报