首页 技术 正文
技术 2022年11月10日
0 收藏 507 点赞 4,269 浏览 12512 个字

linux下维护服务器之常用命令!

第1套如下:

正则表达式:

linux下维护服务器之常用命令

linux下维护服务器之常用命令

1.如何不要文件中的空白行和注释语句:

[root@localhost ~]# grep -v ‘^$’ 文件名 |grep -v ‘^#’

linux下维护服务器之常用命令

2.如何查阅系统上面正在运作当中的程序呢?

利用静态的 ps 或者是动态的top,还能以 pstree 来查阅程序树之间的关系!

linux下维护服务器之常用命令

一个是叧能查阅自己 bash 程序癿『 ps -l 』一个则是可以查阅

所有系统运作癿程序『 ps aux 』

[root@bj02 ~]# ps -l

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

4 R 0 21482 23427 0 78 0 – 1070 – pts/0 00:00:00 ps

4 S 0 23427 22669 0 76 0 – 1161 wait pts/0 00:00:00 bash

[root@bj02 ~]#

系统整体癿程序运作是非常多癿,但如果使用 ps -l 则仅列出不你癿操作环境 (bash) 有关癿程序而已,

亦卲最上局癿父程序会是你自己癿 bash 而没有延伸到 init 这支程序去!那举 ps -l 秀出来癿资料有哪

些呢? 我们就来观察看看:

· F:代表这个程序旗标 (process flags),说明这个程序癿总结权限,常见号码有:

o 若为 4 表示此程序癿权限为 root ;

o 若为 1 则表示此子程序仅迚行复制(fork)而没有实际执行(exec)。

· S:代表这个程序癿状忞 (STAT),主要癿状忞有:

o R (Running):该程序正在运作中;

o S (Sleep):开程序目前正在睡眠状忞(idle),但可以被唤醒(signal)。

o D :丌可被唤醒癿睡眠状忞,通常这支程序可能在等待 I/O 癿情冴(ex>打印)

o T :停止状忞(stop),可能是在工作控制(背景暂停)戒除错 (traced) 状忞;

o Z (Zombie):僵尸状忞,程序已经终止但即无法被秱除至内存外。

· UID/PID/PPID:代表『此程序被该 UID 所拥有/程序癿 PID 号码/此程序癿父程序 PID 号码』

· C:代表 CPU 使用率,单位为百分比;

· PRI/NI:Priority/Nice 癿缩写,代表此程序被 CPU 所执行癿优先级,数值越小代表该程序越忚

被 CPU 执行。详绅癿 PRI 不 NI 将在下一小节说明。

· ADDR/SZ/WCHAN:都不内存有关,ADDR 是 kernel function,挃出该程序在内存癿哪个部

分,如果是个 running 癿程序,一般就会显示『 – 』 / SZ 代表此程序用掉多少内存 / WCHAN

表示目前程序是否运作中,同样癿, 若为 – 表示正在运作中。

· TTY:登入者癿终端机位置,若为进程登录则使用劢忞终端接口 (pts/n);

· TIME:使用掉癿 CPU 时间,注意,是此程序实际花费 CPU 运作癿时间,而丌是系统时间;

· CMD:就是 command 癿缩写,造成此程序癿觉发程序乀挃令为何。

[root@bj02 ~]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 2168 632 ? Ss Jul31 0:54 init [3]

root 12584 0.0 0.0 1756 436 tty6 Ss+ Jul31 0:00 /sbin/mingetty tty6

root 2387 4.2 0.6 141972 26668 ? Sl Nov07 192:01 ./s5server

root 27017 0.0 0.0 4360 968 pts/0 R+ 10:35 0:00 ps aux

· USER:该 process 属亍那个使用者账号癿?

· PID :该 process 癿程序标识符。

· %CPU:该 process 使用掉癿 CPU 资源百分比;

· %MEM:该 process 所占用癿物理内存百分比;

· VSZ :该 process 使用掉癿虚拟内存量 (Kbytes)

· RSS :该 process 占用癿固定癿内存量 (Kbytes)

