将一个文件按照升序排序:注意这里面的S是大写

按照文件大小按照降序排列:ll -hS

按照文件大小按照升序排列:ll -hrS

一:cp(copy)表示复制,类似于windows系统上面的复制文件到指定文件夹的操作时类似的,拿鼠标一拖到指定路径

1)同时也就是说这个文件最终当前路径在复制成功之后,产生了两份一样的文件,况且原来的文件也没有消失

使用方法:cp 路径1(里面包括文件名字) 路径2

2)在上面这个操作中,我们是将Java.txt这个文件是放到了具有相同父亲目录的aaa目录下面,此时我们在aaa目录下面就可以看到Java.txt这个文件里面

3)cp Java.txt / 比说这个操作就是说最终把Java.txt存放复制到根目录下面

4)cp 文件名1 文件名2

这个操作就是cp 文件名1 文件名2,就是把文件1在当前的Java目录里面拷贝了一份,重新起了一个别名,叫做JavaWEB.txt,此时这两个文件的父亲目录是相同的

二:mv操作就是将拷贝这个文件放到指定目录里面:

mv+路径1+路径2

这两个路径中的参数都是绝对路径或者是相对路径都是均是可以的,路径1里面是包含了文件具体的名字

drwxr-xr-x 2 root root 4096 Dec 28 10:30 aaa
drwxr-xr-x 2 root root 4096 Dec 28 10:22 bbb
-rw-r--r-- 1 root root    0 Dec 28 10:23 Java.txt
[root@iZ0jlj3x52ipcniwz9v5yrZ Java100]# mv Java.txt aaa
/上面的操作就是说把Java100目录下面的Java.txt这个文件放到aaa这个路径下面
[root@iZ0jlj3x52ipcniwz9v5yrZ Java100]# mv ./aaa/Java.txt ./
这个意思就是说将Java100目录中的aaa目录下面的Java.txt文件移动到当前Java100的路径下面
[root@iZ0jlj3x52ipcniwz9v5yrZ /]# mv ./Java100/Java.txt ./home
这个意思就是类似于说我们将根目录下面的Java100这个目录中的Java.txt文件存放到当前根目录下面的目录home目录里面

我们在上面的移动过程中不光移动了文件还移动了文件的内容

1)我们在这里面一定要注意mv直接就可以移动文件或者是移动目录,但是我们的cp操作只能直接拷贝文件,如果说想要拷贝目录,那么就必须直接加上-r参数,这个指令的意思是递归,递归拷贝的意思是,把目录里面的文件和子目录都进行拷贝

[root@iZ0jlj3x52ipcniwz9v5yrZ Java100]# cp -r ./aaa ./bbb
把Java100里面的目录aaa目录以及里面的文件都拷贝到了bbb目录下面

2)在我们的linux操作中,如果执行成功,一般没有提示,如果执行失败了,就会提示具体的错误信息

3)mv除了移动之外,还有一个功能,就是说可以给临时文件或者是目录进行重命名

mv+文件1的名字+文件2的名字

4)mv操作,本质上就是是说在修改文件的名字或者是路径,但是咱们的cp操作,本质上就是说要进行拷贝大量的文件及其数据,一个硬盘写的速度也就是说200MB/s

一:man查看命令的帮助手册:

man+指令,就可以进行查看具体的使用方法,按q来进行退出帮助手册的界面

二:head+文件名字:查看文件的开头前十行

head+文件名不进行任何指定的时候,只会显示10行,我们可以通过head+(-n)+行数+文件名,此时就可以显示指定的行数(-n不是负号)

三:tail+文件名字:查看文件的末尾

tail+文件名字在我们不进行任何指定的时候,只会显示文件的默认后10行,同时我们也可以通过tail+(-n)+行数+文件名,是进行显示指定的行数

上述三个命令,都是通过进行查看文件的,因为使用cat来进行查看文件是很不方便的,所以才有上面三个命令(我们按住q退出)

cat查看文件内容显示的就是一大堆,echo向里面写文件也是十分的不方便,所以说我们又诞生了以下命令:

一.less+文件名,内置了翻页功能:我们只需要按住键盘上面的方向键就可以了

1)在进行查看文件的时候会有翻页功能(使用方向键上下移动)

2)less命令是不能进行文件的编辑;按住q键就可以进行退出了;

