Tag Archives: Linux

Advanced use of – Find -: a handy command line tool for Linux

This post is basically directed towards new users of Linux which are not much familiar with command prompt. This is a small but comprehensive article about ‘GNU find’ .
Find Your Lost Files!
Let’s start from a simple example:
Suppose you want to search for a file named ‘master.txt’ in your home directory.
Open the Terminal and issue the following command:
find . -name “master.txt”
‘find’ will immediately show the results.  If ‘find’ does not show any result, this means that the file, in our case, ‘master.txt’, does not exist.  It is not always the case that you want to find something in you home directory.  The lost/desired file may be anywhere in your computer.  Suppose you want to find a file named ‘space-01.jpg’ and you only know that is located somewhere in /usr directory. You can find it by issuing following command in Terminal:
find /usr -name “space-01.jpg”
and ‘find’ will tell you that this is located under /usr/share/backgrounds.
Using Wildcards
Maybe you want to search for a file but you don’t know its exact name?  Don’t worry!  You can still locate the file using ‘GNU find’ and wildcard will help you in this regard. Wildcards are a way of searching files when you don’t know much about your desired file.
One of the commonly used wildcard is asterisk (*).  Lets consider an example to better understand the things.
Suppose you want to search a file named ‘Jumping_Flowers’ but you only remember the ‘Jumping‘ part of the file name.  So issue the following command in Terminal:
find . -name “Jumping*”
And it will display all the files starting with the word ‘Jumping’.  You can use asterisk (*) anywhere with a file name.  For example:
find . -name “*Jumping*”
And it will display all the files which contain the word ‘Jumping’.
Here are some more examples of use of a wildcard:
find . -name “Jumping*Flowers*”
find . -name “*Jumping*Flowers.mp3”
Searching For Different File Types
Sometimes you are not looking for some specific file but you are looking for a group of files.  For example, you may be looking for all the .txt files in your home directory.  To find all the .txt files, you will give the following command in Terminal:
find . -name *.txt
In case of mp3 files, the above command will be:
find . -name *.mp3
When You Want to Search with Respect to Time
If you want to search for files by the last time they were accessed, you can use -amin flag with ‘find’.  In this case you have to put a minus (-) sign before the time.  The time here is in minutes.  In order to search for .doc files which were accessed in last 10 minutes, you will give the following command:
find . -amin -10 -name “*.doc”
Similarly, to search for .doc files which were modified in last 20 minutes, you will use -mmin option as follows:
find . -mmin -20 -name “*.doc”
Search For Files which are Eating Your Hard Disk
There may be files on your system which are not only huge in size but also located obscure places.  You may also may not know when they were last accessed.  You have to use -size option with ‘find’ to locate them.
Let’s see how we can do this:
find . -size +100M
It will list all those files which are greater than 100 Megabytes.  You can replace ‘M’ with ‘G’ (for Gigabyte) or with ‘k’ (for Kilobyte)
Copy, Move, or Delete Unwanted Files on the Fly
Copy – ‘find’ can also be used to copy or backup your files.  You can use ‘find’ to copy certain files from one location to other with one simple command.
Suppose you want copy all of your mp3 songs from your home directory to your Windows Partition.  Enter the following command in Terminal:
find . -name “*.mp3” -exec cp {} /path/to/Windows_Drive \;
And all of your mp3 files will be copied to the desired Drive/Folder.
Move – There may be situations that you quickly want to move all of your document files from your Hard Disk to your USB to keep them safe.  To move all of your documents from your home directory to your USB, you will issue the following command:
find . -name “*.doc” -exec cp {} /path/to/USB \;
Delete – Suppose there are a lot of .tmp files and you want to get rid of them at once.  Again ‘GNU find’ is at your service and does the work for you.  Issue the following in Terminal and all of the .tmp files are gone…
find . -name ‘*.tmp’ -exec rm {} \;
Which Files are Owned by You and Which Are Not?
There may be a situation when you want to know that which files in some other directories (or even in your home directory) are owned by some other user of your computer.
Suppose there is another user named ‘blackstar’ with whom you are sharing your PC.  Now you want to know that which .doc files in Windows Directory is owned by this user ‘blackstar’.  You can do this by issuing the following command:
find /path/to/Windows_Drive -user blackstar -name “*.doc”
Just replace ‘blackstar’ with your username to search on your system.
Direct the Output of ‘find’ to a File
You can save the results of your ‘find’ command to a text file which will allow you to examine the results in detail at some later time (or to create playlist of your songs).  For this purpose a greater than (>) sign is used (referred to as “piping the command”).
Suppose you want to save the list of all the mp3 songs in your home directory to a text file (which you can later share with your friend), you can do this by:
find . -name “*.mp3” > mp3.txt
It will save the complete path to all of your mp3 songs in the file named mp3.txt. AddThis mp3 link

