一个usb系统,其控制芯片的程序是C写的,现在想加入温度传感器,已有现成的汇编代码(伟纳ME300A+产品提供)


          TEMPL   DATA  26H
          TEMPH   DATA  27H

          FLAG1 EQU 38H  ;是否有ds18b20
          DATE_LINE EQU P3.6 ;接到ds18b20数据线引脚
;**************************************************
          ORG 0000H
MAIN:     MOV SP,#30H
START:    CALL RESET
          SETB P3.2
          CALL RESET
          JNB FLAG1,MAIN
          MOV A,#0CCH         ; 跳过ROM匹配
          CALL WRITE
          MOV A,#044H         ; 发出温度转换命令
          CALL WRITE
          CALL RESET
          MOV A,#0CCH         ; 跳过ROM匹配
          CALL WRITE
          MOV A,#0BEH         ; 发出读温度命令
          CALL WRITE
          CALL READ           ; 将读出的温度数据保存到26H/27H
          ;CALL CONVTEMP
          ;CALL DISPBCD
          ;CALL DISP1
          JMP MAIN
;*************************************************
RESET:  SETB DATE_LINE
        NOP
        CLR DATE_LINE
        MOV R0,#0D6H           ;主机发出延时642微秒的复位低脉冲
        MOV R1,#03H
TSR1:   DJNZ R0,$
        MOV R0,#0D6H
        DJNZ R1,TSR1
        SETB DATE_LINE        ;然后拉高数据线
        NOP
        NOP
        NOP
        MOV R0,#4AH
TSR2:   JNB DATE_LINE,TSR3   ;等待DS18B20回应
        DJNZ R0,TSR2
        JMP TSR4             ; 延时
TSR3:   SETB FLAG1           ; 置标志位,表示DS1820存在
        JMP TSR5
TSR4:   CLR FLAG1            ; 清标志位,表示DS1820不存在
        JMP TSR7
TSR5:   MOV R0,#06BH
TSR6:   DJNZ R0,$            ; 时序要求延时一段时间
TSR7:   SETB DATE_LINE
        RET
;********************************************************************
WRITE:  MOV R2,#8            ;一共8位数据
        CLR CY
WR1:
        CLR DATE_LINE        ;开始写入DS18B20总线要处于复位(低)状态
        MOV R3,#10
        DJNZ R3,$            ;总线复位保持16微妙以上
        RRC A                ;把一个字节DATA 分成8个BIT环移给C
        MOV DATE_LINE,C      ;写入一个BIT
        MOV R3,#2EH
        DJNZ R3,$            ;等待46微妙
        SETB DATE_LINE       ;重新释放总线
        NOP
        DJNZ R2,WR1          ;写入下一个BIT
        SETB DATE_LINE
        RET
;******************************************************
READ:    MOV R4,#2            ; 将温度高位和低位从DS18B20中读出
         MOV R1,#26H          ; 存入26H 27H
RE00:    MOV R2,#8
RE01:    CLR CY
         SETB DATE_LINE
         NOP
         NOP
         CLR DATE_LINE        ;读前总线保持为低
         NOP
         NOP
         NOP
         SETB DATE_LINE       ;开始读总线释放
         MOV R3,#18           ;延时18微妙
         DJNZ R3,$
         MOV C,DATE_LINE      ;从DS18B20总线读得一个BIT
         MOV R3,#46
         DJNZ R3,$            ;等待46微妙
         RRC A                ;把读得的位值环移给A
         DJNZ R2,RE01         ;读下一个BIT
         MOV @R1,A
         INC R1
         DJNZ R4,RE00
         RET

            END
阅读全文
http://www.phpchina.com/html/68/n-34068.html
         很多程序员在干了两三年后,会有一阵子的迷惘,他们在想,我这样子的算是优秀的程序员吗?这日子一天一天的过,每天不断的重复,也不知道干了些什么。其实当你有这个迷惘的时候,证明你最少是一个熟手了,不是刚毕业那会,急着工作,什么都不会,凡事现学,那时候想不到这个问题。当你做了两三年,公司里的项目基本都对你不陌生了,你也算是这个公司的老人了,对于写代码完成任务,非常容易了。这个时候人很容易感到厌倦,弄来弄去还是这点东西,没劲啊。这个时候特想知道别人是怎么过来的,别人每天都在干吗。我是不是要学点新的东西了呢。阅读全文
