Featured

TechBytes on Linux

This is a growing list of Linux commands which might come handy for the of Linux users. 1. Found out i had to set the date like this: ...

Wednesday, May 14, 2025

PostgreSQL list of commands

PostgreSQL, or Postgres, is an object-relational database management system that utilizes the SQL language. PSQL is a powerful interactive terminal for working with the PostgreSQL database. It enables users to execute queries efficiently and manage databases effectively.

Here, we highlight some of the most frequently used PSQL commands, detailing their functionalities to enhance your PostgreSQL experience.
Top PSQL Commands in PostgreSQL

Here are the top 22 PSQL commands that are frequently used when querying a PostgreSQL database:
Serial No.CommandDescription1 psql -d database -U user -W Connects to a database under a specific user
2 psql -h host -d database -U user -W Connect to a database that resides on another host
3 psql -U user -h host "dbname=db sslmode=require" Use SSL mode for the connection
4 \c dbname Switch connection to a new database
5 \l List available databases
6 \dt List available tables
7 \d table_name Describe a table such as a column, type, modifiers of columns, etc.
8 \dn List all schemes of the currently connected database
9 \df List available functions in the current database
10 \dv List available views in the current database
11 \du List all users and their assign roles
12 SELECT version(); Retrieve the current version of PostgreSQL server
13 \g Execute the last command again
14 \s Display command history
15 \s filename Save the command history to a file
16 \i filename Execute psql commands from a file
17 \? Know all available psql commands
18 \h Get help
19 \e Edit command in your own editor
20 \a Switch from aligned to non-aligned column output
21 \H Switch the output to HTML format
22 \q Exit psql shell

Additional Information:
The -d option in psql commands is used to state the database name.
The -U option specifies the database user.
The -h option indicates the host on which the database server resides.
The \h ALTER TABLE can be used to get detailed information on the ALTER TABLE statement.

Friday, May 9, 2025

How to deply Ollama & open web-ui on your laptop

How to deploy Ollama
 Installation:
  • Download Ollama: Get the Ollama package from the GitHub repository. 
  • Install Dependencies: Ensure you have any required dependencies, including libraries for your specific model. 
  • Verify Installation: Use ollama --version to confirm Ollama is installed correctly. 
2. Model Deployment and Usage:
  • Pull the Model: Use the ollama pull <model_name> command to download the desired model. 
  • Run the Model: Use ollama run <model_name> to initiate the model's execution. 
  • Interacting with the Model: Ollama provides an API at http://localhost:11434/api/generate for interacting with the model. 
  • Optional: Web UI: Explore Open WebUI for a user-friendly interface to manage and interact with models. 
  • Optional: Custom Applications: Build custom applications using libraries like FastAPI and Gradio to integrate Ollama models into your workflows. 

How to deploy open-webui

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution.

How to Install 🚀

Installation via Python pip 🐍

Open WebUI can be installed using pip, the Python package installer. Before proceeding, ensure you're using Python 3.11 to avoid compatibility issues.

  1. Install Open WebUI: Open your terminal and run the following command to install Open WebUI:

    pip install open-webui
  2. Running Open WebUI: After installation, you can start Open WebUI by executing:

    open-webui serve

This will start the Open WebUI server, which you can access at http://localhost:8080



To upgrade the Open-webui components

pip install open-webui --upgrade

Sunday, April 20, 2025

Run windows apps through Wine emulator on Mac OS Apple Silicon

 https://macappstore.org/whiskey/ 

About the App

Install the App

  1. Press Command+Space and type Terminal and press enter/return key.
  2. Copy and paste the following command in Terminal app:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 
    and press enter/return key. Wait for the command to finish. If you are prompted to enter a password, please type your Mac user's login password and press ENTER. Mind you, as you type your password, it won't be visible on your Terminal (for security reasons), but rest assured it will work.
  3. Now, copy/paste and run this command to make brew command available inside the Terminal: echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
  4. Copy and paste the following command:
    brew install --cask whiskey

Done! You can now use Whiskey.

Refer this video on the steps to use the app on Mac OS Apple Silicon laptops

https://www.youtube.com/watch?v=8KeES5llh9I&t=82s 


pivot_root vs chroot vs switch_root

The chroot command modifies the root directory for a process, limiting its access to the rest of the filesystem. This is useful for security, containerization, or testing purposes. The process running under chroot has no knowledge of anything outside its jail, making it appear as if it is running on the root filesystem.

123

In Linux, pivot_root, chroot, and switch_root are commands used to change the root filesystem of a process. Each has its specific use cases and functionalities.

pivot_root

The pivot_root command is used to change the root filesystem of the current process and its children. It swaps the current root filesystem with a new one, making the old root accessible at a specified location. This command is typically used during the boot process when the system transitions from an initial ramdisk (initrd) to the real root filesystem
1.

Example:

mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /old-root

