9月2号-9月8号周报

2024年9月2日-2024年9月8日

CodeWave组学习周报

本周学习大纲

  1. 数据库学习
  2. java从头复习
  3. 二级C语言的复习

本周学习日历

日历 学习内容 其他
星期一 Java第一课复习
星期二 C语言复习
星期三 数据库学习
星期四 Java第二课复习
星期五 数据库学习
星期六 数据库学习
星期天 休息,出校游玩

本周学习内容 及 收获

C语言

复习内容不多,二级在21号,还早,毕竟上学期学过,目前复习到循环语句

Java

跟C语言进度一样,复习到循环

数据库

目前已经学完SQL,函数,约束,多表查询也学到一半,下周三之前数据库基础一定能全部学完

下周学习大纲

  1. 结束数据库基础的内容,并适当开始数据库进阶的内容
  2. 同步开展Javaweb的学习
  3. Java与C语言适当复习

1、Linux文件权限

1.1、如何查看到文件权限

使用ls -l或者ll指令可以直接查看到如下的标记,这些标记代表的相关文件或文件夹的权限类型及所属:

img

其中分四段:

第一段,为文件/文件夹权限,其中首个bit位字符为文件类型,一共有如下的七种:前三种为常见类型

类型 说明
- 普通文件。
d 目录,字母ddirtectory(目录)的缩写。
l 符号链接。请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息。
b 块设备文件。
c 字符设备文件。
p 管道文件
s 套接口文件

像类型为文件,如下面这种:

img

之后跟随的会有9个bit位,分别代表不同的权限类型,后续再进一步讨论。

第二段,为文件/子目录的链接数量
像上述的文件结果中,1表示有一个硬链接指向文件python.gram,一般来说文件类型均为1。如果为文件夹类型则表示的是链接的子目录个数。

第三段,为权限所属用户
表示拥有当前文件或目录的用户。

第四段,为权限所属群组
表示所属的群组(group)。群组下的每一个使用者都具有该文件\路径的控制权限,一个用户可以拥有一个以上的组,大部分都只属于1个群组。

1.2、ll命令介绍
在Ubuntu中默认不含ll命令,其实质为ls -l的别名,我们可以通过修改环境变量自行添加:

1
2
3
4
# 切换管理员模式
su
# 修改系统环境变量
vim ~/.bashrc

添加或将下面这一段去掉注释:

img

修改完成之后,使环境变量生效:

1
source ~/.bashrc

img

注:root环境变量和普通用户环境变量不共通,使用ll指令,不同用户下需单独修改。

2、权限分类

2.1、文件权限

在文件类型字节位后,紧接着的3*3个字符分3组,各**表示不同角色对此文件的读®、写(w)、执行权限(x)**:

  • 第一段:3bit,对应**文件所有者(owner)**的权限

    1
    2
    3
    4
    - rwx --- ---    对应文件所有者(owner)拥有读写及执行权限,设定值为700,其值等于下面三项值相加
    - r-- --- --- 对应文件所有者(owner)拥有读权限,设定值为400
    - -w- --- --- 对应文件所有者(owner)拥有写权限,设定值为200
    - --x --- --- 对应文件所有者(owner)拥有执行权限,设定值为100
  • 第二段:3bit,对应**文件所属用户群组(group)**的权限

    1
    2
    3
    4
    - --- rwx ---    对应文件所属群组(owner)拥有读写及执行权限,设定值为070,其值等于下面三项值相加
    - --- r-- --- 对应文件所属群组(owner)拥有读权限,设定值为040
    - --- -w- --- 对应文件所属群组(owner)拥有写权限,设定值为020
    - --- --x --- 对应文件所属群组(owner)拥有执行权限,设定值为010
  • 第三段:3bit,对应**其他用户(others)**的权限

    1
    2
    3
    4
    - --- --- rwx    对应其他用户(others)对文件拥有读写及执行权限,设定值为007,其值等于下面三项值相加
    - --- --- r-- 对应其他用户(others)对文件拥有读写及执行权限,设定值为004
    - --- --- -w- 对应其他用户(others)对文件拥有读写及执行权限,设定值为002
    - --- --- --x 对应其他用户(others)对文件拥有读写及执行权限,设定值为001

上述权限对应下来则为八进制码表,二进制码的计算顺序为从右往左:

八进制位 权限 权限符号 二进制位
7 读\写\执行 rwx 111
6 读\写 rw- 110
5 读\执行 r-x 101
4 r– 100
3 写\执行 -wx 011
2 -w- 010
1 执行 –x 001
0 无权限 000

举例:

