==========

那么,开机自启的原理是什么?

rc.local的用处何在????

若是直接搜用法,在网上看到两种结果。

# 设置开机自启动
echo (ssserver -c /etc/shadowsocks.json -d start &) >> /ect/rc.local

echo 与>>可以这么用吗?

设置开机启动将启动的命令加入到/etc/rc.local文件的最后1
vi /etc/rc.local

也就是说,都是对/etc/local  文件进行操作:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.touch /var/lock/subsys/local
(END) 

确实是有的。

================

1,linux将指令加入环境变量PATH

简单说PATH就是一组路径的字符串变量,当你输入的命令不带任何路径时,LINUX会在PATH记录的路径中查找该命令。有的话则执行,不存在则提示命令找不到。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls命令根本不在这个两个目录下,当你输入ls命令时LINUX会去/bin,/usr/bin,/sbin等目录寻找该命令。而PATH就是定义/bin:/sbin:/usr/bin等这些路劲的变量,其中冒号为目录间的分割符。环境变量中加入指令方式:

(1)直接在命令行中设置PATH,这种方法对当前方法有效,关机或注销后失效。

1
PATH=$PATH:/usr/local/webserver/mongodb/bin

查看某个指令是否加入环境变量,使用echo指令。

1
echo $PATH

(2)在profile中添加PATH,这种方法对所有用户都是永久生效。

a)打开profile文件

1
vim /etc/profile

b)在profile文件的PATH中添加mongo指令。在PATH后面添加“:/usr/local/webserver/mongo/bin”,= 等号两边不能有任何空格。

1
PATH=$PATH:/usr/local/webserver/mongo/bin

c)执行指令,使profile修改立即生效。

1
source profile

(3)在当前profile中添加PATH,这种方法对当前用户永久生效。与第二步类似,将profile替换为bash_profile。

1
vim ~/.bash_profile

  

1
PATH=$PATH:/usr/local/webserver/mongo/bin

  

1
source ~/.bash_profile

2,linux将指令加入开机启动

在/etc/rc.local中添加指令即可

1
/usr/local/webserver/mongodb/bin/mongod --dbpath=/data0/mongodb/data --logpath=/data0/mongodb/logs --logappend  --port=27017

3,/etc/rc.local与/etc/rc.d/异同

/etc/rc.local脚本是在系统初始化级别脚本运行之后再执行的,因此可以安全地在里面添加你想在系统启动之后执行的脚本。/etc/rc.local与/etc/rc.d/rc.local软连接相连,实际是一个东西。

/etc/rc.d/目录包含许多系统各种服务的启动和停止脚本,它控制着所有从acpid到x11-common的各种事务,类似于window的注册表。/etc/rc.d/目录下内容如下:

(1)init.d/ :各种服务器和程式的二进制文件存放目录。 
(2)rcx.d/: 各个启动级别的执行程式连接目录。里头的东西都是指向init.d/的一些软连接。具体的后边叙述。 
(3)更有三个脚本:rc.sysinit, rc, rc.local 。

from---------------https://www.cnblogs.com/usa007lhy/p/5517036.html

==========================================

from-------------http://blog.chinaunix.net/uid-26000296-id-3986914.html

使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:
chkconfig --list
可能输出如下:
openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别 ; 关闭/开启为相应级别下该服务的自动启动选项)
如果希望对自动启动选项做出改变,命令格式为:
chkconfig --level x name on/off
z.B. chkconfig --level 5 openvpn off
以上的命令可以查询系统可提供的服务,如果希望开机时启动某一程序,可采用以下方法:
在~/.bash_profile文件最后一行添加所希望启动的软件名。如:“synergyc 192.168.0.154” 则在开机时自动运行synergyc并与192.168.0.154连接。
以上内容为我个人配置,但是发现了一个问题:FC12在登陆后才完成系统启动,也就是说在进入用户登陆界面的时候synergyc还未能启动。所以,(也许)synergyc不适合被安装在用作无键鼠客户机的linux系统中。
在Red Hat Linux中自动运行程序
1.开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。
2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。
因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件。
4.定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。
5.定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:

复制代码

代码如下:


$ at 12:00
at>mailto Roger -s ″Have a lunch″ < plan.txt
at>Ctr-D
Job 1 at 2000-11-09 12:00
2000-11-09 12:00时候自动发一标题为"Have a lunch",内容为plan.txt文件内容的邮件给Roger。
#!/bin/bash
RESTART="........" #里面写相应服务代码
START="......."
STOP=".........."
case "$1" in
restart)
$RESTART
echo "......"
;;
start)
$START
echo "......"
;;
STOP)
$STOP
echo "......"
;;
*)
echo "Usage: $0 {restart ¦ start ¦ stop}"
exit 1
esac
exit 1