In this example, the root filesystem is changed to /new-root, and the old root is accessible at /old-root3.

chroot

The chroot command changes the root directory for the current process and its children to a specified directory. Unlike pivot_root, chroot does not swap the root filesystem but simply changes the reference point for the current process. This command is often used to create isolated environments, such as chroot jails.

2.

Example:
chroot /new-root /bin/bash
In this example, the root directory for the current shell is changed to /new-root, and /bin/bash is executed within this new root2.

switch_root

The switch_root command is used to switch from an initial ramdisk (initramfs) to the real root filesystem. It is similar to pivot_root but is specifically designed for use with initramfs. switch_root performs additional cleanup tasks, such as moving common mount points (/dev, /proc, /sys, etc.) into the new root and attempting to delete everything in the old root
1.

Example:
switch_root /new-root /sbin/init

In this example, the root filesystem is switched to /new-root, and /sbin/init is executed as the new init process
1.

Key Differences

pivot_root: Swaps the current root filesystem with a new one, making the old root accessible. Used during the boot process with initrd.

chroot: Changes the root directory for the current process without swapping the root filesystem. Used for creating isolated environments.

switch_root: Switches from initramfs to the real root filesystem, performing additional cleanup tasks. Used during the boot process with initramfs.

Use Cases

pivot_root: Used when you need to preserve the original root for some purpose, such as during the boot process with initrd1.


chroot: Used to create isolated environments, such as chroot jails, for security or testing purposes2.


switch_root: Used to switch from initramfs to the real root filesystem during the boot process, performing additional cleanup tasks1.

By understanding the differences and use cases of these commands, you can choose the appropriate one for your specific needs in managing the root filesystem of a process.

Friday, February 14, 2025

Vim Copy & Paste Terminology

The keyboard shortcuts to copy, cut, and paste can be boiled down into three characters that utilize Vim-specific terminology.

Understanding these terms will help you recall the correct keyboard shortcut.

Y stands for “yank” in Vim, which is conceptually similar to copying.

D stands for “delete” in Vim, which is conceptually similar to cutting.

P stands for “put” in Vim, which is conceptually similar to pasting.

I deliberately use the phrase “conceptually similar to” because these actions are not one and the same. If you want to dive deeper into this explanation, scroll down to the section below titled “What Happens Under the Hood?”

Copy, Cutting, and Pasting in Vim/Vi - The Basics

1.Press esc to return to normal mode. Any character typed in normal mode will be interpreted as a vim command.

2.Navigate your cursor to the beginning of where you want to copy or cut.

3.To enter visual mode, you have 3 options. We suggest using visual mode because the selected characters are highlighted, and it’s clearer to see what’s happening. However, we have the keyboard shortcuts for normal mode (which achieve the exact same effect) in the section below.

4.Press v (lowercase) to enter visual mode. This will start selecting from where your cursor is.

5.Press V (uppercase) to enter visual line mode. This will select the entire line.

6.Press CTRL+V to enter visual block mode.

7.Move your cursor to the end of where you want to copy or cut.

8.Press y to copy. Press d to cut.

9.Move the cursor to where you want to paste your selection.

10.Press P (uppercase) to paste before your cursor. Press p (lowercase) to paste after your cursor.

Move the cursor to where you want to paste your selection.

Press P (uppercase) to paste before your cursor. Press p (lowercase) to paste after your cursor.


Vim Keyboard Shortcuts

Using arrow keys (or if you are an expert Vim user - h, j, k, and l) to move around in your vim file can take a long time.

Here are vim keyboard shortcuts for copying and cutting if you want to be even more efficient than the basic steps outlined above.

Copying (Yanking)

yy: Copy the current line in vi

3yy: To yank multiple lines in vim, type in the number of lines followed by yy. This command will copy (yank) 3 lines starting from your cursor position.

y$: Copy everything from the cursor to the end of the line

y^: Copy everything from the start of the line to the cursor.

yiw: Copy the current word.

Cutting (Deleting)

dd: Cut the current line

3dd: Cut 3 lines, starting from the cursor

d$: Cut everything from the cursor to the end of the line

Putting (Pasting)

P (uppercase): Paste before your cursor

p (lowercase): Paste after your cursor

What Happens Under the Hood?

Vim terms are slightly different from their conceptual counterparts that we mentioned above because these actions by default do not interact with the OS clipboard. For example, you can't paste yanked text from Vim into a different application with CMD + V.


Yank, delete, and put interact with Vim's notion of “registers”, which are basically Vim -specific clipboards. Each register is named with a character, which you can use to interact with that register. For example, you might yank line 50 of the current file to register “a” and yank line 14 of the same file to register “b”, because you intend to paste both line 50 and line 14.

To learn more about vim registers, check out this Stack Overflow page.

Conclusion

This should be everything you need to get started to copy, cut and paste in Vi. If you didn’t find what you were looking for, it may be worth checking out the official vim docs.

Popular Posts