E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Unity基础脚本学习
PostMan
脚本学习
本文主要是关于pre-request和tests脚本那块pre-request我的理解是发送http请求前做的事情,比如设置环境变量test可以控制什么时候发起请求,并且可以处理发送请求后的事情,比如我在脚本第三行控制发送请求,然后在第五行解析响应的报文,把响应报文里的json解析出来他们语法可能有一点点差异,但是大体上是一样的简单教程初学者建议先去学会使用动态变量,动态变量就是类似一些宏,比如可
qq_38781075
·
2023-09-14 19:21
postman
测试工具
前端
shell
脚本学习
笔记02(小滴课堂)
可以在home目录下创建一个shell.sh文件。按w进入命令行模式。按i进入插入模式。如果想返回命令行模式,按esc即可。然后可以使用x和dd进行删除内容。在插入模式下我们点击esc键,再去按:键,我们就可以进入到底行模式了:可以设置行号:setnu。也可以进行搜索:/+想要搜索的内容。退出的时候按:wq保存并退出。按:q!。退出。这就是我们简单的vi编辑器的使用。shell常见的解释器bash
抹茶味的西瓜汁
·
2023-09-14 13:39
shell脚本
学习
笔记
【Unity每日一记】音频,麦克风,粒子和拖尾渲染器
本文由秩沅原创收录于专栏:
Unity基础
实战⭐️⭐文章目录⭐️⭐⭐前言⭐(==A==)音频Audio(==B==)麦克风(==C==)粒子系统(==D==)TrailRender拖尾渲染器⭐️⭐⭐前言
秩沅
·
2023-09-14 08:08
#
Unity精华一记
unity
音视频
游戏引擎
Linux Shell编程相关的书籍
《Shell
脚本学习
指南》。这本书是对shell脚本的深入学习,后期用shell可以达到削铁如泥的效果。
软件架构师-叶秋
·
2023-09-13 09:43
ARM-linux
linux
运维
服务器
shell
脚本学习
$TESTENVexec--sysctl-wnet.ipv4.ip_forward=1net.ipv6.conf.all.forwarding=1net.ipv4.conf.veth0.rp_filter=2net.ipv4.conf.veth0.accept_local=0解释$TESTENVexec--sysctl-wnet.ipv4.ip_forward=1net.ipv6.conf.all
克莱默申克
·
2023-09-12 22:23
杂
学习
网络
服务器
iOS - Shell
脚本学习
入门
解释器与编译器1.编译器过程:源代码-预处理器-编译器-目标代码-链接器-可执行程序2.解释器过程:源代码-解释器(python,shell,js)如何学习脚本:三步骤1.学语法2.看脚本3.抄基本语法:省略。自己去w3c学习。常用语法记录:#!/bin/bashIS_ZSH=""#bash-3.2和zsh:的方式来执行history中记录的指令。-k:指令所给的参数都会被视为此指令的环境变量。-
iOS_developer_zhong
·
2023-09-12 09:21
OC/Swift高级进阶
《五一当天记》
总体而言这是个在
unity基础
上作了封装的工具,提供了更易用的各类场景以及集成好的高低端素材资源,以及集成度颇高的组件,力图实现无代码编程,就拖拖拽拽即可。
阳侠
·
2023-09-12 07:52
【
Unity基础
】3.脚本控制物体运动&天空盒
【
Unity基础
】3.脚本控制物体运动&天空盒大家好,我是Lampard~~欢迎来到
Unity基础
系列博客,所学知识来自B站阿发老师~感谢(一)搭建开发环境(1)下载visualstudio在我们下载unity
Lampard猿奋
·
2023-09-11 15:40
Unity原理
unity
游戏引擎
天空盒
脚本
物体运动
【
Unity基础
】2.网格材质贴图与资源打包
【
Unity基础
】2.网格材质贴图与资源打包大家好,我是Lampard~~欢迎来到
Unity基础
系列博客,所学知识来自B站阿发老师~感谢(一)网格材质纹理第一次接触3D物体的话,会觉得好神奇啊,这个物体究竟是由什么组成的呢
Lampard猿奋
·
2023-09-10 09:34
Unity原理
unity
材质
游戏引擎
资源包
Unity基础
2.9Invoke(2022.6.24)
InvokeInvoke(stringmethodName,floattime):输入一个方法名称,过个几秒来执行一次methodName:方法名称time:几秒后执行InvokeRepeating(stringmethodName,floattime,floatrepeatRate):重复调用methodName:方法名称time:几秒后执行repeatRate:重复间隔时间CancelInvo
一谦四益啊
·
2023-09-10 00:59
unity学习笔记
unity
游戏引擎
Linux系统Shell
脚本学习
总结
所有从事基于Linux开发工作的工程师,命令行控制是基本的操作形式,掌握各种Linux命令行是进行各种开发的基础,但是我们会发现:工作中会经常执行一连串有顺序的、规律的甚至是重复性强繁琐的命令行来实现我们要的操作,比如软件编译及版本发布、代码更新、文件操作、字符串操作等,如果是对多条目的操作,只是手动输入命令将会极大限制我们的开发效率,这时编写shell脚本会是很好解决这些问题的途径,下面我会将大
彧侠
·
2023-09-08 20:04
脚本处理
Linux
shell
shell
脚本学习
积累
文章目录创建shell脚本并运行条件测试基础shell脚本打包过去24小时内修改过的文件自动解压bzip2,gzip和zip不同类型的压缩包打印一个rpm包的统计信息【含有输入参数】创建shell脚本并运行方式1:vimmyshell.sh#文件开头是#!/bin/bash或#!/bin/shshmyshell.sh方式2:vimmyshell#需要设置文件为可执行的状态chmod+xmyshel
稳定的穷
·
2023-09-07 09:50
shell
Windows PowerShell
脚本学习
(上)
1、$PSVersionTable:查看PowerShell的版本信息。2、PowerShell界面:开始界面搜索“PowerShell”,点击“PowerShell.exe”或者“PowerShellISE”。cmd命令界面输入“PowerShell”。3、PowerShell快捷键Alt+F7:清除命令等历史记录,相当于cls命令。Ctrl+PgUp:上翻页。Ctrl+PgDn:下翻页。上下箭
SCOR_PIO
·
2023-09-07 06:51
WPF C# .NET7 基础学习
p=3&vd_source=986db470823ebc16fe0b3d235addf050开发工具:VisualStudio2022Comm
unity基础
框架:.Net6.0下载创建过程略.Net和.
fanlrr
·
2023-09-04 19:04
c#
【
Unity基础
】1.项目搭建与视图编辑
【
Unity基础
】1.项目搭建与视图编辑大家好,我是Lampard~~欢迎来到
Unity基础
系列博客,终于要开始写基础系列的博客了,前两篇的内容基本上与入门系列相同,如果有紧跟入门系列的同学可以直接从第三篇文章开始看好了话不多说我们开始
Lampard猿奋
·
2023-09-03 17:15
Unity原理
unity
游戏引擎
基础
shell
脚本学习
-1
文章目录一、定义变量二、使用变量三、将命令的结果赋值给变量四、变量操作在Bashshell中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。这意味着,Bashshell在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。例如在C语言或者C++中,变量分为整数、小数、字符串、布尔等多种类型.一、定义变
永不秃头的程序员
·
2023-09-03 13:17
linux
学习
chrome
前端
printf与test测试命令-shell
脚本学习
笔记5
目录printf输出命令test测试命令printf输出命令同样是输出的命令。只是默认printf不会像echo自动添加换行符,我们可以手动添加\n。此处感觉只需要了解下就可以了,不懂再查。printf由POSIX标准所定义,因此使用printf的脚本比使用echo移植性好。默认printf不会像echo自动添加换行符,我们可以手动添加\n。printf命令的语法:printf format-st
旺仔的算法coding笔记
·
2023-09-03 11:17
linux与脚本shell
bash
shell
【ICer的脚本练习】“精通各种语言的hello world!“
系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录_尼德兰的喵的博客-CSDN博客前言这一节呢主要是检查一下Linux和win环境是不是能正常的支持咱们的
脚本学习
,所以来答应各种语言的helloworld
尼德兰的喵
·
2023-09-03 09:49
IC萌新的脚本培训教程
开发语言
芯片
verilog
python
perl
Python
脚本学习
记录
关于FPGA(Field-ProgrammableGateArray)工程师的Python知识需求。FPGA工程师通常使用Python来进行辅助开发、测试和脚本编写等任务。以下是在成为FPGA工程师时可能需要掌握的一些Python知识:基本语法和概念:熟悉Python的基本语法、变量、数据类型、运算符和控制流程是基础。这将帮助您编写简单的脚本和工具。文件操作:FPGA开发中,可能需要读写配置文件、
码尔泰
·
2023-08-30 18:58
FPGA
python
脚本
2022-04-22
Unity基础
3——Resources资源动态加载
文章目录一、特殊文件夹二、同步加载资源三、异步加载资源四、资源卸载五、场景异步加载一、特殊文件夹(一)工程路径获取//注意该方式获取到的路径一般情况下只在编辑模式下使用//我们不会在实际发布游戏后还使用该路径//游戏发布过后该路径就不存在了print(Application.dataPath);(二)Resources资源文件夹//路径获取://一般不获取//只能使用Resources相关API进
蔗理苦
·
2023-08-29 23:39
Unity
学习
unity
Unity基础
笔记(7)—— 资源管理
Unity资源管理一、资源导入和导出资源导入:将打包好的unitypackage文件直接拖拽至窗口中,Unity会自动解析包,再点击import即可导入资源。资源导出:右键点击要导出的资源文件夹,点击export导出资源。预制体身上自带的材质会随着预制体一并导出。二、预制体实例化游戏中大多数情况下我们都需要通过代码生成子弹、刷新小兵等,所以需要将预制体实例化到场景中去。GameObject.Ins
Dukenone
·
2023-08-29 23:37
unity
游戏引擎
c#
Lua基础知识
文章目录1.Lua简介1.1设计目的:1.2特性1.3应用场景2.Lua
脚本学习
2.1安装2.2lua操作2.3lua案例学习lua主要是为了后续做高性能缓存架构所准备的基础技术。
硅谷工具人
·
2023-08-25 13:40
Java
lua
开发语言
【unity数据持久化】XML数据管理器知识点
本文由秩沅原创收录于专栏:
Unity基础
实战⭐️⭐文章目录⭐️⭐⭐前言⭐XML是什么和游戏存储的关系(==A==)XML文件格式(==B==)XML基本规则(==C==)XML属性(==D==)读取XML
秩沅
·
2023-08-21 06:25
#
unity实战基础
unity
xml
游戏引擎
c#
场景加载
Shell
脚本学习
一、介绍shell是一个用C语言编写的程序,是使用Liunx的桥梁。shel既是一种命令语言,又是一种设计语言,它提供一个界面(小黑屏),用户通过这个界面访问操作系统内核的服务。在我们通常说的shell一般说的是shellscript(shell脚本)。但学习者还是需要知道shell和shellscript两者是不同的概念。由于习惯问题,所以shell都是指shell脚本编写。shell编程和Ja
我爱记笔记
·
2023-08-21 05:20
运维
微服务
学习
linux
bash
运维
Unity基础
框架学习--公共模块
什么是公共模块呢?公共模块主要是其辅助作用。首先,我们注意到在unity新建的脚本,都会默认继承自MonoBehaviour,这个里面是啥呢?我们选定他导航(F12)一下(有兴趣的同学可以继续查看他的父类的父类的父类的父类。。。)而如果有某个类很特殊,他需要继承自我们另外构建的类,这时候又想在这个类里调用MonoBehaviour的API,比如下图:Invoke、StartCoroutine、St
小渣渣在学习
·
2023-08-16 05:34
Unity基础框架学习
unity
c#
foundation框架
DC
脚本学习
代码来源于网上,方便自己查看,侵删man_flow.tclsetSCRIPT_FILEscript#建立放置脚本文件source./$SCRIPT_FILE/set_env.tcl#设置环境变量source-echo./$SCRIPT_FILE/file_create.tcl#生成放置报告和结果的文件夹setcache_writeWORK/$file_versionsetcache_readWOR
千万小心
·
2023-08-12 18:54
IC
tcl
嵌入式 Linux 入门(六、Shell 脚本编程下:Shell 脚本语法)
嵌入式Linux入门第六课,继续完成Shell
脚本学习
,本文学习Shell脚本语法......矜辰所致前言上文我们初次认识了Shell脚本,本文我们就要学习Shell脚本的语法,争取做到学完本文,你也会写
矜辰所致
·
2023-08-10 21:25
嵌入式Linux
#
嵌入式
Linux
入门篇
linux
Shell
脚本
脚本语法
脚本编程
Shell
Shell
脚本学习
-监控MySQL服务的实战
问题描述:监控MySQL服务是否启动正常,如果未正常启动,就启动MySQL服务。问题分析:1)监控MySQL数据库服务的常见方法:端口监控netstatsslsoftelnetnmapnc监控服务进程或者进程数ps-ef|grepmysql|wc-lps-f|grepnginx|wc-l在客户端模拟用户访问wgetcurl登录mysql数据库进行判断mysql-uroo-pchang123-e"s
CCH2023
·
2023-08-06 19:54
Shell
MySQL数据库
mysql
linux
Shell
脚本学习
-shell数组
数组:就是元素的集合,把有限个元素(变量或者字符)用一个名字来命名,然后用编号对它们进行区分。这个名字就是数组名。数组下标用于区分不同内容的编号。组成数组的各个元素变量称为数组的元素(下标变量)。使用数组可以简化程序的开发。数组的定义:方法1:array=(value1value2value3...)这是常用定义方法,掌握这种方法即可。打印元素:[root@abcscripts]#array=(1
CCH2023
·
2023-08-06 17:17
Shell
linux
Shell
脚本学习
-Shell脚本框架
我们能写出.sh文件的脚本。已经觉得很好了。但是我们还需要进一步学习脚本框架的概念。1、Shell脚本(模块)高级命名规则:1)常规Shell脚本:chang.sh、test.sh等2)模块的启动和停止统一命名为:start_.sh、stop_.sh3)监控的脚本通常是*_mon.sh4)控制脚本一般以:*_ctl.sh代码框架:1)易变的信息最好是定义为变量或者使用特殊位置的参数,让开发的脚本具
CCH2023
·
2023-08-06 17:17
Shell
linux
Shell
脚本学习
-循环的控制命令
breakcontinueexit对比:示例1:break命令跳出整个循环。[root@abcscripts]#catbreak1.sh#!/bin/bashfor((i=0;imtu1500qdiscpfifo_faststateUPgroupdefaultqlen1000link/ether00:0c:29:5f:b4:6ebrdff:ff:ff:ff:ff:ffinet192.168.17.
CCH2023
·
2023-08-06 17:16
Shell
linux
Shell
脚本学习
-for循环结构2
案例:通过脚本实现仅sshd、rsyslog、crond、network、sysstat服务在开机时自启动。Linux系统在开机的服务通常工作在文本模式3级别,因此只需要查找3级别以上的开启的服务即可。查看命令:chkconfig--list|grep3:on[root@vm1~]#chkconfig--list|grep3:onNote:ThisoutputshowsSysVserviceson
CCH2023
·
2023-08-06 17:46
Shell
linux
Unity基础
之C#进阶篇笔记2:泛型
Unity基础
之C#进阶篇笔记2:泛型泛型1.泛型是什么2.泛型分类3.泛型类和接口4.泛型方法5.泛型的作用6.总结7.练习题泛型约束1.什么是泛型约束2.各泛型约束讲解3.约束的组合使用4.多个泛型有约束
四月的白羊座
·
2023-08-05 22:48
Unity基础之C#进阶篇笔记
Shell
脚本学习
-阶段二十七-命令解释三
文章目录前言quyotastatsrepquotaconvertquotaswapoffswaponsyncchrootgetentlastlastblastloglogrotatelogsavelogwatchopensslsudo=================ctrlaltdelhalt============poweroff============reboot==============
低调的小哥哥
·
2023-08-05 14:08
shell
Perl脚本编程
Perl
脚本学习
笔记文章目录Perl
脚本学习
笔记一、编写你的第一个Perl程序二、Perl的基本构件1.直接量2.标量变量3.表达式和运算符三、控制程序流1.if语句2.while循环3.for循环四、
卢卡喵
·
2023-08-05 11:38
Perl脚本
perl
Unity基础
(0)—— Vector3的简单使用
1.Vector表示向量、矢量的意思,含有大小和方向;Vector3由名可得表示三维向量,包含想x,y,z三个分量(供自学记录)。2.简单理解Vector3就是相当于一个类,可直接new.其中xyz三维坐标系可参考左手坐标系(拇指指向自己方向)。一般在使用中transform下的position、scale、rotation等属性都可以通过设置Vector3的值来改变其相应的位置、大小(trans
天策府狼崽子
·
2023-08-04 16:27
unity
游戏引擎
Shell
脚本学习
-case条件语句
case条件语句相当于多分支的if/elif/else条件语句,但是它更规范工整。常被应用于实现系统服务启动脚本等企业应用场景中。语法结构:case"变量"in值1)指令1...;;值2)指令2...;;*)指令3...esac说明:1)case语句获取的变量的值与表达式部分的值等逐一进行比较;如果匹配,就执行值后面对应的指令,直到遇到双分号为止。然后跳出case语句的主体,执行esac后面的语句
CCH2023
·
2023-08-02 21:50
Shell
linux
Shell
脚本学习
-传参的方式往配置文件中写数据
生产案例:实现通过传参的方式往/etc/open_authfile.conf里添加用户,具体要求:1)命令用法:USAGE:shadduser{-add|-del|-search}username2)传参要求:参数-add:表示添加后面接的用户名;参数-del:表示删除后面接的用户名;参数-search:表示查询后面接的用户名;3)如果是有同名的用户,则不能添加、如果没有对应的用户,则无需删除,查
CCH2023
·
2023-08-02 21:50
Shell
linux
Shell
脚本学习
-Shell函数
函数的作用就是将程序里多次被调用的相同代码组合起来(函数体),并为其取一个名字,即函数名。其他所有想重复调用这部分代码的地方都只需要调用这个名字就可以了。当需要修改这部分代码时候,只需要修改函数体内的这部分代码即可实现对所有调用的修改,也可以把函数独立地写在文件里,当需要调用函数时,再加载进来使用。好处:1)把相同的程序段定义成函数,可以减少程序代码量;2)增加程序的可读性,易读性;3)呈现程序的
CCH2023
·
2023-08-02 21:49
Shell
linux
Shell
脚本学习
-MySQL单实例和多实例启动脚本
已知MySQL多实例启动命令为:mysqld_safe--defaults-file=/data/3306/my.cnf&停止命令为:mysqladmin-uroot-pchang123-S/data/3306/mysql.sockshutdown请完成mysql多实例的启动脚本的编写:问题分析:要想写出脚本,必须对MySQL服务很熟悉。1)单实例:#Mysql启动mysqld_safeMys
CCH2023
·
2023-08-02 21:19
Shell
linux
Shell
脚本学习
-打印简单菜单
打印菜单和选择菜单项的脚本:[root@vm1scripts]#catmenu_choise.sh#!/bin/bash#path=/server/scripts[!-d"$path"]&&mkdir$path-p#menucat/dev/null[$?-ne0]&&{echo"Thenumyouinputmustbe(1|2|3)"exit1}#[$num-eq1]&&{echo"startin
CCH2023
·
2023-08-01 13:46
Shell
linux
Shell
脚本学习
-read命令
Shell变量可以直接赋值或者脚本传参的方式,还可以使用echo命令从标准输入中获得,read为bash内置命令。[root@vm1~]#typeechoechoisashellbuiltin常用参数:-pprompt:设置提示信息,我们看help内容的信息:输出PROMT字符串信息,这个字符串没有换行符的结尾,在read之前。-ttimeout:设置超时时间,如果超出了这个时间还没有结束输入,r
CCH2023
·
2023-07-31 09:20
Shell
linux
Shell
脚本学习
-expr命令用法
expr可以用于整数运算,也可以用于字符串长度、匹配等计算。示例1:整数运算:[root@vm1scripts]#expr2+24[root@vm1scripts]#expr2*2expr:syntaxerror[root@vm1scripts]#expr2\*24[root@vm1scripts]#expr2/21说明:1)运算符和计算的数字左右都必须至少有一个空格。2)使用乘号的时候,使用反斜
CCH2023
·
2023-07-31 09:50
Shell
linux
shell
脚本学习
-入门篇 no.1
概念1简单介绍Shell既是一种脚本编程语言,也是一个连接内核和用户的软件。2分类shbash等都属于shell;bash也是linux默认使用的shell;可以通过cat/etc/shells查看可以使用的shell;通过echo$SHELL查看当前使用的shell。3小知识默认提示符环境变量PS1(最外层):[默认用户名@主机名当前目录]会转为#)PS2(第二层):>提示符的字符范围日期,换行
彩虹君
·
2023-07-30 11:14
Unity XML2——C#读写XML
一、XML文件的存放位置(一)只读不写的XML放在Resouces或者StreamingAssets文件夹下,详见
Unity基础
3——Resources资源动态加载_weixin_53163894的博客
weixin_53163894
·
2023-07-29 07:26
Unity
unity
常用
脚本学习
手册——Bat脚本
我们在日常工作中常常会遇到一些需要重复进行的工作,又或者我们的项目在转交客户时需要去简化配置过程这时我们就需要使用到一些自动化部署操作,我们常常会采用脚本来完成这部分功能下面我们来介绍一种脚本类型Bat脚本,我们会从以下方面介绍:脚本介绍Bat脚本基本语法Bat脚本常用语法Bat脚本进阶内容脚本介绍首先我们需要去简单了解一下脚本脚本简介首先我们需要知道脚本是什么:脚本是一种特殊文件,借助这种文件我
2201_75761617
·
2023-07-28 21:29
学习
6月18日-青龙面板-美团
脚本学习
教程
6.10日可用脚本链接:download)教程开始:我自己测试的青龙面板版本是v2.10.9其他版本自行安装测试~算了,还是给小白们发一遍调用脚本的教程~方法一:1.直接在青龙面板——>脚本文件——>新建meituan.js2.创建成功后复制下丹的脚本代码文档里的内容,粘贴到里面保存即可3.到定时任务栏添加定时任务,如下图回应下最近的一些问题问:这个脚本能稳定多久?答:问出这种问题的真的很小白,羊
小可爱资料库
·
2023-07-28 16:04
青龙脚本
学习
bash
开发语言
Linux shell
脚本学习
目录1.shell编程的基本格式开头注释加可执行权限执行脚本的三种方法2.变量定义变量和清除变量从键盘获取值(read)读取多个值只读变量(readonly)位置变量变量运算3.条件测试文件测试字符串测试数值测试逻辑操作符4.if条件语句if条件语句语法单分支if语句多分支语句5.case条件语句case语句的语法case语句实践6.for循环语句语法格式for循环显示当前目录下的文件for循环打
学习record
·
2023-07-28 05:21
linux
学习
运维
bash
shell
Unity 基础 之 简单介绍与使用 单元测试 Test Runner(NUnit) / Assert 基于 2019.3.x
Unity基础
之简单介绍与使用单元测试TestRunner/Assert基于2019.3.x目录
Unity基础
之简单介绍与使用单元测试TestRunner/Assert基于2019.3.x一、简单介绍二
仙魁XAN
·
2023-07-27 05:46
Unity
unity
单元测试
Test
runner
NUnit
Shell
脚本学习
-变量子串
变量子串:manbash,然后搜索:ParameterExpansion。参数拓展$字符引进、提出了参数拓展、命令替换和数字替换。变量名或标识被大括号包围才能够被拓展。我们可以记住一个表:序号表达式说明1${parameter}返回变量$parameter的内容。2${#parameter}返回变量$parameter内容的长度,按字符。3${parameter:offset}在变量$parame
CCH2023
·
2023-07-27 05:43
Shell
linux
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他