Thanks for visiting DailyLinux.com! This is a personal blog that started over 20 years ago in January 2004. Despite the ambitious "Daily" in the name, this has never quite been a daily endeavor. What started as aspirational daily content quickly became weekly updates, and then life (and paying work) took priority, making it more of a "whenever inspiration strikes" kind of place.
This is simply a place where I share Linux and UNIX-related things that interest me – tutorials, experiences, discoveries, or anything I think might help fellow Linux enthusiasts. It's always been driven by curiosity rather than rigid schedules or themes.
I've been working with Linux since the Slackware 3 days in the 1990s and have been certified in both Red Hat and SUSE systems (though I've let those certifications expire – my most recent SLES Certified Administrator expired a couple of years ago, and I'm looking to get that back).
In my professional life, I've had the opportunity to teach basic Linux courses for technical support organizations, as well as specialized courses on connecting iSCSI and Fiber Channel storage to Linux and UNIX hosts. I've also covered topics like establishing Linux NAS servers and connecting Linux clients to Windows-based storage solutions.
While there are certainly many people out there who are smarter and have more experience than I do, I believe there's always value in sharing knowledge and different perspectives. If you're interested in following along, you can find me on X at @DailyLinux.
If you have Linux or UNIX experiences, discoveries, or tutorials that you think others might find interesting or helpful, I'd be happy to consider them for the site. Feel free to message me on X, and we can discuss setting you up as a contributor.
Thanks for stopping by!
David
Here are some useful AI chatbot platforms for research, coding help, and general assistance:
AI Chatbot | Company | Description |
---|---|---|
Claude | Anthropic | Advanced AI assistant with strong reasoning and coding capabilities |
ChatGPT | OpenAI | Popular conversational AI with web browsing and code interpretation |
Grok | xAI | Real-time information access with a witty personality |
Perplexity | Perplexity AI | AI-powered search and research assistant with citations |
Gemini | Google's conversational AI integrated with their services | |
Copilot | Microsoft | Microsoft's AI assistant powered by GPT-4 |
You.com | You.com | AI search engine with personalized results |
Poe | Quora | Platform providing access to multiple AI models |
Character.AI | Character.AI | Conversational AI with customizable personalities |
OFFLINE | Hugging Face - OFFLINE | We are cooking something new, please stay tuned... |
Claude API | Anthropic | Developer access to Claude models |
Replicate | Replicate | Platform for running various AI models |
LibreChat | LibreChat | A clean, simple and yet feature-packed chat interface |
Forefront | Forefront | AI assistant with internet access and file uploads |
Phind | Phind | AI search engine focused on developers and technical content |
Here are essential vi/vim commands every Linux user should know:
Modes & Basic Operations | Save & Quit | Navigation | Delete Operations |
Copy & Paste | Undo & Redo | Search Operations | Find & Replace |
Visual Mode & Selection | File Operations | Utilities & Settings |
Command | Description | When to Use |
---|---|---|
MODES & BASIC OPERATIONS ↑ | ||
i |
Enter insert mode before cursor | Start typing/editing text at current position |
a |
Enter insert mode after cursor | Add text after current character |
A |
Enter insert mode at end of line | Append text to the end of current line |
o |
Open new line below and enter insert mode | Create new line and start typing |
O |
Open new line above and enter insert mode | Insert new line above current line |
Esc |
Exit insert mode to command mode | Stop editing and return to navigation |
R |
Enter replace mode | Overwrite multiple characters |
SAVE & QUIT ↑ | ||
:w |
Save (write) file | Save changes without exiting |
:q |
Quit vi | Exit when no changes made |
:wq |
Save and quit | Save changes and exit |
:q! |
Quit without saving | Exit and discard all changes |
NAVIGATION ↑ | ||
h |
Move cursor left | Navigate one character left |
j |
Move cursor down | Navigate one line down |
k |
Move cursor up | Navigate one line up |
l |
Move cursor right | Navigate one character right |
w |
Jump to beginning of next word | Move quickly through text word by word |
b |
Jump to beginning of previous word | Move backward through words |
e |
Jump to end of current word | Position at end of word for editing |
0 |
Jump to beginning of line | Move to start of current line |
$ |
Jump to end of line | Move to end of current line |
gg |
Jump to first line of file | Go to beginning of document |
G |
Jump to last line of file | Go to end of document |
:n |
Jump to line number n | Go directly to specific line (e.g., :25) |
Ctrl+f |
Page down (forward) | Scroll through long files quickly |
Ctrl+b |
Page up (backward) | Scroll up through long files |
DELETE OPERATIONS ↑ | ||
x |
Delete character under cursor | Remove single character |
dd |
Delete entire line | Remove current line completely |
3dd |
Delete 3 lines starting from cursor | Delete multiple lines at once |
d55 ↓ |
Delete the current line and 54 lines below it | Delete multiple lines at once in a specific direction |
d$ |
Delete from cursor to end of line | Remove text from cursor position to line end |
d0 |
Delete from cursor to beginning of line | Remove text from line start to cursor |
dw |
Delete word from cursor position | Remove current word |
COPY & PASTE ↑ | ||
yy |
Copy (yank) entire line | Copy line to clipboard for pasting |
3yy |
Copy 3 lines starting from cursor | Copy multiple lines at once |
yw |
Copy word from cursor position | Copy current word to clipboard |
p |
Paste after cursor/line | Insert copied or deleted text |
P |
Paste before cursor/line | Insert text before current position |
UNDO & REDO ↑ | ||
u |
Undo last change | Reverse most recent edit |
Ctrl+r |
Redo last undone change | Restore previously undone edit |
SEARCH OPERATIONS ↑ | ||
/text |
Search forward for "text" | Find text going down in file |
?text |
Search backward for "text" | Find text going up in file |
n |
Go to next search result | Continue searching in same direction |
N |
Go to previous search result | Search in opposite direction |
FIND & REPLACE ↑ | ||
:s/old/new/ |
Replace first "old" with "new" on current line | Single replacement on current line |
:s/old/new/g |
Replace all "old" with "new" on current line | Multiple replacements on current line |
:%s/old/new/g |
Replace all "old" with "new" in entire file | Global find and replace throughout file |
:%s/old/new/gc |
Replace with confirmation for each instance | Interactive find and replace |
r |
Replace single character under cursor | Quick single character replacement |
VISUAL MODE & SELECTION ↑ | ||
v |
Enter visual mode | Select text for copying/deleting |
V |
Enter visual line mode | Select entire lines |
Ctrl+v |
Enter visual block mode | Select rectangular blocks of text |
FILE OPERATIONS ↑ | ||
:e filename |
Edit another file | Open different file in same vi session |
:split filename |
Split window and open file | Work with multiple files simultaneously |
Ctrl+w+w |
Switch between split windows | Navigate between multiple open files |
UTILITIES & SETTINGS ↑ | ||
:set number |
Show line numbers | Display line numbers for reference |
:set nonumber |
Hide line numbers | Remove line number display |
. |
Repeat last command | Quickly repeat previous action |
Last updated: September 2025