以PHP同事突然问我这个问题,呵呵,记录一下:
方法一:    如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
    truncate table 表名

方法二:   dbcc checkident ('table_name', reseed, new_reseed_value)   当前值设置为   new_reseed_value。如果自创建表后没有将行插入该表,则在执行   DBCC   CHECKIDENT   后插入的第一行将使用   new_reseed_value   作为标识。否则,下一个插入的行将使用   new_reseed_value   +   1。如果   new_reseed_value   的值小于标识列中的最大值,以后引用该表时将产生   2627   号错误信息。

方法二 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
转载来源:http://www.160km.com/bear/?p=103
javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、  传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。天空

例如:<script language=”javascript”>document.write(’<a href=”http://www.160km.com/?logout&aid=7& u=’+encodeURIComponent(”http://www.160km.com/bruce42″)+’”>退出</a& gt;’);</script>

2、  进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI(”http://www.160km.com/do/s?word=小福&ct=21″);

3、  js使用数据时可以使用escape

例如:搜藏中history纪录。

4、  escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
最近,手机费用暴涨,我得查查短信为何这么多,进入移动网站,得到一个短信清单如下:

短信费                  81.05
彩信费                 1.80
GPRS流量费          273.33
本地基本话费        1.99
国内长途费           28.03
必选套餐费          20.00
福娃音乐计划套餐费  6.00
费用合计             412.20 
短信总记录数      1114              
免费短信记录数   300

重点查短信:
发送时间    通信类型    对方号码    基本通话费

11月01日00:00:33    普通短信    861377489428*    0.00 
11月01日00:01:16    普通短信    861358196226*    0.00 
11月01日00:04:53    普通短信    861377489428*    0.00 
11月01日00:08:03    普通短信    861386815989*    0.00
通过editplus按住:alt+鼠标选取出号码,丢如Linux,通过命令:cat mobile.txt|sort > mobile_number
cat mobile.txt |sort |uniq -c 

短信条数  短信号码
65 861350110466*
44 861365766558*
94 861377489428*
10 861381000687*
239 861386815989*

两个大头,共发短信552:

[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt &#124;grep 861358196226*&#124;wc
    313     313    4695      这是**的
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt &#124;grep 861386815989*&#124;wc
    239     239    3585      这个是**点的


得到完美的结论。。。呵呵呵!
去掉重复的QQ号码,(一个号码一行):

cat qqyellow.txt |sort|uniq -c
1.Linux下关闭和开启防火墙
  
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off


2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop


需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 字串6
[root@101/udp socket_interface]# /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


2.查看防火墙:
iptables -L
1.下载程序:
去这个网站下载:http://www.it-adv.net/index.php?action=downloads,然后:LINUX X86/32版全新发布fetion20080910048-linux.tar.gz,下载地址:
                 http://www.it-adv.net/fetion/download/fetion20080910048-linux.tar.gz
如果是64位的请下载:LINUX X86/64版全新发布fetion20080910047-lin64.tar.gz
下载地址:
http://www.it-adv.net/fetion/download/fetion20080910047-lin64.tar.gz

2.下载链接库库:
LINUX X86/32支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
下载地址:
  http://www.it-adv.net/fetion/library32.rar
解压到:/home/xiangdong2/sms/library32

如果是64位的请下载:
LINUX X86/64支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
http://www.it-adv.net/fetion/library64_linux.tar.gz

export LD_LIBRARY_PATH=/home/xiangdong2/sms/library32  //这一步很重要,添加链接库到环境变量LD_LIBRARY_PATH中
tar xzf fetion200XXXXXXXX-linux.tar.gz

cd install #注:自动解到install目录
./fetion -u xxxxxxxx #运行即可 -u 后面为您的飞信账号,如:
./fetion -u 660157287
请输入密码:
登陆... 服务器返回数据中无法定位sipc-proxy
这个问题我也不清楚,呵呵!

你也可以把:/home/xiangdong2/sms/library32  的所有的东西放到fetion的目录里面,然后直接运行:

LD_LIBRARY_PATH=. ./fetion -u 660157287 -p ****密码****

LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p ****密码****


点击在新窗口中浏览此图片


web飞信:
http://www.websafeguard.cn/webfetion/


资料:
telnet 221.176.31.36 8080
把那两个lib文件cp到lib目录下:直接运行:./fetion
netstat -ntp:
正确应该是:
tcp        0      0 10.1.27.61:33684        221.176.31.36:8080      ESTABLISHED 968/fetion  

Debug:
LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p 001002 -d
在当前目下生成:13811461081_debug.log 类似文件名称!

FreeBSD:

FreeBSD的支持库直接从ports安装揪可以: cd /usr/ports/devel/ace && make install clean
下载:FreeBSD最新程序:freebsd 版飞信 20081128
地址:http://www.it-adv.net/fetion/fetion_freebsd_20081128.tar.gz
如下:
下载cacti 插件.
cacti 页面导入插件
将应用程序解压到/data/monitor/目录
将支持库直接解压到/data/monitor/目录

cp lib*so* /usr/lib/
ln -s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4
ln -s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4

以下配置为linux 配置。freebsd 中没有配置也一样可以运行
设定lib库配置文件
#vi /etc/ld.so.conf
#增加一条
/usr/lib/
#保存退出后,执行
#ldconfig

先编译麻烦:
pkg_add -r ace
站长提供的是在:freebsd7.0开发的一个二进制文件,6.2的容易出现问题啊。。!














**rvinzhou(周*飞) 14:28:27
波波  请教个问题  你晓得一个php请求  在服务器上占用多少内存  这个有办法查的吗

jackxiang(向东) 14:30:23
$a = memory_get_usage(); Bytes为单位。

也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)
由下面的例子可以看出,要想减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除(下面就是测试真的销毁了没)。类似的还有:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。
PHP memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。
所以在实际编程中,可以用PHP memory_get_usage()比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。


<?php
for ( $i = 1; $i < 100; $i++ ) {
$str = str_repeat('01234567', $i);
$a = memory_get_usage();
unset($str);
echo $str;
$b = memory_get_usage();
echo "\n<br />".$i.': '.($b - $a).' Bytes.';
}
?>




<br />10: 0 Bytes.
<br />11: 0 Bytes.
<br />12: 0 Bytes.
<br />13: 0 Bytes.
<br />14: 0 Bytes.
<br />15: 0 Bytes.
<br />16: 0 Bytes.
<br />17: -148 Bytes.
<br />18: -156 Bytes.
<br />19: -164 Bytes.
<br />20: -172 Bytes.
<br />21: -180 Bytes

阅读全文
第一种方法:$varname=null
第二种方法:unset($varname)
代码:
<?php
$a = array(
    'a' => 'a',
    'b' => 'b'
);
$b = array(
    'a' => 'a',
    'b' => 'b'
);
$a['b'] = null;
unset($b['b']);
print('<pre>');
print_r($a);
print('<br />');
print_r($b);
print('</pre>');
?>

结果:
Array
(
    [a] => a
    =>
)
Array
(
    [a] => a
)
访问世纪流年BLOG站时看到的一段文字,对设计模式的解释很风趣,能够让人很快的了解其含义,学到了不少东西,以下是文章的内容:

对设计模式很有意思的诠释,呵呵,原作者不详。
我来添加一句:世纪流年就是现在thinkPHP的原作者,我读大学的时候找他要到过前世纪流年BLOG站的模板!

阅读全文

# cat stream


#! /bin/bash

# Write by Neil.xu qq:37391319 email: xurongzhong@gmail.com

# 2008-8-19 we need to monitor streams of LTS channels, so write this script

typeset in in_old dif_in dif_in1 dif_out1
typeset out out_old dif_out

in_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }' )
out_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')

while true
do
         sleep 1
         in=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }')
         out=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')
         dif_in=$((in-in_old))
         dif_in1=$((dif_in * 8 / 1024 / 1024 ))
         dif_out=$((out-out_old))
         echo " IN: ${dif_in} bytes OUT: ${dif_out} bytes "
         dif_out1=$((dif_out * 8 / 1024 / 1024 ))
         echo "IN: ${dif_in1} mbps OUT: ${dif_out1} mbps"
         in_old=${in}
         out_old=${out}
