script —— 终端里的记录器

当 你在终端或者控制台工作时,你可能想要记录在终端中所做的一切。这些记录可以用来当作史料,保存终端所发生的一切。比如说,你和一些Linux管理员们同 时管理着相同的机器,或者你让某人远程登陆到了你的服务器上,你可能记录想要终端里发生的一切。要实现这个目标,你可以使用script命令。

script是什么

scirpt就是一个命令,可以制作一份记录输出到终端的记录。对于那些想要真实记录终端会话的人来说,这很有用。该记录可以保存并在以后再打印出来。

怎么用

默认情况下,我们可以通过在终端中输入script来启动scirpt命令。

  1. [email protected]-machine:~$ script
  2. Script started, file is typescript
  3. [email protected]-machine:~$

你也可以指定目标文件名来记录打印结果。

  1. [email protected]-machine:~$ script myfile

当你再次见到命令提示符,这意味着终端将记录打印到终端的任何东西。

你会看到当前目录,有个名为myscript的文件。(LCTT译注,此处原文有误。这里指定了记录文件名为myfile,而不是默认的 typescript。)

为什么我们要用script命令

因为在之前已经提到过,script命令的主要功能是记录所有的东西。下面给出了两个使用该命令的场景。

和同事共事时

当和同事一起工作时,我们可以通过script来记录你的活动。

比如,我们会使用名为collaborate的打印文件,来完成打印:

  1. $ script collaborate

然后,在完成一些任务后,假如你需要把你干的活发给另外一个工程师,那就把那文件发给他。所以当另外一个工程师需要复查所做的事情,他只要用文本编辑器打开这个文件就行了。

如果他想要更新该文件(以增加他的工作部分),可以使用-a选项。

  1. $ script -a collaborate

记录某人在终端中的所作所为

你可能让你的工程师或者某个人远程访问你的系统,要确保你的工程师正在干正确的事,你可以记录下他在你系统上的所作所为。要让script命令在登录时自动运行,我们可以把它添加进shell环境配置文件中。如果你正在使用bash shell,把这一行加进你的bash环境配置文件中。

  1. $ vi ~/.profile
  2. # run the script command to record everything
  3. # use -q for quite and -a option to append the script
  4. #
  5. /usr/bin/script -qa /usr/local/script/log_record_script

然后保存。下次他登录进你的系统时,script命令就会自动运行,并把日志记录进/usr/local/script/logrecordscript

-q选项可以让scirpt命令以静默模式运行,登录进来的用户不会知道script命令已经运行了。而-a选项将会让记录附加到文件中,而不会擦除先前的记录。

如果不使用-q选项,那么当用户登录进来时,他会收到像下图中这样的通知。

退出记录

要退出记录活动,我们可以在终端中按下Ctrl+D,或者输入exit。在退出script前,你会发现记录文件的大小为0 Kb,而在退出之后,文件大小会发生改变。

结尾

Script命令在你需要记录或者存档终端活动时可能很有用,记录文件会存储为文本文件,所以可以很方便地用文本编辑器打开。跟平常一样,我们都可以通过输入man script或者scirpt -h来显示帮助页并查看更多详细用法。

script —— 终端里的记录器

时间: 2024-11-04 00:51:11

script —— 终端里的记录器的相关文章

Linux终端里的记录器

我们在调试程序的时候,免不了要去抓一些 log ,然后进行分析. 如果 log 量不是很大的话,那很简单,只需简单的复制粘贴就好. 但是如果做一些压力测试,产生大量 log ,而且系统内存又比较小(比如嵌入式设备),那要怎么处理呢? 当然,secureCRT 和 mobaXterm 都有将日志保存到本地的功能,使用起来也是很方便.但是有些工具,比如 putty,就没这样的功能了. 这时终端里的记录器-- script 就派上用场了. 使用场景 调试会产生大量 log 的应用程序,并且需要保存到本

如何在Linux终端里用Shell和C输出带颜色的文字

我们知道,使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示.那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言. 一.shell下的实现方法 先来讲在shell下,如何实现.用echo命令就可以实现,参看以下例子: echo  -e  "\033[32mHello, world!" 当你在终端里敲下这条命令后,是不是发现系统用绿色输出了"Hello,world!",不止如此,连之后的命令提示符都变成了绿色?不要着急,听我继续说

