Have you ever wondered how to copy the output of your terminal into a text file? Or maybe you teach Linux and you want to see what your students typed in and as well as the output? You think that running history is not enough? Then you need the
Open the man page of
script command and you will see this:
Script makes a typescript of everything printed on your terminal. It is useful for students who need a hardcopy record of an interactive session as proof of an assignment, as the typescript file can be printed out later with lpr(1).
In a nutshell, it is
tee all rolled into one. It will record everything you see on your screen, even the color. So if you typed in an invalid command, you will see the error in the log or if you run it correctly, you will have the output. But commands like top that refreshes the screen at an interval will most likely ruin the session or the log, so try to avoid similar commands.
To use it, just type the command
script and it will begin recording the session. Once you are done, just type
This is script in action:
rai@host1:~> script -a /tmp/script_test.log
Script started, file is /tmp/script_test.log
rai@host1:~> ls /home
R20 r200 R21 rai xx19
bash: thisnotacommandbutirunitanyway: command not found
Script done, file is /tmp/script_test.log
rai@host1:~> cat /tmp/script_test.log
Script started on Mon 17 Jan 2011 06:24:12 PM PHT
rai@lhost1:~> ls /home
R20 r200 R21 rai xx19
bash: thisnotacommandbutirunitanyway: command not found
Script done on Mon 17 Jan 2011 06:24:54 PM PHT
The example above shows that
script was started with -a option meaning it will append the output the specified file.
A better way to do this is to use it together with
On Terminal 1 (Student’s terminal):
rai@host1:~> mkfifo /tmp/script_test.fifo
rai@host1:~> script -f /tmp/script_test.fifo
On Terminal 2 (Teacher’s terminal, same machine):
rai@host1:/tmp> cat /tmp/script_test.fifo
The above scenario will perform the following:
1) On the Student’s terminal, it will create an named pipe /tmp/script_test.fifo (man mkfifo) then run the script command with the -f option that ‘flushes’ out the output after each run. The Student’s terminal will look like it is not responding at this point, but don’t worry, it is perfectly normal.
2) On the Teacher’s terminal, the command cat will read the output file. Once you run the cat command, the session will be started.
Try the above steps and see how each screen behaves. Check also if doing the script command will create a populated output file.
Every user who switches from Windows to Linux has the fear of editing configuration files using the command line interface (CLI). If you are one of those people, then I am here to guide you through the most common configuration files found in a Linux system. Please note that to be able to edit these files, you need to have knowledge in file editors such as vim or pico.
System wide environment variables for all users.
List of devices and their associated mount points. Edit this file to add cdroms, DOS partitions and floppy drives at startup.
Message of the day broadcast to all users at login.
Bash script that is executed at the end of login process. Similar to autoexec.bat in DOS.
Contains full hostname including domain.
There are 4 directories that automatically execute all scripts within the directory at intervals of hour, day, week or month.
A list of all know host names and IP addresses on the machine.
Parameters for the Apache web server
Specifies the run level that the machine should boot into.
Defines IP addresses of DNS servers.
Linux Shortcuts Every Newbie Should Know
One thing that Linux is not so popular of is that it has quite a few keyboard shortcuts that every Linux user should know. Here are a few examples of Linux shortcuts that will help anyone who uses Linux.
Switch to the first text terminal. Under Linux you can have several (6 in standard setup) terminals opened at the same time.
Switch to the nth text terminal.
Print the name of the terminal in which you are typing this command.
Switch to the first GUI terminal (if X-windows is running on this terminal).
Switch to the nth GUI terminal (if a GUI terminal is running on screen n-1). By default, nothing is running on terminals 8 to 12, but you can run another server there.
(In a text terminal) Autocomplete the command if there is only one option, or else show all the available options.
Scroll and edit the command history. Press <Enter> to execute.
Scroll terminal output up. Work also at the login prompt, so you can scroll through your bootup messages.
Scroll terminal output down.
(in X-windows) Change to the next X-server resolution (if you set up the X-server to more than one resolution). For multiple resolutions on my standard SVGA card/monitor, I have the following line in the file /etc/X11/XF86Config (the first resolution starts on default, the largest determines the size of the “virtual screen”):
Modes “1024×768″ “800×600″ “640×480″ “512×384″ “480×300″ “400×300″ “1152×864″
(in X-windows) Change to the previous X-server resolution.
(in X-windows) Kill the current X-windows server. Use if the X-windows server crushes and cannot be exited normally.
Shut down the system and reboot. This is the normal shutdown command for a user at the text-mode console. Don’t just press the “reset” button for shutdown!
Kill the current process (mostly in the text mode for small applications).
Log out from the current terminal. See also the next command.
Send [End-of-File] to the current process. Don’t press it twice else you also log out (see the previous command).
If you need to execute a certain command repeatedly, you may use the
watch command to do the repeating for you.
In this example, the command
ps will be run every 2 seconds to monitor how fast the new processes spawn:
$ watch -n2 "ps aux|grep http"
watch command will run
ps every two seconds and it will display the output in stdout. You may increase or decrease the interval as necessary. This is useful if you want to monitor a process at certain time intervals. Personally, I use this to check for processes that spawns children way too fast.
Let us say you execute the command ‘
ls –alh’ every time you need a long listing of files and directories. Now you want a shortcut to do this. Fortunately, you can do so by using the command alias.
The alias command is useful for creating shortcuts for long commands or for correcting typing mistakes.
To create a shortcut for
ls, you can do this:
$ alias ls=”ls -alh”
Now, everytime you execute
ls command, it will be run as if you are executing the whole
ls –alh command. Be reminded that this will replace the existing ls command. You may use a different name for the new shortcut like so:
$ alias ll=”ls -alh”
However, once you exit the current terminal, the alias will not be saved. To make the alias permanent, you may edit the .bashrc file in user’s home directory:
$ vi ~rai/.bashrc
Then insert the alias command after the line that says
#system wide functions and aliases. Save and exit.
That should do it!
Subscribe to Email Feeds
- Vim: How to Copy Multiple Lines
- Required Packages for Oracle 11gR2 on Red Hat Enterprise Linux 6
- How Replace Space with Newline in Vim
- 12 Little Things That You As An Ateneo Hearter Can Do To Help Your Country | Yoo Jin and Akeem's Blog on Bayanihan Linux: True Blue Pinoy Linux
- [RESOLVED]Can you do this in aspx page | ASP Questions & Answers on Tip: How to Decode CSR
- How to Add or Remove Library Path in RHEL | PinoyTux Weblog on What are Libraries in Linux?
- 博文：《RHEL4 安装yum》 - 苗乡小鱼的博客 on Howto: Install yum On RHEL 4
- Hiding Files Inside An Image in Linux | SACHIN JINDAL'S BLOG on Hide Files Inside An Image File