Linux复习_铁之ppt

第二章

用户和用户组
User Group Other三个权限
其中用户必须隶属于一个或多个组
权限
权限字符串的第一个字符类型表示文件类型
d 目录
- 文件
l 链接文件
b 一般是供储存的接口设备
c 面向字符的设备文件,例如键盘鼠标
file命令
确定文件的具体类型

改变,设置文件的权限命令
chmod
其中八进制表示后
**x表示1
w表示2
*wx表示3
r**表示4
r*x表示5
rw*表示6
rwx表示7

一些例子
chmod 774 a.txt
chmod 775 b.txt

权限的真正意义!(针对文件非目录来说)
r(read)可读取文件的实际内容,如读取文本文件的实际内容
w(write)可以编辑,新增或者修改文件的内容等(不含删除该文件)
x(execute)该文件具有被系统执行的权限
针对目录权限
r(read contents in dic)表示有读取目录的权限,既可以用ls命令来查询该目录下的文件信息
w()表示具有更改目录结构列表的权限
可以:
创建新的文件或目录
删除已经存在的文件与目录
将已经存在的目录进行重命名
转移该目录文件的位置或目录的位置
x(exe)表示是否可以进入该目录

Linux文件系统结构

  1. 是一个典型的单根,分层,树形结构
  2. 第一级目录称为根目录,用“/"来表示
  3. 字符.开头的文件为隐藏文件 默认不显示

目录说明

  • /bin 可执行的二进制文件

  • /boot 引导目录,引导系统所需要的文件

  • /dev 硬件设备文件

  • /etc 系统配置文件

  • /lib 系统运行的库文件

  • /media 和 /mnt 外部挂载设备

  • /opt 用户安装的大型应有软件

  • proc 系统实时信息文件

  • /sbin 超级管理员权限可执行的文件

  • /sys 系统底层信息文件

  • /tmp 临时文件目录

  • /user 用户安装的普通应有软件

  • /var 内容频繁变动的文件如日志文件

  • bin目录:
    bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

  • /usr/bin目录:
    主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

  • /sbin目录:
    主要放置一些系统管理的必备程序例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

  • /usr/sbin目录:
    放置一些网路管理的必备程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等

ls 命令的常用选项

  • a 列出所有的文件和信息 包括隐藏文件
  • d 列出制定目录的自身信息
  • f 列出
  • h 人性化的显示方式
  • l 长格式的显示内容
  • r 逆序
  • s 按文件大小排序
  • t 按修改时间排序

cd命令
用于切换目录
cd [相对路径或绝对路径]
. 代表当前目录
… 代表上层目录
- 代表前一个工作目录
~ 代表用户主目录
~ 用户名的主目录

pwd命令
pwd显示的是当前的路径

mkdir
mkdir -m
该命令不考虑默认权限(umask)
mkdir -m 774 a test

mkdir -p
该选项所需的目录递归创建
mkdir -p ls/cangls/4p

rmdir删除空目录
rmdir -p test/test1/test2同 mkdir

一些文件的常用命令

  1. ls

  2. cp、rm、mv

  3. cat、tac、nl、more、less、head、tail、od
    文件内容查看

  4. touch:修改文件时间或者创建新文件

cp命令
cp 源文件 目标文件
cp -a 相当于pdr的意思
cp -d 若文件是链接文件,则复制链接文件而不是文件本身
cp -i 目标文件已存在,则覆盖时会询问交互
cp -p 连同文件属性一起复制,而不是使用默认属性
cp-r 持续递归复制

rm删除文件
rm -f(强制删除,不出现警告信息)
-i (互动删除,删除会询问)
-r (递归删除)
+目标文件

od显示非纯文本文件内容
od [] 文件
od -t: 后面加a为默认字符
后面加c为ASCII
dox为十进制,八进制,十六进制
f 浮点数输出

文件的三个时间属性

  • atime:(access time)显示的是文件中的数据最后被访问的时间,比如系统

