- 浏览: 73165 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
续 PuTTY 中文教程1
Pagent 加载密钥,每次开机后只需要输入一次密钥口令
终于轮到 Pagent 出场了,双击一下 Pagent.exe,嗯,没反应?再双击一下,咦?出来个提示,说已经运行了。
看看右下角吧,在这里呢
双击一下 Pagent 的图标,出来这样一个界面。很简洁的,Add Key 是添加私钥,Remove Key 是把选中的私钥从 Pagent 中卸载了。
好,现在单击 Add Key 按钮添加私钥,我把这个演示用的私钥保存到 C: 了
然后会出现输入密钥口令的对话框,输入正确的密钥后,单击 OK
这时,在 Pagent 的窗口中就能看到我们的私钥已经装载上去了。
现在打开 PuTTY,选择先前保存的 Session,双击一下。只要自动登录用户名设置上,主机上改帐户的 authorized_keys 文件里也有匹配的公钥。哈哈,发现没有?完全不需要口令,我们已经登录到系统了。
在 Pagent 的图标上点右键,也可以快捷的选择已经保存的会话。
建议大家把 Pagent 放到启动组里面,这样每次一开机,Pagent
自动运行,然后我们只需要把私钥装载一下,然后我们就可以一直享受自动登录系统的乐趣了。再配合上以后会讲到的 Plink、PSCP
这些,我们可以实现很多工作的自动化进行。完全不需要每次输入用户名、口令、输入又长又多的命令,再做一些烦躁的文件备份,最后还得记得注销系统,难道不
觉得麻烦么?这一切烦恼很快就会远离我们了,继续往下看吧。
用 SSH 来传输文件
PuTTY 提供了两个文件传输工具
- PSCP (PuTTY Secure Copy client)
- PSFTP (PuTTY SFTP client)
PSCP 通过 SSH 连接,在两台机器之间安全的传输文件,可以用于任何 SSH(包括 SSH v1、SSH v2) 服务器。
PSFTP 则是 SSH-2 中新增的特性,使用的是新的 SFTP 协议,使用上与传统的 FTP 类似。事实上 PSCP 如果发现 SFTP
可用,PSCP就会使用 SFTP 协议来传输文件,否则还是 SCP 协议。PSFTP 与 PSCP 相比,PSFTP
的优点是可以与服务器进行交互,遍历服务器上的文件系统,在一个会话中上传或下载多个文件。而 PSCP
只能一次传输一个文件,传输完毕后立刻终止会话。
PSCP 的使用
在控制台直接执行 pscp 可以看到帮助
C:>pscp
PuTTY Secure Copy client
Release 0.58
Usage: pscp [options] [user@]host:source target
pscp [options] source [source...] [user@]host:target
pscp [options] -ls [user@]host:filespec
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-p preserve file attributes
-q quiet, don't show statistics
-r copy directories recursively
-v show verbose messages
-load sessname Load settings from saved session
-P port connect to specified port
-l user connect with specified username
-pw passw login with specified password
-1 -2 force use of particular SSH protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-batch disable all interactive prompts
-unsafe allow server-side wildcards (DANGEROUS)
-sftp force use of SFTP protocol
-scp force use of SCP protocol
C:>
可以看出 PSCP 的使用是很简单的,把常用的几个选项说一下:
- -q 安静模式,传输文件时什么也不显示,否则会显示出文件的传输进度,默认是关闭的
- -P port 指定服务器的 SSH 端口,注意这个是大写字母 P,默认是 -P 22,如果主机的 SSH 端口就是 22,就不用指定了
- -l user 指定以哪个用户的身份登录主机,如果没有指定,则 PSCP 会在 PuTTY 保存的同名 Session 中获得默认的用户名称。用户名称也可以和主机名称写在一起,用 @ 分割开,比如:username@server
- -pw passwd 指定登录时所用的口令为 passwd
- -i keyfile 就是指定登录时所用的密钥文件
-
最后面指定的主机名也可以是 PuTTY 中保存的 Session 名称。比如我们在 PuTTY 中保存了一个名为 foobarserver
的会话,而我们所在的网络又的确没有名为 foobarserver 的主机名称。而在这个 foobarserver 会话中保存的主机名称是
demo-server,保存的自动登录的用户是 taylor。那么用命令
pscp c:autoexec.bat foobarserver:backup/
就把本地的 c:autoexec.bat 复制到了主机 demo-server 上的用户 taylor 所在的主目录下的 backup 子目录中(这个路径可能是 /home/taylor/backup
所以 PSCP 大致用法的例子就是:
pscp -P 22 -i c:pathyour-private-key.ppk -C username@server:/remote/path/
下面还是用一些实例来说明会比较简单一些:
把本地的 C:pathfoo.txt 复制到远程主机 192.168.6.200 的 /tmp 目录下
pscp c:pathfoo.txt 192.168.6.200:/tmp
把本地的 C:pathfoo.txt 复制到主机 192.168.6.200 的 /tmp 目录下,但是以主机上的用户 taylor 的权限执行
pscp c:pathfoo.txt taylor@ 192.168.6.200:/tmp
或者是
pscp -l taylor c:pathfoo.txt 192.168.6.200:/tmp
把本地的 C:pathfoo.txt 传送到主机 192.168.6.200 的 /tmp 目录下,但是主机的 SSH 端口是 3122
pscp -P 3122 c:pathfoo.txt 192.168.6.200:/tmp
把本地的 C:pathfoo.txt 复制到主机 192.168.6.200 的用户 taylor 的主目录下
pscp c:pathfoo.txt taylor@192.168.6.200:.
把主机 192.168.6.200 上的用户 taylor 主目录下的所有 *.tgz 文件拷贝到本地的 c:backup 目录中,如果 SSH 版本是 SSH v1,那这个命令就会出错。
pscp taylor@192.168.6.200:*.tgz c:backup
再来看看 PSFTP
在控制台执行命令 psftp -h,可以得到 psftp 的帮助
C:>psftp -h
PuTTY Secure File Transfer (SFTP) client
Release 0.58
Usage: psftp [options] [user@]host
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-b file use specified batchfile
-bc output batchfile commands
-be don't stop batchfile processing if errors
-v show verbose messages
-load sessname Load settings from saved session
-l user connect with specified username
-P port connect to specified port
-pw passw login with specified password
-1 -2 force use of particular SSH protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-batch disable all interactive prompts
C:>
用法与 PSCP 大同小异,虽然有个 -load 选项,其实这个没啥用,后面用主机名的时候,与 PSCP 一样直接用上会话名称就可以了。
用 PSFTP 登录到服务器上以后,操作与 FTP 差不多,这里简单的说一下吧:
-
open 登录主机
open [username@]<sessname|hostname|ip> [port]
比如:-
open taylor@demo-server 3022
就是以用户 taylor 的身份,登陆到主机 demo-server 上,SSH 端口是 3022 -
open demo-server
登陆 demo-server,这里的 demo-server 可以是PuTTY 中已经保存的会话名称,也可以是主机的名称,如果主机名称与会话名称相同,以会话名称为准。
-
open taylor@demo-server 3022
-
close 关闭 SFTP 连接
这个没啥说的,close 就关闭了 SFTP 连接
-
quit 结束本次的 SFTP 会话
也没啥用法,就是关闭了 PSFTP 这个程序 -
help [command] 帮助
直接打 help 就可以看到帮助指令,后面指定上 一个命令就可以查看该命令的帮助,比如: help open - cd [directory] 改变当前目录
- pwd 察看当前目录
- lcd [directory] 改变本地目录
- lpwd 察看本地当前目录
- get [-r] <filename|directory> 从服务器下载一个文件/目录,这个命令不能用通配符,参数 -r 可以递归下载整个目录
- put [-r] <filename|directory> [dest] 把文件/目录上传到服务器,这个命令不能用通配符,参数 -r 可以递归上传整个目录
- mget [-r] <filename|directory> 从服务器下载一批文件/目录,可以用通配符,-r 的含义与 get 一样
- mget [-r] <filename|directory> [dest] 把一批文件/目录上传到服务器,可以用通配符,-r 的含义与 put 一样
- reget [-r] <filename|directory> 从服务器续传下载一个文件/目录,这个命令不能用通配符,-r 的含义与 get 一样
- reput [-r] <filename|directory> [dest] 把一批文件/目录续传上传到服务器,这个命令不能用通配符,-r 的含义与 put 一样
- dir [directory] 列目录
- ls 和 dir 一样
- chmod [file|directory] 改变文件的权限,与 Unix 的 chmod 命令类似
- del <filename> 删除文件,要注意的是 del 只能删除文件
- rm 与 del 一样
- mkdir <new-directory-name> 创建一个目录
- rmdir <directory> 删除一个空目录,只有空目录才可以被删除
-
mv <source-file|source-directory> <dest-file|dest-directory> 改名/移动。如果源和目的都是文件或目录,则是改名。如果目的是目录的话,则是移动。
-
! 在本地命令前加一个感叹号,就可以直接执行
其他可选的 SFTP 客户端
FileZilla : http://filezilla.sf.net
WinSCP : http://www.winscp.net
用 Plink 更方便快捷的执行远程主机上的命令
Plink 是 PuTTY 的命令行连接工具,主要用于自动化工作的处理。
直接在控制台执行 plink,可以看到 Plink 的帮助
C:>plink
PuTTY Link: command-line connection utility
Release 0.58
Usage: plink [options] [user@]host [command]
("host" can also be a PuTTY saved session name)
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-v show verbose messages
-load sessname Load settings from saved session
-ssh -telnet -rlogin -raw
force use of a particular protocol
-P port connect to specified port
-l user connect with specified username
-batch disable all interactive prompts
The following options only apply to SSH connections:
-pw passw login with specified password
-D [listen-IP:]listen-port
Dynamic SOCKS-based port forwarding
-L [listen-IP:]listen-port:host:port
Forward local port to remote address
-R [listen-IP:]listen-port:host:port
Forward remote port to local address
-X -x enable / disable X11 forwarding
-A -a enable / disable agent forwarding
-t -T enable / disable pty allocation
-1 -2 force use of particular protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-m file read remote command(s) from file
-s remote command is an SSH subsystem (SSH-2 only)
-N don't start a shell/command (SSH-2 only)
C:>
看上去 Plink 的使用方法、参数与PSCP、PSFTP都很类似。
- -P port 指定服务器的 SSH 端口,注意这个是大写字母 P,默认是 -P 22,如果主机的 SSH 端口就是 22,就不用指定了
- -l user 指定以哪个用户的身份登录主机,如果没有指定,则 PSCP 会在 PuTTY 保存的同名 Session 中获得默认的用户名称。用户名称也可以和主机名称写在一起,用 @ 分割开,比如:username@server
- -pw passwd 指定登录时所用的口令为 passwd
- -i keyfile 就是指定登录时所用的密钥文件
-
-m file 如果执行的命令很多的话,可以把命令写到文件中,然后用这个参数来指定
还是用一些实际的例子来说明一下 Plink 吧
还记得前面说到 PuTTY 的自动执行命令那个配置么?在说到那个配置的时候,我们演示了一个简单的 Tomcat 重新启动的命令,这个命令是要写在 PuTTY 的 Remote command 里面去。现在我们用 Plink 来实现同样的功能:
假设连接的主机是 192.168.6.200,SSH 的端口是 3022,用户是 taylor:
plink -P 3022 taylor@192.168.6.200 export CATALINA_HOME="~/apache-tomcat-5.5.17";export JAVA_HOME="~/jdk1.5.0_07";export PATH=$JAVA_HOME/bin;$PATH ; cd $CATALINA_HOME/bin;./shutdown.sh;./startup.sh;tail -f $CATALINA_HOME/logs/catalina.out
如果在 PuTTY 中保存了一个名为 192.168.6.200 的会话,注意,这个会话的名称与主机 IP 一样,在会话中已经正确保存了端口 3022,指定了默认的用户是 taylor,现在这个命令就可以简化为:
plink 192.168.6.200 export CATALINA_HOME="~/apache-tomcat-5.5.17";export JAVA_HOME="~/jdk1.5.0_07";export PATH=$JAVA_HOME/bin;$PATH ; cd $CATALINA_HOME/bin;./shutdown.sh;./startup.sh;tail -f $CATALINA_HOME/logs/catalina.out
用 date 命令查看一下主机上的时间,并且格式化输出:
plink 192.168.6.200 date "+%F %T"
大家实际执行一下命令看看,会发现,这个命令并没有返回我们期望的结果,而是返回了一个错误:
C:>plink 192.168.6.200 date "+%F %T"
date: too many non-option arguments: %T
Try `date --help' for more information.
可是在服务器上直接执行命令 date "+%F %T",的确是正确无误的,哪里出了问题呢?这是因为Windows的控制台会把两个双引号之间的字符串作为一个参数传递给被执行的程序,而不会把双引号也传递给程序。我们做这样一个小小的实验来说明一下这个问题:
比如在 c:tmp 文件夹里建立三个文件夹,名称分别为:"foo"、"bar"、"foo bar"。然后在 foo
这个文件夹里面建立一个名为"foo.log"的空文件,在"bar"这个文件夹里建立一个名为"bar.log"的空文件,在"foo
bar"这个文件夹里建立一个名为"foo-bar.log"的空文件。
然后在控制台下进入 c:tmp 这个文件夹,执行如下命令:
dir foo bar
结果是列出"foo bar"这个文件夹里的内容,还是分别列出"foo"和"bar"文件夹里的东西呢?正确答案是后者。
要想正确列出"foo bar"文件夹里的东西,就需要用双引号把"foo bar"引起来
C:tmp>dir foo bar
Volume in drive C is System
Volume Serial Number is 9C51-A51C
Directory of C:tmpfoo
2006-11-22 09:48 <DIR> .
2006-11-22 09:48 <DIR> ..
2006-11-16 11:58 0 foo.log
1 File(s) 0 bytes
Directory of C:tmpbar
2006-11-22 09:48 <DIR> .
2006-11-22 09:48 <DIR> ..
2006-11-16 11:58 0 bar.log
1 File(s) 0 bytes
2 Dir(s) 1,107,345,408 bytes free
C:tmp>dir "foo bar"
Volume in drive C is System
Volume Serial Number is 9C51-A51C
Directory of C:tmpfoo bar
2006-11-22 09:48 <DIR> .
2006-11-22 09:48 <DIR> ..
2006-11-16 11:58 0 foo-bar.log
1 File(s) 0 bytes
2 Dir(s) 1,107,345,408 bytes free
C:tmp>
说到这里,就会明白上面的那个命令 plink 192.168.6.200 date "+%F %T"
其实在主机上执行的真实命令是 date +%F %T,而不是命令行中指定的 date "+%F %T"。不过还好,Windows
的控制台可不认得单引号,所以上面那个命令的正确用法应该是:
c:>plink 192.168.6.200 date '+%F %T'
2006-11-22 09:39:57
我经常需要登录到服务器上把 ADSL 重新拨号,可以把下面的命令写到一个文本文件中,比如保存到了 C:adsl-restart.command.txt
echo "stoping..."
/sbin/adsl-stop
echo "starting..."
/sbin/adsl-start
echo "done."
/sbin/adsl-status
然后执行如下命令:
plink -m c:adsl-restart.command.txt root@192.168.6.251
我经常要查看 Tomcat 的运行日志
plink taylor@192.168.6.200 tail -f ~/apache-tomcat-5.5.17/logs/catalina.out
每天都要看服务器上的剩余空间,就用这个命令:
plink taylor@192.168.6.200 df -k
假设 www.chaifeng.com 连接着另外一个网段 10.204.26.0,有台内网IP 为
10.204.26.21 的 Solaris 8主机只能用 telnet 登录,为了防止被监听,我们可以用 Plink 建立一个隧道,隧道开放
120 秒钟,如果隧道没有被使用,就自动断开连接,然后我们在本地就可以用命令 telnet localhost 2623 的安全登录那台
Solaris 8 主机了。
plink -L 2623:10.204.26.21:23 www.chaifeng.com sleep 120
在主机 www.chaifeng.com 上正在运行着 tor,默认的监听地址是 127.0.0.1:9050,用
Plink 建立一个隧道,然后浏览器上配置代理服务器为 127.0.0.1,端口是 9050,这样就能够安全的使用 tor
代理了,不用担心从我们的机器到主机 www.chaifeng.com 有被监听的可能了。
plink -C -N -L 9050:127.0.0.1:9050 taylor@www.chaifeng.com
结合上 PSCP 我们还可以完成文件的每天备份
plink taylor@192.168.6.200 tar jcf $(date '+documents.%F.tar.bz2') ~/documents
pscp taylor@192.168.6.200:$(date '+documents.%F.tar.bz2') c:backup
plink taylor@192.168.6.200 rm -f $(date '+documents.%F.tar.bz2')
如果把这些常用的操作写成批处理文件,到时候要重启一下 Tomcat,或者马上察看一下 Tomcat
日志,再或者只是要把 ADLS 重新拨号以下,只需要用鼠标一双击这个批处理文件,稍等一下就自动完成了。不比你打开
PuTTY,登录到服务器上,然后再一个一个的执行命令,最后还得注销来的方便快捷么?再懒一些,把自动备份的批处理放到计划任务里面,每天定时完成,哈
哈,有时间上网找些好玩的东西了,不用每天忙于这些繁杂重复的命令中了。
用假象去迷惑敌人
如果我说 Google 的服务器也开放了 SSH,但是只有特定的 IP 可以连接上去,不信么?(声明:下面的图片都未经修改,我以 Google 的名义发誓,绝对没有 PS)
知道是怎么回事么?
Tips(小技巧)
安全、方便的使用 VNC,远程连接 VNC 不需要密码
在远程机器上启动 vnc 服务的方法很简单,直接使用命令 vncserver 了。如果是第一次使用这个命令,还会提示输入一个口令。注意了,这个口令是用来远程连接 VNC 服务端用的,不是登录口令,着两个口令可不一样。如果想修改 vnc 的连接口令,使用命令 vncpasswd 就可以搞定,用法和 passwd 一样。哎哎,等等。标题上不是写的"远程连接 VNC 不需要密码"么?为什么这里还是需要连接密码?不要着急,慢慢听我讲。前面说的方法就是最常用的方法了,既然连接 VNC 的时候需要密码,那就带来一个老问题。密码太简单了,容易被暴力破解掉。密码太复杂了,人脑毕竟不是电脑,记不住。但是呢,为了安全,密码还是要设置的长 一点,我们可以使用一些其他工具帮助我们管理这些又臭又长的密码,比如 KeePass。
现在要说的是,我们可以把 VNC 的连接密码设置的好长好复杂,而且我们不用记,连接 VNC 的时候还不需要口令,不用担心暴力破解等等。我们需要做如下四步操作:
一、 在本地机器上,用参数 /listen 来启动 vncviewer,这个参数对于 RealVNC、TightVNC、UltraVNC 的客户端都一样。也就是要把 VNC 客户端启动在监听模式下,我们要让 VNC 服务器主动连接我们,这样我们就不需要 VNC 的连接口令了。
vncviewer /listen二、创建一个 PuTTY 的反向隧道,源端口 5500,目标 localhost:5500,具体操作看前面的部分,别忘记点"Add"按钮哦。这个 5500 端口就是 vncviewer 的默认监听端口。
三、在远程服务器上用命令 vncserver 启动 VNC 服务,如果前面已经启动 VNC 服务了,就忽略这一步。
四、关键命令哦,在远程服务器上执行命令
vncconfig -display :1 -connect localhost说 一下两个个关键参数,一个是 display 后面的 :1 ,这是连接到第一个 vnc 实例上。另一个就是 connect 参数后面的 localhost,既然我们是在远程机器上输入的这个命令,那很显然,连接的就是远程机器。别忘了,我们在此之前设置了反向的 SSH 隧道,连接远程机器的本地 5500 端口,其实连接的就是我们自己机器的 5500 端口。
哈,然后你就会发现什么密码也不用输入,就直接连接上远程的 VNC 服务了。不过呢,这四步操作确实有些麻烦,懒人的第一要旨就是能有多懒就要多懒。
第一步操作我们可以在 Windows 的启动菜单你里放一个 vncviewer 的快捷方式,别忘了 /listen 参数。
第二步操作可以直接保存到 PuTTY 的会话里面,参考前面的内容。
第三步就没啥子好说的,只要机器没有重启过,这个 VNC 服务就一直能用。
第 四步的这个命令,我们可以在 PuTTY 的 Connection->SSH 的选项里的 "Remote command" 里填写上 "vncconfig -display :1 -connect localost" ,然后同样也是保存到 PuTTY 的会话里。以后只要双击一下那个 PuTTY 的会话,我们的 VNC 窗口就会自动打开。
第二步和第四步操作也可以用一个命令来代替,如下:
plink.exe -R 5500:localhost:5500 guantouping "vncconfig -display :1 -connect localhost"命令参数中的那个 "guantouping" 是 PuTTY 保存的会话名,也可以是远程机器主机名,把这个命令做成一个快捷方式,双击直接打开 VNC。
FAQ(常见问题)
我在 PuTTY 官方网站下载的,可是执行 PuTTY、Pagent、PuTTYgen 时总是出错,而命令行执行的这几个却没问题
把下面的内容复制到记事本中,文件名保存为:PAGEANT.exe.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>把下面的内容复制到记事本中,文件名保存为:PUTTY.exe.manifest
<!-- This is present purely to make Visual Styles in XP work better.
See 20020104174954.A12067@imsa.edu. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Pageant"
version="0.0.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<!-- Load Common Controls 6 instead of 5 to get WinXP native-
looking controls in the client area. -->
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>把下面的内容复制到记事本中,文件名保存为:PUTTYGEN.exe.manifest
<!-- This is present purely to make Visual Styles in XP work better.
See 20020104174954.A12067@imsa.edu. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="PuTTY"
version="0.0.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<!-- Load Common Controls 6 instead of 5 to get WinXP native-
looking controls in the client area. -->
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This is present purely to make Visual Styles in XP work better.
See 20020104174954.A12067@imsa.edu. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="PuTTYgen"
version="0.0.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<!-- Load Common Controls 6 instead of 5 to get WinXP native-
looking controls in the client area. -->
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>
屏幕输出太快了,怎么能暂停一下?
怎么翻页?
不是说 PSCP 一次只能传输一个文件么?为什么我发现能传输很多个?
为什么执行了 pscp、psftp、plink 这些命令总是说错误的命令呢?
set PATH=c:pathtoputty;%PATH%
在登录的时候出现 "Proxy error: 407 Proxy authorization require" 的错误提示
每次开机后我都要先打开 Pagent,然后再添加我的私钥,还要输入私钥密码,太麻烦了,有没有简单一点的办法呢?
我希望下次登录服务器的时候,还是能看到这次登录的界面,也就是说可不可以像 Firefox 那样保存 PuTTY 登录的会话呢?
当然这些事情是可以避免的,只不过这个功能是通过 GNU Screen 来实现的。GNU Screen 是一个终端窗口管理器,只不过管理的是终端界面,也就是纯文本的界面,而非图形界面。再稍微专业一些的说法就是:用一个物理终端模拟了多个虚拟终端。
如何安装 GNU Screen 这里就不说了,单说用 PuTTY 如何方便的去使用 GNU Screen。参考一下前面提到的如何自动执行一个命令 ,在 Remote Command 这个里面填写如下命令:
screen -RD然 后保存会话,登录。嗯,接下来你会发现什么呢?当然是命令提示符了,然后 ls 一下,一切正常啊,GNU Screen 呢?看到了没?其实我们已经在 Gnu Screen 里面了,在有的系统上,你会看到 PuTTY 的标题已经变成了 screen,有的显示的就是主机名,不管怎样,我们已经运行在 GNU Screen 里面了。如果你发现 PuTTY 是一闪而过,没有登录上去,那估计就是 GNU Screen 没有安装成功。
在 GNU Screen 中的每一个终端窗口都有一个编号,编号从 0 开始,再创建一个终端窗口,编号就是 1 了,以此类推。
下面简述一下 GNU Screen 的最经常使用的快捷键:
- 关闭 GNU Screen:Ctrl+a,然后 d,下面就用 C-a d 来表示了。或者 Ctrl+a Ctrl+d,下面就用 C-a C-d 来表示。放心这个只是关闭了窗口,里面的程序还都正常的运行,下次用命令 screen -RD 又都可以看到了。
- 再打开一个新的终端窗口:C-a c 或者 C-a C-c
- 切换到下一个终端窗口:C-a n 或者 C-a C-n
- 切换到前一个终端窗口:C-a p 或者 C-a C-p
- 切换到 0 号终端窗口:C-a 0 或者 C-a C-0
- 切换到 8 号终端窗口:C-a 8 或者 C-a C-8
- 快速切换到上一个打开的终端窗口:C-a C-a。这个需要稍微解释一下,比如现在我们在第 7 号终端窗口,按快捷键 C-a 2 切换到了 2 号终端窗口。要想再回到 7 号终端窗口,一个办法就是 C-a 7,另外一个办法就是 C-a C-a。
- 给运行在终端窗口的程序发送 ^a:C-a a,因为 GNU Screen 的所有快捷键都是以 C-a 开始,所以要给程序发送 ^a 就是这个方法了。
- 黑屏:C-a -。这个作用就类似屏保了,万一有些程序不方便让别人看到,切换到其他终端窗口也不合适,那就这个了,当然创建一个新的终端窗口也可以。
- 滚屏:C-a [ 或者 C-a C-[ 或者 C-a esc。然后用 PageUp/PageDown 就可以翻页了,再次按下 esc 就退出滚屏模式了,这个模式也是 copy 模式,这里就不细说了。
发表评论
-
Linux DISPLAY 设置(转)
2013-01-11 16:37 891在Linux/Unix类操作系统上 ... -
Ubuntu下查看jdk所在目录
2011-07-11 19:04 1497查看JDK所在目录 在终端命令行里执行 updat ... -
Linux Server 安全传输命令scp
2011-06-29 10:14 1351scp是 secure copy的缩写, ... -
Linux开放实验室
2011-06-26 23:43 793自主创建和使用轩辕Linux开放实验室: http:/ ... -
PuTTY 中文教程 1
2011-06-26 23:27 997PuTTY 中文教程 PuTTY 中文教程 ... -
linux下常用分析日志命令(2)
2011-06-26 15:59 17851. grep查找匹配文本 ... -
linux下常用分析日志命令(1)
2011-06-26 15:58 1522grep是一个很强大的命令。这里我们主要来讲使用grep命令来 ... -
Ubuntu下安装jdk6的方法和步骤
2011-05-06 22:59 1100unbuntu10下默认是安装了openjdk的,不过这个jd ... -
Ubuntu 安装java6, tomcat7, eclipse3.6
2011-05-06 22:49 11721.安装sun-java6 在Ubuntu1 ... -
linux下svn命令大全
2011-04-30 11:24 7081、将文件checkout到本地目录 svn checko ...
相关推荐
#### 1.2 Putty中文显示设置 Putty是一款常用的SSH客户端,用于远程登录Linux系统。为了确保中文字符正常显示,需要对Putty进行相应的编码设置。这通常涉及修改其会话属性中的“Connection > SSH > X11”和“Window...
同步电机无传感HFI高频谐波注入模型及代码解析,PMSM永磁同步电机滑模观测器仿真模型研究,基于28035的典型HFI方案实现,详细解析参数实现过程与机理,工程实践与理论基础相结合的SOP代码应用,基于无传感HFI高频谐波注入模型的PMSM永磁同步电机同步控制技术:解析与代码实现,同步电机无传感HFI高频谐波注入模型+代码 PMSM永磁同步电机无传感器滑模观测器仿真模型(基于28035),典型的HFI方案; 代码为实际应用SOP代码,非一般玩票代码可比(非ti例程);解析说明详细描述了参数实现过程和实现机理,工程实践和理论基础结合。 ,核心关键词:同步电机;无传感HFI高频谐波注入模型;PMSM永磁同步电机;滑模观测器;仿真模型;28035;HFI方案;SOP代码;参数实现过程;实现机理;工程实践;理论基础。,基于HFI高频谐波注入的PMSM无传感器控制模型与SOP代码实现
一个采用thinkphp3.2开发的商城系统,无论从前台模板的设计,还是后台php的开,都具有非常好的学习价值。首先作为一套前台模板框架的学习总结成果。.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
无人驾驶车辆动力学模型验证与预测控制资料详解:视频教程及carsim2019与matlab2018应用,无人驾驶车辆动力学模型验证与预测控制资料详解:视频教程及carsim2019与matlab2018应用,无人驾驶的车辆动力学模型验证。 配套详细视频讲解。 配套无人驾驶车辆模型预测控制资料,有视频讲解carsim2019,matlab2018 ,无人驾驶车辆动力学模型验证;配套视频讲解;无人驾驶车辆模型预测控制;carsim2019视频讲解;matlab2018资料,无人驾驶车辆动力学模型验证与MPC控制技术详解视频
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
**基于多维度仿真的质子交换膜燃料电池模型构建与性能研究**,基于电化学经验模型与车辆参数,质子交换膜燃料电池稳态与动态建模仿真分析及特性研究,质子交膜燃料电池(#PEMFC) 稳态 AND 动态建模及仿真分析 Note:硕士lunwen复Xian;title:质子交膜燃料电池建模仿真与特性研究 内容: 1. 根据车辆结构参数和性能参数 确定燃料电池组相关参数, eg. 额定功率,最大功率等. (根据需求可省略,或改进); 2. 基于电化学经验模型,建立PEMFC 燃料电池的稳态数学模型; 3. 在稳态数学模型的基础上,考虑燃料电池双层电荷层现象以及电池电堆动态热传输的影响,建立PEMFC 电化学动态模型; 4. 建立稳态 AND 动态Simulink仿真模型; 5. 通过Signal Builder 模拟随时间阶跃下降的外加负载信号,Simulink仿真燃料电池的输出电压,输出功率,消耗功率,电池效率的变化曲线, 并详细分析了电池的稳态 动态响应特性以及影响因素; 6. 极其详尽的模型说明书(包含数学建模,simulink建模,模型结果分析,etc.) AND 图
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
推荐,YOLOV5目标检测全套视频课程,共7节。 1.任务需求与项目概述.mp4 2-数据与标签配置方法.mp4 3-标签转格式脚本制作.mp4 4-各版本模型介绍.mp4 5-项目参数配置.mp4 6-缺陷检测模型培训.mp4 7-输出结果与项目总结.mp4
智慧农业解决方案 -促进产业结构转型,突破传统业态.ppt
西门子200smart与昆仑通态锅炉换热站智能控制程序实例:涵盖模拟量读取、自动切换控制、时间段加热与温度设定、电能监控及Modbus通讯变频器控制。,西门子200smart与昆仑通态锅炉换热站程序实例:模拟量读取、自动切换与时间加热控制,Modbus通讯变频器电能管理解决方案,西门子200smart和昆仑通态锅炉热站程序项目实例,程序内有利用模拟量读取,运算时间自动切,水泵一用一备故障自动切,自动时间段加热,时间段设定温度,电能读取及算法 modbus通讯控制变频器。 ,核心关键词: 西门子200smart; 昆仑通态锅炉; 换热站程序项目; 模拟量读取; 运算时间自动切换; 水泵一用一备故障自动切换; 自动时间段加热; 设定温度; 电能读取; 算法; Modbus通讯; 控制变频器。,西门子Smart200程序控制锅炉换热站:智能换热与节能优化管理实例
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
相移格雷码解相位程序开发与条纹结构光编解码技术应用于单双目结构光三维重建系统,相移格雷码解相位程序开发:条纹结构光编解码技术助力单目双目结构光三维重建系统,相移格雷码解相位程序开发 条纹结构光编解码,可用于单目或双目结构光三维重建系统 ,相移格雷码解相位程序开发; 结构光编解码; 单目结构光; 双目结构光; 三维重建系统,相移格雷码解相位程序开发:单目双目结构光三维重建系统编解码技术
高集成伺服电机驱控芯片TMC9660例子代码
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
基于任务链的中小工厂数字化新路径 高效搭建有竞争力的数字工厂.pptx
光伏并网逆变器设计方案与高效实现:结合matlab电路仿真、DSP代码及环流抑制策略,光伏并网逆变器设计方案:结合matlab电路文件与DSP程序代码,实现高效并联环流抑制策略,光伏并网逆变器设计方案,附有相关的matlab电路文件,以及DSP的程序代码,方案、仿真文件、代码三者结合使用效果好,事半功倍。 备注:赠送逆变器并联环流matlab文件,基于矢量控制的环流抑制策略和下垂控制的环流抑制 ,光伏并网逆变器设计方案; MATLAB电路文件; DSP程序代码; 方案、仿真文件、代码结合使用; 并联环流抑制策略; 下垂控制的环流抑制,光伏并网逆变器优化设计:方案、仿真与DSP程序代码三合一,并赠送并联环流抑制策略Matlab文件
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
校园在线拍卖系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 按照校园在线拍卖系统的角色,我划分为了用户模块(拍卖者和用户)和管理员模块这两大部分。 拍卖者模块: (1)注册登录:用户注册为会员并登录校园在线拍卖系统;用户对个人信息的增删改查,比如个人资料,密码修改。 (2)竞拍商品管理:拍卖者可以对竞拍商品进行增删改查。 (3)竞拍订单管理:拍卖者可以看到用户提交的竞拍价格信息以及产品,可以对竞拍订单进行审核。 (4)评价订单管理:可以在此页面查看到用户提交的订单评价信息等。 (5)在线留言:可以回复用户的在线留言信息。 用户模块: (1)用户注册登录:用户注册为会员并登录校园在线拍卖系统;用户对个人信息的增删改查,比如个人资料,密码修改。 (2)拍卖资讯:用户可以在此模块中浏览系统发布的最新拍卖资讯。 (3)竞拍商品:用户可以查看到竞拍商品详情。 (4)在线竞拍:用户可以在竞拍商品下方点击立即竞拍,提交竞拍信息。 (5)在线留言:用户可以提交在线留言信息。 (6)竞拍订单:可以在线进行竞拍商品订单的支付。 (7)评价订单:支付后可以对订单进行评价。 管理员管理模块: (1)用户管理:管理员可以对前台上注册过的用户信息进行管控,对拍卖者信息进行审核,也可以对管理员信息进行管控。 (2)用户管理:管理员对系统用户的管理。 (3)商品分类管理:对商品进行分类管理。 (4)竞拍商品管理:对拍卖者发布的拍卖商品进行管理。 (5)竞拍订单管理:对用户提交的竞拍订单信息进行管理。 (6)评价订单管理:对用户的评价信息进行管理。 (7)在线留言管理:对用户的留言信息进行管理。 (8)系统管理:对通知公告、竞拍资讯、轮播图管理。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
二极管箝位型三电平逆变器与NPC三电平逆变器的SVPWM及中点电位平衡调制研究——基于MATLAB Simulink仿真模型,二极管箝位型与NPC三电平逆变器研究:SVPWM及中点电位平衡调制的技术挑战与MATLAB仿真模型参考,二极管箝位型三电平逆变器,NPC三电平逆变器。 主要难点:三电平空间矢量调制(SVPWM),中点电位平衡调制等。 MATLAB Simulink仿真模型,可提供参考文献。 ,二极管箝位; NPC三电平; 三电平空间矢量调制(SVPWM); 中点电位平衡调制; MATLAB Simulink仿真模型,三电平逆变器技术研究:SVPWM调制与中点电位平衡仿真分析