3)less最大的优势在于,能够对大文件进行秒开,正常的一个编辑器(记事本),在进行打开文件的时候,就会把文件里面的内容都会读到内存里面,这就会涉及到大量的磁盘IO,如果文件很大,就会打开的很慢,甚至会打开失败,我们的less只是把当前屏幕显示的这一块给进行加载到内存里面,随着翻页,随着加载新的部分(懒加载),我们以后要是在服务器上面打开一个比较大的文件,使用less就是一个明智的选择,为所以说我们经常用它来进行查看服务器的日志文件

4)less和cat最大的区别是:less命令会分一页一页地显示文件内容,cat会一次性全部显示

二:vim,他就相当于是Linux上面的记事本,既能读文件,也可以进行编辑文件

我们此处针对vim最基本的使用,主要掌握三个操作

1)使用vim来进行创建和打开文件

2)我们使用vim来进行编辑文件内容

3)我们使用vim来进行保存退出

0)vim+文件名这样就可以打开一个文件,如果文件不存在,就会创建一个文件,按下命令回车之后,我们就打开了文件(方向键移动光标)

1)对于咱们的Java程序员来说,vim这个编辑器是有模式的,刚一开始是打开的时候,vim此时就处于Normal模式,在这个模式下,键盘的大部分按键不是用来输入的,而是表示快捷键

2)按下小写字母i我们就可以进入到insert模式了,此时就开始显示INSERT,此时我们就可以进行编辑了,所以说只要我们一旦进入到vim,就立即按下i;我们此后就是可以使用方向键来进行编辑文件里面的内容了,就是我们需要按住键盘右下角的方向键来进行编辑以及鼠标的滑动操作

如何进行保存退出呢?

3.1)首先我们要按下esc,回到普通模式(多按几次esc也是没有关系的),此时我们最下面的-- INSERT --就会消失

千万不要按ctrl+s保存,因为ctrl+s表示,功能是冻结屏幕,为啥Xshell有这个功能,因为是说有时候日志打印太快,如果说真是按下了ctrl+s,我们就直接按下ctrl+q

3.2)然后我们再次按下":wq回车"或者是":x",我们就可以保存退出了,我们在normal模式下,进行输入":",我们的光标就可以来到最下面这一行了,就来到了窗口左下角,这里面的w就是write,这里面的q就是quit也就是退出的意思

当我们使用vim打开文件之后,此时默认进入到普通模式(normal),普通模式下面键盘按键并不是编辑框输入的内容,而是表示特殊含义的快捷键,要想说真的能够实现编辑,就需要进行进入到插入模式(insert mode),此时的键盘按键才是真正的输入内容

3.3):q是强制退出,如果说文件已经改变了,那么:q会直接报错

3.4)如果说我们强制退出,但是不进行保存的话,那么我们就使用:":q!";

思考:我们为什么来进行引入模式呢?

主要是为了说引入海量的快捷键,如果说没有模式,那么上来就进行编辑,那么快捷键必须搭配alt/ctrl等按键通过组合键的形式来进行搭配使用,但是我们引入组合键只需要按一个键就可以了

linux权限:

权限代表对操作的限制,在linux中,我们主要把权限分成四类:

1)r表示可以读

2)w表示可以写

3)x表示可以执行

4)-表示没有对应的权限

drwxr-xr-x.  90 root root 4.0K Dec 28 11:57 etc
drwxr-xr-x.   3 root root 4.0K Dec 28 10:51 home
drwxr-xr-x.   2 root root 4.0K Feb  9  2022 media

4.1)所以说咱们就可以进行观察一下,我们图片中最前面的字母,-表示普通的文件,d表示目录文件,这和权限是没有任何关系的,这只是说明这只是一个文件类型

4.2)后面是9个英文字母,分成三个三个一组,这才是和真正和文件操作相关的权限

就比如说

4.3)rw-表示可以读,可以写,不可以执行

4.4)rwx表示可读可写可执行

比如说现在来了一堆字符串rwxr-xr-x,我们就可以把这个字符串分成三组

1)rwx:表示文件拥有者的权限,可读可写可执行

2)r-x:表示同组用户的权限,表示可读,不可写,可执行

3)r-x:表示其他用户的权限,表示可读,不可写,可执行

什么叫做文件可执行呢?

