Vim or VI editor in Linux

vi editor is the most popular text editor in Linux. We can say it has a simple black and white screen. if you type any command there is no code highlighting, where as vim is improved version of VI it also has features same like vi but it also has code highlighting.
Both have these 4 basic modes:
write mode
command mode
Visual mode
escape mode
commands in Vim or VI
gg goes to start of file
shift g goes to end of file
0 goes to beginning of the line
$ goes to end of the line
nG goes to nth line
:n another way of going to nth line
Editing in VI Editor
yy equivalent to cut also called yank
p paste below line
shift p paste above line
dd deletes the current line
5dd deletes 5 lines
u undo last change
Ctrl + R – Re do last change
Open file Read only mode in VI Editor
vim -R test.php
Searching pattern in VI Editor
The vi editor has two kinds of searches: string and character. For a string search, the / and ? commands are used. When you start these commands, the command just typed will be shown on the last line of the screen, where you type the particular string to look for.
These two commands differ only in the direction where the search takes place −
The / command searches forwards (downwards) in the file.
The ? command searches backwards (upwards) in the file.
The n and N commands repeat the previous search command in the same or the opposite direction, respectively. Some characters have special meanings. These characters must be preceded by a backslash () to be included as part of the search expression.
VI Editor options
set nu This will display line number in front of each line quite useful if you want line by line information. You can turn it off by executing “set nonu”. Remember for turning it off put “no” in front of option, like here option is “nu” so for turning it off use “nonu”.
set hlsearch This will highlight the matching word when we do search in VI editor, quite useful but if you find it annoying or not able to see sometime due to your color scheme you can turn it off by executing set nohlsearch.
set wrap If your file has contains some long lines and you want them to wrap use this option, if its already on and you just don’t want them to wrap use set nowrap.
colorscheme color scheme is used to change color of VIM editor, my favorite color scheme is murphy so if you want to change color scheme of VI editor you can do by executing “colorscheme murphy “.
syntax on syntax can be turn on and off based on your need , if its on it will display color syntax for .xml, .html and .perl files.
set ignorecase This VI editor option allows you do case insensitive search because if its set VI will not distinguish between two words which are just differ in case.
set smartcase Another VI editor option which allows case-sensitive search if the word you are searching contains an uppercase character.
Opening multiple files in VI Editor
vi -o database.php config.php
change file with ctrl+w
vi -p atabase.php config.php
change file with command line
:n for next file
:prev for previous file
Saving and Quitting from VI Editor in Unix
:w to save file anytime
:wq most used to save data and quit
:q! quit without saving
:wq! to save change in file opened in read-only mode.
find and replace in vi editor
This is an example of global search it will replace all occurrence of word “Stock” in file with word “Equity”. Its also equivalent to following command “: 0,$ s/Stock/Equity/g” which actually tells that search from fist to last line.
This is similar to first command but with the introduction of “c” it will ask for confirmation
This is command is global, case insensitive and ask for confirmation. to make it case Sensitive use “I”