done
startkde :可以成功.请教: 为什么startx不能起? gnome-session   &
最近在做公司的服务器网络监控。由于要做到实时监控,所以想到要用发送短信到手机的方式。在网上找到一个linux命令行下的飞信工具。来配合 nagios做监控。服务器有任何状况都可以发送短信到手机上。这样对于系统管理者来说很是方便。我在Debian和Ubuntu下测试成功。下面是飞信在debian系统的安装过程。

1.首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。

2.下载飞信的linux客户端程序.解开包后只有一个文件sms。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要libace的glibc库的支持。阅读全文

想玩3D桌面,但不會裝的朋友,
體驗fedora core6 + beryl 3D效果

fc6+beryl本站下載點:  ftp://cle.linux.org.tw/OSSACC/pakelivecd/fc6-livecd.iso 阅读全文
实际例子先:
(1)想要截获所有172.25.38.70的主机收到的和发出的所有的数据包:


(2)

(3)截取长度为5000,抓取10000个包,网卡为eth1,所有80端口到日志文件log.dmp中:

上面参数的说明如下:
tcpdump -i $Nnet -s 5000 -c 10000 dst port $db   -w log.dmp    监听$nnet,抓取10000个送到$db端口的包,截取每个包的前5000bytes保存到log.dmp文件中。
-i 指定监听哪个网络端口
-s 截取包的长度,0表示截取整个数据包
-c参数指定要监听的数据包数量
dst 监视所有目标端口为$db的数据包
-w 输出到名为log.dmp的文件中
阅读全文
如果会话窗口被kill,状态转为dead无法连接,可以使用screen -wipe命令清除会话窗口:


开机启动screen并在后台运行其他程序:
目的:开机启动后能看到输出日志,方便调试代码:

cat /home/irdcops/shell/starteasyswoole/start.sh



测试执行:
chmod a+x /home/irdcops/shell/starteasyswoole/start.sh
sh /home/irdcops/shell/starteasyswoole/start.sh
#screen  -ls
        3573.easyswoole (Detached)
screen -x 3573


放到开机启动:
vi /etc/rc.local
#开机启动easyswoole
sh /home/irdcops/shell/starteasyswoole/start.sh

screen建立新窗口时更改窗口尺寸:
CentOS 下禁止screen建立新窗口

实践OK来自:https://blog.csdn.net/zbuter/article/details/79520721

时更改窗口尺寸

Xshell或Putty之类的连接到Centos下使用screen时会改变窗口的尺寸,非常烦人,可以通过如下方法修改使其不更改窗口尺寸。

编辑/etc/screenrc或~/.screenrc 加入下面的代码

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>  
# (This fixes the "Aborted because of window size change" konsole symptoms found  
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

来自: https://www.linuxidc.com/Linux/2015-12/126193.htm


screen中rz/sz无效?貌似无解。参考 https://www.wikivs.com/wiki/screen_vs_tmux ,zmodem transfers是screen only的功能。
Sz 卡死怎么办?杀死它:        ps aux|grep screen |grep -v grep|awk '{print "kill -9 " $2}'|sh
安装:
CentOS下安装screen:yum install screen

0、创建screen会话:
screen -S wordname

1、查看当前全部的 screen :
$screen -ls
会显示下面的信息:
[root@localhost uploadPythonTest]# screen -ls
There are screens on:
        20893.test      (Attached)
        21055.jack      (Attached)
其中每一条最前面的就是 screen 的 id

2、连接到 detached 的 screen :
$screen -r 1542  //只能一个终端连接,可以用screen -x test (会话名:如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;),或screen -x 20893观看,事家证明观看终端也能修改,只要一个观看终端用exit退出,其它都灰飞烟灭了。如下:
[root@localhost uploadPythonTest]# screen -ls
There are screens on:
        20893.test      (Attached)
        21055.jack      (Attached)