1)可执行就是说可不可以把这个文件当成一个命令来进行执行,就比如说ls,mv,cp,man这些命令从本质上来说都是可执行文件,才能进行执行,可以让系统运行起来变成一个进程

2)在linux中有一个特殊用户,root是管理员拥有最高权限,不遵守上述规则

3)每一个文件的权限,是三种,但是这三种权限,是可以根据不同的用户来进行分别设定的,linux把用户分成了三类:文件拥有者,文件拥有者的同一组用户,还有其他用户,实际上再进行管理权限的时候,是针对每一个文件,再针对这一个文件的三种用户,分别进行设置是否可读,可写,可执行;

我们再举一个买房子的例子,假设我买了一个房子,在房产证上面写上了我和我女朋友的名字

1)我和我女朋友是这所房子的主人,我和我女朋友是房子的拥有者,那么此时我可以看看房子是什么样子的(只读权限),然后还可以对房子进行装修(写权限),还可以将房子进行出租(可执行)

2)我儿子就属于同组用户,如果说他想要看看这个房子是什么样子(读权限),那当然是可以的了,如果说他想在墙上面乱涂乱画,那就是欠揍了(没有写权限),偷着把房子给别人了(没有可执行的权限)

3)假设说有一个人看这个房子装修的不错,想进来看看,这个可是不行的,她连读的权限都没有

yum就相当于是应用商店,就是一个包管理器

1)yum install 软件包名,在应用商店上面下载软件开发工具包

2)yum list罗列出linux上面的所有上面的软件开发工具包

3)grep这是一个特殊的命令,他的功能就是说进行字符串的过滤

4)l叫做管道,功能是把前一个命令的输入作为后一个命令的输出,相当于是一根管,把两个命令给连接起来了

所以说我们的yum list | grep jdk的这个命令的大致意思就是说罗列出linux中的所有软件开发工具包,然后把这个命令执行的结果,也就是说展示了所有软件开发工具包,交给后面的一个命令来进行筛选,grep jdk就是说在这些软件开发工具包里面查找是jdk的开发包

PS(process show) 是linux中的任务管理器,是用来进行查看当前系统中的进程的,会打印所有linux主机上面的所有进程

我们可以通过这个命令来进行罗列出系统上面的所有进程:ps+aux

一:下面是展示结果中的出现的每一行的名字:

1)USER:表示用户的名字

2)PID:当前进程的编号,每一个进程都是有唯一的一个编号的

3)%CPU:表示这个进程吃了多少CPU

4)%MEM:表示占据了多少内存

5)STAT:表示进程的状态

6)START:表示进程的启动时间

7)COMMAND:进程的具体命令

netstat查看网络状态,netstat -anp,可以看到当前系统的所有的网络上连接(通过哪个命令来查看进程信息?或者通过哪个命令来查看3306端口?)

但是这个命令把所有的网络状态都给显示出来了

比如说我们想要看看某个服务是否启动,那么我们就可以通过这个命令来进行查看端口,例如看看MYSQL这个服务器是否启动了:netstat -anp | grep 3306,就是查看3306端口是否被MYSQL所绑定?

一:但是实际上,我们直接使用ps+aux是把当前的进程全部列出来了,如果我们只想关注其中的某一个结果,实际上是不好找的;

二:我们直接可以这么找vim进程:ps aux l grep vim,我们再进行使用ps的时候,通常会搭配l;

l在linux中叫做管道,功能就是把前一个命令的输出作为后一个命令的输入,ps aux是把所有结果查找到,grep根据输入来查询结果,grep命令相当于是一个字符串匹配,后面的参数就是我们要进行查找的关键字

还有我想要查看tomact进程 ps aux | grep tomact

如何在云服务器,让用户部署程序在外网上访问

想要进行部署,我们就需要先进行搭建所依赖的环境,比如说JDK(Java运行环境),Tomact(把我们打的war报运行在Tomact上面),MYSQY

一:安装JDK,通过yum命令就可以了,yum就相当于是linux的应用商店

1)我们先用yum来进行搜索一下,看看yum有没有jdk的软件包:yum list | grep jdk,执行这个结果之后,会出现大量的jdk安装包

2)我们就需要用并选择JDK1.8(带这个devel后缀才是完整的安装包,没有后缀或者后缀名为其他字符串就是安装包是一部分,x86_64就是表示的是这个软件包适用的CPU是x86CPU)

