Tuesday, 26 August 2014

Software that compiles four languages

Hi there!
After some months I am posting a blog on a new software(namely "nagdev").This software(command-line based) has been developed by me and my friend Devyn Collier Johnson.
The software wraps up four compilers C,C++,Java,Python3 in a single command "nagdev". While installing it ,the software detects if the system has the above mentioned compilers or not,if not it automatically installs it.
Now the software runs from command-line as follows-

nagdev -c file.c compiles C file

nagdev -cp file.cpp compiles C++ file


Many options are also added with it.Many things will be added in later updates.Now install the software via command line like this-

sudo add-apt-repository ppa:nag-dev/nag-dev-ppa
sudo apt-get update
sudo apt-get install nagdev

Enjoy and don't forget to send feedback! :)

Tuesday, 1 July 2014

Linux File system

In linux everything is a file and literally it is!The file system in Linux forms a tree which has a root and it is also called as a 'root' and symbolized as '/' .Under this root all other directories and files are branches or leaves.Some of the significant files are-
/boot,/bin,/usr,/sbin etc.
These directories serve particular purposes.To know in details there is a good pdf available here,you may read it!

Friday, 27 June 2014

Short tutorial on "Kill" command (Originally by DevynCJohnson)

Kill command:-

"kill" command is one of the most useful commands to kill a certain process in linux system.Here is a short tutorial about its usage---

On Linux systems, numerous users often come across a program or process that locks up. The user will usually kill the software if the system does not do it first. Users may be familiar with some of the kill commands and signals, but does anyone understand all of them? There are four common kill commands and a total of 64 kill signals.

kill - The kill command will kill a process using the kill signal and PID given by the user. To use the SIGKILL signal with "kill", type one of the following for a process with a PID of 0710.

kill -9 0710
kill -SIGKILL 0710

The kill command accepts either the signal number or name (signals have both a number and name that can be referenced). The name must be in all caps.

killall - The killall command kills all process with a particular name. For instance, Nautilus may be running several times. To kill all of them type "killall -SIGQUIT nautilus". Also, if Firefox is running once and the user does not know the PID, use the killall command - "killall -9 firefox". The killall command also uses case-sensitive kill signals (they are all uppercase). Below demonstrates what will happen when the kill signal is typed in lowercase. Notice that the command uses the "s" as a parameter and then it does not know what to do with the rest of the information. It then tries to use "igkill" as a kill signal, but no such signal exists.

collier@Nacho-Laptop:~$ killall -sigkill nautilus 
igkill: unknown signal; killall -l lists signals.

pkill - This command is a lot like killall except it allows partial names. So, "pkill -9 unity" will kill any process whose name begins with "unity".

xkill - This command allows users to kill a command by clicking the window. In a terminal, type "xkill" and then the cursor will change. Next, click a window to kill. The application should disappear and leave the memory. Then, the cursor will return to normal.

There are many kill signals that each serve a particular purpose. Typing "kill -l" will list the kill signals. Notice that all kill signals begin with "SIG"; this means SIGnal.

kill -l

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
30) SIGPWR      31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1

NOTE: Yes, certain numbers are missing because those signals are not supported on my system, or they were discontinued. If you run the same command, you may have different numbers missing/available.

TIP: Everyone has signals 1, 3, 9, and 15. Those are the most common signals. It is important to learn those very well when administering Linux systems.

Kill signals are not only used to close locked-up applications, but also stop software from performing unallowed tasks. This means some of these kill signals are part of security. Surprisingly, kill commands not only stop/kill processes but they also pause, continue, and restart processes.

SIGHUP - The SIGHUP signal disconnects a process from the parent process. This an also be used to restart processes. For example, "killall -SIGUP compiz" will restart Compiz. This is useful for daemons with memory leaks. 

SIGINT - This signal is the same as pressing ctrl-c. On some systems, "delete" + "break" sends the same signal to the process. The process is interrupted and stopped. However, the process can ignore this signal.

