Monday, February 4, 2013

SED and AWK command in Linux



-------------------AWK--------------------
1) Pattern scanning and text processing language


awk one-liner Tips

Print column1, column5 and column7 of a data file or output of any columns list

$awk ‘{print $1, $5, $7}’ data_file

$cat file_name |awk ‘{print $1 $5 $7}’

$ls –al |awk ‘{print $1, $5, $7}’ -- Prints file_permissions,size and date

Syntax of running an awk program

Awk ‘program’ input file(s)


List all files names whose file size greater than zero.

$ls –al |awk ‘$5 > 0 {print $9}’


List all files whose file size equal to 512bytes.

$ls –al |awk ‘$5 == 0 {print $9}’

print all lines

$awk ‘{print }’ file_name

$awk ‘{print 0}’ file_name

Number of lines in a file

$awk ‘ END {print NR}’ file_name

Number of columns in each row of a file

$awk ‘ {print NF’} file_name

Sort the output of file and eliminate duplicate rows

$awk ‘{print $1, $5, $7}’ |sort –u

List all file names whose file size is greater than 512bytes and owner is "oracle"

$ls –al |awk ‘$3 == "oracle" && $5 > 512 {print $9}’

List all file names whose owner could be either "oracle" or "root"

$ls –al |awk ‘$3 == "oracle" || $3 == "root" {print $9}’

list all the files whose owner is not "oracle

$ls –al |awk ‘$3 != "oracle" {print $9}’

List all lines which has atlease one or more characters

$awk ‘NF > 0 {print }’ file_name

List all lines longer that 50 characters

$awk ‘length($0) > 50 ‘{print }’ file_name

List first two columns

$awk ‘{print $1, $2}’ file_name

Swap first two columns of a file and print

$awk ‘{temp = $1; $1 = $2; $2 = temp; print }’ file_name

Replace first column as "ORACLE" in a data file

$awk ‘{$1 = "ORACLE"; print }’ data_file

Remove first column values in a data file

$awk ‘{$1 =""; print }’ data_file

Calculate total size of a directory in Mb

$ls –al |awk ‘{total +=$5};END {print "Total size: " total/1024/1024 " Mb"}’

Calculate total size of a directory including sub directories in Mb

$ls –lR |awk ‘{total +=$5};END {print "Total size: " total/1024/1024 " Mb"}’

Find largest file in a directory including sub directories

$ls –lR |awk ‘{print $5 "\t" $9}’ |sort –n |tail -1

$ awk -F":" '{ print $1 $3 }' /etc/passwd

$ awk -f myscript.awk myfile.in


------------------SED---------------------
1)  Stream editor for filtering and transforming text
2) Sed works as filter, which makes it particularly useful for scripts, sed works line oriented. The most simple commands are a pattern and an action . if no pattern is given, then action is applied to all lines, otherwise it is applied only to lines matching the pattern.

EXAMPLE::
1) A sample application of sed would be to delete the first 10 lines of stdin and echo the rest to stdout:

$cat /etc/passwd| sed -e '1,10d'

2) If we wanted to print only the first ten lines, we would have deleted all the lines starting with 11:

$cat /etc/passwd| sed -e '11,$d'

3)Another way to get only the first 10 lines is to use the -n option:

$cat /etc/passwd | sed -n -e '1,10p'

4)Commands in sed programs are separated by new lines. So if we wanted to delete the lines 1 to 4 and 6 to 9, we could use:

$cat /etc/passwd | sed -e '1,4d 
6,9d'

5)If we want to put command in the script files instead of using the command line.

$sed -f program.sed

















Wednesday, January 23, 2013

Working with Pulse Audio with Alsa

After Integration/Installation of Alsa and Pulse Audio We have to follow the following steps to play and record mp3 files.

Also we have set some configuration in the default.pa file

For setting the volume using pulseaudio::
$pacmd set-sink-volume 0 65537 (volume full)

For setting the volume to the mute::
$pacmd set-sink-mute 0 0 (volume)

This command put all the error and message into the file(cfg.out)
$ ./configure --help 1> cfg.out  2>&1

This command is used for the starting the pulseaudio binary file or we can say the server.
$pulseaudio --start --log-target=syslog --exit-idle-time=-1 (for run the pulseaudio)

This command is used for the recording of the .wav file using the pulseaudio
$gst-launch pulsesrc ! audio/x-raw-int,rate=8000,channels=1,width=16 ! queue ! audioconvert ! wavenc ! filesink location=/home/root/audio/far_from_love.wav

