Linux script命令 —— 终端里的记录器

Linux script命令 —— 终端里的记录器

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

script是什么

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

怎么用

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


  1. pungki@dev-machine:~$ script
  2. Script started, file is typescript
  3. pungki@dev-machine:~$

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


  1. pungki@dev-machine:~$ script myfile

Define script file

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

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

为什么我们要用script命令

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

和同事共事时

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

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


  1. $ script collaborate

Create collaborate file

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

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


  1. $ script -a collaborate

Append the file

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

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


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

Add script to bash profile

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

Script without notification

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

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

Script with notification

退出记录

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

结尾

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

原文发布时间:2014-06-14

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-20 10:58:44

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

linux如何在终端里输入shell脚本?

问题描述 linux如何在终端里输入shell脚本? 大家在公司里工作时写shell是在字符界面还是在图形界面的终端里写?我在图形界面的终端里写每写完一个命令就按回车然后命令就会执行我看其他人写的shell脚本写了好多行那么如何才能写很多行的脚本而不会每写一行换行按回车时就执行? 解决方案 http://blog.chinaunix.net/uid-20328094-id-95121.html 解决方案二: http://fanqiang.chinaunix.net/program/shell/

Linux script 命令记录(数据库)操作步骤

    对DBA而言,经常碰到升级数据库或是apply patch,以及有些时候需要运行大量的脚本.对于这些操作我们希望现在在屏幕同时又输出的文件以备后续查询过程中曾经丢失的步骤或错误.Linux下的script命令就是解决这个问题的好帮手.   1.script命令描述 script命令会记录所有的操作到文件同时在屏幕上输出,直到终止登陆的会话,或使用CRTL+D,或使用exit退出则停止记录. 这个命令对于数据库的升级或是重要设置的情形下使用可以用于后续查询操作成功或失败. 用法: $ sc

【Linux学习 】Linux使用Script命令来记录并回放终端会话

[TOC] 一.背景 在之前的博客 [Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?] 里面,我已经详细记录了每天的自动备份与清理过期备份文件的工作. 1.每天凌晨2点在Gitlab服务器上执行Gitlab备份功能. 2.每天凌晨3点在Gitlab服务器上执行scp命令将最新的Gitlab备份文件复制到远程的文件备份服务器. 3.每天凌晨4点在远程的文件备份服务器上检测备份文件的时间,自动删除超过7天的备份文件. 这个脚本从8月18日开始运

如何在Arch Linux的终端里设定WiFi网络

如果你使用的是其他 Linux 发行版 而不是 Arch CLI,那么可能会不习惯在终端里设置 WiFi.尽管整个过程有点简单,不过我还是要讲一下.在这篇文章里,我将带领新手们通过一步步的设置向导,把你们的 Arch Linux 接入到你的 WiFi 网络里. 在 Linux 里有很多程序来设置无线连接,我们可以用 ip 和 iw 来配置因特网连接,但是对于新手来说有点复杂.所以我们会使用 netctl 命令,这是一个基于命令行的工具,用来通过配置文件来设置和管理网络连接. 注意:所有的设定都需

Linux下通过script 命令记录(数据库)操作步骤

对DBA而言,经常碰到升级数据库或是apply patch,以及有些时候需要运行大量的脚本.对于这些操作我们希望现在在屏幕同时又输出的文件以备后续查询过程中曾经丢失的步骤或错误.Linux下的script命令就是解决这个问题的好帮手   1.script命令描述   复制代码 代码如下: script命令会记录所有的操作到文件同时在屏幕上输出,直到终止登陆的会话,或使用CRTL+D,或使用exit退出则停止记录. 这个命令对于数据库的升级或是重要设置的情形下使用可以用于后续查询操作成功或失败.

代码-linux的xterm开启的终端里使用原始套接字发送数据包出错,求助

问题描述 linux的xterm开启的终端里使用原始套接字发送数据包出错,求助 xterm下原始套接字可以接收数据包,但是发送数据包时出错,怎么解决? 错误是[error 101]network is unreachable. 代码如下: proto = socket.getprotobyname('tcp') # only tcp sock = socket.socket( socket.AF_INET, socket.SOCK_RAW, proto ) packet_base = sock.

linux常用命令加实例大全

目  录引言    1一.安装和登录    2(一)    login    2(二)    shutdown    2(三)    halt    3(四)    reboot    3(五)    install    4(六)    mount    4(七)    umount    6(八)    chsh    6(九)    exit    7(十)    last    7(十一)    动手练习    7二.文件处理    9(一)    file    9(二)    mkd

r语言-如何在终端里编译R?要求不能通过提示符打开软件

问题描述 如何在终端里编译R?要求不能通过提示符打开软件 感谢大家关注我的问题,具体描述如下: 我知道在linux下,甚至只要输一个R就可以进去R,但是这其实是打开软件. 请问有没有可能在终端下,不通过运行软件,来写R呢? vi一个文件这种的回答,也不是我要的. 如果可以有其他办法写的话,请问有没有办法通过输入命令来保存workspace呢?同样是不通过任何软件的情况,要通过命令提示符这种. 环境是windows或者linux都行. 如果你觉得真没有不通过软件的方法,也请告诉我你觉得"真没有&q

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

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