在 Mac OS X 终端里使用 Solarized 配色方案

MacOS X 终端solarized配色 相信长期浸泡在终端和代码的小伙伴们都有一套自己喜爱的配色方案.以前一直在用简单.适合阅读的 Terminal.app 配色方案,换到 MacBook Pro with Retina display 后发现这个配色时间看长了眼睛有点累.不断有人推荐 Solarized,看了一些截图,感觉还不错,决定试一下. Solarized 是目前最完整的 Terminal/Editor/IDE 配色项目,几乎覆盖所有主流操作系统(Mac OS X, Linux, W

[转]在 Mac OS X 终端里使用 Solarized 配色方案

相信长期浸泡在终端和代码的小伙伴们都有一套自己喜爱的配色方案.以前一直在用简单.适合阅读的 Terminal.app 配色方案,换到 MacBook Pro with Retina display 后发现这个配色时间看长了眼睛有点累.不断有人推荐 Solarized,看了一些截图,感觉还不错,决定试一下. Solarized 是目前最完整的 Terminal/Editor/IDE 配色项目,几乎覆盖所有主流操作系统(Mac OS X, Linux, Windows).编辑器和 IDE(Vim,

mac 终端里进入mysql和退出

先在偏好设置里启动mysql服务 获取超级权限 在终端输入代码 sudo su 输入完后获取超级权限 终端显示 sh-3.2# 输入本机密码(Apple ID密码) 接着通过绝对路径登陆 代码 /usr/local/mysql/bin/mysql -u root -p 再输入mysql密码(我的密码设置为root) 登陆成功 退出代码 quit 退出成功 bye 最后退出sh-3.2#超级权限 代码 exit

macOS 终端里神秘的 bogon 及解决方法

如题,Mac 下的终端经常有时候前面的计算机名会错误的显示成 bogon. 这是因为终端会先向 DNS 请求查询当前 IP 的反向域名解析的结果,如果查询不到再显示我们设置的计算机名.而由于我们的 DNS 错误地将保留地址反向的 NS 查询结果返回了 bogon. 其中 bogon 本应该用来指虚假的 IP 地址,而非保留 IP 地址.因此就出现了会时不时地打印 bogon 这种奇怪名字作为计算机名的现象了.那么如何让终端只显示我们想要的计算机名而不总是从 DNS 返回结果呢? 解决方案:在终端

Mac 终端里神秘的 bogon 及解决方法

才开始 使用mac  昨天突然出现主机名   被改成bogon 上网找了些方法 记录下来: 如题,Mac 下的终端经常有时候前面的计算机名会错误的显示成 bogon. 这是因为终端会先向 DNS 请求查询当前 IP 的反向域名解析的结果,如果查询不到再显示我们设置的计算机名.而由于我们的 DNS 错误地将保留地址反向的 NS 查询结果返回了 bogon. 其中 bogon 本应该用来指虚假的 IP 地址,而非保留 IP 地址.因此就出现了会时不时地打印 bogon 这种奇怪名字作为计算机名的现象

Mac终端里神秘的bogon

本来终端显示的是计算机名的,结果这两天显示为bogon,一查bogon这个单词是虚拟.虚伪的意思.再查原来是终端会先向DNS服务器查询本地ip的方向解析结果,如果查询不到再显示计算机名.而由于我们的 DNS 错误地将保留地址反向的 NS 查询结果返回了 bogon. 其中 bogon 本应该用来指虚假的 IP 地址,而非保留 IP 地址.因此就出现了会时不时地打印 bogon 这种奇怪名字作为计算机名的现象了.那么如何让终端只显示我们想要的计算机名而不总是从 DNS 返回结果呢? 方法有二: 一

script标签里的defer属性

入职新公司,看代码的时候注意到有的script标签中有一个defer属性,查了一下.在这里分享出来. 需要注意的有三点,其中前两点是在错误中分辨出来的: 错误来源:http://www.w3school.com.cn/tags/att_script_defer.asp 1,defer属性只有IE支持:应该说是在主流浏览器都是支持的: http://www.runoob.com/tags/att-script-defer.html 中说了,在所有主流浏览器都支持defer属性:在Chrome,FF