的进程直接使用或通过一些命令和脚本间接使用。(执行一些可执行文件或脚本)

  • mtime: (modify time)显示的是文件内容被修改的最后时间,比如用vi编辑

时就会被改变。(也就是Block的内容)

  • ctime: (change time)显示的是文件的权限、拥有者、所属的组、链接数发生改变

第三章

文件系统使用 磁盘管理

FHS
类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。

修改文件所有者属性
chown -r 文件名或目录名
chgrp

环境变量PATH
$表示环境变量 大写
$PATH变量保存可执行程序的路径,多个路径用:隔开。
shell会在PATH中从左向右依次搜寻对应的程序名

默认权限与特殊权限

umask
用于查看或设定新建文件和目录时的默认权限。
umask
默认情况下的umask值是022,
此时你建立的文件默认权限是644(6-0,6-2,6-2),
建立的目录的默认 权限是755(7-0,7-2,7-2)
如果umask是002
则文件的默认权限是664
目录的默认权限是775

特殊权限 SUID SGID SBIT
SUID & SGID
:s
仅对二进制文件有效、且仅在运行时有效;
执行者在拥有该程序的x权限的前提下,将拥有该程序所有者的权限。
SBIT目录特殊权限:t
SBIT用于设置目录的特殊权限,其作用是:当用户拥有某目录的写入权限时(同时具有w和x权限),在该目录下创建的文件只有该用户和root用户才能进行更名、移动、删除操作。
SUID为4
SGID为2
SBIT为1

磁盘和分区
Linux的所有设备都被抽象成文件 存储在/dev目录下

分区:将一个磁盘在逻辑上分为几个区,每个区当成独立的磁盘使用,达到方便数据和文件管理的目的。

主流技术:MBR和GPT
MBR
建立在BIOS技术上的传统分区机制

  • 支持32位和64位系统
  • 支持分区数量有限(最多4个主分区)
  • 寻址空间为32位,最大支持大小为2TB的硬盘

GPT
建立在uefi技术基础上的新分区机制,主要解决mbr的缺点

  • 必须使用64位系统,向后兼容MBR
  • 支持超过2TB大小的硬盘
  • 目前类Unix系统都支持GPT技术,Windows系统从Windows 7之后支持

文件系统
格式化:在磁盘分区上创建文件系统的过程被称为格式化。
常见的文件系统:
fat fat32 ntfs ext2-4 xfs hfs等
区别:性能,单文件大小 分区大小 日志

ext2文件系统引出的索引式文件系统

管理Linux文件系统

  1. fdisk进行磁盘管理
  2. 对分区指定一种文件系统
  3. 挂载文件系统

挂载mount
磁盘设置好文件系统后必须挂载到一个目录才可以使用

**RAID磁盘 **
一种将许多较小的磁盘整合成一个大磁盘的技术
整合后成为磁盘列阵
根据不同用途和采用不同的整合技术,有RAID-0、RAID-1、RAID 0+1/1+0、RAID 5等类型。

**

第四章

文件查找和搜索
命令查找which 【】 命令名
可以查出命令在变量路径的对应文件名
whereis 【】 文件或目录名

locate 【】关键字

文件搜索和查找
find命令:
find 【path】【option】【action】

option1:time
-atime内容被访问时时就会修改该时间
-ctime文件状态改变时就会修改该时间
-mtime文件内容更改时会修改
find /tmp -mtime +3(三天前被修改的文件)
find /tmp -mtime -3(三天内被修改的)

option2:用户或组
-uid -gid
-user -group

option3:-name

Linux的文件的压缩
tar归档 其余压缩

压缩
gzip、bzip2和xz是目前应用最广泛的三种压缩程序,压缩比和性能以此递进。
语法:
gzip 【 】 文件名
一些option:
-d 解压缩
-c显示详细压缩过程
-t 检验压缩文件一致性
-v显示压缩比等信息
-#(0-9)数字越小压缩比也低,压缩速度越快,默认6

gcat gmore gless用于查看文件内容

归档
tar,常和压缩程序结合使用