This command is used to play the mp3 file using the alsa it is not using the pulseaudio.
$gst-launch-0.10 filesrc location=/home/root/audio/far_from_love.mp3 ! mad ! alsasink

This command is used to play the mp3 file using the pulseaudio.
$gst-launch-0.10 filesrc location=/home/root/audio/far_from_love.mp3 ! mad ! pulsesink

This command is used for the recording of .wav file using the alsa .
$arecord -vv -fdat foo.wav

This command will set the Pulse input
$export PULSE_SOURCE=alsa_input.dsnoop

This command will give the list of alsa input/output cards
$LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2

This command will record the .mp3 file
gst-launch-0.10 pulsesrc device=alsa_input.hw_0_0 ! lame ! filesink location=sample.mp3

Wednesday, December 26, 2012

export the path of the proxy

$ export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
$ export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

Wednesday, December 5, 2012

Printing using the CUPS

CUPS(common unix printing system)
For setting the printer using the command prompt:

1. copy the ppd file of the printer driver to the target. (like Hewlett-Packard-hp-LaserJet-4250.ppd)                     
2. Run (lpadmin -p laserjet -v socket://ip_address_of_printer -P printer_ppd_filename_with_path)
         (example : lpadmin -p laserjet -v socket://10.1.8.20 -P Hewlett-Packard-hp-LaserJet-4250.ppd)
3. Run (cupsaccept laserjet)
4. Run (cupsenable laserjet)
5. Run (lpoptions -d laserjet)
6. Run lpq command (for checking the status of printer)
7. Run lpstat -d (for checking the default printer )




[SOMETHING]-FILEFORMAT
        |
        |   [something]tops
        V
   APPLICATION/POSTSCRIPT
        |
        |   pstops
        V
   APPLICATION/VND.CUPS-POSTSCRIPT-----------+
                                             |
                    +------------------------v------------------------------+
                    |                                                       |
                    |       Ghostscript at work....                         |
                    |          (= a "postscript interpreter")               |
                    |                                                       |
                    | * * * * * * * * * * * * * * * * * * * * * * * * * * * |
                    |                        *                              |
                    |  run with commandline  *                              |
                    |  parameter             *                              |
                    |       "-sDEVICE=cups"  *                              |
                    |                        *                              |
                    |  called by pstoraster  *   run with commandline       |
                    | (CUPS standard filter) *   parameter                  |
                    |                        *        "-sDEVICE=[s.th.]"    |
                    +------------------v-----+                              |
                                       |     |                              |
   APPLICATION/VND.CUPS-RASTER <-------+     |                              |
        |                                    |   called by foomatic-rip     |
        |  rasterto[something]               | (openprinting.org extension)|
        |   (= "raster driver")              |                              |
        |                                    +----------------v-------------+
        |                                                     |
   SOMETHING-DEVICE-SPECIFIC <--------------------------------+
        |
        V
       backend

refer:
http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/cupsdocumentation

Tuesday, December 4, 2012

How to setup the build root for building any module for the target


These are the following steps:

A:  run the (make menuconfig) and set the following things

1.TARGET Architeccture-->ARM(little endian)
2.TARGET Architecute Variant----->cortex -A9
3.Target ABI--> EABI

4. TOOLCHAIN::::
--------------------------
4.1: Toolchain Type: External toolchain
4.2: Toolchain ---->Sourcery CodeBench ARM2010q1
4.3: Toolchain origin----> Pre-installed toolchain
4.4: toolchain path::---> /opt/arm2010q1

------------------------------------------
get the rootfs from the path:(/buildroot/output/images-->rootfs.tar)

If we wana see the libarary and all these things then we can see it (/buildroot/output/target/usr/lib)


commands:

1. make
2. make clean

Monday, September 24, 2012

some important commands

find . -name CVS -print | xargs rm -rf

It will delete the CVS directory form the current diroctory.

Wednesday, August 1, 2012

ar and tar command in unix

Working With ar command : Used for the create, modify, and extract from archives.

It is used ot combine objects to create an archive file with .a extension also known as library.

Example

Suppose you have 3 object file (hexa,limit,struct)

ar -cr lib.a hexa limit struct (It will create the lib.a archive )

ar -t lib.a (it will display the list of file in the lib.a archive)

ar -d lib.a hexa (It will delete the hexa object file from the lib.a archive)


ar -x lib.a hexa (It will extract a particular file from the archive ).

ar -r lib.a hexa (It will reinsert the file in the archive ).



-------------------------------------------

Tar commands used to store and extracts files form a tape or disk archive.

Example (suppose we have file hexa.c,limit.c,struct.c, header.c)

tar -cvf demo_AnyName.tar hexa.c limit.c struct .c header.c (It will create a tar ball which contain the above files.)

tar -xvf demo.tar (It Will extract the file from the demo.tar into the current directory)

tar -tvf demo.tar (It will list the file present in the demo.tar)

tar --delete -f demo.tar header.h (It will delete the header.h file from the demo.tar )

   
tar -rvf demo.tar header (It will append or add the file to the demo.tar if it is not present.)

Thursday, July 19, 2012

How to take backup and setup the CVS on Linux Machine

For Backup two ways:

1) Make a tar file and
2) use the rsysnc command
   rsync -rv user01@server01.comentum.com:Source path/ /Destination path/


 For Set up the CVS server :




 1) Install the CVS Server ( apt-get install cvs)
 2) Install the xinetd  (apt-get install xinetd)

 To set up xinetd create a file called "cvs" in "/etc/xinetd.d/" with the following content.

 service cvspserver
{
     port = 2401
     socket_type = stream
     protocol = tcp
     user = root
     wait = no
     type = UNLISTED
     server = /usr/bin/cvs
     server_args = -f --allow-root /usr/local/cvsroot pserver   //(If u want to change the path then replace /usr/locatl/cvsroot)
     disable = no
}

