]>
Commit | Line | Data |
---|---|---|
44bd5ea7 A |
1 | .\" Copyright (c) 1980, 1990, 1993 |
2 | .\" The Regents of the University of California. All rights reserved. | |
3 | .\" | |
4 | .\" Redistribution and use in source and binary forms, with or without | |
5 | .\" modification, are permitted provided that the following conditions | |
6 | .\" are met: | |
7 | .\" 1. Redistributions of source code must retain the above copyright | |
8 | .\" notice, this list of conditions and the following disclaimer. | |
9 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
10 | .\" notice, this list of conditions and the following disclaimer in the | |
11 | .\" documentation and/or other materials provided with the distribution. | |
44bd5ea7 A |
12 | .\" 4. Neither the name of the University nor the names of its contributors |
13 | .\" may be used to endorse or promote products derived from this software | |
14 | .\" without specific prior written permission. | |
15 | .\" | |
16 | .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
17 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
18 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
19 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
20 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
21 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
22 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
23 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
24 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
25 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
26 | .\" SUCH DAMAGE. | |
27 | .\" | |
28 | .\" @(#)script.1 8.1 (Berkeley) 6/6/93 | |
b5fe885e | 29 | .\" $FreeBSD$ |
44bd5ea7 | 30 | .\" |
b5fe885e | 31 | .Dd December 4, 2013 |
44bd5ea7 | 32 | .Dt SCRIPT 1 |
e1a085ba | 33 | .Os |
44bd5ea7 A |
34 | .Sh NAME |
35 | .Nm script | |
36 | .Nd make typescript of terminal session | |
37 | .Sh SYNOPSIS | |
38 | .Nm | |
b5fe885e A |
39 | .Op Fl adkpqr |
40 | .Op Fl F Ar pipe | |
e1a085ba A |
41 | .Op Fl t Ar time |
42 | .Op Ar file Op Ar command ... | |
44bd5ea7 | 43 | .Sh DESCRIPTION |
e1a085ba | 44 | The |
44bd5ea7 | 45 | .Nm |
e1a085ba | 46 | utility makes a typescript of everything printed on your terminal. |
44bd5ea7 | 47 | It is useful for students who need a hardcopy record of an interactive |
e1a085ba | 48 | session as proof of an assignment, as the typescript file |
44bd5ea7 A |
49 | can be printed out later with |
50 | .Xr lpr 1 . | |
51 | .Pp | |
52 | If the argument | |
53 | .Ar file | |
54 | is given, | |
55 | .Nm | |
56 | saves all dialogue in | |
57 | .Ar file . | |
58 | If no file name is given, the typescript is saved in the file | |
e1a085ba | 59 | .Pa typescript . |
44bd5ea7 | 60 | .Pp |
e1a085ba A |
61 | If the argument |
62 | .Ar command | |
63 | is given, | |
64 | .Nm | |
65 | will run the specified command with an optional argument vector | |
66 | instead of an interactive shell. | |
67 | .Pp | |
68 | The following options are available: | |
69 | .Bl -tag -width indent | |
44bd5ea7 A |
70 | .It Fl a |
71 | Append the output to | |
72 | .Ar file | |
73 | or | |
74 | .Pa typescript , | |
75 | retaining the prior contents. | |
b5fe885e A |
76 | .It Fl d |
77 | When playing back a session with the | |
78 | .Fl p | |
79 | flag, do not sleep between records when playing back a timestamped session. | |
80 | .It Fl F Ar pipe | |
81 | Immediately flush output after each write. | |
82 | This will allow a user to create a named pipe using | |
83 | .Xr mkfifo 1 | |
84 | and another user may watch the live session using a utility like | |
85 | .Xr cat 1 . | |
86 | .\".It Fl f | |
87 | .\"Create | |
88 | .\".Ar file.filemon | |
89 | .\"or | |
90 | .\".Pa typescript.filemon | |
91 | .\"using | |
92 | .\".Xr filemon 4 . | |
e1a085ba | 93 | .It Fl k |
b5fe885e A |
94 | Log keys sent to the program as well as output. |
95 | .It Fl p | |
96 | Play back a session recorded with the | |
97 | .Fl r | |
98 | flag in real time. | |
e1a085ba | 99 | .It Fl q |
b5fe885e A |
100 | Run in quiet mode, omit the start, stop and command status messages. |
101 | .It Fl r | |
102 | Record a session with input, output, and timestamping. | |
e1a085ba | 103 | .It Fl t Ar time |
b5fe885e A |
104 | Specify the interval at which the script output file will be flushed |
105 | to disk, in seconds. | |
e1a085ba A |
106 | A value of 0 |
107 | causes | |
108 | .Nm | |
b5fe885e | 109 | to flush after every character I/O event. |
e1a085ba A |
110 | The default interval is |
111 | 30 seconds. | |
44bd5ea7 A |
112 | .El |
113 | .Pp | |
e1a085ba | 114 | The script ends when the forked shell (or command) exits (a |
44bd5ea7 A |
115 | .Em control-D |
116 | to exit | |
117 | the Bourne shell | |
118 | .Pf ( Xr sh 1 ) , | |
119 | and | |
e1a085ba | 120 | .Em exit , |
44bd5ea7 A |
121 | .Em logout |
122 | or | |
e1a085ba | 123 | .Em control-D |
44bd5ea7 A |
124 | (if |
125 | .Em ignoreeof | |
126 | is not set) for the | |
127 | C-shell, | |
128 | .Xr csh 1 ) . | |
129 | .Pp | |
130 | Certain interactive commands, such as | |
131 | .Xr vi 1 , | |
132 | create garbage in the typescript file. | |
e1a085ba | 133 | The |
44bd5ea7 | 134 | .Nm |
e1a085ba A |
135 | utility works best with commands that do not manipulate the screen. |
136 | The results are meant to emulate a hardcopy terminal, not an addressable one. | |
44bd5ea7 | 137 | .Sh ENVIRONMENT |
b5fe885e | 138 | The following environment variables are utilized by |
e1a085ba | 139 | .Nm : |
44bd5ea7 | 140 | .Bl -tag -width SHELL |
b5fe885e A |
141 | .It Ev SCRIPT |
142 | The | |
143 | .Ev SCRIPT | |
144 | environment variable is added to the sub-shell. | |
145 | If | |
146 | .Ev SCRIPT | |
147 | already existed in the users environment, | |
148 | its value is overwritten within the sub-shell. | |
149 | The value of | |
150 | .Ev SCRIPT | |
151 | is the name of the | |
152 | .Ar typescript | |
153 | file. | |
44bd5ea7 A |
154 | .It Ev SHELL |
155 | If the variable | |
156 | .Ev SHELL | |
157 | exists, the shell forked by | |
158 | .Nm | |
e1a085ba A |
159 | will be that shell. |
160 | If | |
44bd5ea7 A |
161 | .Ev SHELL |
162 | is not set, the Bourne shell | |
e1a085ba | 163 | is assumed. |
b5fe885e | 164 | .Pq Most shells set this variable automatically . |
44bd5ea7 A |
165 | .El |
166 | .Sh SEE ALSO | |
167 | .Xr csh 1 | |
b5fe885e A |
168 | .\".Xr filemon 4 |
169 | .\".Po | |
170 | .\"for the | |
171 | .\".Em history | |
172 | .\"mechanism | |
173 | .\".Pc . | |
44bd5ea7 A |
174 | .Sh HISTORY |
175 | The | |
176 | .Nm | |
177 | command appeared in | |
178 | .Bx 3.0 . | |
b5fe885e A |
179 | .Pp |
180 | The | |
181 | .Fl d , | |
182 | .Fl p | |
183 | and | |
184 | .Fl r | |
185 | options first appeared in | |
186 | .Nx 2.0 | |
187 | and were ported to | |
188 | .Fx 9.2 . | |
44bd5ea7 | 189 | .Sh BUGS |
e1a085ba | 190 | The |
44bd5ea7 | 191 | .Nm |
e1a085ba | 192 | utility places |
44bd5ea7 A |
193 | .Sy everything |
194 | in the log file, including linefeeds and backspaces. | |
195 | This is not what the naive user expects. | |
e1a085ba A |
196 | .Pp |
197 | It is not possible to specify a command without also naming the script file | |
198 | because of argument parsing compatibility issues. | |
199 | .Pp | |
200 | When running in | |
201 | .Fl k | |
202 | mode, echo cancelling is far from ideal. | |
203 | The slave terminal mode is checked | |
204 | for ECHO mode to check when to avoid manual echo logging. | |
205 | This does not | |
b5fe885e A |
206 | work when the terminal is in a raw mode where |
207 | the program being run is doing manual echo. | |
208 | .Pp | |
209 | If | |
210 | .Nm | |
211 | reads zero bytes from the terminal, it switches to a mode when it | |
212 | only attempts to read | |
213 | once a second until there is data to read. | |
214 | This prevents | |
215 | .Nm | |
216 | from spinning on zero-byte reads, but might cause a 1-second delay in | |
217 | processing of user input. |