Most useful commands for Linux

* Continuously check Apache error log file:
$ tail -f /var/log/httpd/error_log

* View first 15 lines from MySQL log:
$ head -15 /var/log/mysqld.log

* vi keyboard shortcuts
=> jump to end of line
=> start of line
=> Delete rest of line
=> Repeat the last command given:
. (dot)

=> add ‘maal’ to the end of every line. 1 is line 1, $ is the last line
:1,$ s/$/maal/

=> put ‘bingo’ at the start of lines 5-10
:5,10 s/^/bingo/

=> change foo to bar for all occurrences in the rest of the file from where the cursor is

=> Delete current line and got into insert mode.

=> Remove the ^M from files that came from windows:
:se ff=unix

=> Turn on/off display of line numbers:
:set nu
:set nonu

=> if you want actual line numbers in your file:
:%!cat -n

=> find the word under cursor
* (star)

* screen command
Just type screen and your problems are solved 🙂
$ cat ~/.screenrc
# no annoying audible bell, please
vbell on

# detach on hangup
autodetach on

# don’t display the copyright page
startup_message off

# emulate .logout message
pow_detach_msg «Screen session of $LOGNAME $:cr:$:nl:ended.»

# advertise hardstatus support to $TERMCAP
termcapinfo xterm* ti@:te@

# make the shell in every window a login shell
shell -$SHELL

defscrollback 10000

# Extend the vt100 desciption by some sequences.

