远程外壳(英语:remote shell,缩写:rsh)是一个命令行界面的计算机程序,可以作为另一个用户在计算机网络中的另一台计算机上执行shell命令。
rsh连接的远程系统运行着rsh的守护进程(rshd)。守护进程通常使用公知的传输控制协议(TCP)端口号514。
历史Rsh来自BSD Unix操作系统的一部分,以及rcp,是1983年的4.2版本BSD的rlogin包的一部分。rsh自此被移植到其他操作系统。
rsh命令与另一个常见的UNIX实用工具有相同名称,受限外壳(英语:restricted shell),其首次出现在PWB/UNIX当中;在System V Release 4中,受限外壳通常位于 /usr/bin/rsh。1
局限正如rlogin一文中所述,rsh的协议对于网络使用来说是不安全的,因为它通过网络发送未加密的信息,以及一些其他的原因。zsh的一些实现也通过在网络上发送未加密的密码进行认证。rsh在很大程度上已经被Secure Shell(ssh)程序所取代,即使在本地网络上也是如此。1
示例作为rsh使用的示例,以下以用户remoteuser在运行类UNIX系统的计算机host.example.com上执行命令mkdir testdir:
rsh -l remoteuser host.example.com "mkdir testdir"
命令完成后,rsh终止。如果没有指定命令,则rsh将使用rlogin登录远程系统。使用域名系统(DNS)查找远程计算机的网络位置。1
命令行界面命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(character user interface, CUI)。
通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,在现在的图形用户界面的操作系统中,通常都保留着可选的命令行界面。2
守护进程在一个多任务的电脑操作系统中,守护进程(英语:daemon,/ˈdiːmən/或/ˈdeɪmən/)是一种在后台执行的电脑程序。此类程序会被以进程的形式初始化。守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。
通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程运行fork,然后使其父进程立即终止,使得这个子进程能在init下运行。这种方法通常被称为“脱壳”。
系统通常在启动时一同起动守护进程。守护进程为对网络请求,硬件活动等进行响应,或其他通过某些任务对其他应用程序的请求进行回应提供支持。守护进程也能够对硬件进行配置(如在某些Linux系统上的devfsd),运行计划任务(例如cron),以及运行其他任务。
在DOS环境中,此类应用程序被称为驻留程序(TSR)。在Windows系统中,由称为Windows服务的应用程序来履行守护进程的职责。
在原本的Mac OS系统中,此类应用程序被称为“extensions”。而作为Unix-like的Mac OS X有守护进程。(在Mac OS X中也有“服务”,但他们与Windows中类似的程序在概念上完全不相同。)2
本词条内容贡献者为:
李嘉骞 - 博士 - 同济大学