权限符号为rw-,其二进制位为110,则二进制转为八进制为,计算顺序为从右往左:2^0+2^1+2^1=6
,即r为2号位值为1,w为1号为值为1,-为0号位值为0。

2.2、文件夹权限
文件夹的权限标识与文件相同,但所具有的含义不一样,对应如下:

  • r:能够浏览目录信息,包括目录名称及所含文件等信息。无权限时无法查看对应内容

    img

  • w:能够删除新增或修改目录中的文件或目录。无权限时限制删除新增等操作

    img

  • x:当具有x权限时,能够进入该目录。无权限时被限制进入

    img

3、权限修改

3.1、修改文件/文件夹权限

1)chmod指令

chmod修改文件权限:

1
chmod [选项] 权限 文件名/文件夹名

[选项]为可选,支持以下常用参数:

参数 作用
-c 改变权限成功后再输出成功信息
-R 递归处理所有子文件
-f 改变权限失败后不显示错误信息
-v 显示执行过程详细信息

示例:

1
2
3
4
# 设置文件夹权限为770:文件所有者和用户群组有读\写\执行权限,其他用户无权限
chmod 770 testDir
# 设置文件权限为707:文件所有者和其他用户有读\写\执行权限,用户群组无权限
chmod 707 testfile

img

注:只有**文件所有者(owner)或管理员(root)**才允许修改文件权限。

2)chmod指令符号

在chmod指令中,可以使用用户表示符和权限控制符号来简化指令,更为的清晰,其对应的不同符号如下:

  • 用户表示符

    用户表示符 说明
    u 所有者
    g 拥有者同组用户
    o 其它用户
    a 所有用户
  • 权限操作符

    权限操作符 含义
    + 表示添加权限
    - 表示移除权限
    = 表示设置权限为特定的值
  • 权限符号

    符号 含义
    r 读取权限
    w 写入权限
    x 执行权限

组合使用举例:

1
2
3
4
5
6
7
8
# 给文件file.txt的所有者(u)增加读取(+r)权限
chmod u+r file.txt
# 从文件file.txt的拥有者同组用户(g)中移除写入(-w)权限
chmod g-w file.txt
# 给目录directory的其他用户(o)增加执行(+x)权限
chmod o+x directory
# 给文件file.txt的所有用户(a)设置读取和写入权限
chmod a=rw file.txt

3.2、修改文件/文件夹所属用户

chown修改文件/文件夹所属的用户:

1
chown [选项] 新所属用户名 文件名/文件夹名

chown常用的[选项]参数:

常用参数 描述
-R, --recursive 递归地更改指定目录及其子目录中所有文件和目录的所有者。
--reference=RFILE 把指定文件的拥有者和用户组应用到其他文件, RFILE为参考文件。
from=CURRENT_OWNER[:CURRENT_GROUP] 仅在文件的当前所有者或用户组匹配指定的值时才更改文件的所有者和/或用户组。
--preserve-root 不允许在 “/” 上递归操作
-v, --verbose 显示详细的操作信息。

示例:

1
2
# 将file.txt文件所属用户修改为用户miniboy
chown miniboy file.txt

img

注:所修改的新用户,为存在的用户,否则会执行失败,提示无效用户。

--from=CURRENT_OWNER[:CURRENT_GROUP]参数使用举例:当匹配到对应的所有者/用户组时才进行修改

1
2
# 当file.txt的当前所有者是olduser,用户组是oldgroup时,才将其所有者更改为newuser,用户组更改为newgroup
chown --from=olduser:oldgroup newuser:newgroup file.txt

3.3、修改文件/文件夹所属群组

chgrp更改文件或文件夹所属用户组(group):

1
chgrp [选项] 用户组名 文件名/文件夹名

在[选项]参数方面与chown类似,常用参数如下:

参数 描述
-R, --recursive 递归地更改指定目录及其子目录中所有文件和目录的所属用户组。
--reference=RFILE 把指定文件的用户组应用到其他文件。
--preserve-root 不要跨越文件系统的边界,这对于递归操作非常重要。
-v, --verbose 显示详细的操作信息。
--dereference 在符号链接指向文件本身时,处理符号链接指向的文件而不是符号链接文件本身。

使用示例:

1
2
# 将file.txt文件的所属群组修改为newgroup
chgrp newgroup file.txt

chgrp部分修改也能够通过chown来实现,如修改拥有者和所属组:

1
2
chown :root file30.txt (修改所属组为root)
chown root:root file30.txt (修改拥有者和所属组为root)

注:只有超级用户(root)或者文件的当前所有者才能使用chgrp命令。

用javaweb实现用户登录界面

项目结构

img