termcap vt* AF=E[3%dm:AB=E[4%dm
caption always
caption string ‘%{= wk}[ %{k}%H %{k}][%= %{= wk}%?%-Lw%?%{r}(%{r}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %{k}][%{b} %d/%m %{k}%c %{k}]’

# keybindings

bind -k F5 prev
bind -k F6 next

* Display total number of internet (port 80) connections:
$ netstat -an |grep :80 |wc -l

* Display all ports your machine listening on:
$ netstat -ant | grep LISTEN

* Scan a machine on your LAN with nmap and know which ports are open on it:
$ nmap ip

* find top 10 largest files in /var:
$ find /var -type f -ls | sort -k 7 -r -n | head -10

* find all files having size more than 5 GB in /var/log/:
$ find /var/log/ -type f -size +5120M -exec ls -lh {} ;

* find all today’s files and copy them to another directory:
$ find /home/me/files -ctime 0 -print -exec cp {} /mnt/backup/{} ;

* find all temp files older than a week and delete:
$ find /temp/ -mtime +7-type f | xargs /bin/rm -f

* find and rename all mp3 files by changing their uppercase names to lowercase:
$ find /home/me/music/ -type f -name *.mp3 -exec rename ‘y/[A-Z]/[a-z]/

* Print Apache’s documentroot directory name:
$ grep -i documentroot /etc/httpd/conf/httpd.conf

* View file contents without comments and empty lines:
$ grep -Ev “^$|^#” /etc/my.cnf

* print only IP address assigned to the interface:
$ ifconfig eth0 | grep ‘inet addr:’ | cut -d’:’ -f2 | awk ‘{ print $1}’

* How many email messages sent for a particular date:
$ cat /var/log/maillog | grep «status=sent» | grep «May 25» | wc -l

* Find out a running process/daemon from process list (thanks to staranneph for recalling this):
ps -ef | grep mysql

* You can also note cpu/mem usage by using above. like in below command output, you can see that Plesk’s statistics process is utilizing more than 18% cpu alone:
[root@myserver ~]# ps aux | grep statistics
root 8183 18.4 0.0 58384 2848 ? D 04:05 3:00 /usr/local/psa/admin/sbin/statistics

Connect multiple skype accounts under one account

Create a shortcut to Skype.exe and place it on Desktop or start menu. Use a name the will help you clarify which account is which. Start Skype using this shortcut and setup your first account.

Then create another shortcut to Skype.exe with a different name. Open the “Properties” of this shortcut by right-clicking on it. In the “Target” text field of the properties dialog box, append ” /secondary” (do not use the quotes) to the Skype.exe path that is already there.
For example: “C:Program FilesSkypePhoneSkype.exe” /secondary

Now you can change icons in order to identify easier each account

View hidden files and folders in Finder.

OSX Finder is hiding the standard Unix files and folders. You can «Go To Folder…» and type in the name of the «known» folder such as /var/log, but again you will not be able to see the «dot» files. Of course you can use terminal for viewing those files… but come one it is MacOSX!!!

Type at Terminal: defaults write AppleShowAllFiles -bool true

A «live» view of a logfile on Linux

This approach works for any linux operating system, including Ubuntu, and is probably most often used in conjunction with web development work.

tail -f /path/thefile.log

This will give you a scrolling view of the logfile. As new lines are added to the end, they will show up in your console screen.

For Ruby on Rails, for instance, you can view the development logfile by running the command from your project directory:

tail -f log/development.log

As with all linux apps, Ctrl+C will stop it.

Well known but usefull shortcut keys for Windows

Any version of Microsoft Windows

Shortcut Keys

Windows Key + D

Minimizes all windows and shows desktop. Also reopens all windows.

Windows Key + E

Opens a new Windows Explorer window.

Windows Key + F

Opens a new find or search function. Typically done by clicking Start, Find or Start, Search.

Windows Key + L

Locks your workstation so no one can access your desktop without your password.

Windows Key + M

Minimizes all windows.

Windows Key + M + Shift

Reopens all minimized windows.

Shortcut Keys [continued]

Windows Key + R

Opens the run command. Typically done by clicking on Start, Run.

Alt + Tab

Switches between your open windows.

Recover root password

Step 1: For Redhat based distros:

Boot from your first install CD and as the very first screen comes up hit F2 and type:

rescue ( For RedHat «linux rescue» ) and the computer will boot in rescue mode.

It will show a few alternatives, select : ¨mount the existing partitions¨ and go to the shell/console prompt.

( Booting Mandrake in «failsafe» from the Lilo menu does the same )

Step 1: For SUSE:

Boot from your first install CD and press F1 at the first screen, then choose «Rescue System» from the menu and at the prompt type «root» ( you do not need a password )

Step 1: For other distro’s

Boot from the first install CD ( or any Live CD like Knoppix ) and at the bootprompt type:

linux single

(For Knoppix: knoppix single )

Alternative for step 1

Sure with most Live and Rescue CDs you can also just boot in the live version, mount the partition and, as root, make changes to the needed files

Step 2

# cd /etc

( if you boot from knoppix first cd to the partition your lost-password-distro is on )

We need to change two files; ¨passwd¨ and ¨shadow¨:

# vi passwd

< i > ( puts vi in insertmode )

This is the first line:


Make it:


So just get rid of the ¨x¨ and leave the ¨:¨ ( colons )

Save the file:

Press Esc,

write –> :x,

Press enter

Second file to be changed:

# vi shadow

< i > ( insert mode )

The first line is a long scrambled line of characters, just make it:

root:::: ( four : )

Press Esc

Write –> 😡

Press enter

Now you can reboot your computer. Log in as normal user, open a console and type:

$ su

# passwd

Now set the new root password !

Log out as root:


Access Your MySQL Server Remotely Over SSH

So you’ve got MySQL on your web server, but it’s only opened to local ports by default for security reasons. If you want to access your database from a client tool like the MySQL Query Browser, normally you’d have to open up access from your local IP address… but that’s not nearly as secure.

So instead, we’ll just use port-forwarding through an SSH tunnel, so your MySQL client thinks it’s connecting to your localhost machine, but it’s really connecting to the other server through the tunnel.

If you are using the command line ssh, the command would look like this. (You can do the same thing graphically in Putty or SecureCRT options if you need to)

ssh -L 3306:localhost:3306

The syntax is ssh -L <localport>hostname<remoteport> <username>@<servername>. We’re using localhost as the hostname because we are directly accessing the remote mysql server through ssh. You could also use this technique to port-forward through one ssh server to another server.

If you already have mysql running on your local machine then you can use a different local port for the port-forwarding, and just set your client tools to access MySQL on a different port.

Once you’ve got the ssh tunnel going, you can open up MySQL Query Browser and enter in the details for your remote server, using localhost as the server host, and adjust the port to whatever you used.

How to check installed software in debian based linux (ubuntu)

Who remembers what has installed in his Ubuntu box?

Here is the simple command:

dpkg –get-selections > installed-software

more installed-software

What can you do in a fresh Ubuntu installation that you do not remember what software you need?

dpkg –set-selections < installed-software

and after that


All set in your fresh debian based linux.

Debian makes things simple 😀