· TTY :该 process 是在那个终端机上面运作,若不终端机无关则显示 ?,另外, tty1-tty6 是本机上面癿登入者程序,若为 pts/0 等等癿,则表示为由网绚连接迚主机癿程序。

· STAT:该程序目前癿状忞,状忞显示不 ps -l 癿 S 旗标相同 (R/S/T/Z)

· START:该 process 被觉发吪劢癿时间;

· TIME :该 process 实际使用 CPU 运作癿时间。

· COMMAND:该程序癿实际挃令为何?

[root@gz01 ~]# ps -lA

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

4 S 0 1 0 0 80 0 – 725 – ? 00:01:43 init

1 S 0 24234 1 0 80 0 – 2052 – ? 00:00:00 openvpn

找出与s5server 与openvpn这两个朋务有关的 PID 号码?

[root@bj02 ~]# ps aux |egrep ‘(s5server|openvpn)’

root 2484 0.3 0.3 56104 15172 ? Sl Nov07 17:37 ./s5server

root 3054 0.0 0.0 7676 1552 ? S Jul31 0:00 /usr/sbin/openvpn –daemon –writepid /var/run/openvpn/server_202.108.54.10_53.pid –config server_202.108.54.10_53.conf –cd /etc/openvpn –script-security 3

3.观察系统的使用状态:

如果要看目前有谁在在线,可以下达『who』这个令,而如果要看网络的联机状态,可以下达『 netstat -a 』这个指令,而要看背景执行的程序可以执行『 ps -aux 』这个挃令。使用这些指令可以让你稍微浏览主机目前的使用状态!

4.僵尸 (zombie) 程序是什么?如何查找僵尸进程

造成僵尸程序的成因是因为该程序应该已经执行完毕,或者是因敀应该要终止了, 但是该程序癿父程序即无法完整癿将该程序结束掉,而造成那个程序一直存在内存当中。 如果你发现在某个程序癿 CMD 后面还接上 <defunct> 时,就代表该程序是僵尸程序啦

ps -A -o stat,ppid,pid,cmd | egrep ‘^[Zz]’

5.结束僵尸进程的方法有几种?

2种,一是:找到pid 然后 kill 掉;二是:reboot,因为 init 要重新启动,而重新启动 init 就是 reboot(所有癿程序都是依附在 init 这支程序底下的)

Man ps

…skipping…

-O format is like -o, but preloaded with some default columns. Identical to

-o pid,format,state,tname,time,command or -o pid,format,tname,time,cmd, see -o below.

-A Select all processes. Identical to -e.

[root@bj02 ~]# ps -A -o stat,ppid,pid,cmd | grep -e ‘^[Zz]’

Zs 11772 11775 [getss5pas.sh] <defunct>

Z 32225 14899 [sh] <defunct>

[root@bj02 ~]# ps -A -o stat,ppid,pid,cmd | egrep ‘^[Zz]’

Z 32225 14899 [sh] <defunct>

Zs 23615 23623 [getss5pas.sh] <defunct>

6.列出类似程序树的程序显示:

[root@www ~]# ps axjf

7.top的巧用

top 预讴使用 CPU 使用率 (%CPU) 作为排序的重点,如果你想要使用内存使用率排序,则可以按下『M』, 若要回复则按下『P』卲可。如果想要离开 top 则按下『 q 』吧!

8.如果某个进程导致负载过高,如何查该进程下面是否有子进程

先top 查找负载高的进程pid

pstree -Aup |less 然后在里面输入:/pid 搜进程,就会树状形式呈现

linux下维护服务器之常用命令

查进程号

[root@bj02 ~]# ps aux | grep ‘syslog’

root 2806 0.0 0.0 1824 604 ? Ss Jul31 6:51 syslogd -m 0

root 3515 0.0 0.0 4028 732 pts/0 S+ 15:09 0:00 grep syslog

[root@bj02 ~]# ps aux | grep ‘syslog’ | grep -v ‘grep’| awk ‘{print $2}’

2806

9.要删除某个程序,我们可以采取哪些方法:

使用 PID 或者是启动该程序癿挃令名称, 而如果要删除某个朋务呢?利用 killall ,可以将系统当中所有以某个指令名称启动的程序全部删除。

Killall -9 httpd

10.查看内存使用情况

[root@gz01 ~]# free -m

total used free shared buffers cached

Mem: 3895 3261 633 0 240 1285

-/+ buffers/cache: 1735 2159

Swap: 4031 71 3960

为何内存会被用光光?被用光是正常癿!而需要注意癿反而是 swap 癿量。一般来说, swap 最好丌要被使用,尤其 swap 最好丌要被使

用超过 20% 以上, 如果您发现 swap 癿用量超过 20% ,那举,最好还是买物理内存来揑吧! 因为,

Swap 癿敁能跟物理内存实在差徆多,而系统会使用到 swap , 绛对是因为物理内存丌足了才会这样做

癿!

11.观察系统启动时间不工作负载

uptime top

 

第2套如下:

1、如何删除通道执行ips |grep 通道名字ip tu de +通道设备名称2、如何开启80端口的转发,此为例子,如有其他的可以参考此例。在防火墙添加如下内容,并重启 /home/vpn/firewall.sh restart$IPTABLES -A FORWARD -d 210.77.146.101 -j ACCEPT$IPTABLES -t nat -A PREROUTING -p tcp –dport 80 -d 61.172.246.76 -j DNAT –to 210.77.146.101:80$IPTABLES -t nat -A POSTROUTING -p tcp –dport 80 -d 210.77.146.101 -j SNAT –to 61.172.246.763、本地拨VPN测试游戏IP时,要排除不需要的端口tcpdump -nn -i any host +ip and not port 2121 and not port 10804、用vi编辑器来替换文件替换文件中全部的1为2:%s/1/2/g替换文件中第一行到第二行的1为2:1,2s/1/2/g也可以在notepad编辑器中使用编辑列来达到操作目的,需要熟练使用5、简单的grep使用方法,查找加密后的密码grep https://www.shuzhiduo.com/A/GBJrYGERz0/mxb@lonlife.net /data0/soft/s5server_443_210.77.146.101/s5user.cfg6、查看某个服务器IP的当前连接的IP和流量,一查看是否有大流量攻击,限速为1M,如有超过1M的就需要注意iftop -i em1 -F 58.63.246.90/327、某个进程占用CPU较高,系统负载高top查到该进程号ps -ef 进程号查找是否有子进程netstat -tanup |grep 进程号查看是什么服务,IP多少,端口多少to +IP 查看是否有流量都没有的话,可以重启该服务8、查看某个IP是否可用ping 8.8.8.8 -I 210.77.146.1019、建立通道的方法需要掌握,快速有效建立通道。首先在为知笔记里搜索tunnelip, 查看规划通道IP,相同的两个公网IP能且只能建立一个通道。在服务器上查看所建的通道是否已经存在。只需替换下面例子中通道名字和内网公网IP,建议在notepad中使用ctrl+f替换。通道建立好,测试正常,写rc.local#gz02-sh05ip tunnel add gz02-sh05 mode ipip remote 61.172.246.76 local 58.63.246.91ip add add dev gz02-sh05 1.27.12.1 peer 1.27.12.2ifconfig gz02-sh05 1.27.12.1/30ip link set gz02-sh05 uproute add -host 1.27.12.2 dev gz02-sh05EOFf 1.27.12.2#sh05-gz02ip tunnel add sh05-gz02 mode ipip remote 58.63.246.91 local 61.172.246.76ip add add dev sh05-gz02 1.27.12.2 peer 1.27.12.1ifconfig sh05-gz02 1.27.12.2/30ip link set sh05-gz02 uproute add -host 1.27.12.1 dev sh05-gz0210、测试服务器带宽https://www.shuzhiduo.com/A/GBJrYGERz0/root@210.77.146.101‘s password:graphs_new_batch.php 100% 6344 6.2KB/s 00:002.关于主站的报警,再确认需要重启服务之前,需要执行命令。tcpdump -nn -i any -c 9999 -s 0 port 80 -w /home/201311110255_wpp(日期小时分钟_自己的名字)3.分析服务器上的僵尸进程。[root@gz01 snt]# ps -A -o stat,ppid,pid,cmd | grep -e ‘^[Zz]’Z 22966 6721 [sh] <defunct>4.点击验证登陆后出现“time out”的问题处理流程。①首先确定是哪种加速器模式和那个服务器不能验证登陆②进入相应的服务器上,切换到服务目录下[root@gz01 ~]# cd /data0/soft/s5server_53_58.63.246.90/③查询账号文件中是否存在该用户的账号信息[root@gz01 s5server_53_58.63.246.90]# grep https://www.shuzhiduo.com/A/GBJrYGERz0/wpp@lonlife.net s5user.cfghttps://www.shuzhiduo.com/A/GBJrYGERz0/wpp@lonlife.net 94323b45 – 128k – – – – – – -④如果查询不存在的话,看下这个账号文件的日期是不是最新的[root@gz01 s5server_53_58.63.246.90]# ll s5user.cfg-rw-r–r– 1 root root 455461 Nov 12 03:04 s5user.cfg⑤如果不是最新的,可能是这个原因导致验证登陆失败,需要手动执行账号同步文件。[root@gz01 ~]# /home/sh/getss5pas.shdownLoad ——————>–2013-11-12 03:06:18– http://lonlife.net/b026324c6904b2a9cb4b88d6d61c81d1/ss5user.tar.gzResolving lonlife.net… 120.31.133.106, 183.60.42.101Connecting to lonlife.net|120.31.133.106|:80… connected.HTTP request sent, awaiting response… 302 FoundLocation: http://120.198.233.12:80/videoplayer/ss5user.tar.gz?ich_u_r_i=09bbce27196911722afb1a2fe5fde2d5&ich_s_t_a_r_t=0&ich_e_n_d=0&ich_k_e_y=1345118911751963062416&ich_t_y_p_e=1&ich_d_i_s_k_i_d=1&ich_s_e_q=128451952&ich_u_n_i_t=1 [following]–2013-11-12 03:06:18– http://120.198.233.12/videoplayer/ss5user.tar.gz?ich_u_r_i=09bbce27196911722afb1a2fe5fde2d5&ich_s_t_a_r_t=0&ich_e_n_d=0&ich_k_e_y=1345118911751963062416&ich_t_y_p_e=1&ich_d_i_s_k_i_d=1&ich_s_e_q=128451952&ich_u_n_i_t=1Connecting to 120.198.233.12:80… connected.HTTP request sent, awaiting response… 200 OKLength: 233244 (228K) [application/x-gzip]Saving to: ?.home/ss5/ss5user.tar.gz?100%[===========================================================================================================>]
233,244 –.-K/s in 0.05s 2013-11-12 03:06:18 (4.82 MB/s) – ?.home/ss5/ss5user.tar.gz?.saved [233244/233244]s5server_User.cfgs5server_User_tw01.cfgmd50.txtcopy ————->5.处理openvpn单先故障流程①客户端用户反馈那个线路的VPN链接不上,在 http://lonlife.net/lonlife.xml <vpnservers> 里面查找线路对应的ip和端口②进入相应的服务器,使用命令查询该服务器上所有vpn服务的状态;[root@gz01 ~]# netstat -upln | grep openvpnudp 0 0 58.63.246.90:23 0.0.0.0:* 13800/openvpn udp 0 0 203.78.190.1:23 0.0.0.0:* 13772/openvpn udp 0 0 120.197.6.174:23 0.0.0.0:* 13740/openvpn udp 0 0 116.213.249.195:23 0.0.0.0:* 13710/openvpn udp 0 0 110.65.68.66:23 0.0.0.0:* 13699/openvpn udp 0 0 58.63.246.90:443 0.0.0.0:* 6301/openvpn udp 0 0 110.65.68.66:443 0.0.0.0:* 13817/openvpn udp 0 0 203.78.190.1:443 0.0.0.0:* 13784/openvpn udp 0 0 120.197.6.174:443 0.0.0.0:* 13758/openvpn udp 0 0 116.213.249.195:443 0.0.0.0:* 13725/openvpn ③找到需要重启的vpn服务的进程id号(例如:6301)④确定此openvpn进程的是否有子进程及统计子进程id号[root@gz01 ~]# ps -ef | grep openvpn | grep 6301nobody
6301 1 2 Nov10 ? 01:03:34 /usr/sbin/openvpn –daemon –writepid
/var/run/openvpn/server_58.63.246.90_443.pid –config
/etc/openvpn/server_58.63.246.90_443.conf –cd /etc/openvpn
–script-security 3如果一条记录就是没有子进程(第二的字段是进程id,第三个字段是父进程id号)⑤重启服务需要先kill掉,再启动服务;kill -9 pidps -ef | grep openvpn | grep pid 确定进程已经被完全结束掉了!⑥删除 此openvpn 进程 pid文件,如果不删除的话,会导致服务启动不了!cd /var/run/openvpn/rm /var/run/openvpn/server_58.63.246.90_443.pid⑦切换到openvpn的配置文件的目录,启动服务!cd /etc/openvpn/usr/sbin/openvpn
–daemon –writepid /var/run/openvpn/server_58.63.246.90_443.pid
–config /etc/openvpn/server_58.63.246.90_443.conf –cd /etc/openvpn
–script-security 3 ⑧确定openvpn已经正常启动netstat -upln | grep openvpn6.本地拨台湾的vpn链接不上的办法。由于本地拨台湾的vpn连上的几率很小,基本上每次都要在台湾的服务器上将pptpd服务重启很多次所以有些时候为了方便使用台湾的ip进行游戏测试,可以先拨上gz01的vpn,然后将分到的vpn ip在gz01上通过高级源路由把数据转到台湾的服务器但是实现之前必须保证gz01和你要拨的服务器之间是有通道的。具体的操作步骤:①本地拨gz01 vpn,查看ip(172.0.0.5);linux下维护服务器之常用命令②在gz01服务器上查看高级源路由。[root@gz01 ~]# ip ru0: from all lookup local32752: from 123.66.27.2 lookup tt32753: from 172.0.0.1 lookup 9032754: from 172.0.0.1 lookup 9032755: from 172.42.0.3 lookup 10032756: from 10.11.0.0/16 lookup gf32757: from 1.200.0.14 lookup gf32758: from 1.200.0.14 lookup gf32759: from 183.60.126.14 lookup ct232760: from 58.63.246.91 lookup ct132761: from 203.78.190.1 lookup tw32762: from 120.197.6.174 lookup yd32763: from 110.65.68.66 lookup edu32764: from 116.213.249.195 lookup cu32765: from 58.63.246.90 lookup ct132766: from all lookup main32767: from all lookup default③添加一条路由表格;ip ru add from 172.0.0.5/32 tabl 110 (这个数值代表表格的名字,只要不和其他的重复就行)④查看是否添加成功;[root@gz01 ~]# ip ru0: from all lookup local32751: from 172.0.0.5 lookup 11032752: from 123.66.27.2 lookup tt32753: from 172.0.0.1 lookup 9032754: from 172.0.0.1 lookup 9032755: from 172.42.0.3 lookup 10032756: from 10.11.0.0/16 lookup gf32757: from 1.200.0.14 lookup gf32758: from 1.200.0.14 lookup gf32759: from 183.60.126.14 lookup ct232760: from 58.63.246.91 lookup ct132761: from 203.78.190.1 lookup tw32762: from 120.197.6.174 lookup yd32763: from 110.65.68.66 lookup edu32764: from 116.213.249.195 lookup cu32765: from 58.63.246.90 lookup ct132766: from all lookup main32767: from all lookup default⑤查看通道ip[root@gz01 ~]# ips | grep tw021.21.10.1 dev gz01t-tw0225 scope link1.59.15.2 dev gz01-tw02 scope link1.59.15.0/30 dev gz01-tw02 proto kernel scope link src 1.59.15.11.21.10.0/30 dev gz01t-tw0225 proto kernel scope link src 1.21.10.2⑥为80表格添加一条高级路由(假设想用tw02的ip:220.128.48.28做测试)ip route add default via 1.59.15.2 tab 110⑦查看下路由是否加载成功。