脚本写完要修改一下权限 chmod u+x test.sh
首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写到一个文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序!
要启动scim(某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表示是属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相应的软链接就可以了。
这个脚本其实很简单,就两行:
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。
还需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接还要起名为SXXX,这样系统才能让它随机启动
添加自启动脚本
首先把自己的脚本放到/etc/init.d中,,然后执行如下指令:
update-rc.d a start 90 2 3 4 5 . stop 90 0 1 6 .
其中a就是你的脚本,注意有两个点。
a脚本范例。

复制代码

代码如下:


#!/bin/sh
# Source function library.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
else
. /lib/lsb/init-functions
fi
MOD=/a.ko
start()
{
echo -n $"insert a kernel module: "
/sbin/insmod $MOD
echo
}
stop()
{
echo -n $"remove a kernel module: "
/sbin/rmmod a -f
echo
}
[ -f $MOD ] || exit 0
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload}"

update-rc.d命令,是用来自动的升级System V类型初始化脚本,简单的讲就是,哪些东西是你想要系统在引导初始化的时候运行的,哪些是希望在关机或重启时停止的,可以用它来帮你设置。这些脚本的连接位于/etc/rcn.d/LnName,对应脚本位于/etc/init.d/Script-name.
1、设置指定启动顺序、指定运行级别的启动项:
update-rc.d <service> start <order> <runlevels>
2、设置在指定运行级中,按指定顺序停止:
update-rc.d <service> stop <order> <runlevels>
3、从所有的运行级别中删除指定的启动项:
update-rc.d -f <script-name> remove
例如:
update-rc.d script-name start 90 1 2 3 4 5 . stop 52 0 6 .
start 90 1 2 3 4 5 . : 表示在1、2、3、4、5这五个运行级别中,按先后顺序,由小到大,第90个开始运行这个脚本。
stop 52 0 6 . :表示在0、6这两个运行级别中,按照先后顺序,由小到大,第52个停止这个脚本的运行。
如果在 /etc/init.d 中加入一个 script,还须要制作相关的 link
在 /etc/rc*.d 中。K 开头是 kill , S 开头是 start , 数字顺序代表启动的顺序。(SysV)
update-rc.d 可以帮你的忙。
例:
在 /etc/init.d 中建立一个叫作 zope 的 script , 然后
update-rc.d zope defaults
就会产生以下链結::

复制代码

代码如下:


Adding system startup for /etc/init.d/zope ...
/etc/rc0.d/K20zope -> ../init.d/zope
/etc/rc1.d/K20zope -> ../init.d/zope
/etc/rc6.d/K20zope -> ../init.d/zope
/etc/rc2.d/S20zope -> ../init.d/zope
/etc/rc3.d/S20zope -> ../init.d/zope
/etc/rc4.d/S20zope -> ../init.d/zope
/etc/rc5.d/S20zope -> ../init.d/zope
其他进阶使用方式请 man update-rc.d

=============================

http://blog.chinaunix.net/uid-26000296-id-3986914.html

一、在/etc/rc.local中添加
如果不想将脚本粘来粘去,或创建链接什么的,
则:
step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;
step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;
如:
$ vim /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
. /etc/rc.d/rc.tune
/opt/pjt_test/test.pl

保存并退出;
再重启动测试下,则在其它的程序都启动完成后,将启动脚本;

二、可设定启动优先级的高级开机自启动脚本
1. 查看服务是否自启动
查看服务的当前状态
#service servicename status

查看服务的开机自动启动状态
#chkconfig --list servicename

2. 写好脚本,如 mysql,把它放到 /etc/init.d 下,修改属性:
$ sudo chmod x mysql

3. 创建符号连接:
$ cd /etc

下面有这么几个目录值得注意:
rcS.d rc0.d rc1.d ... rc6.d ,
(0,1... 6 代表启动级别 0代表停止,1代表单用户模式,2-5代表多用户模式,6代表重启)

它们的作用就相当于 redhat 下的 rc.d ,
你可以把脚本放到 rcS.d,然后修改文件名,给它一个启动序号,
如:
S88mysql.

不过最好的办法是放到相应的启动级别下面。
具体作法:
step1: 先把 mysql 放到 /etc/init.d目录下

step2: 查看当前系统的启动级别
$ sudo runlevel 
N 3

step3: 设定启动级别 
$ update-rc.d mysql start 98 2 . 
    98 为启动序号,
    2是系统的运行级别,可自己调整,
    注意不要忘了结尾的句点。

现在我们到 /etc/rc2.d 下,就多了一个 S98mysql 这样的符号链接。

4. 然后启动系统,测试一下设置是否有效。