dao:这个包下主要是一些关于数据库的操作
dao.DButils:数据库的创建和删除
dao.LoginDaolmp:数据库与用户的交互操作,包括检验用户登录的账号是否合法,当用户注册时将账号插入数据库。

Servlet:实现javaweb的前后端交互
UserRegister:用户注册,当注册新用户时会跳转到此,实现将新用户的账号密码插入数据库中。
UserServlet:用户登录,当用户登录账号时会跳转到此,实现对用户账号密码的合法性检验。

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

NewFile:登录页面
register:注册页面
welcome:登陆成功页面

初始数据库
这里我用的可视化工具是Navicat

img

前端页面设计

登录界面:

<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>

登录页面
用户:

密码:

这个页面有两个按钮,一个是提交按钮,点击后转入UserServlet执行,一个是注册按钮,点击后转到注册页面。

注册界面:

<%@ page language=”java” contentType=”text/html;charset=UTF-8”
pageEncoding=”UTF-8”%>

注册页面
用户名: 密码:

本页面只有一个注册按钮,点击后转入UserRegister执行。

登陆成功界面:

<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>

欢迎页面 <% if(session.getAttribute("check")!=null)

暑假规划

2024年7月1号—2024年9月1号

学习大纲

  1. Javaweb

  2. C语言数据结构与算法

  3. SMM框架

  4. Linux

  5. 下学期内容的预习

  6. 暑假工(保安)


本周学习日历

日历 学习内容 其他
7.1-7.2 Javaweb介绍,数据库概念,MySQL数据模型(简介、语法、分类) javaweb
7.3-7.4 DDL(操作数据库、操作表),navicat使用,DQL javaweb
7.5-7.6 约束,数据库设计,多表查询,事务-简介四大特征 javaweb
7.7-7.8 JDBC,Maven javaweb
7.9-7.10 Mybatis,HTML,CSS javaweb
7.11-7.12 HTTP,Request与Response javaweb
7.13-7.14 JSP,会话跟踪技术,Filter javaweb
7.15-7.16 AJAX,Vue javaweb
7.17-7.18 案例分析 javaweb
7.19-7.20 数据结构基础理论知识 C语言数据结构及算法
7.21-7.22 动态数组 C语言数据结构及算法
7.23-7.24 单向链表,链表 C语言数据结构及算法
7.25-7.26 栈的知识 C语言数据结构及算法
7.27-7.28 中缀、后缀表达式,队列 C语言数据结构及算法
7.29-7.31 二叉树 C语言数据结构及算法
7.31-8.1 Spring(简介、配置文件、API1、API2) SMM框架
8.2-8.3 Spring(配置数据源、注解开发、集成Junit) SMM框架
8.4-8.5 Spring集成web环境 SMM框架
8.6-8.7 SpringMVC(组件、数据响应、请求) SMM框架
8.8-8.9 Jdbc Template基础使用,Spring练习 SMM框架
8.10-8.11 SpringMVC(拦截、异常处理) SMM框架
8.12-8.13 aop,Spring的事务控制 SMM框架
8.14-8.15 mybatis,ssm SMM框架
8.16-8.17 Linux介绍,安装,比较,使用 Linux
8.18-8.19 Linux远程登陆,上传下载文件,vi与vim的使用,关机重启注销 Linux
8.20-8.21 Linux用户管理,实用指令 Linux
8.22-8.23 Linux权限管理,任务调度 Linux
8.24-8.25 Linux分区,网络配置,IP修改与获取 Linux
8.26-8.27 Linux进程管理,RMP包管理,YUM Linux
8.28-8.29 JDK、MySQL、Tomcat、Eclipse安装 Linux
8.30-8.31 Shell与Ubuntu Linux
9.1 返校 返校

预习能让我在新学期更快学完必修知识,从而有时间在大二参加比赛和学习新知识

网课期间的内容我也会适当做笔记

最后愿我在挣钱的同时学到知识,过一个充实的暑假

5月27号-6月2号周报

2024年5月27日-2024年6月2日

CodeWave组学习周报

本周学习大纲

  1. 四级复习
  2. 期末复习

本周学习日历

日历 学习内容 其他
星期一 C语言学习
星期二 Web前端学习
星期三 高数学习
星期四 C语言学习
星期五 做英语四级卷子
星期六 学习离散数学,物理
星期天 刷英语四级题,学高数

本周学习内容 及 收获

C语言

学完指针,开始复习

Web前端

学完盒子模型,布置最后的大作业

下周学习大纲

  1. 四级复习
  2. 期末复习

5月27号-6月2号周报

2024年5月27日-2024年6月2日

