Browsing all articles tagged with command

How to Copy Terminal Session into a File

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 script command.

Running script command

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 history and 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 exit.

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
rai@host:~> thisnotacommandbutirunitanyway
bash: thisnotacommandbutirunitanyway: command not found
rai@host1:~> exit
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
rai@host1:~> thisnotacommandbutirunitanyway
bash: thisnotacommandbutirunitanyway: command not found
rai@host1:~> exit

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 mkfifo command:

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.


Common Linux Configuration Files

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

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.

<Ctrl><Alt><Fn> (n=1..6)
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).

<Ctrl><Alt><Fn> (n=7..12)
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).


How to Use watch 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"

The 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.


How to Use the alias Command

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!