3)yum install 软件包名(root用户下才可以安装软件);

我们直接输入命令yum install java-1.8.0-openjdk-devel.x86_64,只有带有devel后缀和x86_64的后缀才是我们真正要进行找的安装包

4)如果安装完成后,输入javac,我们就可以看到javac的选项(一大堆的字母)而不是说找不到javac这样的命令,就说明就安装成功了;

5)上面的操作必须都是root用户才可以进行安装,如果说你不是root用户,那么必须要进行切换到root用户,需要你输入root用户的密码

2)tomact是跨平台的程序,只要在官网上面下载好压缩包,进行解压缩,就可以了,如果我们使用yum list | grep tomact,最终的yum商店里面的Tomact就是版本太低,最高才是3.0系列

咱们使用的是Tomact8.5系列,但是Tomact8和JDK1.8和Servlet3.1版本必须都匹配才可以

1)我们直接把本地的Tomact打成压缩包,直接拖拽到linux服务器里面

2)进行解压缩:unzip apache-tomact-8.5.66.zip

在我们首次使用linux服务器的时候,我们直接把windows上面的文件拖拽到xshell里面可能是不成功的,因为我们的拖拽上传是需要进行依赖rz命令的,所以说我们首先需要进行

 yum install rz,yum install sz

1)咱们的rz是直接将windows上面的文件传输给linux服务器,但是咱们的sz是将linux上面弄的文件传输给windows上面

install lrzsz来进行安装上传文件依赖的命令,然后在进行上传

2)unzip找不到就直接yum install unzip来进行下载

3)我们需要进行启动Tomact,正常的话我们在windows系统中是通过点击startup.bat来进行启动的,所以说我们如果说想要启动Tomact就需要用到startup脚本,其中.bat是给windows用的,咱们的.bat是给windows用的,咱们的.sh是给Linux用的

4)所以说我们在进行首次使用的时候,需要给所有的.sh文件设置可执行权限,我们需要先cd到bin目录下面,然后再进行执行以下命令,就表示给目录中的所有.sh后缀的文件都加上可执行权限,首次使用的时候需要加上这个命令chmod +x *.sh,执行完这个权限之后,我们发现很多的文件都变成了绿色,绿色表示可执行

小结:我们在Linux上面进行配置Tomact稍微有一点麻烦

1)我们需要在官方网站上面下载.zip包

2)我们还需要把zip传输到linux上面,直接通过xshell来进行拖拽到服务器上面,依赖了rz命令,有时还需要进行安装lrzsz

3)使用unzip命令来进行解压缩,有时候需要进行安装unzip,通过yum来进行安装

4)我们需要进行切换到bin目录,给所有的.sh加上可执行权限,chmod +x*.sh

5)sh startup.sh进行启动

6)验证Tomact是否在正常工作?

6.1)我们此时可以通过查看Tomact进程的具体信息,可以直接通过命令

ps aux | grep tomact,查看一个具体的进程

其中我们的ps命令相当于是linux上面的任务管理器,会打印出当前主机上面的所有进程,grep tomact是可以按照tomact关键字来进行匹配

6.2)我们直接可以进行查看端口号8080是否被某一个进程所绑定

netstat -anp | grep 8080

6.3)我们还可以进行看一下是否我们可以访问到Tomact的访问页面,如果说我们最后可以访问到欢迎页面,说明就可以进行安装启动成功了外网IP+端口号

[root@VM-4-3-centos bin]# ps aux | grep tomact
root     22274  0.0  0.0 115928  1020 pts/0    R+   18:02   0:00 grep --color=auto tomact
[root@VM-4-3-centos bin]# netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      22104/java  

一:比如说我们想要终止tomact进程

1)就需要先通过ps aux | grep tomact先找到这个进程对应的进程的PID

2)在通过kill -9 pid就可以杀死对应的进程了

我们只有在遇到listen状态,才算启动成功

我们的linux命令是和目录关系是很大的,如果说你不是cd到bin目录里面,那么sh start.up这个操作估计是找不到的

假设如果说我们的8080端口号已经被占用了,那么我们需要手动修改一个没有被其他进程所占用的端口号

1)查看8081端口是否被占用,看看是不是空闲的端口,如果是,那么就换一个,通过

netstat -anp |grep 8081

2)修改conf目录里面的server.xml,修改端口号是8081

