7. Information gathering programs

I'm covering these programs here just so you have a quick reference and know that they are available. Most of these programs are much more powerful and can do many more things than I'll explain. You may not ever have to use these but they may come in handy when trying to gather information so you can post an accurate question to a mailing list.

7.1. Using a terminal

Using a terminal can sometimes help you get information about a problem program. If you're running X-windows this is really nice. Let's say that my word processing program is acting weird and won't work the way I'd like to. All I need to do is open up a terminal and execute the command to start abiword from within the terminal. Any errors that aren't shown when starting a program from a menu are displayed here. Figure 3 demonstrates this.

As you can see in the terminal window I used the following command to open abiword:

bash$ abiword &

You can make this work with any X program. Just make sure you use the "&" (Ampersand) after the actual programs command name. Then you can just cut and paste the information in the terminal window into a file or email and use it to ask questions.

7.2. plog

plog is used to find problems when setting up or trying to fix your ppp connection. plog shows you the last few lines of /var/log/ppp.log. If that file doesn't exist, it shows you the last few lines of /var/log/syslog file, but excluding the lines not generated by pppd. It is common to start a terminal and then issue the command:

bash$ plog -f

Then in another terminal try and start your ppp connection. The -f command causes plog to "force" the file /var/log/ppp.log to stay open so as new lines are printed in the file they will appear on the screen. Here's what mine looks like when I shutdown my ppp connection.

Tip

You'll probably have to be root to use this program.

storm:/home/jesse# plog -f
Apr  8 23:15:14 nexus pppd[22001]: sent [LCP EchoReq id=0x28 magic=0xca942c68]
Apr  8 23:15:15 nexus pppd[22001]: rcvd [LCP EchoRep id=0x28 magic=0x55aae757]
Apr  8 23:15:44 nexus pppd[22001]: sent [LCP EchoReq id=0x29 magic=0xca942c68]
Apr  8 23:15:44 nexus pppd[22001]: rcvd [LCP EchoRep id=0x29 magic=0x55aae757]
Apr  8 23:16:11 nexus pppd[22001]: Terminating on signal 15.
Apr  8 23:16:11 nexus pppd[22001]: Script /etc/ppp/ip-down started (pid 22411)
Apr  8 23:16:11 nexus pppd[22001]: sent [LCP TermReq id=0x2 "User request"]
Apr  8 23:16:12 nexus pppd[22001]: rcvd [LCP TermAck id=0x2]
Apr  8 23:16:12 nexus pppd[22001]: Connection terminated.
Apr  8 23:16:12 nexus pppd[22001]: Connect time 21.0 minutes.
Apr  8 23:16:12 nexus pppd[22001]: Sent 23101 bytes, received 177378 bytes.
Apr  8 23:16:12 nexus pppd[22001]: Hangup (SIGHUP)
Apr  8 23:16:12 nexus pppd[22001]: Waiting for 1 child processes...
Apr  8 23:16:12 nexus pppd[22001]:   script /etc/ppp/ip-down, pid 22411
Apr  8 23:16:12 nexus pppd[22001]: Script /etc/ppp/ip-down finished (pid 22411), status = 0x100
Apr  8 23:16:12 nexus pppd[22001]: Exit.

If you're having problems with your ppp connection this can really help in finding the answer.

7.3. /var/log/syslog

/var/log/syslog works on much the same principal as plog. The only difference is you'll need to use the tail command to make it work. Also, as the name implies, this log file contains all the systems logs so there is usually a lot of information in it. Again, open up a terminal and do the tail command. Watch the log file print to screen and try and figure out what's happening that's causing you problems. Here's the command to make it work:

Tip

You'll probably have to be root to use this program.

bash# tail -f /var/log/syslog

7.4. tcpdump

Need.

7.5. dump

Need.

7.6. lspci

lspci is a utility for displaying information about all PCI buses in the system and all devices connected to them. The information this program outputs can sometimes be very helpful to developers who are writing device drivers and modules which make your PCI cards run. PCI cards can be sound cards, video cards, special controllers, and any number of other things. I was once asked for the output of this program when my video card wasn't recognized by the beta version of Progeny. The two most common options are -s and -n. Don't worry if you don't understand the output, you'll be sending this information to someone who (hopefully) does. Here's what they both look like on my machine:

jesse@storm:~/test$ /sbin/lspci -n
00:00.0 Class 0600: 8086:122d (rev 02)
00:07.0 Class 0601: 8086:122e (rev 02)
00:07.1 Class 0101: 8086:1230 (rev 02)
00:0e.0 Class 0300: 5333:8811

=========divider========================

jesse@storm:~/test$ /sbin/lspci -v
00:00.0 Host bridge: Intel Corporation 430FX - 82437FX TSC [Triton I] (rev 02)
        Flags: bus master, medium devsel, latency 64

00:07.0 ISA bridge: Intel Corporation 82371FB PIIX ISA [Triton I] (rev 02)
        Flags: bus master, medium devsel, latency 0

00:07.1 IDE interface: Intel Corporation 82371FB PIIX IDE [Triton I] (rev 02) (prog-if 80 [Master])
        Flags: bus master, medium devsel, latency 64
        I/O ports at ffa0

00:0e.0 VGA compatible controller: S3 Inc. 86c764/765 [Trio32/64/64V+] (prog-if 00 [VGA])
        Flags: medium devsel, IRQ 11
        Memory at ff000000 (32-bit, non-prefetchable)