3)  Start the CVS server:

sudo /etc/init.d/cvsd start

 4) check weather the CVS server is running or not. (ps -def | grep cvsd)

 ** past the file if you took backup and update the path
 other wise you have to create a project directory and past it there.

 5) Now you have to add the users and group to the directory:

 From System->Administration->Users and Groups. Click Unlock button and enter the password, then click Manage Groups button. Highlight cvsd then click Properties and select the username from the Group Members list.
Create the user password for CVS login as shown below:
cvsd-passwd /var/lib/cvsd/myrepos username

6)  The syntax to login to the local CVS server is shown below:
cvs -d :pserver:username@localhost:/myrepos login
However, if the $CVSROOT is defined just simply enter "cvs login" instead. Add following line in ~/.bashrc is the easiest way to add it to the environment.

export CVSROOT=:pserver:username@localhost:/myrepos

7) cvs login
8) Enter the password



Now you have to check in and check out

9) For Check out the command is (cvs co Directory Name)
10) For Check In the command is (cvs ci -m "new version" filename)
cvs commit
11) For Adding the Directory in CVS (cvs  -R add "Test file" *)





At last if you are facing some problem then give the cvs directory permission
chmod 775 -R cvs
chgroup src cvs
chmod g+s cvs


-------------------------------------------------------------------

Add the repository to the cvs with sub folder

cvs import releases Sirius releases 

releases --- main folder name
Sirius  ---- name any




refer : https://help.ubuntu.com/10.04/serverguide/cvs-server.html

Wednesday, July 11, 2012

Keyword imp on UNIX(alarm,strtol)

The alarm API function can be very useful to time out other functions. The alarm function works by raising a SIGALARM signal once the number of seconds passed to alarm has expired. The function prototype for the alarm is :

**unsigned int alarm ( unsigned int secs);

------------------------------------------------------------------------------------------------------------------------------------
convert string to long integer .

This function first discards as many whitespace characters as neccessary until the first non -whitespace character is found.
Finally a pointer to the first character following the interger representation in *str is stored in the object pointed by **endptr.

*** long int strtol ( const char * str, char ** endptr, int base );

parameters are:

str--- string that contain value like(hexadecimal, ocatadecimal, binary etc..)

endptr-- Reference to an object of type char*, whose value is set by the function to the next character in str after the numerical value.
This parameter can also be a null pointer, in which case it is not used.

base-- it is either 10,2,8 etc..

Monday, July 2, 2012

Making the SPEC file in the linux

# This is a spec file for starlight audio module

%define name      rpmdemo
%define buildroot %{_topdir}/%{name}-0.1
%define buildarch noarch
%define prefix    /opt/starlight
%define _binaries_in_noarch_packages_terminate_build 0
%define _source_filedigest_algorithm 8
%define _binary_filedigest_algorithm 8

BuildRoot:      %{buildroot}
Summary:        Starlight audio module
License:        GPL
Name:           %{name}
Version:        0.1
Release: 0.1
Source:         %{name}-0.1.tar.gz
Prefix:         %{prefix}
Group:          Development/Tools
BuildArch:  %{buildarch}

%description
Starlight audio module

%prep
%setup -q