特殊情况:
[root@iZ25dcp92ckZ multepoolserver]# screen -ls
There are screens on:
        15141.swoole    (Detached)
        2470.swoole     (Detached)
        29718.pts-1.iZ25dcp92ckZ        (Detached)
[root@iZ25dcp92ckZ multepoolserver]# screen -x 15141.swoole  //不能只写:screen -x swoole,因为两个一样的,只是编号不一样,要么写:screen -x 15141也成。screen -r 也是一样的道理。


两人时实看到对方的操作的话可以用 screen命令 相同用户一个再终端输入screen 另一个输入screen -x 然后你们每个人的操作都可以看到对方。
screen -x  jack       或:  screen -x  21055

3、暂时离开从 screen 中退出(但不关闭 screen 进程):
按 Ctrl-A-D,暂时离开,保留screen会话中的任务或程序,当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)

4.恢复会话,恢复screen会话:
当回来时可以再执行执行:screen -r wordname 即可恢复到离开前创建的lnmp会话的工作界面。
如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;

screen -d -r yourname -> 结束当前session并回到yourname这个session
screen -d -r swooleHello //不是在screen或screen里可以直接跳转到另一个screen
5、关闭screen会话:
执行:exit  ,实践发现:无论用screen -x test多少个terminal进行同时操作演示,一旦任意有一个退出,整个就退了了。不想退出得按ctrl + a +d挂起继续干其它事情。

6、远程演示:

首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。

7、常用的快捷键

Ctrl + a c 在当前screen会话中创建窗口
Ctrl + a w 窗口列表
Ctrl + a n 下一个窗口
Ctrl + a p 上一个窗口
Ctrl + a 0-9 在第0个窗口和第9个窗口之间切换
______________________________________________________
Linux让程序后台运行命令之screen与nohup:
http://www.2cto.com/os/201110/109458.html

Linux Screen 超简单用法:
http://www.cnblogs.com/biggates/archive/2013/01/30/2883164.html
______________________________________________________
===Gaston:
ctrl+a c 创建scree
ctrl+a p  上一个scree
ctrl+a n 下一个scree

===
检查是否在screen中:tty
结果应该为:/dev/pts/0
退出:Ctrl+a+d
===
Linux结束screen进程:
linux screen 全部退出 -- 脚本

来自:http://blog.csdn.net/lucktroy/article/details/7704115

以下是自己实践Ok的:
----------------------------------------------------------------------------------------------------------------------
以下都是在screen里面才能有效的快捷键【ctrl-a】:
首先进入scree里后:也就是如输入screen后,如:screen -S jackxiang ,下面的快捷键才能用。
Ctrl-a c              新建 bash screen 终端  【这个也很有用】
Ctrl-a "              列出 【这个最有用,可以列出来选】
Ctrl-a A             重命名  【这个可以用来做一个终端开发时用,结合上面的Ctrl-a "   很好用】
Ctrl-d                 退出当前的screen,如果没有进入screen,该命令失效



进而可以替代上面的 Ctrl-a "  命令,实现快速切换的功能,实践是Ok的。(来自:gastonwu):
ctrl+a c 创建scree
ctrl+a p  上一个scree
ctrl+a n 下一个scree

screen -S name  以name命名的会话  【 这个在一开始就拿好名也会用到】
screen -r name/ID //回到名称为name的会话  【实践有些问题,可能是没用好?这个是用来做一些自己前面自己命名好的name返回】
screen -d -r //可以把一个正在运行的会话抢过来   这种情况是在两人都有用screen的情况下打劫
----------------------------------------------------------------------------------------------------------------------


安装完成后可以直接使用screen相关命令操作
1)screen -ls //列出当前有哪些Screen在运行
2)screen -S name //以name命名的会话
3)screen -r name/ID //回到名称为name的会话
4)
[root@test ~]# screen -ls
抢会话: 2542编号
screen -d -r 2542
抢后: 变为attached
screen -ls
There are screens on:
2542.pts-0.localhost    (Attached)
2728.name       (Attached)