1 Comment

  1. I Hope is helpfull => #PiTBuLL Display linux system information
    # uname –r => Display kernel release information (refer uname command in detail)
    # cat /etc/redhat_release => Show which version of redhat installed
    # uptime => Show how long system running + load (learn uptime command)
    # hostname => Show system host name
    # hostname -i => Display the IP address of the host (all options hostname)
    # last reboot => Show system reboot history (more examples last command)
    # date => Show the current date and time (options of date command)
    # cal => Show this month calendar (what more in cal)
    # w => Display who is online (learn more about w command)
    # whoami => Who you are logged in as (example + sreenshots)
    # finger user => Display information about user (many options of finger command)
    2. Hardware
    # dmesg => Detected hardware and boot messages (dmesg many more options)
    # cat /proc/cpuinfo => CPU model
    # cat /proc/meminfo => Hardware memory
    # cat /proc/interrupts => Lists the number of interrupts per CPU per I/O device
    # lshw => Displays information on hardware configuration of the system
    # lsblk => Displays block device related information in Linux (sudo yum install util-linux-ng)
    # free -m => Used and free memory (-m for MB) (free command in detail)
    # lspci -tv => Show PCI devices (very useful to find vendor ids)
    # lsusb -tv => Show USB devices (read more lsusb options)
    # lshal => Show a list of all devices with their properties
    # dmidecode => Show hardware info from the BIOS (vendor details)
    # hdparm -i /dev/sda => Show info about disk sda
    # hdparm -tT /dev/sda => Do a read speed test on disk sda
    # badblocks -s /dev/sda => Test for unreadable blocks on disk sda
    3. Statistics
    # top => Display and update the top cpu processes (30 example options)
    # mpstat 1 => Display processors related statistics (learn mpstat command)
    # vmstat 2 => Display virtual memory statistics (very useful performance tool)
    # iostat 2 => Display I/O statistics (2sec Intervals) (more examples)
    # tail -n 500 /var/log/messages => Last 10 kernel/syslog messages (everyday use tail options)
    # tcpdump -i eth1 => Capture all packets flows on interface eth1 (useful to sort network issue)
    # tcpdump -i eth0 ‘port 80’ => Monitor all traffic on port 80 ( HTTP )
    # lsof => List all open files belonging to all active processes.(sysadmin favorite command)
    # lsof -u testuser => List files opened by specific user
    # free –m => Show amount of RAM (daily usage command)
    # watch df –h => Watch changeable data continuously(interesting linux command)
    4. Users
    # id => Show the active user id with login and group(with screenshot)
    # last => Show last logins on the system (few more examples)
    # who => Show who is logged on the system(real user who logged in)
    # groupadd admin => Add group “admin” (force add existing group)
    # useradd -c “Sam Tomshi” -g admin -m sam => Create user “sam” and add to group “admin”(here read all parameter)
    # userdel sam => Delete user sam (force,file removal)
    # adduser sam => Add user “sam”
    # usermod => Modify user information(mostly useful for linux system admins)
    5. File Commands
    # ls –al => Display all information about files/ directories(20 examples)
    # pwd => Show current directory path(simple but need every day)
    # mkdir directory-name => Create a directory(create mutiple directory)
    # rm file-name => Delete file(be careful of using rm command)
    # rm -r directory-name => Delete directory recursively
    # rm -f file-name => Forcefully remove file
    # rm -rf directory-name => Forcefully remove directory recursively
    # cp file1 file2 => Copy file1 to file2 (15 cd command examples)
    # cp -r dir1 dir2 => Copy dir1 to dir2, create dir2 if it doesn’t exist
    # mv file1 file2 => Move files from one place to another(with 10 examples)
    # ln –s /path/to/file-name link-name => Create symbolic link to file-name (examples)
    # touch file => Create or update file (timestamp change)
    # cat > file => Place standard input into file (15 cat command examples)
    # more file => Output the contents of file (help display long tail files)
    # head file => Output the first 10 lines of file (with different parameters)
    # tail file => Output the last 10 lines of file (detailed article with tail options)
    # tail -f file => Output the contents of file as it grows starting with the last 10 lines
    # gpg -c file => Encrypt file (how to use gpg)
    # gpg file.gpg => Decrypt file
    6. Process Related
    # ps # Display your currently active processes (many parameters to learn)
    # ps aux | grep ‘telnet’ # Find all process id related to telnet process
    # pmap # Memory map of process (kernel,user memory etc)
    # top # Display all running processes (30 examples)
    # kill pid # Kill process with mentioned pid id (types of signals)
    # killall proc # Kill all processes named proc
    # pkill processname # Send signal to a process with its name
    # bg # Resumes suspended jobs without bringing them to foreground (bg and fg command)
    # fg # Brings the most recent job to foreground
    # fg n # Brings job n to the foreground
    7. File Permission Related
    # chmod octal file-name # Change the permissions of file to octal , which can be found separately for user, group and world
    octal value (more examples)
    4 – read
    2 – write
    1 – execute
    # chmod 777 /data/test.c # Set rwx permission for owner , rwx permission for group, rwx permission for world
    # chmod 755 /data/test.c # Set rwx permission for owner,rx for group and world
    # chown owner-user file # Change owner of the file (chown more examples)
    # chown owner-user:owner-group file-name # Change owner and group owner of the file
    # chown owner-user:owner-group directory # Change owner and group owner of the directory
    # chown bobbin:linoxide test.txt
    # ls -l test.txt
    -rw-r–r– 1 bobbin linoxide 0 Mar 04 08:56 test.txt
    8. Network
    # ifconfig –a # Display all network ports and ip address (set mtu and other all options,ifconfig now in deprecated network command)
    # ifconfig eth0 # Display specific ethernet port ip address and details
    # ip addr show # Display all network interfaces and ip address(available in iproute2 package,powerful than ifconfig)
    # ip address add dev eth0 # Set ip address
    # ethtool eth0 # Linux tool to show ethernet status (set full duplex , pause parameter)
    # mii-tool eth0 # Linux tool to show ethernet status (more or like ethtool)
    # ping host # Send echo request to test connection (learn sing enhanced ping tool)
    # whois domain # Get who is information for domain
    # dig domain # Get DNS information for domain (screenshots with other available parameters)
    # dig -x host # Reverse lookup host
    # host # Lookup DNS ip address for the name (8 examples of host command)
    # hostname –i # Lookup local ip address (set hostname too)
    # wget file # Download file (very useful other option)
    # netstat -tupl # Listing all active listening ports(tcp,udp,pid) (13 examples)
    9. Compression / Archives
    # tar cf home.tar home # Create tar named home.tar containing home/ (11 tar examples)
    # tar xf file.tar # Extract the files from file.tar
    # tar czf file.tar.gz files # Create a tar with gzip compression
    # gzip file # Compress file and renames it to file.gz (untar gzip file)
    10. Install Package
    # rpm -i pkgname.rpm # Install rpm based package (Installing, Uninstalling, Updating, Querying ,Verifying)
    # rpm -e pkgname # Remove package
    Install from source
    make install (what it is)
    11. Search
    # grep pattern files # Search for pattern in files (you will this command often)
    # grep -r pattern dir # Search recursively for pattern in dir
    # locate file # Find all instances of file
    # find /home/tom -name ‘index*’ # Find files names that start with “index”(10 find examples)
    # find /home -size +10000k # Find files larger than 10000k in /home
    12. Login (ssh and telnet)
    # ssh user@host # Connect to host as user (secure data communication command)
    # ssh -p port user@host # Connect to host using specific port
    # telnet host # Connect to the system using telnet port
    13. File Transfer
    # scp file.txt server2:/tmp # Secure copy file.txt to remote host /tmp folder
    # scp nixsavy@server2:/www/*.html /www/tmp # Copy *.html files from remote host to current system /www/tmp folder
    # scp -r nixsavy@server2:/www /www/tmp # Copy all files and folders recursively from remote server to the current system /www/tmp folder
    # rsync -a /home/apps /backup/ # Synchronize source to destination
    # rsync -avz /home/apps linoxide@ # Synchronize files/directories between the local and remote system with compression enabled
    14. Disk Usage
    # df –h # Show free space on mounted filesystems(commonly used command)
    # df -i # Show free inodes on mounted filesystems
    # fdisk -l # Show disks partitions sizes and types(fdisk command output)
    # du -ah # Display disk usage in human readable form (command variations)
    # du -sh # Display total disk usage on the current directory
    # findmnt # Displays target mount point for all filesystem (refer type,list,evaluate output)
    # mount device-path mount-point # Mount a device
    15. Directory Traverse
    # cd .. # To go up one level of the directory tree(simple & most needed)
    # cd # Go to #HOME directory
    # cd /test # Change to /test directory

Leave a Reply

Your email address will not be published.