3)有可能是8005端口号被占用,实在不行就换成8006(先通过指令8006是否被占用)

由于我们在主机上面,一个端口号只能被同一个应用程序所进行绑定,但是假设由于我们的8005或者是8080都被别的进程所占用了,所以我们就需要进行更换别的端口号,通过vim来进行编辑

1)当我们在浏览器上面输入IP地址+端口号的时候, 是无法通过浏览器来进行访问tomact的,不成功的原因是因为,云服务器有一个功能:防火墙和安全组,人家的这个功能,可以保护你的服务器不会暴露在公网上面,因为暴露端口很容易被黑客入侵,我们要想让tomact可以在外网进行访问,就需要修改这里面的防火墙或者安全组

2)也就是说,咱们的服务器厂商,为了保护我们的服务器不会受到黑客攻击,对于那些端口可以能够被外部访问进行了严格的限制,绝大部分端口,默认情况下,我们是无法通过外网IP来进行访问的

3)所以我们要进行修改云服务器的后台配置界面,允许哪一个或者哪一些端口来进行对外访问-->更多操作,管理,防火墙,下面有很多的配置项,我们点击添加规则,就会弹出一个界面,自定义,启用,原IP地址填写:0.0.0.0/0,端口填写8080,下面填写允许,备注随便写

3)上面配置好了之后,再来进行访问

linux服务器安装MYSQLCentOS 7 通过 yum 安装 MariaDB - 知乎

咱们自己用的电脑和linux是两台机器

ctrl+d,退出MYSQL

1)我们要是针对我们自己原来写过的博客系统进行打包,把之前打好的war包,放到Tomact的wapapp目录就行了,之前我们的war包在本地运行,访问的是本地的数据库(127.0.0.1IP),现在war包在云服务器上面运行,访问的就是云服务器的数据库,我们就需要保证云服务器的数据库上有数据表,代码可以访问云服务器的数据库(保证端口,IP,用户名,密码)都是正确的

2)同样我们也是不可以让我们自己的服务器上面的程序来进行访问本地的MYSQL,因为你的电脑上面没有外网IP,如果说现在有两个服务器,A和B,A上面部署博客系统,B上面部署MYSQL,这样子就可以做到A访问B的MYSQL,所以说前提是外网IP可以访问到这一台主机,然后再通过特定的端口号来进行访问到主机上面的这一台应用程序

3)我们的MariaDB是完全可以用来代替MYSQL的,这两个的操作的API都是兼容的,咱们Centos7相当于是MYSQL5.7

4)MYSQL连接:MYSQL -uroot

假设我们现在已经把环境搭建好了,那么我们还是需要注意几件事情

1)我们要在服务器上面准备好依赖的数据,因为当前我们装好的数据库,已经是一个空的数据库,我们需要在云服务器上面完成建库建表的操作,直接进行粘贴

2)咱们要微调一个代码,前面咱们本地的数据库,有一个密码,但是现在咱们的云服务器的数据库,也是有一个密码的,这两个密码是不一样的,所以我们要在JDBC里面修改,如果我们没有进行设置密码,我们就需要将public static final String password="",直接设置成空字符串就可以了,IP地址不用变,因为IP地址是127.0.0.1,表示环回IP表示自己

3)重新打包,基于maven的package操作来进行打成war包,直接拖转到webapps目录

遇到问题我们如何来进行解决?

1)首先我们需要进行抓包,看清楚请求是什么样子的,尤其是500,响应中带有异常信息站

2)我们来进行查看Tomact的日志,之前咱们在winows系统上面使用的Tomact,日至就直接输出在控制台里面了,但是我们在linux服务器上面,日志存在于专门的日志文件里面,我们就需要稍微的进行找一找

3)在我们的bin目录的同一级目录之下有一个叫做loggs目录,就有各种日志,这么多日志文件我们应该来看哪一个呢?我们可以根据最后的修改时间来进行判定,时间日期都要相对应,很久的日志几天前的就不需要来进行查看了,把最近的日志都来翻一翻,很容易找到一些异常信息的线索

4)如果说我们自己部署的项目出现了500的问题,那么修改了代码,还是需要进行重新部署的操作的

