Thursday 24 November 2011

Crazy Commands

 Crazy Commands:

1. Another wonder of a simple shell variable is !$. Let’s say you have to create a directory, go into it and then rename it. So the flow of commands would be:


$ mkdir your_dir
$ mv your_dir my_dir
$ cd my_dir
Remedy: Well, Linux has a shorter and quicker way:
$ mkdir your_dir
$ mv !$ my_dir
$ cd !$
!$ points to the last string in the command string. This is useful in various scenarios where the last word of command string is to be used in subsequent commands (almost with all Linux commands like vi, tar, gzip, etc).
2. Do you want to know what an ls or a date command does internally? Just run the following code to get to know the basic block of any Linux command:
$ strace -c /usr/bin/ls
strace is a system call monitor command and provides information about system calls made by an application, including the call arguments and return value.
3. What if you want to create a chain of directories and sub-directories, something like /tmp/our/your/mine?

$ mkdir -p /tmp/our/your/mine
 
4. One very interesting way to combine some related commands is with &&.

$ cd dir_name && ls -alr && cd ..
 
5. Now for some fun! Have you ever tried checking the vulnerability of your Linux system? Try a fork-bomb to evaluate this:

$ :(){ :|: & };:
It’s actually a shell function; look closely and it’s an unnamed function :() with the body enclosed in {}. The statement ‘:|:’ makes a call to the function itself and pipes the output to another function calls—thus we are calling the function twice. & puts all processes in the background and hence you can’t kill any process. Finally ‘;’ completes the function definition and the last ‘:’ initiates a call to this unnamed function. So it recursively creates processes and eventually your system will hang. This is one of the most dangerous Linux commands and may cause your computer to crash!
Remedy: How to avoid a fork bomb? Of course, by limiting the process limit; you need to edit /etc/security/limits.conf. Edit the variable nproc to user_name hard nproc 100. You require root privileges to modify this file.

  One more dirty way to hack into the system is through continuous reboots, resulting in the total breakdown of a Linux machine. Here’s an option that you need root access for. Edit the file /etc/inittab and modify the line id:5:initdefault: to id:6:initdefault:. That’s all! Linux specifies various user modes and 6 is intended for reboot. Hence, your machine keeps on rebooting every time it checks for the default user mode.
Remedy: Modify your Grub configuration (the Linux bootloader) and boot in single user mode. Edit the file /etc/inittab and change the default user level to 5.


No comments:

Post a Comment