一些option:
-c建立打包文件
-t查看文件不解包
-x解包或解压缩
-ijJ 制定压缩程序为gzip gzip2 xz进行压缩或解压
-v 显示过程信息

shell

在这里插入图片描述

shell命令类型
分为内部命令和外部命令
内部:当前shell自身包含的命令 是整个shell代码的组成部分
外部:是shell外的一些可执行程序 通过调用shell命令来完成整个功能

自定义别名
alias/unalias用于设定/取消自定义别名
alias 别名 = ‘命令字符串’

第五章

test用于测试逻辑表达式
test -e /demo 判断文件是否存在
-f 判断是否为文件
-d 判断是否为目录
-r -w -x 判断是否具有可读 可写 可执行权限
-eq -ne 判断两个值是否相等
数据流重定向
把输出的内容输入到文件里而不是显示屏上
/dev/stdout 文件描述符:1 标准输出
文件描述符:2 标准错误输出
0 标准输入

输出:标准输出重定向: > 为覆盖
>>为追加
2>>为追加的错误输出
2> 为覆盖的错误输出

输入:
<:默认从键盘输入
<<:用于设定结束输入的关键字

管道符:
在这里插入图片描述
cut and grep
cut用于将同一行的数据进行切割和分解
-d 用什么字符切割“;” -f指定选取第几段
-c 以行内字符的位置取出某字符,如“5-10”
grep用于在多行数据中选择某些行
-c 对匹配关键字次数进行比较
-i 忽略大小写
-n 输入扶符合条件的行同时也将行号一起输出
-v 反向选择 输出不符合关键字的行
其中一个字符用。代替 *代替任意字符

其余管道命令
sort
对输出内容进行排序
wc
将当前一个命令输出的内容按指定方式进行统计
-l共有多少行
-w 统计共有多少字
-m 统计共有多少字符
uniq
在前一个命令输出的内容中去除重复项

vim
命令模式和插入模式
shell
执行的两种方式:
1直接命令执行 必须拥有文件的rx权限
路径正确

2以bash进程运行
只需拥有可读权限x

shell之接受到输入的变量
eg1:从终端接受用户输入到变量中:
read -p “please enter:" firstname
read -p “please enter:” lastname
echo -e $firstname $lastname

eg2: 从终端接受输入的文件名创建新文件:
read -p “enter fileName” inputname
filename = ${inputname}

file1 = f i l e n a m e {filename} filename{date1}
file2 = f i l e n a m e 2 {filename2} filename2{date2}
file3 = f i l e n a m e 3 {filename3} filename3{date3}

touch “$file1”

