ssh

  1. $ssh -l signup openshells.net(23.239.220.55)
  2. password: wanker66
  3.  
  4. 申请 opensheels 的免费 ssh 帐号,注册帐号后的审核有点麻烦;而且现在帐号似乎不能使用了。
  5. 参见:http://www.openshells.net/index.php/2-uncategorised/7-signup
  6.  
  7. 收集免费 shell 的网站:
  8. http://shells.red-pill.eu/
  9.  
  10. ssh 使用
  11.  
  12. SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETFInternet Engineering Task Force)的Network Working Group所制定的一种协议。SSH的主要目的是用来取代传统的telnetR系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具,实现对远程登陆和远程执行命令加密。防止由于网络监听而出现的密码泄漏,对系统构成威胁。
  13.  
  14. ssh协议目前有SSH1SSH2SSH2协议兼容SSH1。目前实现SSH1SSH2协议的主要软件有OpenSSHSSH Communications Security Corporation 公司的SSH Communications 软件。前者是OpenBSD组织开发的一款免费的SSH软件,后者是商业软件,因此在linuxFreeBSDOpenBSDNetBSD等免费类UNIX系统种,通畅都使用OpenSSH作为SSH协议的实现软件。因此,本文重点介绍一下OpenSSH的使用。需要注意的是OpenSSHSSH Communications的登陆公钥/私钥的格式是不同的,如果想用SSH Communications产生的私钥/公钥对来登入到使用OpenSSHlinux系统需要对公钥/私钥进行格式转换。
  15.  
  16. 在出现SSH之前,系统管理员需要登入远程服务器执行系统管理任务时,都是用telnet来实现的,telnet协议采用明文密码传送,在传送过程中对数据也不加密,很容易被不怀好意的人在网络上监听到密码。同样,在SSH工具出现之前R系列命令也很流行(由于这些命令都以字母r开头,故把这些命令合称为R系列命令Rremote的意思),比如rexec是用来执行远程服务器上的命令的,和telnet的区别是telnet需要先登陆远程服务器再实行相关的命令,而R系列命令可以把登陆和执行命令并登出系统的操作整合在一起。这样就不需要为在远程服务器上执行一个命令而特地登陆服务器了。
  17.  
  18. SSH出现后R系列命令已经基本废止了,如果你从来都不知道UNIX历史上有过这些命令,那最好了,如果你知道那么彻底忘记他们吧。telnet命令除了在路由器等网络设备中还使用外,在正式的生产系统中也基本废止不用了,目前telnet最大的用处是用来检测某个网络端口是否正常打开并提供服务,比如我经常用telnet 10.0.0.1 25来检查我的邮件服务器是否正常。
  19.  
  20. SSH是一种加密协议,不仅在登陆过程中对密码进行加密传送,而且对登陆后执行的命令的数据也进行加密,这样即使别人在网络上监听并截获了你的数据包,他也看不到其中的内容。OpenSSH已经是目前大多数linuxBSD操作系统(甚至cygwin)的标准组件,因此关于如何安装OpenSSH本文就不再叙述了,如果不出意外,你的系统上必定已经安装好了OpenSSH
  21.  
  22. OpenSSH软件包包含以下命令:
  23. sshd SSH服务端程序
  24. sftp-server SFTP服务端程序(类似FTP但提供数据加密的一种协议)
  25. scp 非交互式sftp-server的客户端,用来向服务器上传/下载文件
  26. sftp 交互式sftp-server客户端,用法和ftp命令一样。
  27. slogin ssh的别名
  28. ssh SSH协议的客户端程序,用来登入远程系统或远程执行命令
  29. ssh-add SSH代理相关程序,用来向SSH代理添加dsa key
  30. ssh-agent ssh代理程序
  31. ssh-keyscan ssh public key 生成器
  32.  
  33. SSH最常用的使用方式是代替telnet进行远程登陆。不同于telnet的密码登陆,SSH还同时支持PublickeyKeybord InteractiveGSSAPI等多种登入方式,不像telnet那样只有输入系统密码一种途径。目前最常用的登陆方式还是传统的Password方式和Publickey方式登陆。
  34.  
  35. 采用传统的password方式登陆
  36.  
  37. 如果想用传统的password方式登陆系统你的OpenSSH配置文件中必须有如下配置指令:
  38.  
  39. PasswordAuthentication yes
  40.  
  41. Redhat系统中sshd的配置文件是/etc/ssh/sshd_config,默认安装的OpenSSH默认是允许使用password方式登陆系统的。
  42.  
  43. ssh 客户端登陆系统,首次登陆一个之前没有登陆过的系统,ssh会询问你是否发送加密指纹并且链接服务器。
  44. 第一次登陆:
  45.  
  46. [root@mail ~]# ssh 172.18.6.227
  47. The authenticity of host '172.18.6.227 (172.18.6.227)' can't be established.
  48. RSA key fingerprint is ::f2:e1:9b:b6:6e:c0:e2::8f:ed::b3:.
  49. Are you sure you want to continue connecting (yes/no)?
  50.  
  51. 回答yes ssh提示输入密码:
  52.  
  53. [root@mail ~]# ssh 172.18.6.227
  54. The authenticity of host '172.18.6.227 (172.18.6.227)' can't be established.
  55. RSA key fingerprint is ::f2:e1:9b:b6:6e:c0:e2::8f:ed::b3:.
  56. Are you sure you want to continue connecting (yes/no)? yes
  57. Warning: Permanently added '172.18.6.227' (RSA) to the list of known hosts.
  58. root@172.18.6.227's password:
  59.  
  60. 如果密码输入正确,那么就顺利登陆到了远程系统,出现远程系统提示符:
  61.  
  62. [root@mail ~]# ssh 172.18.6.227
  63. The authenticity of host '172.18.6.227 (172.18.6.227)' can't be established.
  64. RSA key fingerprint is ::f2:e1:9b:b6:6e:c0:e2::8f:ed::b3:.
  65. Are you sure you want to continue connecting (yes/no)? yes
  66. Warning: Permanently added '172.18.6.227' (RSA) to the list of known hosts.
  67. root@172.18.6.227's password:
  68. Last :: from 172.18.6.130
  69. [root@qmail ~]#
  70.  
  71. 第一次登陆后,ssh就会把登陆的ssh指纹存放在用户home目录的.ssh目录的know_hosts文件中,如果远程系统重装过系统,ssh指纹已经改变,你需要把 .ssh 目录下的know_hosts中的相应指纹删除,再登陆回答yes,方可登陆。请注意.ssh目录是开头是”.”的隐藏目录,需要ls –a参数才能看到。而且这个目录的权限必须是700,并且用户的home目录也不能给其他用户写权限,否则ssh服务器会拒绝登陆。如果发生不能登陆的问题,请察看服务器上的日志文件/var/log/secure。通常能很快找到不能登陆的原因。
  72.  
  73. 远程系统的登陆用户名和当前登陆的本地用户相同,如果想以普通用户user的身份登陆远程系统可以这样:
  74.  
  75. [root@mail ~]# ssh [email]user@172.18.6.227[/email]
  76.  
  77. 或者这样:
  78.  
  79. [root@mail ~]# ssh -l user 172.18.6.227 
  80.  
  81. ssh命令还有很多非常有用的参数,具体请看man手册。
  82.  
  83. ssh最有用的功能是远程执行命令:
  84.  
  85. [root@mail ~]# ssh 172.18.6.227 ls -l /
  86. root@172.18.6.227's password:
  87. total
  88. drwxr-xr-x root root Jun : bin
  89. drwxr-xr-x root root Mar : boot
  90. drwxr-xr-x root root Jan : command
  91. drwxr-xr-x root root Jun : data
  92. drwxr-xr-x root root Jul : dev
  93. drwxr-xr-x root root Jul : etc
  94. drwxr-xr-x root root Apr : home
  95. drwxr-xr-x root root Aug initrd
  96.  
  97. 输入正确的密码后,ssh会链接远程服务器的sshd服务器程序,然后执行远程服务器上的
  98. ls l /命令 ,并把输入结果传到本地服务器。相当于你先登陆到远程服务器,然后再实行命令ls l /,最后再登出服务器。需要提醒的是,如果你需要登陆服务器并执行不止一个命令,必须要把命令用单引号或双引号引起来:
  99.  
  100. ssh 172.18.6.227 "cd /root && ls "
  101.  
  102. 如果不用引号引起来:
  103.  
  104. ssh 172.18.6.227 cd /root && ls
  105.  
  106. 那么其实第二个命令ls执行的是本地服务器的ls,而并非远程服务器上执行的ls,输出结果也是本地的内容。
  107.  
  108. ssh的远程实行命令的功能是用来代替原始的R系列命令的,在ssh出现之前系统管理员们不得不用rexec, rsh等不安全的远程执行命令工具来完成同样的操作。这个功能在管理大批机器的时候是非常有用的,比如我要重启10./24网段内所有的服务器,只要输入一条命令:
  109.  
  110. ) ; .${i} reboot ; done
  111.  
  112. 就可以完成重启所有服务器的操作,也许你会说,这要虽然不需要再登陆每一台服务器了,但是还是要每次输入密码,多麻烦啊。别急,下面要讲的用ssh public key方式登陆就是要解决问题。
  113.  
  114. 采用public key登陆远程服务器:
  115.  
  116. 首先来对password方式和public方式登陆服务器的不同做一个对比:比如你要进入一个秘密基地,以password方式登陆,就好比这个秘密基地采用口令的方式让外来人员进入,哨兵只关心外来人员提供的口令是否正确,如果正确就放行。public key方式就好比用钥匙和锁的方式进入基地,只要外来人员有这个基地大门门锁的钥匙,并且钥匙确实能开这把锁,那么哨兵就将这个人放行。哨兵只认钥匙,不人口令和人员。口令的缺点是,你的口令可能被敌人窃听去,敌人会冒充友军进入秘密基地,因为哨兵只凭口令来决定是否放行外来人员。而用钥匙的方式则敌人必须得到一把一模一样的钥匙在能登入。
  117.  
  118. 采用sshpublic key方式登陆系统,需要先用相关的工具生成一个公钥/私钥对,公钥和私钥的就好比锁和钥匙的关系。公钥就是锁,锁是公开挂在大门上的,是一个对外可见的东西,任何有钥匙的人都可以去开锁,私钥就是钥匙,钥匙要自己妥善保管好,不能让别人偷去。否则别人拿到了钥匙并知道你锁的位置(IP地址)就可以轻易的进入基地了。
  119.  
  120. opensshssh-keygen命令用来产生这样的私钥和公钥。
  121.  
  122. [root@mail ~]# -t dsa -C gucuiwen@myserver.com
  123. Generating public/private dsa key pair.
  124. Enter file in which to save the key (/root/.ssh/id_dsa):
  125. Enter passphrase (empty for no passphrase):
  126. Enter same passphrase again:
  127. Your identification has been saved in /root/.ssh/id_dsa.
  128. Your public key has been saved in /root/.ssh/id_dsa.pub.
  129. The key fingerprint is:
  130. :e5:cb::d3:8c::ed:::::ce:b1::ce gucuiwen@myserver.com
  131.  
  132. 说明:
  133. -b  采用长度为1024字节的公钥/私钥对,最长4096字节,一般10242048就可以了,太长的话加密解密需要的时间也长。
  134. -t dsa  采用dsa加密方式的公钥/私钥对,除了dsa还有rsa方式,rsa方式最短不能小于768字节长度。
  135. -C gucuiwen@myserver.com 对这个公钥/私钥对的一个注释和说明,一般用所有人的邮件代替。可以省略不写,更多其他参数请man ssh-keygen
  136.  
  137. [root@mail ~]# -t dsa -C gucuiwen@myserver.com
  138. Generating public/private dsa key pair.
  139. #提示正在生成,如果选择4096长度,可能需要较长时间
  140. Enter file in which to save the key (/root/.ssh/id_dsa):
  141. #询问把公钥和私钥放在那里,回车用默认位置即可
  142. Enter passphrase (empty for no passphrase):
  143. #询问输入私钥密语,为了实现自动登陆,应该不要密语,直接回车
  144. Enter same passphrase again:
  145. #再次提示输入密语,再次直接回车
  146. Your identification has been saved in /root/.ssh/id_dsa.
  147. Your public key has been saved in /root/.ssh/id_dsa.pub.
  148. #提示公钥和私钥已经存放在/root/.ssh/目录下
  149. The key fingerprint is:
  150. :e5:cb::d3:8c::ed:::::ce:b1::ce gucuiwen@myserver.com
  151. #提示key的指纹
  152.  
  153. 需要特别说明的是私钥密语,我之所以用“密语”这个词来描述,而避开“密码”这个词,是为了区分密码登陆方式中使用的密码。在密码登陆方式中使用的密码是远程服务器操作系统的密码,而这里的“密语”是私钥的密码。设想你的钥匙是非常智能的高科技产品,你在用钥匙开锁的时候还必须向钥匙中输入一个密码,钥匙才能开锁。这样的话,即便你的钥匙被人偷去了,偷钥匙的人不知道钥匙中的密码他也不能用这个钥匙开锁。一般情况下,假如你管理100台服务器,为了在这100台服务器之间不用密码就能自由穿梭,你需要生成一个不带“密语”的钥匙。你可以在这100台服务器中选择一台服务器作为外界登陆到这群服务的入口,这个从外界登陆到这台入口服务器的钥匙就应该要加上一个“密语”。而服务器群之间的公钥/私钥对就不要加“密语”。
  154.  
  155. [root@mail ~]# ls -l /root/.ssh
  156. total
  157. -rw------- root root Jul : id_dsa
  158. -rw-r--r-- root root Jul : id_dsa.pub
  159. -rw-r--r-- root root Jul : known_hosts
  160.  
  161. 产生的公钥/私钥文件在用户home目录的.ssh目录下,其中id_dsa.pub是公钥,把产生的公钥上传到需要登陆的服务器的对应用户目录的home目录的.ssh目录下,再一次强调用户自己的目录(home目录)必须不能有其他人可写的权限,.ssh目录的权限必须是700,即除了用户自己,其他人没有任何读写察看该目录的权限,否则ssh服务器会拒绝登陆。ssh默认的公钥文件是用户home目录下的.ssh目录下的authorized_keys文件,因此需要把产生的公钥以这个文件名放到服务器的/root/.ssh/目录下,这个文件中可以存放多个客户端的公钥文件,就好比一个大门上可以上很多锁,可以有不同的钥匙来尝试开锁,只要有一个锁被打开了,门就可以打开了。放到服务器上应该是这样子的:
  162.  
  163. -rw-r--r-- root root Jul : authorized_keys
  164. -rw-r--r-- root root Apr : known_hosts
  165.  
  166. 公钥和know_hosts文件可以有其他人可度的权限,因为是“公钥”嘛,本来就可以公开的。但是实际上这个文件别人还是读不到的,因为目录.ssh是别人没有权限进去的。
  167.  
  168. 而在客户端的/root/.ssh/目录下,私钥应该是这个样子的:
  169.  
  170. -rw------- root root Jul : id_dsa
  171.  
  172. 私钥必须是600权限,否则ssh服务器会拒绝用户登陆。
  173.  
  174. 这样,你在ssh客户端那里就可以直接登陆到ssh服务端了,当然,如果是第一次登陆,那么还是会提示yes/no 询问是否将ssh指纹存入known_hosts中。存入后,就标明ssh已经“认识”那台服务器了,以后就可以直接登陆了。
  175. 当然,采用ssh key方式登陆还需要sshd配置文件中配置支持才行:
  176. vi /etc/ssh/sshd_config
  177.  
  178. PubkeyAuthentication yes
  179.  
  180. 一般默认安装的OpenSSH都默认开启了key方式登陆的选项。现在可以直接登陆了:
  181.  
  182. [root@mail ~]# ssh 172.18.6.227
  183. Last :: from notebook.a
  184. [root@qmail ~]#
  185.  
  186. 还可以自由的在远程服务器上执行命令:
  187. 如察看远程服务器的磁盘使用情况:
  188.  
  189. [root@mail ~]# ssh 172.18.6.227 df -h
  190. Filesystem Size Used Avail Use% Mounted on
  191. /dev/sda1 966M 365M 552M % /
  192. /dev/sda3 .4G .1G .9G % /data
  193. none 506M 506M % /dev/shm
  194. /dev/sda2 .4G .0G .0G % /usr
  195. /dev/sda6 12G .6G .8G % /var
  196.  
  197. ssh再也不会向你问询对方服务器的密码,世界显示执行结果,因为 ssh会自动取/root/.ssh/id_dsa这个“钥匙”去开服务器上的/root/.ssh/authorized_keys这把“锁”。开通了就直接登陆上去了或者直接执行命令并返回结果了,不管该用户在远程系统上的系统密码到底是多少,服务器只关心钥匙能不能开自己的锁,而不关心用户密码是多少。
  198.  
  199. 如果你要这两台机器互访,那么把产生的公钥和私钥在服务器和客户端上各放一份就可以了。同样如果你要100台服务器这样直接互访,那么只要把authorized_keysid_dsa在这100台服务器上各自放一份就可以了。第一传这些比较麻烦,但是传完之后,以后就太方便了。比如我要看这100台服务器的内存使用情况,我只要输入命令:
  200.  
  201. [root@DISK_253_11 root]# ` ;.${i} free -m; done
  202. total used free shared buffers cached
  203. Mem:
  204. -/+ buffers/cache:
  205. Swap:
  206. total used free shared buffers cached
  207. Mem:
  208. -/+ buffers/cache:
  209. Swap:
  210. total used free shared buffers cached
  211. Mem:
  212. -/+ buffers/cache:
  213. Swap:
  214.  
  215. ssh把远程执行的结果显示到当前客户机的屏幕上,再也不用一台一台登陆然后执行了。连密码都不用输入。
  216.  
  217. 再比如我要重启所有服务器,只要简单的输入:
  218.  
  219. `; .${i} reboot ;done
  220.  
  221. 敲下回车后,你只要喝点咖啡,等着这100台服务器重启完毕就可以了。
  222.  
  223. 5分钟,看看是否所有服务器重启完了:
  224.  
  225. `; .${i} uptime; done
  226.  
  227. 再比如一次性修改所有服务器上的一个配置文件,并使其生效:
  228.  
  229. `;.${i} echo /usr/local/mysql/lib > /etc/ld.so.conf && ldconfig
  230.  
  231. 现在看到ssh的远程执行命令功能的强大了吧,如果你有一点shell基础,编写出更复杂的shell,用scp统一拷贝到远程服务器上,再远程执行,那么一下子可以自动完成N多任务。即便是管理1000台服务器,也会和管理10台服务器一样轻松。
  232.  
  233. scp命令的使用:
  234. scpOpenSSH软件包中一个用来向服务器拷贝文件或者下载文件的命令。需要使得服务器支持scp你的sshd配置文件中必须有如下指令,一般默认安装都打开了这个功能。
  235.  
  236. Subsystem sftp /usr/libexec/openssh/sftp-server
  237.  
  238. sftpssh协议中的一个子协议,也用22号端口。
  239.  
  240. sftp-server就是这个子协议的服务器端程序,scpsftp是客户端程序。sftp不讲了,反正用法和ftp命令一样,会用ftp命令的就一定会用sftp
  241.  
  242. scp是非交互式命令,可以直接在服务器之间拷贝文件。它和ssh程序一样,会自动取/root/.ssh/id_dsa这把“钥匙”去开服务器上的“锁”,开好锁服务器就允许你自由的上传下载文件了:
  243. 比如:
  244.  
  245. [root@mail ~]# scp install.log 172.18.6.227:/root/
  246.  
  247. 表示把本地文件install.log拷贝到服务器172.18.6.227的/root目录下。同样,由于采用了public key方式登陆,scp也不会向你问询密码,直接执行成功。在服务器间拷贝文件就和在本机上拷贝文件那么简单。
  248.  
  249. 如果要拷贝整个目录,可以用-r参数,而不必先tar包再拷贝:
  250.  
  251. scp -r /root/test 172.18.6.227:/root/
  252.  
  253. 如果要拷贝过程中保持文件权限和用户组不变就用-p参数,更多scp参数请看man scp
  254.  
  255. [root@mail ~]# scp -rp /root/test 172.18.6.227:/root/
  256.  
  257. 现在同样假设你有100台服务器要拷贝相同的文件上去,那么非常的轻松:
  258.  
  259. `; .${i}:/some/path ; done
  260.  
  261. 敲下回车,接下来你只要喝点咖啡等待命令执行完成。
  262.  
  263. 再比如,你要让100台服务器的某个配置文件都相同,那么可以这样:
  264.  
  265. `; .${i}:/etc/ ; done
  266.  
  267. 敲下命令后几秒钟,所有服务器的/etc/host文件和当前服务器相同了。
  268.  
  269. 需要注意的是,如果你发现ssh登陆或者远程执行命令很慢,比如ssh .1需要等待十多秒时间,那么多半是你的dns有问题,要么删除/etc/resolv.conf文件中的内容,要么正确配置DNS,并且能让你的主机IP能在DNS服务器中找到,还有方法就是关闭SSHDNS反解功能。
  270.  
  271. 以上所讲的只是ssh浩瀚的功能的冰山一角,还有很多更高级的功能,如ssh代理等等,sshscp的更多有用参数等,各位就自己去研究吧。我这里只抛砖引玉,希望更多人知道ssh并不是代替telnet,并不只能每次输入密码登陆。ssh+scp+publickey认证,可以让你实现轻松管理数百台UNIX服务器的目的。使得管理1000台服务器和管理10台服务器一样简单。这就是我写这个文档的目的所在。

irc

  1. irc.freenode.net
  2.  
  3. irssi的使用
  4. irssilinux下的irc客户端,参见:http://www.cnblogs.com/lone/archive/2009/08/02/1536759.html。
  5.  
  6. 登录 /usr/local/bin/irssi -circ.freenode.net -p7000 -naisaer或者irssi--/connect irc.freenode.net port
  7. 修改昵称 /nick apple
  8. 加入聊天频道 /join #fedora,如频道需要密码,/join #fedora password
  9. 离开单个频道 /wc
  10. 离开一个HTMLIRC SERVER /disconnect irc.freenode.net
  11. [Act:,,,,] 这些数字提示各个频道上对话情况:灰白色表示有人登录或登出,白色代表在人在此channel上说话,灰红色代表对话中提起你的名字或呼叫你。
  12. 切换到相应的 irc channel 上查看 Alt+~0对应1~10irc channel编号; Alt+q~p对应11~20irc channel编号; Ctrl+n/p切换上/下一个irc channel; PageUP/PageDn切换上/下页讯息。
  13. 转编码 /recode add #fedora utf8;加入此频道编码格式,/recode查看加入的编码列表。
  14. 连接多个 irc server /connect irc_server即可连接一个新的irc server,Alt+1切换到第一个特殊频道,再用Ctrl+x切换当前的irc_server
  15. 查看频道的所有人 /who
  16. 查看某人的基本资料 /whois nickname
  17. 给某人发私消息 /msg nickname ......
  18. 给某人说话 /say nickname ......
  19. 自动保存irc log /SET autolog ON
  20.  
  21. 启动irssi后,自動連接IRC serverIRC channel,假设要自動用apple暱稱連接到FreenodeIRC server上的#fedora
  22. /network add -nick apple Freenode
  23. /server add -auto -network Freenode irc.freenode.net
  24. /channel add -auto #fedora Freenode,需要key/password的IRC channel,改为:/channel add -auto #fedora Freenode password
  25. 如果需要自動對註冊的暱稱進行認證登入的話 (設口令為abcde):
  26. /network add -autosendcmd "/^msg nickserv ident abcde;wait 2000" Freenode
  27.  
  28. 安装 irssi 的强大之处在于很多script,不过都是perl语言写的,所以还是安装irssi-script
  29. sudo aptitude install irssi irssi-scripts
  30.  
  31. irssi自动化配置
  32. 只配置了去ubuntu-cn,所以就把irssi配置成运行后自动登陆服务器、自动加入频道。
  33. /server add -auto -network freenode irc.freenode.net
  34. /network add -nick <你在自己的名子> freenode
  35. /network add -autosendcmd "/^msg nickserv identify <你自己的密码>;wait 2000" freenode
  36. /channel add -auto #ubuntu-cn freenode
  37.  
  38. irssi命令
  39. 打开个终端输入irssi就可以进入她的字符界面了。
  40. 登陆IRC服务器
  41. /connect <服务器地址> <端口>
  42. 或直接在终瑞下输入
  43. irssi -c <服务器地址> -p <端口>
  44. 获得irssi命令帮助
  45. /help
  46. /help connect #获得connect命令的帮助
  47. 窗口操作
  48. Alt+.. #切换窗口
  49. Ctrl+p,n #上一窗口,下一窗口
  50. /window close #关闭当前窗口
  51. /window close <数字> #关闭指定编号的窗口
  52. /window list #窗口列表
  53.  
  54. IRC命令
  55. /nick <昵称> #更改昵称
  56. /whois <昵称> #查看他人信息
  57. /ignore <昵称> #忽略某人聊天内容
  58. /list #频道列表
  59. /join #加入频道
  60. /part [channels] [message] #退出频道,不加频道名退出当前频道,后面可以跟退出原因
  61. /me #关于自己的信息
  62.  
  63. 服务端命令(Services)
  64. 服务端分为ChanServ(频道服务), NickServ(昵称服务) MemoServ(留言服务)三类。
  65. /msg chanserv #频道服务
  66. /msg chanserv help #获得频道服务帮助信息
  67. /msg nickserv #昵称服务
  68. /msg nickserv help #获得昵称服务帮助信息
  69. /msg memoserv #留言服务
  70. /msg memoserv help #获得留言服务帮助信息
  71. 服务端命令不同服务器可能有所不同,详细参考相关文档。
  72.  
  73. 使用 scripts
  74. 这里 可以下载你想要的 scripts,使用方法在下载页面有讲,自己看吧。
  75. 我暂时用了两个 scripts: nicklist.pl and nickcolor.pl , 从终端启动 irssi 的时候使用 screen irssi 来启动,然后 /nicklist screen , alt+ , alt+ 然后就可以看到在右边有个如xchat中的用户列表了。
  76. 或者
  77. screen irssi #用screen进
  78. /script load nicklist.pl #调用nicklist脚本
  79. /nicklist screen
  80. /set nicklist_automode screen #不想每次进入都输上面那段就把这个加上
  81.  
  82. 使用 theme
  83. 这里 可以下载你中意的 theme,使用方法在下载页有讲,自己琢磨。
  84.  
  85. 修改 real_name, user_name, nick
  86. 修改 ~/.irssi 下的 config 文件,找到这段修改粗体部分。
  87. settings = {
  88. core = {
  89. real_name = "Element Ren";
  90. user_name = "Element";
  91. nick = "Element";
  92. };
  93. "fe-text" = { actlist_sort = "refnum"; };
  94. "fe-common/core" = {
  95. theme = "revolutionaryv3.theme";
  96. autolog = "yes";
  97. autolog_path = "~/.irssi/irclogs/%Y/$tag/$0.%m-%d.log";
  98. autolog_colors = "yes";
  99. };
  100. "perl/core/scripts" = { nicklist_automode = "screen"; };
  101. };
  102.  
  103. config中可以看到一些简化的命令
  104. aliases = {
  105. J = "join";
  106. WJOIN = "join -window";
  107. WQUERY = "query -window";
  108. LEAVE = "part";
  109. BYE = "quit";
  110. EXIT = "quit";
  111. SIGNOFF = "quit";
  112. DESCRIBE = "action";
  113. DATE = "time";
  114. HOST = "userhost";
  115. LAST = "lastlog";
  116. SAY = "msg *";
  117. WI = "whois";
  118. WII = "whois $0 $0";
  119. WW = "whowas";
  120. W = "who";
  121. N = "names";
  122. M = "msg";
  123. T = "topic";
  124. C = "clear";
  125. CL = "clear";
  126. K = "kick";
  127. KB = "kickban";
  128. KN = "knockout";
  129. BANS = "ban";
  130. B = "ban";
  131. MUB = "unban *";
  132. UB = "unban";
  133. IG = "ignore";
  134. UNIG = "unignore";
  135. SB = "scrollback";
  136. UMODE = "mode $N";
  137. WC = "window close";
  138. WN = "window new hide";
  139. SV = "say Irssi $J ($V) - http://irssi.org/";
  140. GOTO = "sb goto";
  141. CHAT = "dcc chat";
  142. RUN = "SCRIPT LOAD";
  143. CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi";
  144. SBAR = "STATUSBAR";
  145. INVITELIST = "mode $C +I";
  146. Q = "QUERY";
  147. "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save";
  148. EXEMPTLIST = "mode $C +e";
  149. ATAG = "WINDOW SERVER";
  150. };

参考

Robot5's blog
http://bbs.chinaunix.net/thread-2113237-1-1.html
http://shells.red-pill.eu/
http://www.cnblogs.com/lone/archive/2009/08/02/1536759.html
http://www.openshells.net/index.php/2-uncategorised/7-signup

ssh 与 irc的更多相关文章

  1. 【转】Python Twisted介绍

    Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...

  2. Python Twisted介绍

    原文链接:http://www.aosabook.org/en/twisted.html 作者:Jessica McKellar Twisted是用Python实现的基于事件驱动的网络引擎框架.Twi ...

  3. Python 资源

    转:http://www.360doc.com/content/16/0308/14/31385575_540482688.shtml 本页面是俺收集的各种 Python 资源,不定期更新. 下面列出 ...

  4. python开源项目及示例代码

    本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...

  5. 6个最佳的开源Python应用服务器

    6个最佳的开源Python应用服务器 首先,你知道什么是应用服务器吗?应用服务器通常被描述为是存在于服务器中心架构中间层的一个软件框架. AD: 首先,你知道什么是应用服务器吗?应用服务器通常被描述为 ...

  6. python开源项目及示例代码(转)

    本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...

  7. 爬虫之进阶 twisted

    简介 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库.Twi ...

  8. Twisted简介

    Twisted是用Python实现的基于事件驱动的网络引擎框架,Twisted支持许多常见的传输及应用层协议,包括TCP.UDP.SSL/TLS.HTTP.IMAP.SSH.IRC以及FTP.就像Py ...

  9. Python 库/模块/工具收集

    1 算法 1.1 字符串处理 re 正则表达式的标准库. StringIO / cStringIO 以读写文件的方式来操作字符串(有点类似于内存文件). cStringIO 是 C 语言实现的,提供高 ...

随机推荐

  1. PowerBuilder笔记

    powerbuilder中怎样新建一个pbl文件 在创建pbw之后,右键单击pbw,点新建,弹出对话矿,按图操作,就能创建pbl 主程序入口: 主程序入口代码: // Profile ahzbmysq ...

  2. win10使用技巧之如何打出偏僻字母

    一.背景 有时需要在打出一些希腊字母,诸如ɛ.μ等字符,如果输入法不支持该怎么办呢?在很多国产拼音软件中,都会提供扩展方便用户寻找这类字符,但是如果用户换过一款软件,可能要在一定时间找到这些字符就没那 ...

  3. maven-过滤不打入包的文件

    在使用maven打包时,有时有些测试文件,或者配置都希望打入到架包中 此时就需要使用将不用的文件过滤,maven有很方便的过滤插件.因工作时间,暂不讨论.本次讨论一个非常简单除暴的方法,通过配置ecl ...

  4. perl

    introduction: http://www.yiibai.com/perl/perl_introduction.html functions: http://www.yiibai.com/per ...

  5. Oracle中已有数据的字段类型修改

    创建测试表 create table t_person( id varchar2(200) primary key, name varchar2(200), address varchar2(200) ...

  6. COGS2531. [HZOI 2016]函数的美 打表+欧拉函数

    题目:http://cogs.pw/cogs/problem/problem.php?pid=2533 这道题考察打表观察规律. 发现对f的定义实际是递归式的 f(n,k) = f(0,f(n-1,k ...

  7. Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques

    Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques Jan 04, 2017, Vers ...

  8. 网站引入了css样式文件能访问,就是没有效果

    今天后端的同事遇到这么个问题,引入了外部css文件也能访问,就是页面上没有效果. 大概是下面这个样子: css引入如下: 我非常的纳闷,说真的我还没遇到过这种情况,UI是可以运行的,一点事都没有... ...

  9. web前端基础知识-(六)Django基础

    上面我们已经知道Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Sessi ...

  10. Win10 磁盘占用 100% 有效解决办法

    立即查看 任务管理器,看看是不是有一个 服务主机 unistack服务组或者找类似名称的,点开以后你会看到里面有同步主机 blablah请你毫不犹豫的结束它!结束它!结束它! 按下WIN+R调出运行, ...