55 Best Linux Tips, Tricks And Command Lines
Here we bring to you the 55 best tips, tricks and command lines of all time contributed by our readers. Try your hands and have fun.
If you are a Linux user and open to having some fun with your open source operating machine, then this is a must-read article for you. Here is a compilation of 55 tips, tricks and command lines of all time, enough to keep you equipped. Have a look:
1. Back-up and restore Thunderbird e-mails
In Linux, when you want to reinstall your system for any reason, you need to take a back-up of your data along with your e-mails in Thunderbird. Given below are a few simple steps that back-up e-mails manually. Check for your Thunderbird e-mail and profile folder. If you have not changed it, it should be in /home//.thunderbird/.default_folder/
For example, the alphanumeric folder name on my system is vx3vg9j2.default Copy the whole alphanumeric folder and place it in some other computer or storage device as an e-mail backup. Do remember to close Thunderbird before doing this.
After reinstalling your PC with any Linux-based OS, install the Thunderbird e-mail client and configure your e-mail credentials before closing the Thunderbird client.
Go to your Thunderbird folder in the new installation /home//.thunderbird/ folder. The alphanumeric named folder will be a different one now.
For example: /home/guest/.thunderbird/jx3gv9k2.default
Copy the contents of the old alphanumeric folder that is kept as a backup to the above location.
That is, you need to copy the contents of vx3vg9j2.default to jx3gv9k2.default Now, open the Thunderbird client and you will find that all the e-mail credentials, e-mails, e-mail rules and address book will be available as they were before re-installation.
--Sobhanadri Agnihotram, sobhanadri.a@gmail.com
2. Execute commands on a remote Linux machine
If you want to execute any command or script on a remote Linux machine, you can use ssh. Below are a few examples.
The syntax for running a command or script on a remote server is: ssh [USER]@[IP] [command or script]
Let us look at how this can be done. Suppose you want to display the directory contents of /root of a remote host, you can run the following command:
[narendra@ubunu]$ ssh root@172.16.223.128 ls -l /root root@172.16.223.128's password: total 12
drwxr-xr-x. 2 root root 4096 Mar 12 00:05 device_drivers
drwxr-xr-x. 2 root root 4096 Mar 12 01:31 pthreads
drwxr-xr-x. 2 root root 4096 Mar 12 01:32 python
[narendra@ubunu]$
The same can be done to run any script on the remote computer. --Narendra Kangralkar, narendrakangralkar@gmail.com
3. Run a Linux command after every reboot
This tip allows you to run any Linux command or script just after system reboot. You can use the @reboot cron keyword. If you have a script in your /home directory and it needs to be run on every boot, open the cron file in editable mode and add the following:
$crontab -e
@reboot /home/xyz/myscript.sh
Do remember to enable crond on boot. Imran Sheikh, imrannsheikh@gmail.com
4. Comment out hashes in large configuration files
Here is a small tip for system administrators, who need to tackle large configuration files, which include lots of commented lines (marked by #). With this tip you can remove all those hashes and provide only an uncommented configuration view for faster lookup into the file. If you want to check the configuration file of the Squid proxy server, run the following command:
#cat squid.conf | egrep -v ^#
This will show only lines that do not start with a hash mark, thus giving the configuration parameter that is being used in the current set-up. --Yogesh Upadhyay, yogeshupadhya@gmail.com
5. Replacing '\n' with 'space' in each line of a file
You can use the awk statement given below to remove the '\n' from each line and replace it with a blank space:
awk '$1=$1' ORS=' ' /etc/passwd --Rajeev N Sambhu, rajnellaya@gmail.com
6. Know your shells
Here is a command that will let you know about the available shells on your Linux distribution:
#chsh -l
To change your login shell, use the following command:
# chsh --Chandralekha Balachandran, reachlekha@gmail.com Advanced ls commands The following commands are very useful to know your system better. lspci – Lists all PCI devices. Use -v for verbose output. lsusb – Lists all USB devices. Use -v for verbose output. lsmod – Lists the status of modules in the Linux kernel. lsattr – Lists file attributes on a second extended Linux file system. lsof – Lists the file descriptors opened by all the processes. A very useful command when a process fails to close any file descriptors. To know more details, you can view the manual pages of each command mentioned above.
--Prasanna Mohanasundaram, prasanna.mohanasundaram@gmail.com
7. Checking for rootkits
Attackers install rootkits on a machine to gain root access, while its presence is hidden from the real administrator of the server. A tool that can help you to detect rootkits on your machine is chkrootkit. You can download this from ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz To install chkrootkit, you need to compile the code that you have just downloaded. Extract the downloaded tar file and change to the extracted directory, as shown below:
# tar -xvf chkrootkit.tar.gz
# cd chkrootkit-0.49/
Now compile the code by running the following command:
# make sense
After successfully compiling, the tool is ready to be used. To check for rootkits, simply run chkrootkit as the root user:
# ./chkrootkit
--Samual, samual45@gmail.com
8. Finding and replacing a test with sed
Let's look at how to find and replace a test using sed, a stream editor for filtering and transforming text. Let us first create a sample text file with the following text:
$ cat > sample.txt
This is a first test of sample test file This is a second test of sample test file
Press Ctrl+D after you finish entering the text. Now run the command below to display the contents of the newly created text file:
$ cat sample.txt
The output should be as displayed below:
This is a first test of sample test file This is a second test of sample test file
Now, substitute the first occurrence of the pattern 'test' in each line with 'log':
$ sed 's/test/log/' sample.txt
This is a first log of sample test file This is a second log of sample test file
If you want to substitute the second occurrence of pattern 'test' in each line with 'log', use the following commands:
$ sed 's/test/log/2' sample.txt
This is a first test of sample log file This is a second test of sample log file
To substitute every occurrence of the pattern 'test' in each line with 'log', use the code below:
$ sed 's/test/log/g' sample.txt
This is a first log of sample log file This is a second log of sample log file
The syntax for the above options is:
sed 's/original_pattern/replacement/options'
Also, by default, sed will send the data to the stander output device, and you can redirect it to any file by using the redirection operator ">".
$ sed 's/test/log/g' sample.txt > mod_sample.txt
--Jagan Teki, 402jagan@gmail.com
9. Backing up a MySQL database
There are several methods to back up a MySQL database, one of which is to a command line option. You need to have mysqldump installed for this method. mysqldump is a command line utility that comes with the MySQL installation It can be used to archive one or all databases. Given below is the command to back up a single database:
mysqldump --user [user_name] –password=[password_of_the user] [database name] > [dump_file]
The command for back up of all databases in existence is as follows:
mysqldump –u[user name] –p[password] –all-databases > [dump file]
To restore the back up taken by mysqldump, use the normal SQL command.
mysql --u [username] --password=[password] [database name] < [dump_file] --Manish, mt81@in.com
10. How to show the name of the current database in the MySQL prompt
If you need the name of the currently selected database in your MySQL prompt, use the following lines in your MySQL configuration file (my.cnf):
[mysql]
prompt='mysql(\d)> '
Now, when you connect, the MySQL prompt will look like what's shown below:
mysql((none))> use test;
Database changed
mysql(test)>
mysql(test)> use mysql;
Database changed
mysql(mysql)>
This makes it very easy to identify the name of the database that you are currently working on.
--Mohana Sundaram N, mohan.linux@yahoo.com
11. Find your MySQL configuration file
We often have to administer a system that has been set up by someone else. In such a situation, it's difficult to find the correct configuration files for different applications. Here is a tip to find the correct configuration file for MySQL:
mysql -? | grep ".cnf" --Remin Raphael, remin@smartgeek.in
12. View the contents of tar and rpm files Here are two simple commands to show you the contents of the tar and rpm files. 1. To view the content of a tar file, issue the following command:
#tar -tvf /path/to/file.tar
2. To view the content of an rpm file, use the command given below:
#rpm -qlp /path/to/file.rpm
--Giriraj G Rajasekharan, girirajgr@gmail.com
13. Playing around with MP3 files
Here is a tip that helps you cut, split, join or merge MP3 files in Ubuntu, resulting in a better quality output. To cut an MP3 file, you need to install poc-streamer, as follows:
$sudo apt-get install poc-streamer
The syntax for mp3cut is given below:
mp3cut [-o outputfile] [-T title] [-A artist] [-N album-name] [-t [hh:]mm:ss[+ms]-[hh:]mm:ss[+ms]] mp3 [-t ...] mp3 -o output: Output file, default mp3file.out.mp3
For example, if you want to cut a one-minute clip of the MP3 file named input.mp3 to a .wav file called output.wav, run the following command:
$mp3cut -o output.wav -t 00:00(+0)-01:00(+0) input.mp3
If you want to join two MP3 files, you need to install mp3wrap, as follows:
$sudo apt-get install mp3wrap
The syntax for mp3wrap is shown below:
$mp3wrap merged_filename.mp3 filename1.mp3 filename2.mp3
…where filename1.mp3 and filename2.mp3 are my input files that can be merged together. Finally, you can split a single large MP3 file into small files by installing Mp3split using the following command:
$sudo apt-get install mp3splt
Now, to split the large file, run the following command:
$mp3splt filename.mp3 00.00 01.23 03.20
Filename.mp3 is my input file, which can be split into two MP3 files. One is from the start to the 1 min 23 sec point, and another one is from 1 min 23 sec to 3 min 20 sec. Mp3split can make smaller files without decoding even the file.
--Rajasekhar Chintalpudi, rajasekhar.chintalapudi@gmail.com
14. GRUB 2 recovery
We often come across a condition in which the boot loader gets corrupt. Here are a few steps that will help you recover your GRUB 2 boot loader. Boot from a live CD or DVD, which supports GRUB 2 (Ubuntu 9.10 CD or above. A DVD will take more time than a CD, so I suggest you boot from a CD). Open the terminal and run fdisk -l to check the partition from which you want to recover GRUB 2. Here I assume that you want to recover it from /dev/sda1. Then run the following commands:
$sudo mkdir /media/sda1
$sudo mount /dev/sda1 /media/sda1
$sudo mount --bind /dev /media/sda1/dev
$sudo mount --bind /proc /media/sda1/proc
Now chroot into that partition by running the command given below:
$sudo chroot /media/sda1
Then re-install GRUB, as follows:
#grub-install /dev/sda
The output should be like what's shown below:
Installation finished. No error reported.
If you get an error, then try the following command:
#grub-install --recheck /dev/sda
After a successful installation, exit from chroot and unmount the file systems that were mounted to recover GRUB. Now reboot.
#exit
$sudo umount /media/sda1/proc
$sudo umount /media/sda1/dev
$sudo umount /media/sda1
$sudo reboot
You've successfully completed recovering your GRUB boot loader.
--Kousik Maiti, kousikster@gmail.com
15. Record whatever you do in the terminal
Have you ever felt that you should record everything you do in the terminal in a file? Then try out the following tip. There is a command named script, which can be used with option –a to append the output to a file.
Given below is an example that will show how it works: Mandriva~:$ script -a lfy Script started, file is lfy Mandriva~:$ uname -a Linux localhost.localdomain 2.6.33.5-desktop-2mnb #1 SMP Thu Jun 17 21:30:10 UTC 2010 i686 i686 i386 GNU/Linux Mandriva~:$ uname Linux Mandriva~:$ exit exit Script done, file is lfy
Here, the name of the file is lfy. You can verify it later by using the code given below:
Mandriva~:$ cat lfy Script started on Mon 16 May 2011 02:09:47 AM EDT Mandriva~:$ uname -a Linux localhost.localdomain 2.6.33.5-desktop-2mnb #1 SMP Thu Jun 17 21:30:10 UTC 2010 i686 i686 i386 GNU/Linux Mandriva~:$ uname Linux Mandriva~:$ exit exit
Script done on Mon 16 May 2011 02:10:32 AM EDT
--Sibi, psibi2000@gmail.com
16. Wonders of VIM
VIM has a very useful command set. Here are a few commands that can be used to increase your productivity.
VIM as a file comparator:
Use '-d' switch to compare two files in VIM. This command splits the VIM screen vertically and shows the differences.
vim -d file1 file2
17. load new files in separate windows:
If you have a file named 'first.txt' loaded already in VIM, then use ':split second.txt' to load another file named 'second.txt' in a separate window--IM will split the screen horizontally and load the second file. You can use ':vsplit' to split the screen vertically. 'Ctrl+w' can be used to switch between the windows.
18. VIM as a command:
Normally, we use VIM as an editor; however, it can be used as a command. It allows the execution of VIM commands with switch '-c', for example. Here is a command to replace all '>' characters to '>>' in a file FILE.TXT without opening VIM.
vim -c ":s/>/>>/g" -c ":wq" FILE.TXT
19. To open a file in read-only mode:
Use the '-R' switch to open a file in read-only mode; later on, '!' can be used to forcefully write to the file.
--Satya prakash, satya.comnet@gmail.com
20. Check your processor and OS architecture
You might want to install a 64-bit OS on your machine, but the processor might just be 32-bit compatible. Sometimes it happens the other way too, i.e., you install a 32-bit OS on a machine that has a 64-bit processor. Here is how to find out whether the installed OS as well as the CPU are of 64-bit or 32-bit.
Given below is the command that will output the details of the OS installed:
$ uname -m
The result for a 64-bit OS installation (for x86_64 architecture):
x86_64
The result for a non-64-bit OS installation (for i686 architecture):
i686
To know about the processor, run the following command:
$ lshw -class processor | grep width
Shown below is the result for a 64-bit installation:
width: 64 bits
The result for a 32-bit installation:
width: 32 bits
Note: Please install lshw if it is not already installed on your system
--Srikanth Vittal, vi.srikanth@gmail.com
21. Sudoing with Fedora
Ever felt tired of entering the super-user password after typing 'su –c' again and again? Type 'su -c visudo' just once and uncomment the following line:
# %wheel ALL=(ALL) ALL
Replace 'wheel' with your sudo username. So if the username is egghead, the line becomes…
%egghead ALL=(ALL) ALL
Save and quit. You're good to use egghead as the sudo user.
--A. Datta, webmaster@aucklandwhich.org
22. Let your Linux system welcome you
Issue the following script and name it welcome.sh
echo "Hi zades you are welcome today is " | festival --tts date| cut -d" " -f 1-3 | festival --tts
Now put the command sh welcome.sh at start-up. This will allow the script to run every time you log in to your system. Once done, restart your system to hear the message that is written in the Echo command.
The festival command is used to change the text to voice. You can use this command in many ways according to your creativity. Do remember to check that you have festival installed before trying this tip.
--Vinay Jhedu, vinay.komal100@gmail.com
23. Ignoring the case during TAB-completion
By default, TAB-completion is not useful if the name of the file or directory starts with an uppercase. You can make your Shell totally ignore the case for the name by adding the following entry in /etc/inputrc:
set completion-ignore-case on
Then restart your Shell. From now onwards, TAB-completion will complete your file or directory name, and completely ignore the case.
Do remember to make changes to inputrc only as the root user. You can read more about this in the manual pages of readline:
man readline
--Sachin P, iclcoolster@gmail.com
24. Find your OS and distribution name
Here is a tip that will let you know the name of the OS, along with other details:
[root@vl-pun-blg-qa27]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: CentOS Description: CentOS release 5.5 (Final) Release: 5.5 Codename: Final
--Narendra Kangralkar, narendrakangralkar@gmail.com
25. Auto mounting a partition on Linux
The file that contains data regarding the devices to be mounted at start-up is in /etc/fstab. To automatically mount a partition, follow the steps given below.
First, create the directory in which your partition will be mounted. Create one directory per partition. I created the directory in /media. This directory is known as the 'mount point' for the partition.
To create the mount point, open up the terminal and type the following command:
sudo mkdir location_of_dir/name_of_dir
…or you can use Nautilus, the file manager, to create a folder.
If the directory is created in a location in which you need root privileges, use sudo. After creating the mount point, modify /etc/fstab as per your requirements. It is always advisable to create a backup of the /etc/fstab file before making any changes, because any error in that file can prevent your OS from booting.
Now, make changes in fstab to auto mount the HDD partition:
sudo gedit /etc/fstab
Open the /etc/fstab with a text editor of your choice with root privileges. In this file, add the details in the same order as done for the existing partitions.
The order should be as follows: the device name, the default mount point, the file-system type, mount options, dump, and the fsck option.
The device name is the name of the HDD partition (such as /dev/sda5): the mount point is the full path of the directory where the partition is to be mounted. The file system type is the type of file system like ext4, fat, ntfs, etc. Mount options are normally given as defaults, while dump and fsck options are given as 0.
I had a partition /dev/sda5 and I created the directory /media/mydisk. My partition was of type ext4, so to my /etc/fstab, I added the following command:
/dev/sda5 /media/mydisk ext4 defaults 0 0
Save the file and in the command prompt, type the following:
sudo mount -a
Now, the partition will be automatically mounted on every reboot. --Vineeth Kartha, vineethkartha@ieee.org
26. Creating a virtual file system
Here is a simple tip that allows you to create a virtual file system and mount it with a loopback device.
STEP 1: First create a file of 10 MB using the following command:
$ dd if=/dev/zero of=/tmp/disk-image count=20480
By default, dd uses a block of 512 so the size will be 20480*512 STEP 2: Now create the file system as ext2 or ext3 Here, in the following example, let's use ext3 as a file system:
$ mkfs -t ext3 -q /tmp/disk-image
You can even use Reiser as a file system type, but you'll need to create a bigger disk image. Something like what's shown below:
$dd if=/dev/zero of=/tmp/disk-image count=50480
$mkfs -t reiserfs -q /tmp/disk-image
STEP 3: As the final step, create a mount point and mount the file system:
$ mkdir /virtual-fs
$ mount -o loop=/dev/loop0 /tmp/disk-image /virtual-fs
Note: If you want to mount multiple devices, you will have to increase the loop count as mentioned below:
loop=/dev/loop1, loop=/dev/loop2,... loop=/dev/loopn
After you complete the above steps, you can use it as a virtual file system. You can even add this to /etc/fstab to mount this virtual file system whenever you computer is rebooted. Open your /etc/fstab in a text editor and add the following:
/tmp/disk-image /virtual-fs ext3 rw,loop=/dev/loop0 0 0
--Aarsh S Talati, aarshstalati1989@gmail.com
27. Identify your current shell name
You can identify your current shell name by using the following commands:
[narendra@CentOS]$ echo $SHELL
/bin/bash
The "SHELL" environment variable stores the name of the current shell. You can also use the command given below to get the shell name:
[narendra@CentOS]$ echo $0
bash
"$0" will print the name of the program; here the program name is 'current shell'.
--Narendra Kangralkar, narendrakangralkar@gmail.com
28. Scan open ports
The command given below will scan all the open TCP ports on the loopback interface:
nmap -sS -O 127.0.0.1
In general, you can use the following:
nmap -sS -O
To scan open UDP ports in the system, use the command given below:
nmap -sU -O
--Prasanna, prasanna.mohanasundaram@gmail.com
29. Rev up!
As *nix sysadmins, we need to do a whole bunch of text-based data processing, either in files or data streams.
Here is a shell command called rev that I came across and wanted to share with you geeks because I really liked it and found it useful.
The rev command utility reverses the order of characters in every line. In short, it creates a mirror image. The most common use of rev is to reverse the line, extract a particular string and then pipe through rev a second time to restore the original.
So, if I want to get the year mentioned at the end of a string, this is what I will do:
$cat fileinfo.txt
Last Changed Date: 2011-08-11 18:10:08 -0500 Thu, 11 Aug 2011
$cat fileinfo.txt | rev 1102 guA 11 ,uhT 0050- 80:01:81 11-80-1102 :etaD degnahC tsaL
$cat fileinfo.txt | rev | awk '{print $1}' 1102
$cat fileinfo.txt | rev | awk '{print $1}' | rev 2011
Voila! Got the year! This is just one workaround, out of the many ways of doing this same task. After all, it doesn't hurt to learn something new. --Ram Iyer, ramiyer1@gmail.com
30. Increment or decrement a number present in Vim editor
This tip will increment and decrement a number in Vim editor. To increment, use Ctrl+A and to decrement, use Ctlr+X. The following example will explain it further.
Let's suppose a number, 5, is present in the file that is being edited in Vim editor. Now, if you need to increment or decrement the number by 1, place the cursor on the digit and press Ctrl+A to increment it (i.e., it becomes 6); if you press Ctrl+A again, 6 becomes 7, and so on. In the same way, if you press Ctrl+X, the number will be decremented by 1. If you press 8 and then press Ctrl+X, the number will be decremented by 8. Similarly, pressing 12 and then Ctrl+A will increment the number by 12. --Adithya Kiran Gangu, adithya.kiran@gmail.com
31. Search and delete files from a folder
If you want to delete all the .lock files from a folder, use the following command:
find -name *.lock | xargs rm -rf
This will find all the files with the .lock extension and delete them. This can be done for any files that you need to delete.
--Mridhul, mridhul@live.com
32. Get the right information easily
Newbies exploring GNU/Linux sometimes find it difficult to get the right information about a device that is not working. Yet, this information is required to make the device work. Here is a command that gives you the details of all PCI devices and the kernel driver that is associated with them. Open the terminal and log in as the root user. Now run the following command:
lspci -k
lspci gives you the information about the PCI buses and also the devices connected to them, and the -k switch displays which kernel module is handling the device. So if it is missing on some device, you need to install the driver for that device.
--Pankaj Tanwar, pankaj.tux@gmail.com
33. Number conversion in the Vim editor
Here is a tip that will let you convert hexadecimal numbers to decimal numbers and vice versa in the Vim editor. To convert hexadecimal numbers to decimal numbers, you need to type the following in the Vim editor's command mode:
:echo 0x111
Press Enter and you will get the result:
273
You can even try the command given below to convert the number:
:echo printf ('%d',0x111)
273
Now to convert decimal numbers to hexadecimal numbers…
:echo printf ('%x', 273) 111
You can even perform simple arithmetic on Vim's command prompt as given in the example below:
:echo printf ('%x',273-173)
64
:echo 0x111-0x10
257 --Adithya Kiran Gangu, adithya.kiran@gmail.com
34. Know the libraries used by a program
Here is a tip that will help you know what shared libraries are being used by a program.
For example, to figure out exactly which libraries are used by ls, run the following command:
ldd /bin/ls
The output will be a list of all shared libraries:
linux-gate.so.1 => (0xffffe000) libselinux.so.1 => /lib/libselinux.so.1 (0xb786c000) librt.so.1 => /lib/librt.so.1 (0xb7862000) libcap.so.2 => /lib/libcap.so.2 (0xb785c000) libacl.so.1 => /lib/libacl.so.1 (0xb7852000) libc.so.6 => /lib/libc.so.6 (0xb76e4000) libdl.so.2 => /lib/libdl.so.2 (0xb76df000) /lib/ld-linux.so.2 (0xb78a4000) libpthread.so.0 => /lib/libpthread.so.0 (0xb76c4000) libattr.so.1 => /lib/libattr.so.1 (0xb76be000)
--Aarsh S Talati, aarshstalati1989@gmail.com
35. Use YUM to download a package
Often, you need to download rpm packages without installing them on the system that you are using to download it. Using the normal YUM command downloads the packages and also installs them on your computer. Here is an option that will only download the rpm package for you. It will download it in the folders specified in the '--downloaddir' option.
# yum update httpd -y --downloadonly --downloaddir=/opt
Now, you can install all rpm packages in this folder by running the following command:
# rpm -Uivh *.rpm
Do remember to run these commands as the root.
--Pratyay Modi, pratyaymodi@gmail.com
36. Resolve FSCK failed error
Sometimes, while booting your Linux system, you may come across the error shown below:
FSCK failed. Please repair manually and reboot. The root file system is currently mounted read-only. To remount it read-write do: bash# mount-n -o remount,rw / Attention: Only CONTROL-D will reboot the system in this maintance mode. shudown or reboot will not work. Give root password for login:_
Provide your root password and try the following command:
mount -n -o remount,rw /
If this does not work for you, reboot your system and do a manual file system check on your root partition as follows:
umount /dev/hddXXX
fsck -CV /dev/hddXXX
…where hddXX is the root partition.
--Abhishek Chib, abhishek.chib@gmail.com
37. Undo your changes even after quitting the VIM editor
As all of us know, if you make changes in a file using VIM editor, the changes are permanent and you cannot get the old version back after you save and quit the editor. But VIM v7.3 allows you to get the old version back even after quitting the editor. Here is a tip that shows you how to configure VIM to remember changes. To enable Undo, execute the following commands in VIM just before starting to edit the file.
:set undofile
:set undodir=/tmp
This is to be done every time you start editing a file. In case you need the configuration to be there for all files that you open in VIM, create a file called '.exrc' or '.vimrc' in $HOME directory. In my case, it is /myhome. Open the just created file and add the following commands:
# vi /myhome/.exrc
set undofile
set undodir=/tmp
Save and close the file.
:wq
From now onwards, the Undo history is maintained in the background for all files that you edit with VIM.
--Adithya Kiran Gangu, adithya.kiran@gmail.com
38. Using 'vi' commands on your terminal Using 'vi' commands while working on the terminal is a good work enabler. To set your terminal to 'vi' mode, you need to use the following command:
set -o vi
Now you can use the command mode and the insert mode of 'vi' while working on the terminal.
--Dipjyoti Ghosh, dipjyoti.ghosh@gmail.com
39. Get your IP address
Here is a one line command to fetch all the IP addresses (except localhost) of your computer:
# ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
Note: Use the above command as the root user.
--Balkaran Brar, balkaran.brar@gmail.com
40. Make your system speak for you!
You can make your system speak for you by using the Speech Synthesizer command normally available in Ubuntu and many other distributions of Linux. To do so, issue the following command:
# espeak "hello how are you"
You will hear a voice speaking for you. To change the pitch of the voice, you can issue the following command in the format shown:
# espeak -p 80 "hello how are you"
…(default being 50) Issuing the following form of command will control the speed of the speech, in terms of words per minute:
# espeak -s 80 "hello how are you"
There are more interesting options available in the man pages. --Sanjay Goswami, sanjaygoswamee@gmail.com
41. Measuring the network throughput between two Linux systems
Iperf is a tool that measures the bandwidth and the quality of a network link. It can be installed very easily on any Linux system. One host must be set as the client and the other one as the server. Make sure that iperf is installed on both systems. If it is not installed, then use your package manager to install it before trying this tip.
Now run iperf on one of the Linux systems as the server, as shown below:
linux-erv3:/home/test/Desktop # iperf -s
------------------------------------------------------------ Server listening on TCP port 5001
TCP window size: 85.3 KByte (default) ------------------------------------------------------------
Go to the second Linux system and run iperf -c as the client:
linux-6bg3:~ # iperf -c 192.168.1.100
------------------------------------------------------------ Client connecting to 192.168.1.100, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------
[ 3] local 192.168.1.109 port 39572 connected with 192.168.1.100 port 5001
^C[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 6.3 sec 6.38 MBytes 8.51 Mbits/sec
By default, the iperf client connects to the iperf server on the TCP port 5001 and the bandwidth displayed by iperf is the bandwidth from the client to the server. In the above example, it is 8.51 Mbits/sec between two Linux test systems connected over a wireless network.
--Prasanna, prasanna.mohanasundaram@gmail.com
42. Print a file with line numbers
If you want a file with line numbers (say for printing), you can use the 'nl' command in Linux:
$ nl file.c
This prints the file with line numbers to standard output or this can be even redirected to a
file as shown below:
$nl file.c > output.txt
Here, output.txt will have the codes of file.c with each line having a line number.
--Phaniram Vallury,
ramvvs@gmail.com
43. Cut specific logs
If you need to cut specific logs from the complete log of any application, here is a tip that will
be of help.
Open the log file in a vi editor and set the editor to display the line number:
vi server.log
:set nu
The above process will provide you the line numbers in the logs. You can then search for
the specific string and note down the line number (e.g., 550). Now, note down the last line
number by using Shift+G (e.g., 780)
sed -n 550,780p server.log > threaddump.log
So the threaddump only contains lines from 550 to 780.
--Venkatesh R,
venka.2k@gmail.com
44. Reset ifconfig counters
As you can see, ifconfig keeps a couple of counters (RX/TX packets, RX/TX bytes, errors,
dropped, overruns, frames and carrier collisions). You can quickly spot if there is a problem by
just looking at the ifconfig counters:
#ifconfig eth0
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4233700943 errors:2 dropped:0 overruns:3 frame:5
TX packets:1917219659 errors:1 dropped:0 overruns:0 carrier:348
collisions:5753 txqueuelen:3000
RX bytes:1467520026 (1.3 GiB) TX bytes:2299240337 (2.1 GiB)
You can now find out what driver is being used by the network interface, which you want to
reset by using ethtool.
#ethtool -i eth0
driver: e100
version: 3.4.14-k4-NAPI
firmware-version: N/A
bus-info: 0000:01:07.0
# modprobe -r e100; modprobe e100; ifup eth0
This will reset all counters.
--Vinod Rana,
rana3807@gmail.com
45. Power yourself with Netstat
Here are a few uses of the netstat command that can help you. To display the kernel interface table:
netstat -i
To display the kernel routing table:
netstat -rn
To display all open network sockets:
netstat -uta
To display network statistics:
netstat -s
--Prasanna, prasanna.mohanasundaram@gmail.com
46. Finding the full path of the shell command
There is a command named which that takes one or more arguments as input. It prints to standard output the full path of the shell command. It does this by searching for an executable or script in the directories listed in the environment variable PATH:
[aarsh@localhost ~]$ which poweroff
/usr/bin/poweroff
If the command is not found, it gives the output shown below:
[aarsh@localhost ~]$ which moodule
/usr/bin/which: no moodule in (/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/aarsh/bin)
--Aarsh S Talati, aarshstalati1989@gmail.com
47. Securing files
Here is a simple tip to password protect your files:
vi -x test
This command will ask for an encryption key. You have to type the key twice. Then save and quit the opened file. Now, whenever you open this file, it will ask for that password first.
--Sumit Chauhan, sumit1203@gmail.com
48. Uninstalling a package
To completely uninstall a package, first check the exact name of the package to be uninstalled by using the following command:
sudo dpkg --get-selections | grep package_name
The output of the above command will display the name of the package. Once you know the package name, you can remove it by using the command shown below:
sudo apt-get remove --purge package_name
--Neeraj Joshi, neeraj88joshi@gmail.com
49. How to check the date and time the system was rebooted
Here is a simple command to check the system's reboot date and time:
#last reboot
reboot system boot 2.6.18-53.el5 Sat Aug 6 18:02 (8+04:45) wtmp begins Sat Aug 6 18:02:07 2011
The command below will give you the date and time the system was booted:
#who -b
system boot 2011-08-24 09:43
--Sumit Chauhan, sumit1203@gmail.com
50. Reloading XWindows System
Sometimes, while working on a Linux-based computer, XWindows System doesn't respond very well. Here are the steps to reload XWindows System in a non-responsive Ubuntu system.
1. First open the command mode by pressing: Ctrl + Alt + F2 …and then entering your username and password.
2. Then run the following command:
top
Search the process named 'Xorg' in the list. If it does not appear, wait for a few seconds. Then find the PID of the 'Xorg' process, listed at the extreme left of the output on the top. You can also get the PID using the command given below:
pgrep Xorg
3. Now run the following command to kill the Xorg process:
sudo kill "PID"
…where PID is the process ID of Xorg. This will reload the XWindows System.
Note: You must have root access to use these commands
--Indermohan Singh, indermohansinghk7@gmail.com
51. Handling log files
Developers require a lot of testing after coding the software and they frequently need to handle the log files to identify the errors in the code of an application program. Given below are the steps to handle various log files that are being generated on a Linux system.
1. Clearing a log/text file:
$ >filename
The above command will clear all contents of the file. 2. To view the log/text file:
$ tail -f filename
This command will display the file contents as and when the log is written. It also displays the flow of the log. 3. To use more sophisticated tools on log files:
$ less filename
This will display the log file contents. You can also use the commands below while using less. a. To refresh the log automatically, press:
"f"
after issuing the less command.
b. To stop refreshing the logs, press:
CTRL + C
c. To scroll up, press:
w
d. To scroll down, press:
d
e. To exit the mode, press:
CTRL+C
and then press
q
--Pranavam Siddharthan, pranavam.s@gmail.com
52. Changing file names from upper case to lower
To manually change the case (upper to lower or vice versa) of a large number of files can be tedious. So, here is a script that can make life easy:
#to change uppercase filenames to lowercase #!/bin/sh if [ $# -eq 0 ] ; then echo Usage: $0 Files exit 0 fi for f in $* ; do g=`echo $f | tr "[A-Z]" "[a-z]"` echo mv -i $f $g mv -i $f $g done
If you want to change the case from lower to upper, replace
g=`echo $f | tr "[A-Z]" "[a-z]"`
with
g=`echo $f | tr "[a-z]" "[A-Z]"`
in the script.
--Anil Awasare, anil.awasare@gmail.com
Counting the number of files in a directory Here is a simple command that can count the number of files in a directory (not the hidden ones):
echo * | wc -w
--Anil Awasare, anil.awasare@gmail.com
53. Find and move files
You can find and move files in two steps. Step 1 enables you to find all files with .mp3 as the file extension. In Step 2, you can move them. Step 1:
[narendra@ubuntu]$ find DIR_NAME -type f -iname "*.mp3"
./dir2/f4.mp3 ./dir2/f3.mp3 ./dir1/f2.mp3
Note: Replace DIR_NAME with your actual directory name.
In the above example, you are only finding the files (that's why you used -type f) that have extension '.mp3'. Now you can move these files by using the '-exec' option of the 'find' command. Step 2:
[narendra@ubuntu]$ find DIR_NAME -type f -iname "*.mp3" -exec mv {} /tmp/mp3/ \;
Here, '{}' matches each filename which is found by the 'find' command. And '\;' is used to indicate the end of the command. After executing this command, all mp3 files are moved into the '/tmp/mp3' directory.
--Narendra Kangralkar, narendrakangralkar@gmail.com
54. Burning a DVD using the command line
Do you know that burning content using the command line onto a DVD on your Linux-based computer can be easy and fun? Here are the steps and commands that allow you to do so.
Burning an ISO image You can download your favourite Linux distribution and type the following single command:
$ growisofs -dvd-compat -Z /dev/dvd=your_linux_image.iso
Here /dev/dvd is your DVD burner device.
Burning a non-ISO image For burning non-ISO images onto a DVD, first create an ISO image of the data and then burn the ISO image on the disk:
$ mkisofs -r -o /tmp/my_stuff.iso ~/Desktop/My_Stuff/
$ growisofs -dvd-compat -Z /dev/dvd=/tmp/my_stuff.iso
There are several options of mkisofs and growisofs that can be explored to suit your requirement. You can read the man pages for more details of the commands and their options.
--Dibyendu Roy, diby.roy@gmail.com
55. Find out the elapsed time of a running process
There are a lot of processes running on your Linux system. Here is a command that will let you know how long the process has been running:
#ps -eo "%p %c %t"|grep "sshd"
In response to the above command, you will get the following output:
2850 sshd 172-01:37:22 29532 sshd 125-09:07:10
In the above command %p is pid, %c is command and %t is elapsed time.
--Ravikumar R, ravikumar.raam@gmail.com
| | |
Post a Comment