screen -S  jackxiang
screen -ls jackxiang这个自己命名的会话出来了
There are screens on:
2542.pts-0.localhost    (Attached)
2728.name       (Attached)
2851.jackxiang  (Attached)

从另一个终端把这个jackxiang抢过来:
screen -d -r jackxiang //这时这个会话给我抢了,被抢的终端显示:[remote detached],并退出。

tty看下:
root@192.168.137.128:~# tty
/dev/pts/10
Ctrl-a S 新建水平分割窗口(大写S,用shift+s写大写,测试Ok)
Ctrl-a Tab 切换窗口 (测试Ok)
---------------------------------------------------------------------------------------------------------------------------------
比如centos32位的,可以执行以下命令安装:
yum install screen

其实就是虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口,每个窗口相当于一个linux shell窗口,可以执行的操作和正常shell完全一样。
终端中的窗口操作】(挂载某个终端)
Ctrl-a c         新建 bash screen 终端
Ctrl-a "         列出
Ctrl-a A         重命名
Ctrl-a n         在当前窗口中切换到下一个 screen 终端
Ctrl-a p         在当前窗口中切换到上一个 screen 终端  
Ctrl-a 空格      窗口切换
Ctrl+a w :窗口列表
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
来自:http://hi.baidu.com/willor/item/3b60db19132035fd65eabfab

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下来自:http://blog.hackroad.com/read.php/573.htm
代码:Ctrl-a c 新建 bash screen 终端
Ctrl-a " 列出
Ctrl-a A 重命名
Ctrl-a n 在当前窗口中切换到下一个 screen 终端
Ctrl-a p 在当前窗口中切换到上一个 screen 终端

Ctrl-a d 断开所有 screen 终端,返回 screen 执行前状态,但 screen 内所有终端的任务都在执行
screen -ls 列出当前用户的所有 screen 实例,包括联接和断开的
screen -R 重新联接到已断开的 screen 实例,如果有多个已断开的 screen 实例,则用 区分

Ctrl-a 进入选择模式
或 Ctrl-u 光标上移一页
或 Ctrl-d 光标下移一页
或 h 光标左移一格
或 j 光标下移一行
或 k 光标上移一行
或 l 光标右移一格
选择开始,选择结束
退出选择模式
Ctrl-a ] 粘贴选择的内容
----------------------------------------------------------------------------------------------------------------------
如果你没有安装有screen,可以到以下网站搜索适合你的系统的RPM包。
http://www.rpmfind.net/linux/rpm2html/search.php?query=screen
我是6.3能找到如下centos的东东,并下载安装是Ok的:
CentOS 6.3 for x86_64  screen-4.0.3-16.el6.x86_64.rpm
CentOS 6.4 for i386  screen-4.0.3-16.el6.i686.rpm
CentOS 6.3 for i386  screen-4.0.3-16.el6.i686.rpm
CentOS 6.4 for x86_64  screen-4.0.3-16.el6.x86_64.rpm

----------------------------------------------------------------------------------------------------------------------
Screen 用法:
#screen
进入新的终端,然后:ctrl+a+p  回到前终端,再:ctrl+a+n到当前运行screen后的终端。
#screen -ls
参考终端情况, 26889.pts-7.vm19        (Detached)
通过:
screen -r 26889;
wget *.iso 很大
关掉终端!

[xiangdong2@vm19 ~]$ screen -ls
There is a screen on:
        26889.pts-7.vm19        (Detached)
1 Socket in /var/run/screen/S-xiangdong2.


screen -r 26889

exit推出挂起的screen...



作用:可以在不同tty之间共享

1. 安装rpm包

查询是否有相关安装包:yum search screen

安装:yum install screen.i386

2. 创建窗口:screen

3. 检查是否在screen中:tty

结果应该为:/dev/pts/0

4. 退出:Ctrl+a+d

5. 查看screen编号:screen -ls

6. 再进入screen:screen -r screen名字

7. 关闭screen:Ctrl+d

---------------------------------------------------------------------------------------------------------------------------------------------
功能说明:

使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。

语  法:

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]阅读全文
分页: 227/271 第一页 上页 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 下页 最后页 [ 显示模式: 摘要 | 列表 ]