- •Table of Contents
- •Introduction
- •Copyright
- •About the author
- •Aknowledgements
- •Audience
- •Organization
- •Web resources
- •Installation
- •What this chapter covers
- •Tip 1: Which distribution is good for you
- •Tip 2: How to find a Linux CD-ROM at low cost
- •Tip 3: Multiple operating systems
- •Tip 4: Installing with no CD-ROM drive or modem
- •Tip 5: Swap and memory
- •Tip 6: More swap with a swap file
- •Tip 7: Kernel size and modules
- •Tip 8: The boot prompt
- •Tip 9: Wrong memory size found
- •Tip 10: Master boot record and LILO
- •Tip 11: LILO can't find a kernel on a big drive
- •Tip 12: X Window configuration options
- •Tip 13: Allowing users to mount drives
- •Tip 14: Allowing users to run root programs
- •Tip 15: Linux and NT booting
- •Tip 16: Annoying boot messages
- •Tip 17: Programs on CD-ROM
- •Tip 18: International console
- •Tip 19: Multiple kernels choices
- •Tip 20: Default file permissions
- •Tip 21: Default boot mode
- •Tip 22: More information from usenet
- •Tip 23: Bytes per inodes
- •Tip 24: LILO and boot problems
- •Tip 25: Making CD-ROM images
- •Tip 26: FTP access restrictions
- •Hardware
- •What this chapter covers
- •Tip 1: Detecting 2 ethernet cards
- •Tip 2: Everything on sound cards
- •Tip 3: Non-PostScript printers
- •Tip 4: Use Windows special keys in Linux
- •Tip 5: Added processors
- •Tip 6: Detecting an ISA device
- •Tip 7: Find hardware information
- •Tip 8: Blinking leds on the keyboard
- •Tip 9: Reading a foreign file system
- •Tip 10: Can't mount root fs
- •Tip 11: Linux on a 286?
- •Tip 12: Linux without a hard drive
- •Tip 13: Shutdown and power off
- •Tip 14: LPD started but no device found
- •Tip 15: Read files from FAT32 drives
- •Tip 16: TV on Linux
- •Tip 17: Device drivers
- •Tip 18: Mouse problems
- •Tip 19: International keyboards
- •Software
- •What this chapter covers
- •Tip 1: Background image in X Window
- •Tip 2: Customize Netscape Communicator
- •Tip 3: POP3 in Pine
- •Tip 4: Multiple accounts in Pine
- •Tip 5: Running Java programs
- •Tip 6: Virtual hosts in Apache
- •Tip 7: Libc versus Glibc
- •Tip 8: Aliases with Qmail
- •Tip 9: Samba with Windows 98 or NT 4
- •Tip 10: KDE drag and drop icons
- •Tip 11: Find files
- •Tip 12: asm or linux include files not found
- •Tip 13: ICQ on Linux
- •Tip 14: Reading foreign documents
- •Tip 15: Scanning with Linux
- •Tip 16: Real audio and video
- •Tip 17: Emulation
- •Tip 18: Shared library not found
- •Tip 20: Files permissions
- •Tip 21: Changing file permissions
- •Tip 22: An international background
- •Tip 23: Powerful file transfer system
- •Tip 24: Editing in text editors
- •Tip 25: Documentation and manual
- •Networking
- •What this chapter covers
- •Tip 1: Easy PPP dialup
- •Tip 2: Internet for your LAN
- •Tip 3: Domains to search in
- •Tip 4: Display IP rather than hostname
- •Tip 5: Is my modem a winmodem?
- •Tip 6: Sharing files from a Windows system
- •Tip 7: Sorry but this host is not in my list
- •Tip 8: Access to various networks
- •Tip 9: Accessing remote file systems
- •Tip 10: Secure Web server
- •Tip 11: Secure alternative to telnet
- •Tip 12: Speed problems on a PPP connection
- •Tip 13: Names and name servers
- •Tip 14: Who owns this port
- •Tip 15: Network printers
- •Development
- •What this chapter covers
- •Tip 1: Graphical messages to the world
- •Tip 2: Code reuse
- •Tip 3: Makefile don't equal C
- •Tip 4: Parsing the command line in BASH
- •Tip 5: Don't grep grep
- •Tip 6: Move a text into upper case letters
- •Tip 7: Using PASCAL on Linux
- •Tip 8: Segmentation fault
- •Tip 9: Who is online?
- •Tip 10: Graphical toolkits
- •Tip 11: IDE and visual interfaces
- •Tip 12: Free software and copyleft
- •Tip 13: Talking to the terminal
- •Tip 14: Internet technologies
- •Tip 15: Library types
Development
What this chapter covers
This last chapter covers development. A standard Linux system comes with many compilers and interpreters for a lot of languages. We cover most of them, and will see tips and tricks on how to use them for small scripts or powerful applications.
97
100 Linux Tips and Tricks
Tip 1: Graphical messages to the world
Often we write shell scripts and at one point we would like to display messages or otherwise interact with the user using a graphical way, without rewriting all our script in C.
A small program called gtk-shell was created for that purpose. It is a GTK-based program meant to be used in shell scripts, that can interact with the user, and even return values to the script. Let's see a very simple example:
xv -quit -root `gtk-shell -t "Which file do you want me to use?" -fs`
This will display a graphical browsing box with the specified title, where the user can select a file, and the file path will be returned to xv which will display it as background.
Gtk-shell can be used in many ways including displaying a message, asking for input, and more. Here is an output of "gtk-shell --help":
gtk-shell (C) 1999 Patrick Lambert under GPL
This program will use the GTK library (www.gtk.org) to ask for user input, and can be used in scripts or called from other programs.
Command line options: |
|
|
--help, -h |
This help text |
|
--version, -v |
Show gtk-shell's version |
|
--output <file>, -o |
Set the |
output file, default is stdout |
--title <title>, -t |
Set the |
window title |
--label <label>, -l |
Show a label to the user |
|
--file-selection, -fs |
Display |
a file selection box |
--size <x> <y>, -s |
Set the |
size of the window |
--position <x> <y>, -p |
Set the |
position of the window on the screen |
--query, -q |
Display |
a query box |
--query-value, -qv |
Set a value in the query box |
|
--append-eol, -eol |
Appends |
an EOL char at output time |
--exit-code <str>, -ec |
String to display if user press Cancel |
|
--view-file <file>, -vf |
View a file in a text box |
|
--edit-file <file>, -ef |
Edit a file in a text box |
|
--button <str>, -b |
Add a button to quit |
|
--choice <c1> <c2>.., -c Display |
a choice box with the specified choices |
Example: gtk-shell -l "Pick a choice" -c 1 2 3 4 -b Ok -eol
Example: xv -quit -root `gtk-shell -t "Which image?" -fs`
Gtk-shell is available at http://devplanet.fastethernet.net/files.html.
98
100 Linux Tips and Tricks
Tip 2: Code reuse
Why write code that we already wrote for previous programs? Well here is a small tip that might save you some time: Make a generic file with reusable functions.
Many languages make this easy to do. Object oriented languages like Java or C++ for example allow you to make a class with utility functions, and then import them in your main program. This way you can use the generic class in all your programs. Even in C you can do this by including the generic C file when compiling with a command like:
gcc -o myprogram myprogram.c generic.c
Your generic utility functions would be in generic.c and gcc would simply add the file to myprogram.
99
100 Linux Tips and Tricks
Tip 3: Makefile don't equal C
Makefiles are used in most Unix C or even C++ programs. But nowhere does it say that they can't be used for other languages. Make is a program installed with most Linux distributions, and on most Unix systems too. Makefiles make your program portable, and easy to compile. These files can be used in C, C++, Java, and any program that requires compilation.
Make has so many useful applications. Feel free to explore them for your programs.
100