SIGQUIT - This is like SIGINT with the ability to make the process produce a core dump.

SIGILL - When a process performs a faulty, forbidden, or unknown function, the system sends the SIGILL signal to the process. This is the ILLegal SIGnal.

SIGTRAP - This signal is used for debugging purposes. When a process has performed an action or a condition is met that a debugger is waiting for, this signal will be sent to the process.

SIGABRT - This kill signal is the abort signal. Typically, a process will initiate this kill signal on itself.

SIGBUS - When a process is sent the SIGBUS signal, it is because the process caused a bus error. Commonly, these bus errors are due to a process trying to use fake physical addresses or the process has its memory alignment set incorrectly.

SIGFPE - Processes that divide by zero are killed using SIGFPE. Imagine if humans got the death penalty for such math. NOTE: The author of this article was recently drug out to the street and shot for dividing by zero.

SIGKILL - The SIGKILL signal forces the process to stop executing immediately. The program cannot ignore this signal. This process does not get to clean-up either.

SIGUSR1 - This indicates a user-defined condition. This signal can be set by the user by programming the commands in sigusr1.c. This requires the programmer to know C/C++.

SIGSEGV - When an application has a segmentation violation, this signal is sent to the process.

SIGUSR2 - This indicates a user-defined condition.

SIGPIPE - When a process tries to write to a pipe that lacks an end connected to a reader, this signal is sent to the process. A reader is a process that reads data at the end of a pipe.

SIGALRM - SIGALRM is sent when the real time or clock time timer expires.

SIGTERM - This signal requests a process to stop running. This signal can be ignored. The process is given time to gracefully shutdown. When a program gracefully shuts down, that means it is given time to save its progress and release resources. In other words, it is not forced to stop. SIGINT is very similar to SIGTERM.

SIGCHLD - When a parent process loses its child process, the parent process is sent the SIGCHLD signal.  This cleans up resources used by the child process. In computers, a child process is a process started by another process know as a parent.

SIGCONT - To make processes continue executing after being paused by the SIGTSTP or SIGSTOP signal, send the SIGCONT signal to the paused process. This is the CONTinue SIGnal. This signal is beneficial to Unix job control (executing background tasks).

SIGSTOP - This signal makes the operating system pause a process's execution. The process cannot ignore the signal.

SIGTSTP - This signal is like pressing ctrl-z. This makes a request to the terminal containing the process to ask the process to stop temporarily. The process can ignore the request.

SIGTTIN - When a process attempts to read from a tty (computer terminal), the process receives this signal.

SIGTTOU - When a process attempts to write from a tty (computer terminal), the process receives this signal.

SIGURG - When a process has urgent data to be read or the data is very large, the SIGURG signal is sent to the process.

SIGXCPU - When a process uses the CPU past the allotted time, the system sends the process this signal. SIGXCPU acts like a warning; the process has time to save the progress (if possible) and close before the system kills the process with SIGKILL.

SIGXFSZ - Filesystems have a limit to how large a file can be made. When a program tries to violate this limit, the system will send that process the SIGXFSZ signal.

SIGVTALRM - SIGVTALRM is sent when CPU time used by the process elapses.

SIGPROF - SIGPROF is sent when CPU time used by the process and by the system on behalf of the process elapses.

SIGWINCH - When a process is in a terminal that changes its size, the process receives this signal.

SIGIO - Alias to SIGPOLL or at least behaves much like SIGPOLL.

SIGPWR - Power failures will cause the system to send this signal to processes (if the system is still on).

SIGSYS - Processes that give a system call an invalid parameter will receive this signal.

SIGRTMIN* - This is a set of signals that varies between systems. They are labeled SIGRTMIN+1, SIGRTMIN+2, SIGRTMIN+3, ......., and so on (usually up to 15). These are user-defined signals; they must be programmed in the Linux kernel's source code. That would require the user to know C/C++.