[root@gz01 ~]# ip ro sh tab 110default via 1.59.15.2 dev gz01-tw02⑧测试(ip138.com 或者 123cha.com)linux下维护服务器之常用命令⑨不用的话,可以删除掉;ip route del default via 1.59.15.2 tab 110ip ru del from 172.0.0.5/32 tabl 110linux下维护服务器之常用命令7.抓取游戏的服务器ip段,通过swk分析整理数据。①在gz02上抓取台服lol的游戏数据,导出到文本文件中(可以抓取30min,多次抓取)tcpdump -nn -i any host 112.121 and udp > /home/wpp ②通过awk分析出台服lol的udp流量的游戏ip段;awk ‘{print $5}’ /home/wpp |grep -v 172.0|sort -n|uniq -c|sort -n |grep -v 8000|grep -v 74.125 | grep 112.121 1008 112.121.83.77.5186: 1038 112.121.78.76.5102: 1071 112.121.78.103.5111: 1073 112.121.84.181.5118: 1111 112.121.83.58.5111: 1118 112.121.84.226.5133: 1165 112.121.84.65.5146: 1168 112.121.83.165.5193: 1211 112.121.78.126.5115: 1220 112.121.83.87.5190: 1221 112.121.83.71.5100: 1222 112.121.88.182.5147: 1223 112.121.78.116.5120: 1231 112.121.78.53.5124: 1238 112.121.83.155.5175: 1239 112.121.84.64.5107: 1246 112.121.83.109.5101: 1270 112.121.88.224.5101: 1271 112.121.88.201.5100: 1323 112.121.83.115.5130: 1352 112.121.83.124.5103: 1400 112.121.83.82.5120: 2185 112.121.78.43.5120: 2546 112.121.78.42.5101: 分析得:台服lol的udp数据的ip段112.121.78.0/24112.121.83.0/24112.121.84.0/24112.121.88.0/24

 