三、移除符号链接
当你需要移除这个符号连接时,方法有三种:
1. 直接到 /etc/rc2.d 下删掉相应的链接,当然不是最好的方法
2. $ update-rc.d -f s10 remove //推荐做法
3. 如果 update-rc.d 命令你不熟悉,还可以试试看 rcconf 这个命令,也很方便。

四、引文
来源:http://hi.baidu.com/hosewen/blog/item/e77e27dbf4da4d68d0164e8e.html
linux 开机自动启动脚本方法
1. redhat的启动方式和执行次序是:
  加载内核
  执行init程序
  /etc/rc.d/rc.sysinit # 由init执行的第一个脚本
  /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
  /etc/rc.d/rc.local     #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)
  /sbin/mingetty # 等待用户登录

在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
  调入keymap以及系统字体
  启动swapping
  设置主机名
  设置NIS域名
  检查(fsck)并mount文件系统
  打开quota
  装载声卡模块
  设置系统时钟
  等等。

/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。
凡是以Kxx开头的,都以stop为参数来调用;
凡是以Sxx开头的,都以start为参数来调用。

调用的顺序按xx从小到大来执行。(其中xx是数字、表示的是启动顺序)
例如,
假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用
/etc/rc.d/rc3.d/下的脚本。

值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,
所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。

init在等待/etc/rc.d/rc执行完毕之后
(因为在/etc/inittab中/etc/rc.d/rc的action是wait),
将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。

2. init运行级别及指令
2.1 什么是INIT:
init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,
就通过启动一个用户级程序init的方式,完成引导进程。
所以,init始终是第一个进程(其进程编号始终为1)。

内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。
如果内核找不到init,它就会试着运行 /bin/sh,
如果运行失败,系统的启动也会失败。

2.2 运行级别
那么,到底什么是运行级呢?
简单的说,运行级就是操作系统当前正在运行的功能级别。
这个级别从1到6 ,具有不同的功能。
不同的运行级定义如下:
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式       # s   init s = init 1
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 没有用到
# 5 - X11 多用户图形模式(xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )

这 些级别在/etc/inittab 文件里指定。
这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。
在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。
这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)

3. chkconfig 命令(redhat 操作系统下)
不像DOS 或者 Windows,Linux 可以有多种运行级。常见的就是多用户的2,3,4,5 ,
很多人知道 5 是运行 X-Windows 的级别,而 0 就 是关机了。
运行级的改变可以通过 init 命令来切换。

例如,
假设你要维护系统进入单用户状态,那么,可以使用 init 1 来切换。
在Linux 的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K 和 S 开头的文件,
按后面的数字顺序,执行这些脚本。
对这些脚本的维护,是很繁琐的一件事情,Linux 提供了chkconfig 命令用来更新和查询不同运行级上的系统服务。

语法为:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name
chkconfig [--level levels] name

chkconfig 有五项功能:
  添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。
  如果是,返回 true,
  否则,   返回 false。 
--level 选项可以指定要查看的运行级而不一定是当前运行级。

如果在服务名后面指定了on,off 或者 reset,那么 chkconfig 会改变指定服务的启动信息。
on 和 off 分别指服务在改变运行级时的启动和停止。
reset      指初始化服务信息,无论有问题的初始化脚本指定了什么。
     对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,
     但是 reset 可以对所有运行级有效。
指定 --level 选项时,可以选择特定的运行级。

需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。
当切换运行级时,init 不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

选项介绍:
--level levels
     指定运行级,由数字 0 到 7 构成的字符串,如:
     --level 35 表示指定运行级3 和5。
     要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig --level 345 nfs off

--add name
     这个选项增加一项新的服务,chkconfig 确保每个运行级有一项 启动(S) 或者 杀死(K) 入口。
     如有缺少,则会从缺省的init 脚本自动建立。

--del name
     用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。

--list name
     列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

运行级文件
每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。
第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。
如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。

第二行对服务进行描述,可以用 跨行注释。
例如,random.init 包含三行:
     # chkconfig: 2345 20 80
     # description: Saves and restores system entropy pool for
     # higher quality random number generation.

表明 random 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为 80。
     好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。 
     设置自启动服务:chkconfig --level 345 nfs on

4. 实例介绍:
在linux下安装了apache 服务(通过下载二进制文件编译安装、而非rpm包)、apache 服务启动命令:            
$ /server/apache/bin/apachectl start

让apache服务运行在运行级别3下面。 
命令如下:
 
$ touch /etc/rc.d/init.d/apache
$ vim /etc/rc.d/init.d/apache
apache的内容:
      #!/bin/bash
      #Start httpd service
      /server/apache/bin/apachectl start

$ chown -R root /etc/rc.d/init.d/apache
$ chmod 700 /etc/rc.d/init.d/apache
$ ll /etc/rc.d/rc3.d/
  查看本级下所有服务的启动顺序;

$ ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache   
  S  是start的简写、代表启动;
  K  是kill的简写、代表关闭;
  60 数字代表启动的顺序。60以后通常是比较保险的数字,因为别的服务都启动了;

至此 apache服务就可以在运行级别3下 随机自动启动了。
(可以结合chkconfig 对启动服务进行相应的调整)

=============================================

将命令添加进开机自启相关推荐

  1. 如何设置 homestead zhong redis 开机自启_CentOS安装Redis

    安装Redis 第一步,安装gcc依赖.由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc环境(gcc -v),如果没有安装,执行命令yum install -y gcc进行安装: ...

  2. Linux设置开机自启

    文章目录 方法1:systemctl enable 方法2:/etc/rc.local 方法3:chkconfig 应用场景 方法1:systemctl enable 启用 开机自动启动 的命令 sy ...

  3. CentOS7下安装配置zookeeper集群及设置开机自启

    1.在做zookeeper集群之前需要有至少三台centos机器或虚拟机 一.Zookeeper原理简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程 ...

  4. Windows 开机自启bat

    在网上查询了很多的博客,也是碰了很多的鼻子灰 C:/dcmtk/bin/storescp.exe 2204 --fork -aet UCARD -od C:\dicomdata -v -su d +x ...

  5. Redis单机部署、添加开机自启、配置参数

    1.Redis简介 redis是使用C语言编写的开源的,支持网络,基于内存,可持久性的键值对存储数据库,2013年5月之前,Redis是最流行的键值对存储数据库,Redis采用内存数据集,支持多种数据 ...

  6. Linux添加开机自启服务

    Linux添加开机自启服务 su - chmod +x /etc/rc.local vim /etc/rc.local #末行追加启动命令 #例如 systemctl restart mysql su ...

  7. Linux安装redis并设置开机自启以及利用小红桶连接(命令行方式)

    1. 安装 首先在/usr/local目录下创建redis目录,然后进入到该目录下: mkdir /usr/local/rediscd /usr/local/redis 进入redis目录后,执行下面 ...

  8. Ubuntu安装VNC,配置多用户vnc连接Ubuntu,开机自启vnc命令

    Ubuntu安装VNC sudo apt update sudo apt install xfce4 xfce4-goodies #安装桌面 sudo apt install tigervnc-sta ...

  9. Ubuntu20.04设置开机自启脚本、开机自启命令(ubuntu自启,ubuntu开机自启)rc(run command)(systemd)(/etc/rc.local)(开机启动原理)开机自启动

    注意:ubuntu18.04也适用! 文章目录 Linux/Ubuntu开机启动原理 Linux的开机启动顺序 Ubuntu 20.04 设置开机自启脚本 使用 rc-local.service 1. ...

最新文章

  1. Matlab R2018a 64位安装教程
  2. 【ICML2021】计算机视觉中的自注意力机制教程,谷歌伯克利出品
  3. Java Lock接口分析之ReentantReadWriteLock
  4. sublime编辑器中文乱码的问题
  5. 各路资本暗战智能家居
  6. c语言菜单程序循环结构举例,C语言程序设计课件 第4章 循环结构.ppt
  7. taro 小程序转h5之后报错_记录微信小程序转Taro中遇到的问题
  8. 查找算法(C实现)(待补充)
  9. 网络中的计算机如果加入家庭组,win10系统加入其他计算机家庭组的操作方法
  10. pycharm 设置虚拟工作空间_七、连Pycharm都不知道怎么用,学什么Python
  11. 为翻译软件提供云端语料库支持,Tmxmall 瞄准了语言领域的大数据
  12. jQuery -- 光阴似箭(三):jQuery 操作 HTML 元素和属性
  13. android swf游戏下载工具,安卓swf游戏播放器下载
  14. 由摄像机的内参K计算视景体——glFrustum的参数推导
  15. 软件工程需求分析方法
  16. OpenGL学习(八)phong光照模型
  17. c语言标准库详解(一):stdio.h之文件操作
  18. Spring教程动画文字版
  19. (转)原始图像数据和PDF中的图像数据
  20. excel中区分移动联通电信号码

热门文章

  1. [BMZCTF]-WEB_ezphp
  2. AskBot可以帮助零售门店员工做什么?
  3. linux脚本小游戏,shell脚本(shopping小游戏)
  4. 知识点 —— Python进阶-2
  5. MQTT编译,及环境配置等
  6. 16进制转带符号的10进制,16进制转负数10进制
  7. Telephony框架分析
  8. 判断单双周java_Java实现LeetCode第31场双周赛(题号5456-5459)
  9. 直播预告: EMNLP 2020 专场四| AI TIME PhD
  10. 华为交换机镜像简要配置说明