SIGRTMAX* - This is a set of signals that varies between systems. They are labeled SIGRTMAX-1, SIGRTMAX-2, SIGRTMAX-3, ......., and so on (usually up to 14). These are user-defined signals; they must be programmed in the Linux kernel's source code. That would require the user to know C/C++.

SIGEMT - Processes receive this signal when an emulator trap occurs.

SIGINFO - Terminals may sometimes send status requests to processes. When this happens, processes will also receive this signal.

SIGLOST - Processes trying to access locked files will get this signal.

SIGPOLL - When a process causes an asynchronous I/O event, that process is sent the SIGPOLL signal.

Users can use these kill signals using one of the four kill commands. When sending a signal to a process owned by another user (like root), the user needs admin privileges and must use the sudo command. Be careful though, misuse of these signals can cause system damage. For instance, using SIGTERM on a GUI process like Compiz, X11, XFCE, Unity, Gnome-shell, etc. will make the system unviewable.

Thank you!

Sunday, 15 June 2014

Installing various applications in Ubuntu [via terminal]

There are various application software which a user sometimes need urgently.They can be installed via terminal in any version of ubuntu. Here are some of them-

VLC media player:-

Open the terminal by ctrl+alt+T and type the following commands
sudo add-apt-repository ppa:videolan/stable-daily
sudo apt-get update
sudo apt-get install vlc
and Done!


It is very easy,open the terminal and type the following command
sudo apt-get install flashplugin-installer
and then restart your browser to see the effect.

Adobe Reader:-

Though there is a 'Document Viwer' built in every Ubuntu distro to rad pdf files but nothing equals adobe reader.To install  it type the following commands in the terminal
sudo add-apt-repository "deb http://archive.canonical.com/[distro]partner"
sudo apt-get update
sudo apt-get install acroread
and Done!

LAMP server:-

This is very useful and I think necessary for web developer in Linux.To install it via terminal follow the following processes-
sudo apt-get install tasksel
sudo tasksel install lamp-server 
Now a window will come with various questions and mysql username and password.To begin with,give username 'root'.
Check the stuffs are correctly installed or not from the following steps.
Enter http://localhost in your browser and if the installation was correct then it will show
"It Works!" and other stuffs.
Now write a php file,namely test.php and type the code
<?php phpinfo() ?>
Save it in /var/www folder
Now type the url http://localhost/test.php and you will see a list of stuffs there.
For details see http://in1.php.net/manual/en/install.php

Thank you! more stuffs will be updated soon.

Saturday, 14 June 2014

Changing root password in various version of ubuntu [12.04 and above]

There are various ways to change ubuntu 'root' password.But the procedure varies according to the version.
On ubuntu 12.04 it is easy to change the root password.It can be done via terminal.Open it by pressing ctrl+Alt+T.Then type
sudo  -i
There will appear "Enter New Unix Password:",give it there and done!

But in above versions of ubuntu,i.e.,12.10 and above, sometimes this process becomes useless.It'll give output
passwd:permission denied 
password remains unchanged
To overcome this follow the following process:
1.Select 'recovery mode' from the grub menu
2.Select the option 'root',then a terminal will come in front of you
3.Then type 'mount -o remount,rw /'
4.Then type 'passwd' and give the new password. [or passwd username]
5.Then reboot
Apply it,for any problem report here.For details follow this link https://help.ubuntu.com/community/LostPassword

Ubuntu cheat sheet

sudo command – run command as root
sudo -s – open a root shell
sudo -s -u user – open a shell as user
sudo -k – forget sudo passwords
gksudo command – visual sudo dialog (GNOME)
kdesudo command – visual sudo dialog (KDE)
sudo visudo – edit /etc/sudoers
gksudo nautilus – root file manager (GNOME)
kdesudo konqueror – root file manager (KDE)
passwd – change your password