linux-----基本操作指令(2)相关推荐

  1. 关于虚拟机Linux基本操作指令的一些整理

            linux基本操作命令 ls 作用: 显示指定目录下的内容 语法: ls [-al] [dir] 说明: -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-l 除文件名称外,同 ...

  2. linux 基本操作指令总结

    一,文件系统和备份 mkfs /dev/mmcblk1p1 在mmcblk1p1分区创建一个文件系统 mke2fs /dev/mmcblk1p1 在mmcblk1p1分区创建一个linux ext2的 ...

  3. 【Linux常用指令2】

    目录: 前言 文件查看命令 grep(全局正则表达式打印) cat (默认从键盘读取数据) more (更多) less (重要) head tail wc sort(文本内容排序) uniq(uni ...

  4. 《Linux常用指令及权限内容-很香的总结》

    Linux常用指令及权限内容 初次接触Linux,虽然学起来有点懵逼,但是掌握了感觉还挺有趣的,把自己的理解记录在这,和各位一起进步.欢迎各位的批评指点和评论. 一.Linux学习各阶段 二.Linu ...

  5. 复习Linux基本操作----常见指令

    Linux基本操作 ls命令 ls(list):相当于windows上的文件资源管理器 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件 ...

  6. linux服务器运维操作命令,Windows和Linux系统服务器运维基本操作指令

    原标题:Windows和Linux系统服务器运维基本操作指令 服务器总归是机械化设备,在运行过程中难免会出现一些问题,遇到这些问题怎么办?请运维人员代维修?即使请也会造成,运维人员维护不及时和成本太高 ...

  7. Linux基础指令的基本操作(一)

    文章目录 Linux用户管理: 1.adduser添加用户 2.passwd修改用户密码 3.userdel删除用户 其他指令 alias指令(取别名) whoami指令 man指令(重要) bc指令 ...

  8. Linux软件基础实验,linux基本操作的实验

    linux基本操作的实验 发布时间:2008-10-02 00:37:30来源:红联作者:sfwjeo 实验一.linux基本操作 1.实验目的 了解linux的基本命令,熟练掌握其基本操作 2.相关 ...

  9. Linux基本操作1

    Linux基本操作1 注意: 以下所用 Linux 版本为 CentOS 6.8 1.关机.重启.注销 shutdown 指令 (1) shutdown -h now 表示立即关机 (2) shutd ...

  10. linux基本操作及shell编程使用和vim

    linux基本操作 如何重启.关机.切换用户? // 重启 #reboot 或者 #shutdown -r now //关机 #halt 或者 #shutdown -h now 浏览文件系统,查看系统 ...

最新文章

  1. laravel 调试mysql_Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除)...
  2. java jsp公共异常页面_实际应用中JSP页面的异常处理
  3. Vue笔记:webpack项目vue启动流程
  4. 命令逐行显示_Linux命令和Shell脚本学习随笔3
  5. Centos7默认自带了Python2.7版本,但是因为项目需要使用Python3.x,这里提供一种比较快捷方便的安装方式...
  6. 宁静——一种心灵的奢望
  7. 测试:fiddler使用
  8. Oracle 10g 高级安装图文教程(一)
  9. C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServic
  10. c语言int函数使用方法,int函数的使用方法_Excel中int函数的操作用法
  11. Ps(Adobephoto shop)当中布尔运算的使用方法
  12. 《人类染色体与染色体病》学习笔记
  13. 极客算法训练笔记(七),十大经典排序之归并排序,全网最详
  14. Mand Mobile
  15. linux 启动wifi
  16. 汽车之家数据 下载合集
  17. 超详细maven的卸载、重新安装与配置
  18. Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器显示pdf文件
  19. firebase推送_Firebase Web推送通知
  20. [爬虫]Python爬取网易云音乐搜索并下载歌曲!

热门文章

  1. 零基础学摄影nbsp;人像摄影调节光…
  2. linux下XAMP集成开发环境搭建流程总结
  3. 小鸟云服务器如何安装rstudio-server?
  4. priya-dwivedi关于人脸情绪识别
  5. 使用iMazing给苹果手机设置专属来电铃声
  6. Android开发自定义短视频系统源码全局悬浮按钮
  7. 公司邮箱登录入口哪个方便,邮箱移动办公哪个最好用?
  8. 【Python】 matplotlib 以pdf形式保存图片
  9. cocos creator pc web端 全屏
  10. html页面栅格系统,超好用的网页栅格化工具: GridGuide