eg3:
read -p “first” firstnuber
read -p “last” lastnumber
total = ( ( (( ((first+$last))

eg4:
read -p “input” filename
test -z 文件是否有输入
test !-e 判断文件是否存在
test -f 判断是否为file
test -d 判断是否为dir
test -r -w -x

eg5:
脚本被执行时可以使用参数:
脚本名:$0
参数1 :$1
参数2:$2
参数总个数: $#
所有参数的字符串: $@

eg6:
if[表达式】;then
fi
if[表达式]; then
语句
else
语句
fi
需要注意的是:
if或elif后的条件必须用[],且表达式和中括号之间一定要有空格;
比较的表达式中用$取变量值之后要用双引号引起;
在linux的shell脚本中==和=含义是一样的

eg7:
testing = ( n e t s t a t − t u l n ∣ g r e p &quot; : 80 &quot; i f [ “ (netstat -tuln|grep &quot;:80&quot; if[ “ (netstattulngrep":80"if[testing" = “” ]; then
echo"yep"
fi

eg8:
case…esac(相当于switch)
case $变量名 in
“变量值”)
语句
;;
“变量值”)
语句
;;
*)
语句
;;
esac

eg9:
while【 条件表达式】
do
语句
done

eg10:
for 变量名 in value1 value2 value3
do
语句
done

function
function 函数名()
{
程序段
}
调用函数:函数名
函数的定义必须在脚本的最前面
函数可以传参数 直接在函数名后面列出来 以空格隔开 为局部变量
在函数中访问参数的方式:$1,$2…函数名为$0
eg1:
function fun()
{
sum = 0
for (i=1;i<= 1 ; i = i + 1 ) d o x = 1 f o r ( j = 1 ; j &lt; = 1;i = i+1) do x=1 for(j=1;j&lt;= 1;i=i+1)dox=1for(j=1;j<=i;j = j+1))
do
x= ( ( (x*$j)
done
sum = ( ( (( ((sum+$x))
done
}

sh命令
支持对脚本的语法检查和调试
-n 仅检查语法
-v 执行scrips之前先讲内容显示在屏幕上
-x 跟踪执行的过程

简单实例三则:
(1)
#!bin/sh
FILENAME =
read FILENAME
if [ -c “$Filename”]
then
cp $FILENAME /dev
fi

(2)
i=1
groupadd class1
while[ $i -le 30 ]
do
if [ i − l e 9 ] ; t h e n U S E R N A M E = s t u 0 i -le 9 ];then USERNAME = stu0 ile9];thenUSERNAME=stu0{i}
fi
useradd U S E R N A M E m k d i r / h o m e / USERNAME mkdir /home/ USERNAMEmkdir/home/USERNAME
chown -R U S E R N A M E / h o m e / USERNAME /home/ USERNAME/home/USERNAME
chgrp -R calss1 /home/$username
i = ( ( (( ((i+1))
done

(3)
i = 1
while [i -le 50 ]
do
if [ -d /userdata ];then
mkdir -p /userdata/user i c h o m d 754 / u s e r d a t a / u s e r i chomd 754 /userdata/user ichomd754/userdata/useri
echo"user$i"
i = ( ( (( ((i+1))
else
mkdir /userdata
mkdir -p .userdate

fi
done

第六章

用户账号的相关信息
/etc/passwd 账户信息
每一行代表一个账户
/etc/shadow 密码信息
/etc/group 组长号信息
/etc/gshadow 组管理和密码信息

head命令显示头信息
-n显示的是前n行
相关:
新建的用户默认属于同名的用户组,沉稳给初始用户组
一个用户可以隶属于多个用户组
初始用户组包含的用户不会在第四个字段列出
初始用户组和有效用户组:
有效用户组用来决定用户新建文件时的文件属性
groups能产看所属的用户组 第一个为有效用户组
newgrp用于修改用户的有效用户组

账号管理
useradd 在系统中新增一个用户账号 用户名
-u指定账号的uid
-g指定账号的初始用户组
-G指定账户的有效用户组
-s指定账户的shell
-r创建系统账户

密码管理
passwd 设定或修改密码及相关属性
-l|u:锁定和解锁密码
-n|x|w|i:密码的不可修改 必须修改 警告日期 失效日期
-S: 显示密码的相关参考值
–stdin 指定流输入

其他常用命令
id 查看用户的相关id信息
finger 产科用户的其他相关信息
usermod 修改用户的其他信息
userdel 删除用户
groupadd 新增组
groupmod 修改组信息

切换用户
su 用户名
只切换目录 不切换到新用户的环境

  • : 同时切换到新用户的环境
  • c:只执行-c选项后的命令时切换用户,执行完成后切换会原用户
    sudo 用户名 当前身份切换为另一用户执行而不登陆
    -u : -u用于指定想要指定切换的身份的用户名 省略默认为root

查询用户
w who last lastlog???

用户高级管理ACLAccess Control List
用于传统的UGO模型上提供更加细粒度的权限管理
可以针对单一用户 单一文件或目录进行rwx权限管理
需要文件系统的支撑

setfacl和getfacl
目标文件名
作用:给目标文件设定ACL特殊权限
-m 设定指定的参数权限
-x删除文件上的acl参数
-b删除所有的acl参数
-R 如果目标文件为目录,则递归设置
acl 参数三种 针对用户 组 和有效权限
磁盘管理Quota
???

第七章

计划任务
例行计划任务:按照设定的周期自动循环多次执行的工作
单次计划任务:按照设定的某一时间只执行一次的工作

常用场景
(1)日志轮替
(2)日志分析
(3)重建文件索引
(4)删除临时文件
Web分析

at与atd系统任务
at任务依赖于atd系统服务

at任务原理
都会在/var/spool/at/目录中有一个对应的文件 该文件保存at任务需要执行的脚本和对应时间,atd进程通过读取该文件完成at任务

为了控制at任务权限 在/etc目录下保存两个文件 分别为白名单用户文件/etc/at.allow和黑名单用户文件/etc/at.deny其中白名单的优先级高于黑名单文件 如果这两个文件均不存在 则只有root用于权限设置at任务。

at 【-mldv】Time
at -c 作业编号
设置at任务 执行命令后进入at命令模式 后ctrld退出该模式表示设置完成 第二种是查看已有的的at任务

-m at工作完成后email通知用户完成情况
-l 相当于atq命令,列出系统上所有的at任务
-d 相当于atrm 可以取消一个at任务
-v 用更详细的时间参数列出at任务的时间
-c 查看指定编号的at内容

cron任务计划性
cron and crond
cron任务依赖于crond的系统服务 该系统服务默认开启 且常驻内存
设置用户计划用crontab命令 结合/var/spool/cron目录和/etc/cron。allow、etc/cron。deny文件
设置系统计划任务则通过编辑/etc/crontab配置问价来完成

crontab 【】用户名
crontab会进入vi编辑模式 管理员给其他用户设定cron计划任务
-e:进入cron任务编辑
-l 查看已经设置好的任务计划
-r 删除计划任务
-u 给其他用户设置计划任务

系统通过百年祭/etc/crontab文本进行cron任务的设定
其他计划任务
batch:用于设置系统空闲时间执行的at任务且在后台运行
anacron 用于设置可悲唤醒的cron任务 因为有些任务可能因为关机而未被执行

进程管理
system exec fork
system
函数 创建一个新进程 即在一个程序的内部启动另一个程序
作用:运行以字符串参数的形式参数传递给它的命令并等待执行
exec
用于把当前进程替换成新进程 新进程有path或file参数指定
fork
可以启动一个新进程 其方法是复制当前进程
fork函数在进程表中创建一个新的表项 新表象的许多属性相同,执行代码也相同 但新进程有自己的数据空间环境和文件描述符
子进程pid = fork();调用返回的是0 如果失败返回1

可以用wait让父进程等待子进程结束后再结束

僵尸进程
子进程结束时 其与父进程关联继续 直到父进程也正常终止或父进程调用wait方法才结束

子进程的表项不会被立刻删除 因为退出码还要保存起来 以备父进程中的wait()使用
这样的进程成为死进程或僵尸进程

ps
某个时刻的进程情况
ps -l
ps -aux 列出所有的内存中的进程
在这里插入图片描述

Top
命令动态进程管理 实时进行进程状态活动

作业管理
前台执行:当shell中敲入命令后2shell进程将执行权交由所运行的命令程序 等命令程序执行完后再回到shell 这种称为命令或进程的前台执行
后台执行 当命令执行过程中 shell同时可以执行其他命令程序 这种执行方式成为后台执行 处于后台的叫作业

作业管理就是指一系列的命令操作在前后台的转换
&在命令后添加 就是在后台执行
使用fg和bg进行前后台转换
jobs显示所有作业
ctrlz为前台作业或进程挂起
ctrlc终止一个前台或作业
kill发送信号终止进程或作业

第八章

系统服务 守护进程
服务是通过内存的守护进程来实现的
守护进程一般以d结尾atd crond httpd
守护进程实现两种方式:init机制和systemd机制
init.d
大部分linux发行版和centos7以前的版本一直使用该守护进程管理和维护
systemd
centos7开始使用
守护进程被称为服务单元 unit按功能被分为多种不同类型 多个unit可以组合成一个服务组
所有守护进程全部并行处理 加速开机流程 同时自动完成多个守护进程的依赖性检查
使用systemctl管理服务
systemctl 命令 服务名
start 启动
stop 停止
restart 重启
reload 重加载配置文件
disable 设置开机不启动

日志功能
/var/log/cron记录任务crontab的相关信息
/message 记录系统发生错误或异常等重要信息
/httppd/* 记录web服务器相关信息
日志的配置文件
功能:规定哪些服务 什么等级 被记录在哪个文件下
保存:保存在/etc/日志服务。conf的配置文件中 /etc/rsyslog.conf

Linux引导
启动流程为:
BIOS硬件启动(EFI)
MBR
GRUB 操作系统引导程序
加载内核
init 第一个进程
runlevel 相关应有程序
grub
普遍的引导程序 保存在/boot/grub目录中 其主要的配置文件为/boot/grub/grub.conf

Linuxc 编译相关文件
头文件 /usr/include
标准库一般在/lib或usr/lib
库文件可以分为静态库和共享库
make工具
make工具 虽然内置了许多智能机制 但功能主要依赖于makefile文件的配置

make -k 在错误时依然持续进行
-n 让make命令输出将要执行的操作步骤,而不执行

linux软件安装
Linux的软件都是以源代码方式发布的
一般。tar。gz被称为软件包
两大主流的软件包管理
RPM
DPKG
rpm -ivh 软件包名
yum 一个基于rpm的前端软件包管理器
主要特点:从指定的服务器自动下载rpm并且安装
自动处理包依赖关系
引入仓库和容器的概念

**

第九章 服务器配置基础

OSI TCP/IP协议
在这里插入图片描述
网络接口层——广域网
使用的设备和协议
PPP传统电话拨号连接
ISDN整合服务数字网络
ADSL使用PPPOE方法 非对称数字用户环路

网络接口层——局域网
以太网网络传输协议:CSMA/CD

网络层——IP协议
IP地址
分类、子网、子网掩码
传输层——TCP协议
可靠性 ack 三次握手 滑动窗口 套接字

Linux防火墙与OSI
Linux防火墙可以在网络协议层进行拦截和控制

第二层 数据链路层,针对来源与目标的MAC进行控制
第三层 针对来源与目标的IP,以及ICMP的类别进行控制;
第三层 针对TCP/UDP的端口进行控制,也可以针对TCP的状态吗进行控制

网络配置基础———网卡
——配置文件
常用命令
ping
通过发送ICMP数据包要求目标回应确定目标是否在网络中
-c 制定ping的次数
-n 输出时直接输出IP地址,不反查主机名,效率较高
-s 制定发送icmp数据包的大小(发送的数据包最大64k 常成为被电脑攻击的存在 看路由,是否可达的数据包)
-t 指定TTl的数值 默认255(TTL的作用是限制IP数据包在计算机网络中的存在的时间)
-w 指定相应的秒数

traceroute
通过发送数据包进行路由跟踪
【】 IP
-n直接输出IP地址,不反查主机效率较高
-u使用UDP数据报文检测
-i使用icmp数据包进行检测
-t使用TCP数据报文进行检测
-w指定相应秒数
-p使用UDP或TCP时可以来指定端口

netstat
用于查看本金的网络状态相关信息
在这里插入图片描述
其他命令
dig
(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。它执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断,因为它灵活性好、易用、输出清晰。

第十章

SELinux 为解决Linux系统的权限管理缺陷导致的内部员工无用的问题
这一缺陷的核心问题是:权限管理主要针对用户和文件 而真正运行的却是进程
传统:DAC自主访问控制
SELinux:MAC委托访问和控制
对特定的进程和文件进行专门的权限控制

防火墙
是一种隔离系统内部和外部网络的过滤技术
分为硬件防火墙和软件防火墙
软件防火墙又分为包过滤防火墙和代理服务防火墙
包过滤防火墙采用数据包过滤技术 在网络层(ip层)依据预设的过滤规则对数据包进行选择
带来服务防火墙有也称为链路机网关 将所有的跨越防火墙和网络通信分为两段
中间代理服务器进行服务转发 从而实现过滤的目的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值