sudo /etc/init.d/gdm restart – restart X and
return to login (GNOME)
sudo /etc/init.d/kdm restart – restart X and
return to login (KDE)
(file) /etc/X11/xorg.conf – display
sudo dexconf – reset xorg.conf configuration
Ctrl+Alt+Bksp – restart X display if frozen
Ctrl+Alt+FN – switch to tty N
Ctrl+Alt+F7 – switch back to X display

System Services
start service – start job service (Upstart)
stop service – stop job service (Upstart)
status service – check if service is running(Upstart)
/etc/init.d/service start – start service(SysV)
/etc/init.d/service stop – stop service (SysV)
/etc/init.d/service status – check service(SysV)
/etc/init.d/service restart – restart service(SysV)
runlevel – get current runlevel

Package Management
apt-get update – refresh available updates
apt-get upgrade – upgrade all packages
apt-get dist-upgrade – upgrade with package
replacements; upgrade Ubuntu version
apt-get install pkg – install pkg
apt-get purge pkg – uninstall pkg
apt-get autoremove – remove obsolete packages
apt-get -f install – try to fix broken packages
dpkg --configure -a – try to fix broken
dpkg -i pkg.deb – install file pkg.deb
(file) /etc/apt/sources.list – APT repository list

ifconfig – show network information
iwconfig – show wireless information
sudo iwlist scan – scan for wireless networks
sudo /etc/init.d/networking restart – reset
network for manual configurations
(file) /etc/network/interfaces – manual
ifup interface – bring interface online
ifdown interface – disable interface

Special Packages
ubuntu-desktop – standard Ubuntu environment
kubuntu-desktop – KDE desktop
xubuntu-desktop – XFCE desktop
ubuntu-minimal – core Ubuntu utilities
ubuntu-standard – standard Ubuntu utilities
ubuntu-restricted-extras – non-free, but useful
kubuntu-restricted-extras – KDE of the above
xubuntu-restricted-extras – XFCE of the above
build-essential – packages used to compile
linux-image-generic – latest generic kernel
linux-headers-generic – latest build headers

ufw enable – turn on the firewall
ufw disable – turn off the firewall
ufw default allow – allow all connections by
ufw default deny – drop all connections by
ufw status – current status and rules
ufw allow port – allow traffic on port
ufw deny port – block port
ufw deny from ip – block ip adress

Application Names
nautilus – file manager (GNOME)
dolphin – file manager (KDE)
konqueror – web browser (KDE)
kate – text editor (KDE)
gedit – text editor (GNOME)

Recovery - Type the phrase “REISUB” while
holding down Alt and SysRq (PrintScrn) with about 1 second between each letter. Your system will reboot.
lsb_release -a – get Ubuntu version
uname -r – get kernel version
uname -a – get all kernel information

Friday, 13 June 2014

Grub is not coming (screen remains black!) and other grub issues [Ubuntu 12.04]

Problem:-  Sometimes after installing Ubuntu along with any other OS makes grub invisible,rather a black screen.

Solution:-  This problem occurs due to low resolution of your graphics (or monitor).This can be solved via terminal.
Open the terminal by pressing ctrl+Alt+T

Now type in the terminal the following command:-
sudo vi /boot/grub/grub.cfg
Then a 'sudo' password is wanted,give your password there.
Now find out the line
"set gfxmode=" [It may be 'set gfxmode=auto' there]
Now put set gfxmode=640*480
And put the following line underneath it
 set gfxpayload=keep
That is it will look like
set gfxmode=640*480
set gfxpayload=keep
Now reboot and see that the grub is coming or not!

Many times this process becomes useless,then keep intact the grub.cfg to its initial form and follow the following process

sudo gedit /etc/default/grub
Now uncomment the line #GRUB_GFXMODE=640x480 by removing # ,then save and quit gedit.And now type
sudo update-grub
and reboot.
If grub menu still does not come then comment out the line in the same file written just above GRUB_HIDDEN_TIMEOUT=0 by putting a # before it,save and quit.
And type in terminal
sudo update-grub
and reboot.