How to read GNU info documentation → info
How to Read GNU Info Documentation → info
Table of Contents
1. [Introduction](#introduction)
2. [Prerequisites](#prerequisites)
3. [Understanding GNU Info Documentation](#understanding-gnu-info-documentation)
4. [Getting Started with Info](#getting-started-with-info)
5. [Basic Navigation Commands](#basic-navigation-commands)
6. [Advanced Navigation Techniques](#advanced-navigation-techniques)
7. [Search and Find Operations](#search-and-find-operations)
8. [Working with Multiple Info Files](#working-with-multiple-info-files)
9. [Customizing the Info Environment](#customizing-the-info-environment)
10. [Common Use Cases and Examples](#common-use-cases-and-examples)
11. [Troubleshooting Common Issues](#troubleshooting-common-issues)
12. [Best Practices and Professional Tips](#best-practices-and-professional-tips)
13. [Alternative Info Readers](#alternative-info-readers)
14. [Conclusion](#conclusion)
Introduction
GNU Info is a powerful documentation system that serves as the primary help format for many GNU tools and Unix-like systems. Unlike traditional man pages, Info documents are structured as hyperlinked nodes, creating a comprehensive, interconnected documentation network that allows for detailed explanations, cross-references, and hierarchical organization of information.
This comprehensive guide will teach you everything you need to know about reading and navigating GNU Info documentation effectively. Whether you're a system administrator, developer, or Linux enthusiast, mastering the Info system will significantly enhance your ability to access and utilize technical documentation.
By the end of this article, you'll understand how to navigate Info documents efficiently, perform advanced searches, customize your reading experience, and troubleshoot common issues. You'll also learn professional techniques that will make you more productive when working with GNU documentation.
Prerequisites
Before diving into GNU Info documentation, ensure you have:
- Basic Unix/Linux Command Line Knowledge: Familiarity with terminal operations and basic commands
- Text Editor Experience: Understanding of basic text navigation concepts
- GNU Info Installation: The `info` command available on your system (usually pre-installed on most Linux distributions)
- Terminal Access: A working terminal or command-line interface
To verify Info is installed on your system, run:
```bash
which info
```
If Info is not installed, you can install it using your system's package manager:
```bash
Ubuntu/Debian
sudo apt-get install info
CentOS/RHEL/Fedora
sudo yum install info
or for newer versions
sudo dnf install info
macOS (with Homebrew)
brew install texinfo
```
Understanding GNU Info Documentation
What is GNU Info?
GNU Info is a documentation format that organizes information into a tree-like structure of nodes. Each node contains a specific topic or section, and nodes are connected through a network of cross-references and hierarchical relationships. This structure allows for both sequential reading and non-linear exploration of topics.
Info vs. Man Pages
While man pages provide concise reference information, Info documents offer:
- Detailed Explanations: More comprehensive coverage of topics
- Hyperlinked Navigation: Cross-references between related concepts
- Hierarchical Structure: Organized into logical sections and subsections
- Interactive Features: Built-in search and navigation tools
- Tutorial Content: Step-by-step guides and examples
Info Document Structure
Info documents are organized into several key components:
- Top Node: The main entry point of the document
- Menu: Lists of available subtopics
- Nodes: Individual pages or sections
- Cross-references: Links to related information
- Index: Alphabetical listing of topics and concepts
Getting Started with Info
Launching Info
To start reading Info documentation, use the `info` command:
```bash
Open the main Info directory
info
Open specific program documentation
info program_name
Examples
info ls
info gcc
info emacs
info bash
```
The Info Interface
When you launch Info, you'll see a text-based interface with several key elements:
1. Status Line: Shows current node and position
2. Content Area: Displays the actual documentation
3. Menu Items: Indicated by asterisks (*)
4. Cross-references: Shown in different formatting
5. Navigation Hints: Usually displayed at the bottom
Basic Interface Elements
```
File: coreutils.info, Node: ls invocation, Next: dir invocation, Prev: Directory listing, Up: Directory listing
* Menu:
* Which files are listed::
* What information is listed::
* Sorting the output::
* Details about version sort::
* General output formatting::
* Formatting file timestamps::
* Formatting the file names::
--- (Press 'q' to quit, 'h' for help) ---
```
Basic Navigation Commands
Essential Movement Commands
Understanding basic navigation is crucial for effective Info usage:
| Command | Function |
|---------|----------|
| `Space` or `PgDn` | Scroll down one screen |
| `Backspace` or `PgUp` | Scroll up one screen |
| `n` | Go to next node |
| `p` | Go to previous node |
| `u` | Go up one level (parent node) |
| `t` | Go to top node of current document |
| `l` | Go back to last visited node |
| `d` | Go to main directory node |
Menu Navigation
Menus are fundamental to Info navigation:
```bash
Navigate to menu items
m menu_item_name # Go to specific menu item
m TAB # Show available menu items
1, 2, 3... # Go to first, second, third menu item
```
Following Cross-references
Cross-references connect related information:
```bash
f reference_name # Follow a cross-reference
f TAB # Show available cross-references
```
Practical Navigation Example
Let's navigate through the `ls` command documentation:
```bash
Start with ls documentation
info ls
From the main ls node, you might see:
* Which files are listed::
* What information is listed::
Navigate to "What information is listed"
m what information is listed
Or use the shortcut
2 # (if it's the second menu item)
Go back to parent node
u
Go to next node
n
```
Advanced Navigation Techniques
Using Node Names Directly
You can jump directly to specific nodes:
```bash
g node_name # Go to specific node
g TAB # Show available nodes
```
History Navigation
Info maintains a history of visited nodes:
```bash
l # Go to last visited node
L # Show history list
```
Bookmarking Nodes
Create bookmarks for frequently accessed information:
```bash
Not all Info readers support bookmarking
But you can note node names for quick access
g specific_node_name
```
Window Management
Some Info readers support multiple windows:
```bash
C-x o # Switch between windows (Emacs-style)
C-x 1 # Close other windows
C-x 2 # Split window horizontally
```
Search and Find Operations
Basic Search Functions
Info provides powerful search capabilities:
```bash
s search_term # Search forward for text
S search_term # Search backward for text
C-s # Incremental search forward
C-r # Incremental search backward
```
Index Searches
The most efficient way to find specific information:
```bash
i topic # Search in index
i TAB # Show available index entries
, # Go to next index match
```
Advanced Search Techniques
Case-Sensitive vs. Case-Insensitive Search
Most Info searches are case-insensitive by default:
```bash
s function # Finds "function", "Function", "FUNCTION"
```
Regular Expression Support
Some Info readers support regex searches:
```bash
Depends on the Info reader implementation
s pattern # Basic pattern matching
```
Practical Search Example
Finding information about file permissions in the `ls` documentation:
```bash
info ls
i permission # Search index for "permission"
Navigate through matches with ','
, # Next match
, # Continue to next match
```
Working with Multiple Info Files
Opening Multiple Documents
You can work with several Info documents simultaneously:
```bash
info document1 document2
```
Switching Between Documents
```bash
C-x b # Switch buffer (in some readers)
d # Return to directory to choose new document
```
Cross-Document References
Info documents often reference other documents:
```bash
References like "(bash) Shell Expansions"
Link to the bash manual's Shell Expansions node
f (bash) Shell Expansions
```
Managing Document Sessions
```bash
Keep track of multiple sessions
info --output=filename topic # Save to file for later
```
Customizing the Info Environment
Configuration Files
Info behavior can be customized through configuration:
```bash
~/.inforc or ~/.info (depending on implementation)
Common customizations:
Set default search behavior
Configure display preferences
Set key bindings
```
Environment Variables
Several environment variables affect Info behavior:
```bash
export INFOPATH="/usr/local/info:/usr/share/info"
export PAGER="less" # For some Info readers
export EDITOR="vim" # For editing within Info
```
Display Customization
```bash
Terminal settings that affect Info display
export TERM=xterm-256color
export COLUMNS=80
export LINES=24
```
Key Binding Customization
Some Info readers allow key binding customization:
```bash
Example customizations (reader-dependent)
Emacs-style bindings are common
Vi-style bindings may be available
```
Common Use Cases and Examples
Scenario 1: Learning a New Command
When encountering a new command like `find`:
```bash
Start with the Info documentation
info find
Navigate to examples section
i examples
Look for specific use cases
s "find files"
```
Scenario 2: Programming Reference
Accessing GCC compiler documentation:
```bash
info gcc
Navigate to specific topics
m "Invoking GCC"
m "Option Summary"
Search for specific options
i "-Wall"
i "optimization"
```
Scenario 3: System Administration
Using Info for system administration tasks:
```bash
Coreutils documentation
info coreutils
Navigate to specific utilities
m ls
m cp
m chmod
Find security-related information
i security
i permissions
```
Scenario 4: Scripting Reference
Bash scripting documentation:
```bash
info bash
Navigate to scripting sections
m "Shell Parameter Expansion"
m "Conditional Constructs"
m "Looping Constructs"
Search for specific features
i "array"
i "function"
```
Troubleshooting Common Issues
Issue 1: Info Command Not Found
Problem: `bash: info: command not found`
Solutions:
```bash
Install Info package
sudo apt-get install info # Debian/Ubuntu
sudo yum install info # CentOS/RHEL
sudo dnf install info # Fedora
brew install texinfo # macOS
Verify installation
which info
info --version
```
Issue 2: Documentation Not Available
Problem: `info: No menu item 'program' in node '(dir)Top'`
Solutions:
```bash
Check if documentation is installed
dpkg -l | grep -i doc # Debian/Ubuntu
rpm -qa | grep -i doc # CentOS/RHEL
Install documentation packages
sudo apt-get install program-doc
sudo apt-get install manpages-dev
Check Info path
echo $INFOPATH
ls /usr/share/info/
```
Issue 3: Navigation Problems
Problem: Difficulty navigating or lost in documentation
Solutions:
```bash
Return to top of current document
t
Return to main directory
d
Show help
h
?
Show current location
C-x C-b # (in some readers)
```
Issue 4: Display Issues
Problem: Text formatting or display problems
Solutions:
```bash
Check terminal settings
echo $TERM
echo $COLUMNS
echo $LINES
Try different terminal
export TERM=xterm
export TERM=screen
Resize terminal and restart Info
```
Issue 5: Search Not Working
Problem: Search functions not finding expected results
Solutions:
```bash
Use index search instead of text search
i search_term # Instead of 's search_term'
Try different search terms
i function # Instead of i functions
i "exact phrase" # For exact matches
Check available index entries
i TAB
```
Issue 6: Encoding Problems
Problem: Special characters not displaying correctly
Solutions:
```bash
Set proper locale
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Check locale settings
locale
Install language packs if needed
sudo apt-get install language-pack-en
```
Best Practices and Professional Tips
Efficient Reading Strategies
1. Start with the Index: Use `i` command to find specific topics quickly
2. Use Menu Navigation: Follow the document structure rather than searching randomly
3. Bookmark Important Nodes: Note down frequently accessed node names
4. Follow Cross-references: Use `f` command to explore related topics
Search Optimization
```bash
Effective search strategies
i keyword # Start with index search
s "exact phrase" # Use quotes for exact matches
, # Continue through search results systematically
```
Documentation Workflow
1. Overview First: Start at the top node to understand document structure
2. Targeted Search: Use index searches for specific information
3. Sequential Reading: Use next/previous navigation for comprehensive understanding
4. Cross-reference Exploration: Follow related links to build complete knowledge
Professional Techniques
Creating Personal Reference Notes
```bash
Extract useful information to personal notes
info program | grep -A 10 -B 10 "important topic" > my_notes.txt
```
Integration with Development Workflow
```bash
Quick reference during development
alias infogcc='info gcc'
alias infobash='info bash'
alias infomake='info make'
```
Combining with Other Documentation Tools
```bash
Use Info alongside man pages
man program # Quick reference
info program # Detailed documentation
Combine with online resources
info program # Local documentation
Then search online for examples and tutorials
```
Keyboard Efficiency
Learn these essential shortcuts for maximum efficiency:
```bash
Navigation shortcuts
Space, n, p, u, t, l, d
Search shortcuts
i, s, f, ,
Help shortcuts
h, ?
Exit shortcuts
q, C-x C-c
```
Time-Saving Tips
1. Use Tab Completion: Most commands support tab completion for node names
2. Learn Your Most-Used Documents: Memorize the structure of frequently accessed Info files
3. Use History: The `l` command quickly returns to recently visited nodes
4. Master Index Search: The `i` command is often faster than text search
Alternative Info Readers
Emacs Info Mode
Emacs provides an excellent Info reader:
```bash
Within Emacs
M-x info
C-h i # Alternative binding
```
Advantages:
- Full Emacs editing capabilities
- Better window management
- Customizable key bindings
- Integration with Emacs workflow
Tkinfo (Graphical Interface)
A graphical Info reader:
```bash
sudo apt-get install tkinfo
tkinfo
```
Features:
- Point-and-click navigation
- Multiple windows
- Graphical menu system
- Better for beginners
Web-based Info Readers
Some systems provide web interfaces:
```bash
Convert Info to HTML
makeinfo --html document.texi
```
Pinfo (Enhanced Console Reader)
An improved console Info reader:
```bash
sudo apt-get install pinfo
pinfo program_name
```
Improvements:
- Better color support
- Improved navigation
- More intuitive interface
Advanced Configuration and Scripting
Automating Info Tasks
Create scripts for common Info operations:
```bash
#!/bin/bash
info_search.sh - Search multiple Info documents
search_term="$1"
documents=("bash" "gcc" "coreutils" "gawk")
for doc in "${documents[@]}"; do
echo "Searching in $doc..."
info "$doc" --where 2>/dev/null && \
echo "Found documentation for $doc"
done
```
Integration with Text Processing
Extract and process Info content:
```bash
Extract specific sections
info bash --subnodes | grep -A 20 "Parameter Expansion"
Create custom documentation
info program --output=custom_doc.txt
```
Building Custom Info Collections
Organize frequently used documentation:
```bash
Create symbolic links to important docs
mkdir ~/info_collection
ln -s /usr/share/info/bash.info ~/info_collection/
ln -s /usr/share/info/gcc.info ~/info_collection/
Set custom INFOPATH
export INFOPATH="$HOME/info_collection:$INFOPATH"
```
Conclusion
Mastering GNU Info documentation is an invaluable skill for anyone working with Unix-like systems. The Info system provides comprehensive, well-structured documentation that goes far beyond what traditional man pages offer. Through this guide, you've learned how to navigate efficiently, search effectively, and customize your Info reading experience.
Key Takeaways
1. Navigation Mastery: Use the basic commands (`n`, `p`, `u`, `t`, `l`, `d`) to move through documents efficiently
2. Search Proficiency: Leverage index searches (`i`) and text searches (`s`) to find information quickly
3. Menu Navigation: Follow document structure through menus for comprehensive understanding
4. Cross-reference Usage: Explore related topics through cross-references (`f`) to build complete knowledge
5. Customization: Configure your environment and learn alternative readers for optimal productivity
Next Steps
To continue improving your Info documentation skills:
1. Practice Daily: Make Info your go-to source for GNU tool documentation
2. Explore Different Documents: Familiarize yourself with the structure of various Info files
3. Integrate with Workflow: Incorporate Info searches into your development and administration tasks
4. Share Knowledge: Help others learn Info navigation techniques
5. Stay Updated: Keep your Info documentation current with system updates
Final Professional Advice
Remember that effective documentation reading is not just about finding answers quickly—it's about building comprehensive understanding. The Info system's hyperlinked structure encourages exploration and deep learning. Take advantage of this by following cross-references, reading related sections, and building connections between different concepts.
The time invested in mastering Info navigation will pay dividends throughout your career in system administration, software development, and technical problem-solving. Make Info documentation an integral part of your technical toolkit, and you'll find yourself becoming more efficient and knowledgeable in your work with GNU tools and Unix-like systems.
Whether you're debugging a complex shell script, optimizing compiler flags, or learning a new command-line tool, the GNU Info system provides the detailed, authoritative documentation you need to work effectively and professionally.