第5套如下:

1、通过进程id查看该进程的程序的位置(例如进程id为10532) [root@sh04 lat]# ll /proc/10532/exelrwxrwxrwx. 1 root root 0 Nov 11 06:30 /proc/10532/exe -> /data0/soft/s5server_443_222.73.29.34/s5server2、通过进程id查看该进程的运行环境的当前目录 (例如进程id为10532)[root@sh04 lat]# ll /proc/10532/cwdlrwxrwxrwx. 1 root root 0 Nov 12 17:54 /proc/10532/cwd -> /data0/soft/s5server_443_222.73.29.34 3、通过进程id 查看该进程建立 的通信连接 (例如进程id为10532) [root@sh04 lat]# netstat -tuanp | grep 10532tcp 0 0 1.27.11.2:52651 112.121.85.181:36456 ESTABLISHED 10532/./s5server tcp 0 0 1.27.11.2:42382 206.127.146.73:6112 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:443 117.44.34.71:4243 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:443 118.114.237.138:4296 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:36669 223.252.238.166:3724 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:443 59.45.23.22:43531 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:443 59.45.23.22:52095 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:443 222.223.234.28:2891 ESTABLISHED 10532/./s5server tcp 0 0 222.73.29.34:443 218.79.168.41:30419 ESTABLISHED 10532/./s5server tcp 0 0 1.27.11.2:35755 60.254.142.24:80 ESTABLISHED 10532/./s5server   4、修改已经存在的路由117.128.0.0/10 via 222.73.29.33 dev em1 为117.128.0.0/10 via 207.3.9.23 dev pip4 ip route replace 117.128.0.0/10 via 207.3.9.23 dev pip4

5、linux 下防火墙框架netfilter 链表结构

linux下维护服务器之常用命令

6、从本机发出去的报会经过netfilter 框架的哪些链?顺序是什么? output -》 postrouting  7、netfilter 框架的nat 表在哪些链上生效? PREROUTING POSTROUTING OUTPUT 

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905