导航:首页 > 操作系统 > ch340linux

ch340linux

发布时间:2023-01-02 07:40:46

⑴ Mixly编程可不可以在平板上

应该是不可以的,这个就是编程是电脑上的东西的,所以你基本上就是不太可能出现在平板上的这个样子的。所以你这个应该是不可以的。下面是关于平板的补充。

iPad
苹果iPad是由英国出生的设计主管乔纳森·伊夫(Jonathan Ive,或译为乔纳森·艾维)领导的团队设计的,这个圆滑、超薄的产品反映出了伊夫对德国天才设计师Dieter Rams的崇敬之情。
iPad是由苹果公司于2010年开始发布的平板电脑系列,定位介于苹果的智能手机iPhone和笔记本电脑产品之间,(屏幕中有4个虚拟程序固定栏)与iPhone布局一样,提供浏览网站、收发电子邮件、观看电子书、播放音频或视频、玩游戏等功能。
由于采用ARM架构,不能兼容普通PC台式机和笔记本的程序,可以通过安装由Apple提供的iWork套件进行办公,可以通过iPadOS第三方软件预览和编辑Office和PDF文件。
苹果平板电脑iPad,分为WLAN和WLAN+Cellular两个版本,新旧共有16GB、32GB、64GB、128GB、256GB、512GB和1TB,7种容量。
从外观上看,iPad就是一个大号的iPhone或者iPod Touch,运行的是iOS(2019年起改为iPad OS)的操作系统,并采用主频为1GHz+的苹果处理器,支持多点触控,内置了地图、日历、视频、itunes store等应用,同时还可以运行所有App Store64位的程序,但是不能打电话。
2019年9月11日,在2019苹果秋季新品发布会上,苹果正式推出第七代iPad,这款iPad产品屏幕提升至10.2英寸,并搭载A10 Fusion芯片。[1]
2020年9月16日,第 8 代 iPad 开启预售,9 月 20 日正式发售。

linux命令

命令格式: 命令 [-选项] [参数]

如:ls -la /usr

**说明: **

大部分命令遵从该格式

多个选项时,可以一起写 eg:ls –l –a à ls –la

简化选项与完整选项(注:并非所有选项都可使用完整选项) eg:ls –all à ls –a

作用:切换用户身份

语法:su [选项] 用户名

-c 仅执行一次命令,而不切换用户身份

$ su – root

env

$ su – root –c “useradd longjing”

文件或目录的CRUD

英文:change directory 命令路径:内部命令 执行权限:所有用户

作用: 切换目录

语法:cd [目录] / 切换到根目录

.. 回到上一级目录

. 当前目录