Installing YamiPod on Linux: a multi-platform, very versatile iPod Manager

YamiPod is a freeware application to efficiently manage your iPod on Linux. It can be run directly from your iPod and needs no installation. It also has extra features such as rss news and podcast support, remove duplicates, easy notes editor (with multipage support), songs synchronization, playlists export, a built in music player and much more. It has been translated in 12 languages.

On Linux, the installation is really simple:

  • have at least one song on iPod
  • copy the libfmodex audio library to /usr/lib (you need root privileges). You’ll find this file in the package you’ve downloaded
  • mount your iPod somewhere inside /mnt or /media with read/write access
  • make sure you have the df command installed, which is usually part of any standard linux distribution.

To run YamiPod just double-click on YamiPod’s binary.

Using YamiPod is also so simple when you want to Copy  Music to iPod: Drag&drop files into the song listbox. You can even drag and drop folders, YamiPod will add all valid music files found in sub folders.

In the window that will appear you’ll be able to assign song information (title,album name, artist…) for each single file or setting them for every file ticking the All checkboxes.

In Playlist tab you can select:

  • Destination: select a playlist where to add all dragged songs.
  • Lyric filename: how lyric should be named.
  • Create playlist from folder: this will add all songs in a folder to a playlist named as the folder. For example if you dragged a folder called Music with 2 subfolders: 70’s and 80’s containing various files. Files in 70’s will be added to a newly created folder called 70’s. Files in the other folder will be added to a playlist called 80’s.

In Advanced tab you can select:

  • Auto capital first letter: will titlecase all song tags.
  • If duplicated: what to do if song exists on iPod.
  • Get song info by path and filename: if your song tags are missing but you named and placed your song following a particular order, you can tell YamiPod to get song tags out of filename a path.

Tips:
Holding SHIFT while dragging will add songs to currently selected playlist. If you’ve selected multiple songs to add you can quickly edit next (previous) song information by pressing ALT+down (up). AddThis mp3 link

Kernel Development Using the Eclipse IDE

Eclipse IDE is an open source platform useful to build an extensible development and develop application frameworks to build, deploy and manage through the complete SDLC of the software. Features wise Eclipse IDE is much more advanced than the conventional Java development Environment. As a first step you have to download Eclipse CDT from:

http://archive.eclipse.org/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-linux-gtk.tar.gz

Use the following command to extract the tar:

$ tar xzvf eclipse-cpp-ganymede-SR2-linux-gtk,tar.gz

As the next step you have to change your directory in terminal window into the extracted folder and then start Eclipse as given below :

# cd eclipse

$ ./eclipse

Let us consider building a “C“ application using Eclipse IDE. Use the following command sequence to accomplish the first step :

Select File – New – C Project.

