论文标题
命令行定制的实证研究
An Empirical Investigation of Command-Line Customization
论文作者
论文摘要
交互式命令行(也称为壳牌)是由广泛的软件专业人员(工程师,系统管理员,数据科学家等)广泛使用的突出机制。因此,Shell自定义可以洞悉他们反复执行的任务,标准环境对这些任务的支持程度以及环境可以进行有效扩展或修改的方式。为了表征命令行自定义的模式和复杂性,我们通过分析GitHub上的超过220万个Shell别名定义来挖掘命令行用户的集体知识。 Shell Aliases允许命令行用户通过定义任意复杂的命令替换来自定义其环境。 Using inductive coding methods, we found three types of aliases that each enable a number of customization practices: Shortcuts (for nicknaming commands, abbreviating subcommands, and bookmarking locations), Modifications (for substituting commands, overriding defaults, colorizing output, and elevating privilege), and Scripts (for transforming data and chaining subcommands).我们推测,确定常见的自定义实践可以指出命令行计划中特定的可用性问题,并且对这些实践的更深入了解可以支持研究人员和工具开发人员设计更好的用户体验。除了分析外,我们还以精选数据集的形式提供了广泛的可重复性包,以及有据可查的计算笔记本,可实现进一步的知识发现,并为改善命令行工作流的学习方法提供了基础。
The interactive command line, also known as the shell, is a prominent mechanism used extensively by a wide range of software professionals (engineers, system administrators, data scientists, etc.). Shell customizations can therefore provide insight into the tasks they repeatedly perform, how well the standard environment supports those tasks, and ways in which the environment could be productively extended or modified. To characterize the patterns and complexities of command-line customization, we mined the collective knowledge of command-line users by analyzing more than 2.2 million shell alias definitions found on GitHub. Shell aliases allow command-line users to customize their environment by defining arbitrarily complex command substitutions. Using inductive coding methods, we found three types of aliases that each enable a number of customization practices: Shortcuts (for nicknaming commands, abbreviating subcommands, and bookmarking locations), Modifications (for substituting commands, overriding defaults, colorizing output, and elevating privilege), and Scripts (for transforming data and chaining subcommands). We conjecture that identifying common customization practices can point to particular usability issues within command-line programs, and that a deeper understanding of these practices can support researchers and tool developers in designing better user experiences. In addition to our analysis, we provide an extensive reproducibility package in the form of a curated dataset together with well-documented computational notebooks enabling further knowledge discovery and a basis for learning approaches to improve command-line workflows.