学习网址为:
https://support.rstudio.com/hc/en-us/articles/115010737148-Using-the-RStudio-Terminal
Introduction
RStudio终端可以从RStudio IDE中访问系统shell。 它支持xterm仿真,支持使用全屏终端应用程序(例如文本编辑器,终端多路复用器)以及使用行编辑和外壳历史的常规命令行操作。
shell有很多潜在用途,包括高级源代码控制操作,执行长时间运行的作业,远程登录,RStudio服务器的系统管理以及前述的全屏终端程序。
本文不试图涵盖何时以及如何使用系统shell的基础知识。 相反,它侧重于RStudio终端功能本身的功能,设计,选项和限制。
请注意,与大多数RStudio功能不同,终端的特性导致了几个平台特定的差异。 这些主要分为两类:Windows和其他一切(Mac,Linux和Server)。 附录A提供了一个总结。
Getting Started(入门)
“终端”选项卡位于“控制台”选项卡旁边。 点击终端标签,将会创建一个新的终端会话(如果没有的话)。
If the tab isn't visible, show it via Shift+Alt+T (Tools->Terminal->Move Focus to Terminal).——如果标签不可见,请通过Shift + Alt + T(工具 - >终端 - >将焦点移动到终端)显示它。
The full list of terminal-related RStudio commands and keyboard shortcuts is in
Appendix B
. Most terminal-related commands can be found on the Terminal dropdown menu in the terminal pane, and on the Tools->Terminal menu.——附录B中提供了与终端相关的RStudio命令和键盘快捷键的完整列表。大多数与终端相关的命令可以在终端窗格的Terminal下拉菜单中以及Tools-> Terminal菜单中找到。
这里是一个输出简单命令输出的终端:
通过工具 - >全局选项 - >外观设置来控制终端的外观。
xterm模拟可以使用全屏程序。 这里是Emacs运行(将RStudio编辑器主题更改为Merbivore后):
多个终端
RStudio支持多个终端会话。 要启动另一个终端会话,请使用终端下拉菜单中的新建终端命令或Shift + Alt + R。
每个终端会话都是独立的,具有自己的系统shell进程和缓冲区。 通过(1)使用下拉菜单旁边的箭头,(2)在下拉列表中单击终端名称或(3)使用Previous Terminal / Next Terminal下拉菜单命令在它们之间切换。 下拉按钮显示当前所选终端会话的名称(以下屏幕截图中的“终端3”):
终端名称
终端会话有一个默认名称,“终端1”,“终端2”等。 通过下拉菜单中的重命名终端命令重命名当前终端。 例如,在前面的例子中将“Terminal 3”重命名为“Remote Session”给出了这个:
因此,在您的工作流程中,您可以创建多个终端并为其提供有意义的名称以简化导航。 一组命名终端或“终端机”通常与RStudio项目相关联。 有关更多详细信息,请参阅终端架构和生命周期。
另一种(或补充)方法是使用高级 - 使用Tmux或屏幕中所述的终端多路复用器。
在终端执行
在RStudio编辑器中编辑文件时,可以通过Ctrl + Alt + Enter(Mac上的Cmd + Alt + Enter)将任何选择(或者当前行,如果没有选中)发送到活动终端。 如果单线发送到终端,则光标将自动前进到下一行,允许单步执行。
在以下示例中,加载了一个简单的Python源文件,在当前终端中启动了Python解释器,并使用Ctrl + Alt + Enter单步执行脚本:
如果正在编辑shell文件(* .sh),则Ctrl + Enter(在Mac上加上Cmd + Enter)可用于单步执行,运行工具栏按钮也可用于单步执行。 这也可以在Windows上运行,但不会检查活动终端会话中加载的shell类型是否与正在发送的命令匹配。
请注意,“运行脚本”按钮与以前版本的RStudio执行的操作相同,并会通过R Console中的system()保存并运行整个脚本。 此按钮不会出现在Windows中。
繁忙的终端
在终端中运行的程序不会阻塞RStudio用户界面的其余部分,因此即使一个或多个终端会话运行子进程,工作也可以在RStudio中继续工作。
带有子进程的终端会被RStudio占用,并且它的名称旁边会出现(busy),并且关闭[x]将变为停止按钮:
如果终端会话忙碌,尝试退出RStudio(或任何其他将停止当前R会话的操作)将发出警告。 进行中会杀死正在运行的进程。 下面是一个尝试退出RStudio for Windows的例子,它有一个繁忙的PowerShell终端会话:
重要提示:在Windows桌面IDE上,只有使用命令提示符或PowerShell的终端会话才能执行“繁忙检测”。 在Git-Bash或WSL(适用于Linux的Windows子系统)上,终端永远不会报告为繁忙,因此即使它们正在运行进程,也没有关于杀死这些内容的警告。
关闭终端会话
要关闭终端会话,请使用终端下拉菜单中的关闭终端命令,单击终端窗格工具栏最右侧的[x],或者在shell本身内键入exit。
如前所述,如果终端当前处于繁忙状态,则[x]变为停止按钮。
在Windows桌面以外的所有版本的RStudio中,单击停止按钮将触发中断当前终端命令,向终端发送中断; 这可能会关闭当前正在运行的程序(程序本身决定接收中断时该怎么做),但不会关闭终端。 在Windows上,停止按钮不会执行任何操作。
最后,如果终端功能对您的工作流程没有用处,您可以通过单击终端选项卡上的[x]本身来完全删除选项卡。 这将关闭所有正在运行的终端会话,包括任何定制的终端会话。 RStudio的后续实例将不会显示“终端”选项卡:要将其返回,请使用Shift + Alt + T(工具 - >终端 - >将焦点移至终端)。
终端缓冲区
运行非全屏终端程序时,终端缓冲区保留最后1000行输出。 如果您的系统支持,您可以使用滚动条(通过鼠标)或鼠标滚轮滚动浏览此缓冲区。 全屏程序通常有自己的内置缓冲区和导航约定。
使用本地shell命令清除显示(例如,清除Posix样式的shell,cls for Windows命令提示符或Clear-Host for PowerShell)只会清除缓冲区的可见部分。 要清除整个缓冲区,请在焦点位于终端中时使用Ctrl + L。
鼠标可用于在终端中选择文本,以便可将其复制并粘贴到其他位置。
要将整个终端缓冲区发送到新的RStudio编辑器缓冲区,请使用终端下拉菜单中的“复制终端到编辑器”命令。
下期见:
下期完成以下内容:
领取专属 10元无门槛券
私享最新 技术干货