Assign the project a name and identify the location (it is advisable to retain the location field as the default value. Most important mention “Executable” under the Project type. Click “Next” followed by “Finish” to complete this step. Specify the Yes for “C/C++” perspective or not. Locate the Project explorer Select build project in Project Explorer with options like Console, Tasks and Problems. Next you have to compile this project using Eclipse IDE.

Let us now get down to the task at hand – Kernel compilation. Download a kernel tar file from the website – www.kernel.org.

The commands look like this :

$mv linux-2.6.34.tar.bz2 /usr /src.

Then the file has to be extracted into the respective folder through the following command :

$ tar -jxvf linux-2.6.34.tar.bz2

$cd linux-2.6.34

Configuration can be set as follows :

$ make menuconfig

Further steps in the process to compile a kernel using Eclipse IDE are fairly simple. Take care to disable the “Automatic building and indexing” to save time. This is accomplished as follows :

Window – Preference – General – C/C++ – Indexer. You have to select “No Indexer” Next give the following command – File – New – C Project. After assigning a name to the project undo checking of “Use default location” and browse to your kernel source code directory.

Project type – Makefile project – Empty Project. To cross-compile the kernel, use existing tool from “Toolchain”. Click on Finish to complete this beginning step. Give the following commands to complete the task :

Make all

CHK include/linux/version.h

CHK include/generated/utsrelease.h

CHK scripts/checksyscalls.sh

CHK include/generated/compile.h

On waiting for a few minutes the compilation is completed. To check that the kernel image file is created successfully type the following commands :

$ ls –l /usr/src/linux-2.6.34/arch/x86/boot/bzimage

–rw-r—r—1 manoj sc 3589920 2010-11-30 12:51 /usr/src/

Linux-2.6.34/arch/x86/boot/bzimage

Option readers and internet users will certainly admit that developing kernel using Eclipse ID is one of the simplest things anyone can do. However, to realize the true potential of the eclipse, You can gradually scale up the nature of projects to more complex projects to realize the full potential of eclipse IDE. A step-by-step approach would be wise in this regard. AddThis mp3 link

Create ‘alias’ (shortcuts to commands) using Linux Sophisticated Commands

Long sophisticated instructions are usually not solely tough to recollect but in addition  take a lot of time to be typed. When it’s a must to use them on day by day foundation, you turn into annoyed when typing them repeatedly and again… So, ‘alias’ are extra appropriate for lengthy and complex commands.

Let’s think about an example.

To find the top 10 largest files in your system, you can set the next ‘alias’:

alias top10files=”find . -type f -exec ls -sh {} \; | sort -n -r | head -10”

You can even combine different instructions with ‘alias’.  As an illustration, if you happen to often use ‘tail’ and direct its output to file to later view that file, you may set a very simple ‘alias’ to do this cumbersome operation in 1 word:

alias Tail=”tail /var/log/messages > hello.txt;cat hello.txt”

Now just enter ‘Tail’ and voila! All is done at once.

You need to use any file with tail and direct its output and you’ll even use ‘nano’ or ‘vi’ to view/edit its output.

Here’s one other example… ‘alias’ to connect to a remote server:

alias any_name=”ssh -l -p ”

You possibly can even create ‘alias’ on your bash scripts, like:

alias clc=”sh /home/user/myscripts/calc.sh”

Now that you have set a number of totally different ‘alias’  you may want to test that which ‘alias’ are set in your system.  To do that, simply difficulty the next command:

alias

and it will list all the set ‘alias’ you have.

To remove an ‘alias’, just issue the ‘unalias’ command, like:

unalias Google

and now typing Google in Terminal will do nothing (as it was set with lynx).

To remove all the ‘alias’, issue the following command and all the ‘alias’ are gone:

unalias -a

We have mentioned the way in which of setting the ‘alias’ for different sorts of commands.  However setting ‘alias’ in this approach be temporary.  While you reboot you PC, all the ‘alias’ which you will have set will probably be gone.  This does not mean that it’s a must to set all of the ‘alias’ each time you boot your PC.  You probably have set an ‘alias’ and you favored it a lot that you really want it to completely reside in you PC, simply add this alias in ‘.bashrc’ file in you dwelling directory. For example, if you would like ‘alias’:

Set up <software_name>

to permanently reside in your PC then user your favorite text editor and add the following line in your ‘~/.bashrc’ file:

alias Install=”sudo apt-get install”

Now this ‘alias’ will not vanish into thin air when you reboot your PC. Only those ‘alias’  which are listed in ‘~/.bashrc’ file will be permanent.

This information is just a preview about ‘alias’.  It’s just about primary ways of using ‘alias’ to make your life simpler.  ‘GNU alias’ is a instrument which can simplify your life immensely.  But sadly this device isn’t given the attention it deserves.  Briefly, it is such a strong tool that when you give it proper time, it could possibly make you overlook typing. AddThis mp3 link

Ubuntu to Windows XP folder sharing

Computer networks are sometimes comprised of various OS and while operating a network made up fully of Ubuntu desktop and server computer systems would definitely be enjoyable, some community environments can consist of both Ubuntu and Microsoft Windows systems working together.
If you want to make an Ubuntu shared folder be accessible to Windows XP,  run the NTFS configuration tool on the drive.
Don’t forget that it is advisable to have admin rights to do that modification.
Select application->Accessories->Terminal
then type the following:

sudo gedit /etc/samba/smb.conf

and in the [global] section add the following line:

usershare proprietor only = false

AddThis mp3 link

Enabling remote desktop on a VirtualBox Machine

To enable remote desktop on a VirtualBox machine, you have to follow these steps:
VBoxManage modifyvm MachineName -vrdp
This command enables rdp on the virtual machine
VBoxManage startvm MachineName -type vrdp

It starts virtual machine, listening for rdp request on port 3389 (default port)
rdesktop-vrdp localhost

Connects virtual machine with rdp (You can use rdesktop too).
If you want to change rdp port, use this command:
VBoxManage modifyvm MachineName -vrdpport

Also, enabling authentication for rdp is possible:
VBoxManage modifyvm MachineName -vrdpauthtype null | external | guest

VBoxManage is the command line interface of the VirtualBox.
You can make these settings with GUI: Settings -> Remote Display -> Enable VRDP Server
If you want to use your virtual machine with vrdp only, you can use this command simply:
VBoxHeadless -startvm MachineName

Note: RDP server is not included in Open Source Edition of the VirtualBox. If you want to use this feature, you have to use closed-source edition. AddThis mp3 link

Using iPhone internet sharing over bluetooth under Linux

To use your iPhone’s internet connection through a Linux notebook over bluetooth, you have to open Tethering option on your iPhone device, under the Settings->General->Network section.

After that you can install Blueman (a simple and intuitive bluetooth manager) for easily configuring bluetooth PAN network:

apt-get install blueman

Start blueman-manager and find your mobile device and connect to it. When connection completed successfully, select Device->Add->Network Access Point in blueman-manager.
And the last step, configure the network interface:

dhclient bnep

AddThis mp3 link

Logwatch on Ubuntu Desktop/Server

Logwatch is an Ubuntu modular log analyzer that runs every night and mails you the results. It can also be run from command line. The output is by service and you can limit the output to one particular service. The subscripts which are responsible for the output, mostly convert the raw log lines in structured format.
Logwatch generally ignores the time component in the output, that means, you will know that the reported event was logged in the requested range of time, but you will have to go to the raw log files to get the exact details.
Install logwatch using the following command:

sudo apt-get install logwatch

This will install all the required packages

Configuring Logwatch:

first you need to make sure you server is able to send the mails outside you can do this using postfix with SMTP server configuration.

Now you need to edit logwatch.conf file:

sudo nano /usr/share/logwatch/default.conf/logwatch.conf

Change the following information:

Output = mail
Format = html
MailTo = test@gmail.com

Save and exit the file

If you want to know more available options check logcheck manpage using the following command from your terminal:

man logcheck

Now edit the 00logwatch file

sudo nano /etc/cron.daily/00logwatch

add the following line:

/usr/sbin/logwatch –mailto test@gmail.com

Save and exit the file

This tool is very useful, give it a try! AddThis mp3 link

Maximize internet speed connection in Ubuntu via sysctl

Do you want to maximize your bandwidth? Here are few important settings you should do to speed up your internet and it works in Ubuntu and all Linux operating system via sysctl.
First open a Terminal via Applications->Accessories->Terminal
Type:

sudo gedit /etc/sysctl.conf

Then Paste the Following at the end of the file:

# increase TCP max buffer size setable using setsockopt()
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
# set max to at least 4MB, or higher if you use very high BDP paths
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# don’t cache ssthresh from previous connection
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
# recommended to increase this for 1000 BT or higher
net.core.netdev_max_backlog = 2500
# for 10 GigE, use this, uncomment below
# net.core.netdev_max_backlog = 30000
# Turn off timestamps if you’re on a gigabit or very busy network
# Having it off is one less thing the IP stack needs to work on
#net.ipv4.tcp_timestamps = 0
# disable tcp selective acknowledgements.
net.ipv4.tcp_sack = 0
#enable window scaling
net.ipv4.tcp_window_scaling = 1

Press Ctrl-S to save, then alt-F4 to exit and then type:

sudo sysctl -p

to apply the settings.

Now, check your speed using speed-test site or download files in the net.

You can disable all these settings by removing these lines you added via:

sudo gedit /etc/sysctl.conf

AddThis mp3 link

2010 in review – Not bad…

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Wow.

Attractions in 2010

These are the posts and pages that got the most views in 2010.

1

Upload, store and download files with no limits! (up to 2GB single file, no space or time limitations) December 2010

2

How to unzip and install a tar.gz file in Linux October 2006
76 comments

3

SoundConverter: the best (and the simpliest) audio converter for Ubuntu! August 2007
8 comments and 1 Like on WordPress.com,

4

Linux August 2006
124 comments

5

How to add a cool “MAC OS X” dock in your Linux: two different solutions for Kubuntu. May 2007
6 comments

AddThis