~ 当前用户的宿主目录(eg:# cd ~用户名 进入某个用户的家目录)

英文:list 命令路径:/bin/ls 执行权限:所有用户

作用:显示目录文件

语法:ls [-alrRd] [文件或目录]

-a all 显示所有文件,注意隐藏文件,特殊目录.和..

-l(long) 显示详细信息

-R(recursive) 递归显示当前目录下所有目录

-r (reverse) 逆序排序

-t(time) 按修改时间排序(降序)

英文:print working directory 命令路径:/bin/pwd 执行权限:所有用户

作用:显示当前工作目录

语法:pwd [-LP]

-L 显示链接路径,当前路径,默认

-P 物理路径

eg:# cd /etc/init.d

英文:make directories 命令路径:/bin/mkdir 执行权限:所有用户

作用:创建新目录

语法:mkdir [-p] 目录名

-p 父目录不存在情况下先生成父目录 (parents)

eg: mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录。

命令路径:/bin/touch 执行权限:所有用户

作用:创建空文件或更新已存在文件的时间

语法:touch 文件名

eg:touch a.txt b.txt touch {a.txt,b.txt} 同时创建多个文件

创建带空格的文件 eg:touch "program files" 在查询和删除时也必须带双引号

注意:生产环境中,文件名,一定不要加空格

英文: 命令路径:/bin/cp 执行权限:所有用户

作用:复制文件或目录

语法:cp [–rp] 源文件或目录 目的目录

-r -R recursive 递归处理,复制目录

-p 保留文件属性 (原文件的时间不变)

eg:

1,相对路径 cp –R /etc/* . cp –R ../aaa ../../test/

2,,绝对路径 cp –R / ect/service /root/test/aa/bb

英文:move 命令路径:/bin/mv 执行权限:所有用户

作用:移动文件或目录、文件或目录改名

语法:mv 源文件或目录 目的目录

英文:remove 命令路径:/bin/rm 执行权限:所有用户

作用:删除文件

语法: rm [-rf] 文件或目录

-r (recursive)删除目录,同时删除该目录下的所有文件

-f(force) 强制删除文件或目录 即使原档案属性设为唯读,亦直接删除,无需逐一确认

注意:工作中,谨慎使用rm –rf 命令。

扩展点 :删除乱码文件

一些文件乱码后使用rm -rf 依然无法删除

此时,使用ll -i 查找到文件的inode节点

然后使用find . -inum 查找到的inode编号 -exec rm {} -rf ;

就能顺利删除了

英文:concatenate 命令路径:/bin/cat 执行权限:所有用户

作用:显示文件内容

语法:cat [-n] [文件名]

-n 显示行号

eg:cat /etc/services

命令路径:/bin/more 执行权限:所有用户

作用:分页显示文件内容

语法:more [文件名]

空格或f 显示下一页

Enter键 显示下一行

q或Q 退出

命令路径:/usr/bin/head 执行权限:所有用户

作用:查看文件前几行(默认10行)

语法:head [文件名]

-n 指定行数

eg:head -20 /etc/services head –n 3 /etc/services

命令路径:/usr/bin/tail 执行权限:所有用户

作用:查看文件的后几行

语法:tail [文件名]

-n 指定行数

-f (follow) 动态显示文件内容

获取一个大文件的部分文件,可使用head或tail命令

head -n 100 /etc/services >config.log

英文: link 命令路径:/bin/ln 执行权限:所有用户

作用:产生链接文件

语法:

ln -s [源文件] [目标文件] 创建软链接 源文件 使用 绝对路径

ln [源文件] [目标文件] 创建硬链接

eg:ln -s /etc/service ./service.soft

创建文件/etc/service的软链接service.soft

eg:/etc/service /service.hard

创建文件/etc/service的硬链接/service.hard

软连接类似于windows下的快捷方式

软连接文件格式:

lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services

1 硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接。

13链接文件的长度

格式解析(特征):

1, 软连接的文件类型是 l(软连接),软连接文件的权限 都是 lrwxrwxrwx

2,-> 箭头指向到源文件

真正的权限取决于对源文件的权限

时间值为创建软连接的时间

软连接可以跨文件系统生成

硬链接特征

1,相当于 cp -p +同步更新

2,通过i节点识别,与源文件有相同的inode节点

3,硬链接不能跨分区,ln /home/test/issuels /boot/test (错误)

4,不能针对目录使用 ln /tmp/ aa.hard (无法将目录/tmp 生成硬链接)

删除软连接

rm -rf symbolic_name

英文:manual 命令路径:/usr/bin/man 执行权限:所有用户

作用:获取命令或配置文件的帮助信息

语法:man [命令/配置文件]

eg:man ls man services

(查看配置文件时,不需要配置文件的绝对路径,只需要文件名即可)

调用的是more命令来浏览帮助文档,按空格翻下一页,按回车翻下一行,按q退出。

使用/加上关键的参数可直接定位搜索, n 查找下一个,shift+n 查找上一个

eg: /-l 直接查看-l的介绍

扩展:man的级别 (帮助文档的类型, 了解1 5即可)

man man-pages 查看每一种类型代表的含义 man文档的类型(1~9)

1是命令,5是配置文件 man优先显示命令,可指定帮助类型

eg:man 5 passwd (5代表配置文件级别)

[图片上传失败...(image-6718d2-1624438708895)]

help 查看shell内置命令的帮助信息

eg:help cd

内置命令,使用whereis,which,man都不能查看

type 命令 查看内部命令还是外部命令

命令名 --help 列举该命令的常用选项

eg: cp --help

命令路径:/bin/find 执行权限:所有用户

作用:查找文件或目录

语法:find [搜索路径] [匹配条件]

如果没有指定搜索路径,默认从当前目录查找

find命令选项

-name 按名称查找 精准查找

eg:find /etc -name “init” 在目录/etc中查找文件init

-iname 按名称查找

find查找中的字符匹配:

*:匹配所有

?:匹配单个字符

eg:find /etc -name “init???” 在目录/etc中查找以init开头的,且后面有三位的文件

模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用*。

eg: # find . –name *g

-size ****按文件大小查找

以block为单位,一个block是512B, 1K=2block +大于 -小于 不写是等于

eg:find /etc -size -204800 在etc目录下找出大于100MB的文件

100MB=102400KB=204800block

**-type ** 按文件类型查找

f 二进制文件l 软连接文件 d 目录 c 字符文件

eg: find /dev -type c

find****查找的基本原则

占用最少的系统资源,即查询范围最小,查询条件最精准

eg:

如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/

命令路径:/bin/grep 执行权限:所有用户

作用:在文件中搜寻字串匹配的行并输出

语法:grep [-cinv] '搜寻字符串' filename

选项与参数:

-c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)

-i :忽略大小写,所以大小写视为相同

-n :显示匹配行及行号

-v :反向选择,显示不包含匹配文本的所有行。

eg:grep ftp /etc/services

eg:#grep -v ^# /etc/inittab 去掉文件行首的#号

eg:# grep -n “init”/etc/inittab 显示在inittab文件中,init匹配行及行号

eg:# grep -c“init”/etc/inittab 显示在inittab文件中,init匹配了多少次

命令路径:/usr/bin/which 执行权限:所有用户

作用: 显示系统命令所在目录(绝对路径及别名)

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

alias ls='ls --color=auto'

/bin/ls

/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

命令路径:/usr/bin/whereis 执行权限:所有用户

作用:**搜索命令所在目录 配置文件所在目录 及帮助文档路径 **

eg: which passwd 和 whereis passwd

eg:查看/etc/passwd配置文件的帮助,就用 man 5 passwd

英文:GNU zip 命令路径:/bin/gzip 执行权限:所有用户

作用:压缩(解压)文件,压缩文件后缀为.gz

gzip只能压缩文件,不能压缩目录;不保留原文件

语法:gzip 文件

-d将压缩文件解压(decompress)

解压使用gzip –d或者 gunzip

命令路径:/usr/bin/bzip2 执行权限:所有用户

作用: 压缩(解压)文件,压缩文件后缀为.bz2

语法:bzip2 [-k] [文件]

-k:产生压缩文件后保留原文件(压缩比高)

-d 解压缩的参数(decompress)

解压使用bzip2 –d或者 bunzip2

命令路径:/usr/bin/zip 执行权限:所有用户

作用: 压缩(解压)文件,压缩文件后缀为.zip

语法:zip 选项[-r] [压缩后文件名称] [文件或目录]

-r压缩目录

eg:zip services.zip /etc/services 压缩文件;

zip -r test.zip /test 压缩目录

如果不加-r选项,压缩后的文件没有数据。

解压使用unzip

命令路径:/bin/tar 执行权限:所有用户

作用:文件、目录打(解)包

语法:tar [-zcf] 压缩后文件名 文件或目录

-c 建立一个压缩文件的参数指令(create),后缀是.tar

-x 解开一个压缩文件的参数指令(extract)

-z 以gzip命令压缩/解压缩

-j 以bzip2命令压缩/解压缩

-v 压缩的过程中显示文件(verbose)

-f file 指定文件名,必选项

1, 单独的打包 ,解包 tar –cf tar –xf

2, 打包之后,进行压缩 gzip bzip2

3, 一步到位 tar –zcvf tar -zxvf

tar -cf -xf 单独 压缩 解压缩

tar -z 以gzip打包目录并压缩 文件格式.tar.gz(.tgz)

tar -j 以bzip2打包目录并压缩 文件格式.tar.bz2

eg:tar -zcvf dir1.tar.gzdir1 使用gzip将目录dir1压缩成一个打包并压缩文件dir1.tar.gz

eg: tar -cvf bak.tar . 将当前目录的文件打包为bak.tar

eg: tar -xvf bak.tar 解压

eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip将打包文件bak.tar压缩为bak.tar.gz

eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2将打包文件bak.tar压缩为bak.tar.bz2

eg: tar -rvf bak.tar /etc/password 将/etc/password追加文件到bak.tar中(r)

eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的压缩文件

eg:tar -xjf test.tar.bz2 解压

最常用: tar + gzip

tar –zcvf 压缩

tar –zxvf 解压

补充:

1,文件路径, 压缩包带文件路径

2,源文件是保留的,不会被删除

**shutdown **[选项] 时间

选项: -c: 取消前一个关机命令

-h:关机

-r:重启

eg:

shutdown -h now 立即关机 shutdown -h 20:30 定时关机

其他关机命令 halt poweroff init 0

其他重启命令

**reboot **重启系统 reboot -h now立即重启

init 6

注意:生产环境中,关机命令和重启命令谨慎执行。

善于查看man help等帮助文档

利用好Tab键 自动补全

掌握好一些快捷键

ctrl + c(停止当前进程)

ctrl + z 挂起当前进程,放后台

ctrl + r(查看命令历史) history

ctrl + l(清屏,与clear命令作用相同)

方向箭头 上 下 可以查看执行过的命令

ctrl + a 行首 ctrl + e 行尾

ctrl + k 清除 ctrl+ w 清除单词

vim/vi是Unix / Linux上最常用的文本编辑器而且功能非常强大。

只有命令,没有菜单。

《大碗》编辑器版

周围的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什么插件呀、语法高亮呀、拼写检查呀,能给它开的都给它开着,就是一个字:酷!你说这么牛X的一东西,怎么着学会也得小半年吧。半年!?入门都远着呢!能学会移动光标就不错了,你还别说耗不起,就这还是左右移动!!!

:

[图片上传失败...(image-a08366-1624438708894)]

命令模式:又称一般模式

编辑模式:又称底行模式,命令行模式

|

命令

|

作用

|
|

a

|

在光标后附加文本

|
|

A(shift + a)

|

在本行行末附加文本 行尾

|
|

i

|

在光标前插入文本

|
|

I(shift+i)

|

在本行开始插入文本 行首

|
|

o

|

在光标下插入新行

|
|

O(shift+o)

|

在光标上插入新行

|

|

命令

|

作用

|
|

:set nu

|

设置行号

|
|

:set nonu

|

取消行号

|
|

gg

G

|

到第一行

到最后一行

|
|

nG

|

到第n行

|
|

:n

|

到第n行

|

|

命令

|

作用

|
|

:w

|

保存修改

|
|

:w new_filename

|

另存为指定文件

|
|

:w >> a.txt

|

内容追加到a.txt文件中 文件需存在

|
|

:wq

|

保存修改并退出

|
|

shift+zz(ZZ)

|

快捷键,保存修改并退出

|
|

:q!

|

不保存修改退出

|
|

:wq!

|

保存修改并退出(文件所有者可忽略文件的只读属性)

|

不保存并退出:

1, 有修改,但是修改后的内容是不保存的

2, 有突发情况,导致窗口退出。修改文件之后,直接删除同名的.swp文件

|

命令

|

作用

|
|

x

|

删除光标所在处字符 nx 删除光标所在处后n个字符

|
|

dd

|

删除光标所在行,ndd删除n行

|
|

:n1,n2d

|

删除指定范围的行(eg :1,3d 删除了123这三行)

|
|

dG

|

删除光标所在行到末尾的内容

|
|

D

|

删除从光标所在处到行尾

|

|

命令

|

作用

|
|

yy、Y

|

复制当前行

|
|

nyy、nY

|

复制当前行以下n行

|
|

dd

|

剪切当前行

|
|

ndd

|

剪切当前行以下n行

|
|

p、P

|

粘贴在当前光标所在行下 或行上

|

|

命令

|

作用

|
|

r

|

取代光标所在处字符

|
|

R(shift + r)

|

从光标所在处开始替换字符,按Esc结束

|
|

u

|

undo,取消上一步操作

|
|

ctrl+r

|

redo,返回到undo之前

|

|

命令

|

作用

|
|

/string

|

向后搜索指定字符串 搜索时忽略大小写 :set ic

|
|

?string

|

向前搜索指定字符串

|
|

n

|

搜索字符串的下一个出现位置,与搜索顺序相同

|
|

N(Shift + n)

|

搜索字符串的上一个出现位置,与搜索顺序相反

|
|

:%s/old/new/g

|

全文替换指定字符串

|
|

:n1,n2s/old/new/g

|

在一定范围内替换指定字符串

|

% 指全文,s 指开始,g 指全局替换

eg: :41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换

eg: :41,44/yang/lee/g 同上,不询问,直接替换

使用替换命令来添加删除注释

:% s/^/#/g 来在全部内容的行首添加 # 号注释

:1,10 s/^/#/g 在1~10 行首添加 # 号注释

vi里面怎么查命令??

:!which cp

vi里面怎么导入命令的结果?

:r !which cp

v 可视字符模式

V****(shift+v) 可视行模式,选择多行操作

**ctrl+v **可视块模式(列模式),操作列

I或者O进入插入模式。

1,图形化界面

2,setup 命令虚拟界面

3,修改配置文件(以网络方式为NAT示例)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.2.129

NETMASK=255.255.255.0

GATEWAY=192.168.2. 2 #网段2任意,IP地址2固定,网段为vmnet8的设置的IP网段

DNS1=114.114.114.114

DNS2=8.8.8.8

重启网络生效:

service network restart

命令路径:/bin/ping 执行权限:所有用户

作用:测试网络的连通性

语法:ping 选项 IP地址

-c 指定发送次数

ping 命令使用的是icmp协议,不占用端口

eg: # ping -c 3 127.0.0.1

英文:interface configure 命令路径:/sbin/ifconfig 执行权限:root

作用:查看和设置网卡网络配置

语法:ifconfig [-a] [网卡设备标识]

-a:显示所有网卡信息

ifconfig [网卡设备标识] IP地址 修改ip地址

英文:network statistics 命令路径:/bin/netstat 执行权限:所有用户

作用:主要用于检测主机的网络配置和状况

-a all显示所有连接和监听端口

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 使用数字方式显示地址和端口号

-l (listening) 显示监控中的服务器的socket

eg:# netstat -tlnu 查看本机监听的端口

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

协议 待收数据包 待发送数据包 本地ip地址:端口 远程IP地址:端口

netstat –antpl

临时生效:

hostname 主机名

[图片上传失败...(image-ceed36-1624438708893)]

永久生效:修改配置文件

vi /etc/sysconfig/network

[图片上传失败...(image-2b9d9e-1624438708893)]

修改主机名和ip地址之间的映射关系

vi /etc/hosts

192.168.2.120 node-1.e.cn node-1

可配置别名

[图片上传失败...(image-ec86cf-1624438708893)]

进程和程序的区别:

1、程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

2、程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。

进程和线程的区别:

进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程耗费的cpu和内存要小于进程。

进程管理的作用?

判断服务器的健康状态

查看系统所有的进程

杀死进程

作用:查看系统中的进程信息

语法:ps [-auxle]

常用选项

查看系统中所有进程

ps应用实例 # ps -u or ps -l 查看隶属于自己进程详细信息

作用: 查看当前进程树

语法:pstree [选项]

-p 显示进程PID

-u 显示进程的所属用户

作用:查看系统健康状态

显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。

语法:top [选项]

-d 秒数,指定几秒刷新一次,默认3秒(动态显示)

作用:关闭进程

语法:kill [-选项] pId

kill -9 进程号(强行关闭) 常用

kill -1 进程号(重启进程)

添加用户

语法:useradd [选项] 用户名

修改密码命令

语法:passwd [选项] [用户名]

用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,要定期更换密码。

ys^h_L9t

删除用户

-r 删除账号时同时删除宿主目录(remove)

作用:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。看剩余空间

语法:df [-hkam] [挂载点]

-h(human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB等 -k 以KB 为单位显示各分区的信息,默认

-M 以MB为单位显示信息 -a 显示所有分区包括大小为0 的分区

作用:用于查看文件或目录的大小(磁盘使用空间)

语法: [-abhs] [文件名目录]

-a 显示子文件的大小

-h以易读的方式显示 KB,MB,GB等

-s summarize 统计总占有量

eg:
-a(all) /home 显示/home 目录下每个子文件的大小,默认单位为kb

-b /home 以bytes为单位显示/home 目录下各个子目录的大小

-h /home 以K,M,G为单位显示/home 文件夹下各个子目录的大小

-sh /home 以常用单位(K,M,G)为单位显示/home 目录的总大小 -s summarize

df命令和命令的区别:

df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。

命令面向文件,只计算文件或目录占用的空间。

作用:查看内存及交换空间使用状态

语法: free [-kmg]

选项:

-k: 以KB为单位显示,默认就是以KB为单位显示

-m: 以MB为单位显示

-g: 以GB为单位显示

清理缓存命令:

echo 1 > /proc/sys/vm/drop_caches

⑶ 如何用linux查看服务器器的端口

在Linux中查找服务的端口

方法1:使用grep命令

要使用grep命令在Linux中查找指定服务的默认端口号,只需运行:

$grep<port>/etc/services

例如,要查找SSH服务的默认端口,只需运行:

$grep ssh/etc/services

就这么简单。此命令应该适用于大多数Linux发行版。以下是我的Arch Linux测试机中的示例输出:

ssh 22/tcp

ssh 22/udp

ssh 22/sctp

sshell 614/tcp

sshell 614/udp

netconf-ssh 830/tcp

netconf-ssh 830/udp

sdo-ssh 3897/tcp

sdo-ssh 3897/udp

netconf-ch-ssh 4334/tcp

snmpssh 5161/tcp

snmpssh-trap 5162/tcp

tl1-ssh 6252/tcp

tl1-ssh 6252/udp

ssh-mgmt 17235/tcp

ssh-mgmt 17235/udp

正如你在上面的输出中所看到的,SSH服务的默认端口号是22。

让我们找到Apache Web服务器的端口号。为此,命令是:

$grep http/etc/services

#http://www.iana.org/assignments/port-numbers

http 80/tcp www www-http#WorldWideWeb HTTP

http 80/udp www www-http#HyperText Transfer Protocol

http 80/sctp#HyperText Transfer Protocol

https 443/tcp#http protocol over TLS/SSL

https 443/udp#http protocol over TLS/SSL

https 443/sctp#http protocol over TLS/SSL

gss-http 488/tcp

gss-http 488/udp

webcache 8080/tcp http-alt#WWW caching service

webcache 8080/udp http-alt#WWW caching service

[...]

FTP端口号是什么?这很简单!

$grep ftp/etc/services

ftp-data 20/tcp

ftp-data 20/udp

#21 is registered to ftp,but also used by fsp

ftp 21/tcp

ftp 21/udp fsp fspd

tftp 69/tcp

[...]

方法2:使用getent命令

如你所见,上面的命令显示指定搜索词“ssh”、“http”和“ftp”的所有端口名称和数字。这意味着,你将获得与给定搜索词匹配的所有端口名称的相当长的输出。

但是,你可以使用getent命令精确输出结果,如下所示:

$getent services ssh

ssh 22/tcp

$getent services http

http 80/tcp www www-http

$getent services ftp

ftp 21/tcp

如果你不知道端口名称,但是知道端口号,那么你只需将端口名称替换为数字:

$getent services 80

http 80/tcp

要显示所有端口名称和端口号,只需运行:

$getent services

⑷ Mixly编程可不可以在平板上

随着国内创客大赛如火如荼的进行,很多使用Mixly图形化编程工具的朋友会问Mixly能否在手机上运行?答案是不行。

那Mixly既然不能在手机上运行,那都可以在哪些平台安装使用呢?

目前来看:Mixly是支持在三大PC主流平台Windows、Mac、Linux安装使用的。

Mixly是基于谷歌的开源图形化编程引擎Blockly进行开发的,所以Mixly本身也是在Github上开源的(在github上搜“Mixly”,出现的第一条结果“Mixly_Arino”),其目录结构如图1所示。我们可以先进行Mixly下载(网络搜"Mixly")或者在Github上下载最新的版本。

上图1 Github上Mixly开源项目的目录结构Windows平台安装安装jdk8。由于Mixly是基于java开发的,所以需要提前安装jdk8(网络搜jdk8)。注意:必须是jdk8及以上版本,因为低版本不支持javafx。解压Mixly软件包,点击Mixly.exe,就可以启动Mixly了。如果能打开上图2界面,说明Mixly能使用了。

这里需要注意: 安装Arino对应的串口驱动,如本教程使用的Arino Nano[atmega328]需要安装ch340驱动(网络搜ch340下载),若串口显示,则说明安装成功。注意:Win7、Win8、Win10支持最新的0.998版本及以下版本,而XP系统只支持使用0.995版本及以下版本。

Mixly启动后的界面Mac平台 && Linux平台 安装

1、安装jdk8。由于Mixly是基于Java开发的,所以需要提前安装jdk8(网络搜jdk8)。

注意:必须是jdk8及以上版本,因为低版本不支持javafx。解压Mixly软件包,点击Mixly.jar,就可以启动Mixly了。Mixly.jar文件的目录在下图所示。安装Arino对应的串口驱动,如本教程使用的Arino Nano[atmega328]需要安装ch340驱动(网络搜ch340下载)。

注意: Mac版本支持最新的0.998版本及以下版本。

以上就是Mixly在PC三大平台的安装使用过程,是不是很简单易懂,对于没有编程基础的初学者,Mixly是一款非常易上手,功能强大,支持丰富的编程工具。

⑸ linux下怎么连校园网

如果你windows支持h3c,我知道一个校园网客户端版本h3cclient,可以在linux下上网,但不知道是否可以适合你们学校。只要那个文件,然后在终端里输入sudo ./h3cclient -r -u username/password etho 这个命令就可以行的。如果中意,可以Q我,我现在在学习ubuntu,用的那个文件,要的话,我可以传给你。大家可以一起交流。

⑹ Linux认证的概念

Linux认证的概念

RHCA(Red Hat Certified Architect),是RedHat公司在2004年推出的顶级认证,也是Linux界公认的操作系统最高级认证。下面是我整理的关于Linux认证的概念,欢迎大家参考!

Linux用户认证方法简介

当今IT环境中,任何计算机系统都要充分考虑设计、使用和运行过程中的安全性。所以在目前主流操作系统的各个环节当中都增加了很多安全方面的功能和特性,而在众多的安全特性和功能中有相当多的技术是确保用户鉴别和身份认证方面的安全性的。

所谓用户鉴别,就是用户向系统以一种安全的方式提交自己的身份证明,然后由系统确认用户的身份是否属实的过程。换句话说,用户鉴别是系统的门户,每个用户进入到系统之前都必须经过鉴别这一道关。 而所谓认证安全,简而言之就是计算机系统确认了用户是经过授权的合法用户之后才能允许访问。安全认证最常用的方式是比对用户输入和预存于数据库中的密码。

不过在用户进行身份鉴别和安全认证的过程中,肯定会涉及几个核心问题。例如:

如何真正实现正确鉴别用户的真实身份?

在鉴别用户合法身份之后,如何确定用户可以对哪些资源进行访问?

如何控制用户以何种方式来访问计算机资源?

如何对用户的安全访问随时随地按需调整?

上述这些问题都是在设计鉴别和认证程序过程中需要充分考虑和精心设计的。而在Linux类的操作系统中,这些问题的处理实际上有一套完整的流程和机制。

在Linux类的操作系统中,最初用户鉴别过程就像各种Unix操作系统一样:系统管理员为用户建立一个帐号并为其指定一个口令,用户用此指定的口令登录之后重新设置自己的口令,这样用户就具有了一个只有它自己知道的口令或者密码。一般情况下,用户的身份信息在Linux系统中存放在/etc/passwd文件当中,这实际上是一个拥有简单格式的数据库表,通过":"作为分隔符分隔出多个字段,其中包括用户的名称、用户ID、组ID、用户说明、主目录和登录使用的shell等相关信息。而用户口令经过加密处理后存放于/etc/shadow 文件中。也是一个格式类似的数据库表,除了用户名和经过加密之后的密码之外,还包括多个对密码有效期进行定义的字段,包括密码有效时间、密码报警时间等。

用户登录的时候,登录服务程序提示用户输入其用户名和口令,然后将口令加密并与/etc/shadow 文件中对应帐号的加密口令进行比较,如果口令相匹配,说明用户的身份属实并允许此用户访问系统。这种思想基于只有用户自己知道它的口令,所以输入的口令是正确的话,那么系统就认定它是所声称的那个人。

在Linux类操作系统中,定义用户信息和密码信息的字段和格式都需要符合标准的Linux Naming Service Switch定义,即NSS定义。因此用户信息只要保证满足NSS规范,就可以来源于本地passwd和shadow之外的其它信息数据库和认证源。所以在此基础上还派生出一些其它认证解决方案。例如NIS、LDAP等,都可作为存放用户信息的数据库,而存放用户口令或者鉴别用户身份的数据库,可以采用专用于网络环境的Kerberos以及智能卡鉴别系统等方式。

这一整套的鉴别和认证方案貌似无懈可击,但是将这种解决方案真正应用到操作系统中的话就会发现一些问题:

第一,在操作系统上所包含的认证不仅仅只涉及到系统登录和访问,在系统外围往往提供了众多的应用程序,相当多的应用程序在访问过程中是有认证需求的。那么是否需要针对每一个应用程序都得加入认证和鉴别的功能?如果要,那么无论从程序的开发和使用管理角度来讲,工作量都将成倍增加;如果不要,则系统级的用户鉴别和安全认证与应用程序没有任何关系,意味着不管用户是否需要登录系统,但是对应用程序的访问都将缺乏最基本的安全性。

第二,如果针对每一个应用程序都开发用户鉴别和认证的功能,那么一旦发现所用的.算法存在某些缺陷或想采用另一种鉴别和认证方法时,开发者或者用户都将不得不重写(修改或替换)应用程序,然后重新编译原程序。

所以,尤其是当实现鉴别功能的代码以通常方法作为应用程序一部分一起编译的时候,上述问题将十分突出。很明显,传统的身份鉴别和用户认证方式一旦整合到实际的操作系统中,在实用当中缺乏灵活性。

鉴于以上原因,Linux操作系统的开发者和设计人员开始寻找一种更佳的替代方案:一方面,将鉴别功能从应用中独立出来,单独进行模块化的设计,实现和维护;另一方面,为这些鉴别模块建立标准的应用程序接口即API,以便众多的应用程序能方便地使用它们提供的各种功能;同时,鉴别机制对上层用户(包括应用程序和最终用户)要求一定要是透明的,这样可以对使用者隐藏其中比较复杂的实现细节。

可插拔认证模块PAM的基本概念

事实上直到1995年的时候,SUN的研究人员才提出了一种满足以上需求的方案,这就是可插拔认证模块(Pluggable Authentication Mole--PAM)机制,并首次在其操作系统 Solaris 2.3上部分实现。

可插拔认证模块(PAM)机制采用模块化设计和插件功能,使用户可以轻易地在应用程序中插入新的认证模块或替换原先的组件,同时不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松。因为认证和鉴别机制与应用程序之间相对独立。所以应用程序可以通PAM API来方便地使用PAM提供的各种鉴别功能而不必了解太多的底层细节。此外PAM的易用性也较强,主要表现在它对上层屏蔽了鉴别和认证的具体细节,所以用户不必被迫学习各种各样的鉴别方式,也不必记住多个口令;又由于它实现了多鉴别认证机制的集成问题,所以单个程序可以轻易集成多种鉴别机制,如Kerberos和Diffie - Hellman等认证机制,但用户仍可以用同一个口令登录而且感觉不到采取了各种不同的鉴别方法。

在广大开发人员的努力下,各版本的UNIX系统陆续增加和提供了对PAM应用的支持。其中Linux-PAM是专门为Linux操作系统实现的,众多的Linux操作系统包括Caldera、Debian、Turbo、Red Hat、SuSE 及它们的后续版本都提供对PAM的支持。而FreeBSD从3.1版本也开始支持PAM。而且除了具体实现方法上多少有些不同外,各种版本Unix系统上PAM的框架是相同的。所以我们在这里介绍的Linux的PAM框架知识具有相当的普遍性,而且在下文介绍其框架过程中可以看到,我们并没有刻意区分Unix PAM与Linux PAM这两个技术术语。

PAM的分层体系结构

PAM 为了实现其插件功能和易用性,采取了分层设计思想。就是让各鉴别模块从应用程序中独立出来,然后通过PAM API作为两者联系的纽带,这样应用程序就可以根据需要灵活地在其中"插入"所需要的鉴别功能模块,从而真正实现了在认证和鉴别基础上的随需应变。实际上,这一思路也非常符合软件设计中的"高内聚,低耦合"这一重要思想。

PAM 的体系如下简图所示:

从上面的结构图可以看出,PAM 的API起着承上启下的作用,它是应用程序和认证鉴别模块之间联系的纽带和桥梁:当应用程序调用PAM API 时,应用接口层按照PAM配置文件的定义来加载相应的认证鉴别模块。然后把请求(即从应用程序那里得到的参数)传递给底层的认证鉴别模块,这时认证鉴别模块就可以根据要求执行具体的认证鉴别操作了。当认证鉴别模块执行完相应的操作后,再将结果返回给应用接口层,然后由接口层根据配置的具体情况将来自认证鉴别模块的应答返回给应用程序。

上面描述了PAM的各个组成部分以及整体的运作机理。下面将对PAM中的每一层分别加以介绍。

第一层:模块层。模块层处于整个PAM体系结构中的最底层,它向上为接口层提供用户认证鉴别等服务。也就是说所有具体的认证鉴别工作都是由该层的模块来完成的。对于应用程序,有些不但需要验证用户的口令,还可能要求验证用户的帐户是否已经过期。此外有些应用程序也许还会要求记录和更改当前所产生的会话类的相关信息或改变用户口令等。所以PAM在模块层除了提供鉴别模块外,同时也提供了支持帐户管理、会话管理以及口令管理功能的模块。当然,这四种模块并不是所有应用程序都必需的,而是根据需要灵活取舍。比如虽然login可能要求访问上述所有的四种模块,但是su可能仅仅需要使用到鉴别模块的功能即可。至于如何取舍则涉及到接口层的PAM API和配置文件,这部分内容将在后文中加以介绍。

第二层:应用接口层。应用接口层位于PAM结构的中间部分,它向上为应用程序屏蔽了用户鉴别等过程的具体细节,向下则调用模块层中的具体模块所提供的特定服务。由上图可以看出,它主要由PAM API和配置文件两部分组成,下面将逐一介绍。

PAM API可以分为两类:一类是用于调用下层特定模块的接口,这类接口与底层的模块相对应,包括:

鉴别类接口:pam_authenticate()用于鉴别用户身份,pam_setcred()用于修改用户的私密信息。

帐号类接口:pam_acct_mgmt()用于检查受鉴别的用户所持帐户是否有登录系统许可,以及该帐户是否已过期等。

会话类接口:包括用于会话管理和记帐的 pam_open_session()和 pam_close_session()函数。

口令类接口:包括用于修改用户口令的 pam_chauthtok()。

第二类接口通常并不与底层模块一一对应,它们的作用是对底层模块提供支持以及实现应用程序与模块之间的通信等。具体如下:

管理性接口: 每组 PAM 事务从 pam_start()开始,结束于 pam_end()函数。接口 pam_get_item()和 pam_set_item()用来读写与 PAM 事务有关的状态信息。同时,能够用 pam_str()输出 PAM 接口的出错信息。

应用程序与模块间的通讯接口:在应用程序初始化期间,某些诸如用户名之类的数据可以通过 pam_start()将其存放在PAM接口层中,以备将来底层模块使用。另外底层模块还可以使用 pam_putenv()向应用程序传递特定的环境变量,然后应用程序利用pam_getenv()和pam_getenvlist()读取这些变量。

用户与模块间的通讯接口:pam_start()函数可以通过会话式的回调函数,让底层模块通过它们读写模块相关的鉴别信息,比如以应用程序所规定的方式提示用户输入口令。

模块间通讯接口:尽管各模块是独立的,但是它们仍然能够通过pam_get_item()和pam_set_item()接口共享某些与鉴别会话有关的公用信息,诸如用户名、服务名、口令等。此外,这些API还可以用于在调用pam_start()之后,让应用程序修改状态信息。

读写模块状态信息的接口:接口pam_get_data()和pam_set_data()用以按照PAM句柄要求访问和更新特定模块的信息。此外,还可以在这些模块后附加一个清除数据函数,以便当调用 pam_end()时清除现场。

由于 PAM 模块随需加载,所以各模块始化任务在第一次调用时完成。如果某些模块的清除任务必须在鉴别会话结束时完成,则它们应该使用 pam_set_data()规定清除函数,这些执行清除任务的函数将在应用程序调用 pam_end()接口时被调用。

;

⑺ linux能够识别的程序代码是什么

1、读取文件全部内容
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
char ch;
FILE* fp;
unsigned long int count = 0;
char buf[1025] = {0};

// 这里要求我们在输入两个参数,第一个为 exe 路径,第二个为 文件名
// 如 file_test.exe test.txt
if (argc != 2)
{
printf("Usage: %s filename\n", argv[0]);
exit(EXIT_FAILURE);
}
if ((fp = fopen(argv[1], "r")) == NULL)
{
// 如果文件打开失败(通常是文件不存在),则结束程序
printf("Can't open %s\n", argv[1]);
exit(EXIT_FAILURE);
}
while ((ch = getc(fp)) != EOF && count < 1024)
{
// 显示文本内容并计数
buf[count] = ch;
count++;
}
fclose(fp);
printf("%s\n", buf);
printf("File %s has %lu characters\n", argv[1], count);

return 0;
}

2、cJSON解析字符串
编译选项要加 -lm

示例源串

{
"server": {
"nodes": [{
"ip": "10.76.76.190",
"port": 6379
}, {
"ip": "10.76.76.191",
"port": 6380
}, {
"ip": "10.76.76.192",
"port": 6381
}],
"password": "admin"
},
"isssl": true
}
登录后复制

示例代码(每一行记得判空,编译时加-lm选项)

#include <stdio.h>
#include "cJSON.h"
int main(){

char c[] = "{\"server\":{\"nodes\":[{\"ip\":\"10.76.76.190\",\"port\":6379},{\"ip\":\"10.76.76.191\",\"port\":6380},{\"ip\":\"10.76.76.192\",\"port\":6381}],\"password\":\"admin\"},\"isssl\":true}";

cJSON* root = cJSON_Parse(c);
cJSON* json_server = cJSON_GetObjectItem(root, "server");
cJSON* json_isssl = cJSON_GetObjectItem(root, "isssl");
cJSON* json_password = cJSON_GetObjectItem(json_server, "password");
cJSON* json_nodes = cJSON_GetObjectItem(json_server, "nodes");

int i = 0;
for (; i != cJSON_GetArraySize(json_nodes); ++i) {
cJSON* each = cJSON_GetArrayItem(json_nodes, i);
cJSON* json_ip = cJSON_GetObjectItem(each, "ip");
cJSON* json_port = cJSON_GetObjectItem(each, "port");
printf("ip %s\n", json_ip->valuestring);
printf("port %d\n", json_port->valueint);
}

printf("password %s\n", json_password->valuestring);
printf("is ssl %s\n", json_isssl->valueint ? "true":"false");
cJSON_Delete(root);
}

3、curl拿到回传的数据
编译选项要加 -lcurl

头部选项参考

https://curl.se/libcurl/c/curl_easy_setopt.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>

struct string {
char* ptr;
size_t len;
};

void init_string(struct string* s) {
s->len = 0;
s->ptr = malloc(s->len + 1);
if (s->ptr == NULL) {
fprintf(stderr, "malloc() failed\n");
exit(EXIT_FAILURE);
}
s->ptr[0] = '\0';
}

size_t writefunc(void* ptr, size_t size, size_t nmemb, struct string* s) {
size_t new_len = s->len + size * nmemb;
s->ptr = realloc(s->ptr, new_len + 1);
if (s->ptr == NULL) {
fprintf(stderr, "realloc() failed\n");
exit(EXIT_FAILURE);
}
memcpy(s->ptr + s->len, ptr, size * nmemb);
s->ptr[new_len] = '\0';
s->len = new_len;

return size * nmemb;
}

int main(void) {
CURL* curl;
CURLcode res;

curl = curl_easy_init();
if(curl) {
struct string s;
init_string(&s);

curl_easy_setopt(curl, CURLOPT_URL, "https://www..com");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "test");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writefunc);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &s);
res = curl_easy_perform(curl);

printf("打印数据:\n%s", s.ptr);
free(s.ptr);

/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}

4、获取随机数
#include <stdio.h>

int main(int argc, char* argv[]){

srand((int)time(0));

//打印 32位 test 随机数,并用16进制表示
int test2 = rand();
printf("%lx \n", test2);

// 打印 64位 test 随机数,并用16进制表示, 016代表不足16位的部分,补零,llx代表打印64位的16进制数
unsigned long long test = ((unsigned long long)rand() << 32) + rand();
printf("%016llx \n", test);

return 0;
}

5、定义按位的结构体
总结,按照位定义结构体,一定要都按照位定义,不然会出现意想不到的错误,而且一定要定义无符号的

#include <stdio.h>
#pragma pack (1)

struct test1 {

unsigned char cloud_id:3;
unsigned char vendor_id:4;
unsigned short machine_id;
unsigned long long current_time:41;

};

struct test2 {

unsigned char cloud_id:3;
unsigned char vendor_id:4;
unsigned short machine_id:16;
unsigned long long current_time:41;

};

int main(int argc, char* argv[]){

printf("test1 大小 : %d \n", sizeof(struct test1));
printf("test2 大小 : %d \n", sizeof(struct test2));

return 0;
}

6、按位打印01字节码
#include <stdio.h>
// 修改type后面的类型,可以查看各种数的字节码
#define type unsigned int

void print_bin(type num)
{
int len = sizeof(type);
int n = 8;
int i, j, k;
unsigned char *p = (unsigned char*)&num + len -1;

for (i = 0; i < len; i++) //处理len个字节
{
j = *(p - i); //取每个字节的首地址
for ( k = 7; k >= 0; k--) //处理每个字节的8个位
{
if (j & (1 << k))
printf("1");
else
printf("0");
}
printf(" ");
}
printf("\r\n");
}

int main(int argc, char* argv[]){

type a = 100;
print_bin(a);

return 0;
}
登录后复制

7、打印16进制字节码
#include<stdio.h>
typedef unsigned char uint8;
#define HEXDUMP_LINE_LENGTH 16
void hex_mp(uint8* data, int length)
{
uint8* p = data;
int i, line, offset = 0;

while (offset < length)
{
printf("%04x ", offset);

line = length - offset;

if (line > HEXDUMP_LINE_LENGTH)
line = HEXDUMP_LINE_LENGTH;

for (i = 0; i < line; i++)
printf("%02x ", p[i]);

for (; i < HEXDUMP_LINE_LENGTH; i++)
printf(" ");

for (i = 0; i < line; i++)
printf("%c", (p[i] >= 0x20 && p[i] < 0x7F) ? p[i] : '.');

printf("\n");

offset += line;
p += line;
}
}

8、打印字节码简易版
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main() {
unsigned char Buf[] = "123456";
unsigned int len = strlen(Buf);
char* Buf1 = (char*)malloc(len * 3 + 1);
int i = 0, k = 0;
for (; i < len * 3; i += 3, k++)
snprintf(&Buf1[i], 4, "%02x ", Buf[k]);
printf(Buf1);
free(Buf1);
}

9、逐级创建文件夹
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
int mkdir_recursively(char* dir) {
if (NULL == dir)
return 1;

size_t len = strlen(dir);
char* str = malloc(len + 1);

if (NULL == str)
return 1;

strcpy(str, dir);
int i = 0;
for (i = 0; i < len; i++) {
if (str[i] == '/') {
if (i == 0)
continue;
str[i] = '\0';
if (access(str, 0) != 0) {
if (mkdir(str, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) {
free(str);
return 1;
}
}
str[i] = '/';
}
}

if (len > 0 && access(str, 0) != 0) {
if (mkdir(str, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) {
free(str);
return 1;
}
}

free(str);
return 0;
}
int main() {
mkdir_recursively("/home/test/abc/edf")

⑻ Linux chmod +755和chmod +777 各是什么意思呢

代表可写可执行。

chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。一般是三个数字:第一个数字表示文件所有者的权限第二个数字表示与文件所有者同属一个用户组的其他用户的权限第三个数字表示其它用户组的权限。

权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。所以755代表rwxr-xr-x当前用户可读可执行。

777代表rwxr-rwx-rwx所有用户都可读可写可执行。

所以,chmod755设置用户的权限为:

1.文件所有者可读可写可执行

2.与文件所有者同属一个用户组的其他用户可读可执行

3.其它用户组可读可执行

chmod4755与chmod755的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。

(8)ch340linux扩展阅读

在linux终端先输入ls -l,可以看到如:

-rwx-r--r-- (一共10个参数) 表示文件所属组和用户的对应权限。

第一个跟参数属于管理员,跟chmod无关,先不管.

2-4参数:属于user

5-7参数:属于group

8-10参数:属于others

接下来就简单了:r==>可读 w==>可写 x==>可执行

r=4 w=2 x=1

所以755代表 rwxr-xr-x

777 代表 rwxr-rwx-rwx 所有用户都可读可写可执行。

⑼ linux中iptables防火墙怎么设置

首先你要知道你的linux系统的版本是属于哪个分发版的。当然如果你对自己的linux系统版本不知道的话也没关系。linux系统它的防火墙名为“iptables”如果你打开linux的话是黑色的话,那么你是处在终端阶段,这样如果需要打开你的防火墙的话,输入“ch...

⑽ linux和windows串口通信问题

你这个太专业了,暂时没有达人到来哦,可惜了100分

阅读全文

与ch340linux相关的资料

热点内容
xshell连接linux命令 浏览:5
把多个文件夹的内容合并在一起 浏览:481
基于单片机的浇花系统设计ppt 浏览:683
卷积码编译码及纠错性能验证实验 浏览:352
请在删除驱动器之前暂停加密什么意思 浏览:785
光催化pdf 浏览:98
java字符串包含某字符 浏览:526
ssm身份认证源码 浏览:466
预排序遍历树算法 浏览:671
加密装置如何打开ping功能 浏览:478
python下载372 浏览:901
u盘子文件夹隐藏 浏览:296
本地误删svn文件夹 浏览:685
海康威视python通道名 浏览:241
如何用app覆盖全部曲库 浏览:602
变异布林源码 浏览:686
表格加密设置打印区域 浏览:437
卡耐基pdf下载 浏览:924
现在最流行的单片机 浏览:89
机顶盒刷机源码 浏览:986