CodeWave组学习周报

本周学习大纲

  1. Web前端
  2. C语言

本周学习日历

日历 学习内容 其他
星期一 C语言学习
星期二 Web前端学习
星期三 高数学习
星期四 C语言学习
星期五 做英语四级卷子
星期六 高数补习
星期天 高数补习

本周学习内容 及 收获

C语言

这周开始学习指针,难,太难了,只学了皮毛

Web前端

没上课,自己学习超链接和添加列表

下周学习大纲

  1. 四级复习
  2. 期末复习

5月20号-5月26号周报

2024年5月20日-2024年5月26日

CodeWave组学习周报

本周学习大纲

  1. Web前端
  2. C语言

本周学习日历

日历 学习内容 其他
星期一 C语言学习
星期二 Web前端学习
星期三 高数学习
星期四 C语言学习
星期五 英语四级复习
星期六 英语四级作业
星期天 Web前端添加列表学习

本周学习内容 及 收获

C语言

这周开始学习指针,难,太难了,只学了皮毛

Web前端

这周课上学习了盒子模型,课下已经学到了添加列表和超链接

下周学习大纲

  1. Web前端
  2. C语言

鸡兔同笼问题

概述:本次分享的是解决鸡兔同笼问题,对于这种基础的问题,但我打算分别用Java,c语言,python来解决

问题:输入鸡和兔的总数和总腿数,来计算兔子和鸡的各个数量。

一、Java

import java.util.Scanner;
/**

*已知鸡和兔的总数量为n,总腿数为m。

*输入n和m,依次输出鸡和兔的数目,

*如果无解,则输出“No answer”
*/
public class blogs1 {
public static void main(String[] args) {
System.out.println(“输入鸡和兔的总数”);
Scanner scanner1 = new Scanner(System.in);
double n = scanner1.nextDouble();
System.out.println(“输入总腿数”);
Scanner scanner2 = new Scanner(System.in);
double m = scanner2.nextDouble();
输入鸡和兔的总数量和总腿数

double a = (m - (2 * n))/ 2;
if(a % 1 == 0){
System.out.println(“兔子数量为:” + (int)a + “;” +”鸡的数量为:” + (int)(n-a));
}else {
System.out.println(“No answer”);
}
}
}

二、python

nHead = int(input(“请输入鸡和兔的总只数:”))
nFoot = int(input(“请输入鸡和兔的总脚数:”))
nChicken = 0
nRabbit = 0
result = True
for i in range(nHead):
nChicken = i
nRabbit = nHead - i
if (2 * nChicken + 4*nRabbit == nFoot):
break
else:
result = False
if result:
print(“鸡有{}只,兔有{}只”.format(nChicken, nRabbit))
else:
print(“无解”)

三、C语言

#include <stdio.h>
int main()
{
int heads,feet,x,y;
//定义x为鸡的数量,y为兔子的数量
scanf(“%d%d”,&heads,&feet);
x=(4*heads-feet)/2;
//计算出鸡的数量
y=heads-x;
//计算出兔子的数量
printf(“%d %d”,x,y);
return 0;
}

针对鸡兔同笼问题,我们可以用举例的方法解决,也可以用方程来解决鸡兔同笼

#内容简单,但基础,有用,易理解

5月13号-5月19号周报

2024年5月13日-2024年5月19日

CodeWave组学习周报

本周学习大纲

  1. Web前端
  2. C语言

本周学习日历

日历 学习内容 其他
星期一 C语言学习
星期二 Web前端学习
星期三 高数学习
星期四 C语言学习
星期五 英语四级复习
星期六 休息 出去吃喝玩乐
星期天 Web前端作业

本周学习内容 及 收获

C语言

这周学习的函数,掌握了定义函数的规范与步骤,并完成了函数内容的作业

Web前端

这周主要完成了用CSS技术美化网页的作业,成功结束了本章 学习

下周学习大纲

  1. Web前端
  2. C语言

5月6号-5月12号周报

2024年5月6日-2024年5月12日

CodeWave组学习周报

本周学习大纲

  1. Web前端
  2. C语言
  3. python

本周学习日历

日历 学习内容 其他
星期一 C语言学习
星期二 Web前端学习
星期三 python复习
星期四 C语言学习
星期五 python复习
星期六 五一补课
星期天 休息 节日休息一下

本周学习内容 及 收获

C语言

本周学完了第七章,利用函数程序化设计,发现C语言明显在这块内容上比python难

python

复习了python的函数内容并与C语言进行对比

Web前端

本周结束了第三章学习,并掌握了CSS技术美化网页

下周学习大纲

  1. Web前端
  2. C语言