%install
mkdir -p %{buildroot}%{prefix}/bin/
cp -r %{_topdir}/BUILD/%{name}-0.1/bin/hello %{buildroot}%{prefix}/bin/

%files
%defattr(-,root,root)
%{prefix}/bin/hello

~                                                                                                                                                                      
"rpmdemo.spec" 35L, 751C                                                                                                                              1,1           All


 *****************************************************************
2nd SPEC file for .zip contenet


# This is a spec file for starlight audio module

%define name     lcd
%define buildroot %{_topdir}/%{name}-0.1
%define buildarch noarch
%define prefix    /opt/starlight
%define _binaries_in_noarch_packages_terminate_build 0
%define _source_filedigest_algorithm 8
%define _binary_filedigest_algorithm 8

BuildRoot:      %{buildroot}
Summary:        Starlight audio module
License:        GPL
Name:           %{name}
Version:        0.1
Release: 0.1
Source:         %{name}-0.1.tar.gz
Prefix:         %{prefix}
Group:          Development/Tools
BuildArch:  %{buildarch}

%description
Starlight audio module

%prep
%setup -q

%install
mkdir -p %{buildroot}%{prefix}/
cp -r %{_topdir}/BUILD/%{name}-0.1.tar.gz   %{buildroot}%{prefix}/

%files
%defattr(-,root,root)
%{prefix}/lcd-0.1.tar.gz

**********************************************************************

rpm file is used for the installing the package in the ubuntu O.S

http://rpm5.org/docs/rpm-guide.html#ch-creating-rpms
http://www.rpm.org/max-rpm/ch-rpm-basics.html

HOW TO MAKE THE WLAN(WIRELESS LAN UP IF IT IS NOT UP IN LINUX)

check the cmd :: ifconfig -a
a) if the wlan is showing then ok other wise you have to follow the following steps :

i) cmd :: depmod
ii) cmd :: modprobe wl12zz_sdio
iii) cmd ::modprobe  wl12xx
now again check the ifconfig -a if wlan0 is showing then ok other wise go to the next step:
GO to cd/lib/modules/3.03.3/Kernel/drivers/net/wore;ess/wl12xx
after that we have to go the a(i) and a(ii) again

If they assign the ip address all these things then ok otherwise we have to assign it manually, for that you have to follwo these steps:

I) ifconfig wlan0 19.68.5.0 netmask 255.255.255.0
II) also we have to give the essid first by following that command

ifconfig wlan0 essid "st"


If wifi is up then u can scan by using the following command:

cmd :: iwlist wlan0 scan

cmd :: iwconfig

**** copy the wli2 thing to Rootfs if it is not present .
copy form 3.03.3 lib module to ---> Rootfs

Thursday, June 28, 2012

RunLevel in Linux

There are differences in the runlevels according to the operating system. seven runlevels are supported in the standard Linux kernel
The Runlevels in System  describe certains states :: For Example

a) Runlevel 0 : Halt(No activity, the system can be safely powered down)
b) Runlevel 1 : Single user mode(raerly used )
c) RL 2 : Multiple users , no NFS(network filesystem),also used rarely.
d) RL 3 : Multiple users, command line (i.e all text mode ) interface the standard runlevel for most linux based server hardware.
e) RL 4 : User define
f) RL 5 : Multiple users, GUI ; the standared runlevel for most linux based desktop system.
g) Renlevel 6 : Reboot


Linux change Run level command :

who -r // It give the current runlevel

init 1  //It is used for to change the runlevels.


Monday, June 25, 2012

Create RPM Files

 STEPS FOR CREATING THE RPM FILES:::

A) first we have to create the five file in any directory i.e::::
mkdir -p BUILD  RPMS  SOURCES  SPECS  SRPMS

B) create your binary file of any program like i created one program of hello world!! and then compile it then it become the binary file.
copy that binary file into that path  SOURCE->rpmdemo-0.1 ->bin

then make the tar file of the rpmdemo-0.1.tar.gz.

Then make the spec file and past it into the SPECS folder .

Some changes in the spec file are : change the name of rpm of your output(binary of the hello world.).

then compile it by that command :::

rpmbuild -v -bb --clean SPECS/rpmdemo.spec --define "_topdir${PWD}"


----------------------------------------------------------------------------------------------------------
Only .tar.gz, .tar, .tgz and .tar.Z can be used with RPM.


************************************************************************
 Some useful links::
http://home.gna.org/subtitleeditor/

Friday, June 15, 2012

FREAD AND FWRITE function

IT IS MAINLY USED FOR READING AND WRITING THE DATASTRUCTURE:


FREAD and FWRITE:

#include <stdio.h>
size_t fread(vid *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE * stream);

The ffread () reads nmemb elements of data , each size bytes long,from the stream pointed to by stream, stroring them at the location given by ptr.


The Function fwrite () writes nmemb element of data, each size bytes long to stream pointed to by stream ,obtaining them from the location given by ptr.

Code for creating the cscope.out file

cscope package is used for the searching in the whole project.

For making the file we have to ::


    find . -name '*.[ch]' > cscope.files //It include the .c file and .h file both
 
cscope -b
    CSCOPE_DB=cscope.out; export CSCOPE_DB

thats it for that we have to alredy install the cscope package in the system.
 
commands ::

** uname- It is used for the get all the information of the system like the versoin , processor, releasel, O.S,Node,etc.

ex: uname -a : it will give all the information of the system.
    uname -v,r,n,s,o etc..
  
 
 
-----------------------------------------------------------------
                      links Imp
1.http://principialabs.com/beginning-ssh-on-ubuntu/ (for the ssh login remotly)

MEMSET function and MEMCPY function and FLUSH function

MEMSET - It fill the memory with a constant byte
#include <string.h>
void *memset (void *s , int c , size_t n);

The memset () function fills the first n bytes of the memory area pointed to by s with the constant byte c.

--It return a pinter to the memory area s.
------------------------------------------------------------------------------------------------------------
MEMCPY-- copy memory area

#include <string.h>
void *memcpy( void *dest, const void *src , size_t n);

The memcpy() function copies n bytes from memory area src to memory area dest. the memory areas shoul not overlap. Use memmove if memory areas do overlap.
***************************************************************************
SYNC-- flush file system buffers
sync();

Force changed blocks to disk, update the super block.

******************************************************************************
FFLUSH-- flush a stream

#include <stdio.h>
int fflush (FILE *stream );

Description: It forces a write of all user-space buffered data for the given output or update stream via the stream's underlying write function.
 

Tuesday, June 5, 2012

Signal in Unix

The signal API function allows us to install a signal handler for a process.
the prototype of signal api function is defined as :

sighandler_t signal (int  signum, sighandler_t handler);
where signalhandler_t typedef is :
typedef void (*sighandler_t)(int);

signal handlers for a process can be of three different types. they can be ignored (via SIG_ING), the default handler for the particular signal type (SIG_DEF) or a user defined handler (install via signal).

* The first group (terminate Ex. SIGHUP, SIGINT) lists the signal whose default action is to terminate the process. The second group (ignore EX. SIGCHLD, SIGCLD) list the signals for which the default action is to ignore the signal. The third group (core EX. SIGQUIT, SIGILL) list those signal whose action is to both terminate the process and perform a core dump (generate a core dump file) . and finally the fourth group (stop SIGABRT, SIGIOT, SIGBUS) stop the process (suspend , rather than terminate).

Wait in Unix

The purpose of the wait API function is to suspend the calling process until the child process exits or until a signal is delivered.
If the parent isn't currently waiting on the child to exit, the child exit , and the child process becomes a zombie process.

The prototype for the wait function is defined as :

pid_t wait(int *status)

The status variable returns status information about the child exit. This variable can be evaluated using a number of macros. Like :

1. WIFEXITED: Non zero if the child exited normally.
2.WEFSIGNALED : Return true if child exited due to a signal that wasn't caught by the child.
3. WTERMSIG : Return the signal number that caused the child to exit.
4.WEXITSTATUS : Return the exit status of the child .

Monday, June 4, 2012

Fork In Unix

The fork API function provides the means to create a new child subprocess form the existing parent process. some difference include is process id of parent and the child is different.

** File locks and signals that are pending to the parent are not inherited by the child process.

The prototype for the fork() function is :

pid_t fork(void);

** The fork call has a very unique structure in that the return value identifies the context in which the process is running . if the return value is Zero, then the current process is the newly created child process. If the return value is greater than Zero then the current process is Parent.


** EAGAIN AND ENOMEM: Both the errors arise from a lack of available memory.

** Rather than copy the page tables for the memory when the fork takes place, the parent and child share the same page tables but are not permitted to write to them . When a write takes place to one of the shared page tables, the page table is copied for the writing process so that it has its own copy. This is called the "copy- on - write".
Only as writes occur to the share data memory does the segregation(The action or state of setting someone or something apart from other people or things or being set apart)  of the page tables take place.

Qualcomm Short Term

  113 is the SL. 1st Target by mid July.

Total Pageviews