Tag Archives: linux

Check Disk usage in Linux

Here are a few important commands you would need to check the disk usage on a linux machine

A simple df (disk filesystem) command can help us get important info on linux file system. -h will make the data more human readable.

$ df
$ df -h

More variations of df -h command

http://www.tecmint.com/how-to-check-disk-space-in-linux/

Another important command would be du (disk usage) for a particular folder. du -h would give same data in human readable form.

Other useful variation of du command

du -sh
du- sh *
du -Pshx /* 2>/dev/null

How to check if a port is open on a server?

I wanted to check if the service I am trying to access on a server is actually listening on the port I am hitting. I tried to look for a ping variant which could tell me if the port is listening and required service is up and running.

Found nmap command as answer.

nmap -p 80 google.com

Starting Nmap 6.40 ( http://nmap.org ) at 2016-03-02 16:05 IST
Nmap scan report for google.com (216.58.197.78)
Host is up (0.050s latency).
rDNS record for 216.58.197.78: maa03s21-in-f14.1e100.net
PORT STATE SERVICE
80/tcp open http

It checks the port state and also what service is listening at the port.

Search and replace in linux vi editor

:%s/oldstring/newstring/gc 

This command will replace all the occurences for oldstring with newstring after confirming for each existence (c in the end tells vim to ask for confirmation).

More on search replace – http://vim.wikia.com/wiki/Search_and_replace

Some other useful commands are

/ for search 
n find next while search (after /)
N find previous while searcg (after /)

:$ last line of file
:0 first line of file

http://www.cs.colostate.edu/helpdocs/vi.html

Controlling System Access with IPTables

There might be times when you want to control outgoing or incoming traffic from a linux machine. Iptables is answer to that.

To check current settings

sudo iptables -L

To Add a rule

iptables -A OUTPUT -p tcp –dport 8000 -j DROP

Lets get into details

iptables: command

-A: Add the rule

OUTPUT: Type of rule, OUTPUT or INPUT

-p: protocol tcp/ udp

–dport: port number (8000 here)

-j: DROP or ACCEPT

So Above command tell system to not allow any outgoing traffic on port 8000.

iptables -A OUTPUT -p tcp –dport 1935 -s 1.2.1.0 -j ACCEPT

-s: source

-d: destination

The above rule states to allow outgoing packets on port 1935 to a specific IP.

If we have centos based system

Edit rules

sudo vi /etc/sysconfig/iptables

Restart

sudo /etc/init.d/iptables restart

Kill a process in linux

There can be times that a process becomes unresposive and you want to kill it forcefully.

In linux, we will need to first find out the process id

ps command- it gives a list of all processes running.

ps aux- gives all process details with, a = show processes for all users, u = display the process’s user/owner, x = also show processes not attached to a terminal

to fetch only required process- use grep, ps aux| grep ‘name’

Then kill it forcefully- kill -9 PID

Putting it all together.

Lets say I want to kill eclipse

kamalmeet@System:~$ ps aux | grep eclipse

1101 6070 1.3 1.8 46584 5500 ? Sl 12:34 1:38 /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms40m -Xmx512m -jar /home/kamalmeet/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar

kamalmeet@System:~$ kill -9 6070

Setting File permission in Linux

There are three type of groups who can access a file in linux.

User: who created the file
Group: Group to which user belongs
Others: Other users (not belonging to above 2 categories).

To add/ modify permissions use following format

chmod u=rwx,g=rw,o=rx abc.txt

or a simpler option

chmod 765 abc.txt

Both of the above means same.

How to interpret these numbers

Read=4
Write=2
Execute=1

hence Read+Write+Exceite=4+2+1=7 or Read+ execute=4+1=5 and so on.

Cron to run every 30 minutes

How will you set up a job to run every 30 minutes, from midnight till 10 in morning, Monday to Friday?

*/30 0-10 * * 1-5 MyJob

Understanding the syntax

* * * * * *
| | | | | |
| | | | | +– Year (range: 1900-3000)
| | | | +—- Day of the Week (range: 1-7, 1 standing for Monday)
| | | +—— Month of the Year (range: 1-12)
| | +——– Day of the Month (range: 1-31)
| +———- Hour (range: 0-23)
+———— Minute (range: 0-59)

More on Cron Jobs

http://www.nncron.ru/help/EN/working/cron-format.htm

Accessing localhost from virtual machine or Android Emulator

Two problems- one solution i.e. 10.0.2.2

Sometime back, I faced an issue that I had installed a virtual machine on mu linux machine. I had a server/ website running which I wanted to access from virtual machine. http://localhost/site simply refused to work. A little googling helped with an answer to use http://10.0.2.2/site

Again faced similar issue. Was trying to access local website from within android emulator. Again localhost refused to work. And guess who was the rescuer? yep 10.0.2.2 again 🙂

Quick notes for Linux commands- 2

Creating shortcuts in linux- It can be a pain to write down long linux commands again and again. So here is how you can create quick shortcuts for all reusable commands.

1. Edit bashrc: You will have a “.bashrc” file in your root folder. open it up for editing (emacs .bashrc) and add commands to be added for shortcut at the bottom of this file like
alias connect=’ssh kamal@kamal.com’

This will simply create a shortcut for the command ‘ssh kamal@kamal.com’ which will get executed by typing connect.

2. Compile bashrc: Before you can actually use your shortcuts, you will need to compile the .bashrc file by
. .bashrc

3. Use shortcuts: Just type the shortcut command connect and you will see that it actually executes the command for which ‘connect’ is an alias.