Best 5 memory debuggers for Linux coding

As a programmer, I’m aware that I tend to make mistakes — and why not? Even programmers are human. Some errors are detected during code compilation, while others get caught during software testing. However, a category of error exists that usually does not get detected at either of these stages and that may cause the software to behave unexpectedly — or worse, terminate prematurely.

If you haven’t already guessed it, I am talking about memory-related errors. Manually debugging these errors can be not only time-consuming but difficult to find and correct. Also, it’s worth mentioning that these errors are surprisingly common, especially in software written in programming languages like C and C++, which were designed for use with manual memory management.

Thankfully, several programming tools exist that can help you find memory errors in your software programs. In this roundup, I assess five popular, free and open-source memory debuggers that are available for Linux: Dmalloc, Electric Fence, Memcheck, Memwatch and Mtrace. I’ve used all five in my day-to-day programming, and so these reviews are based on practical experience.

Dmalloc

Developer: Gray Watson
Reviewed version: 5.5.2
Linux support: All flavors
License: Creative Commons Attribution-Share Alike 3.0 License

Dmalloc is a memory-debugging tool developed by Gray Watson. It is implemented as a library that provides wrappers around standard memory management functions like malloc(), calloc(), free() and more, enabling programmers to detect problematic code.

cw_dmalloc-output-100627040-large.idge.png

As listed on the tool’s Web page, the debugging features it provides includes memory-leak tracking, double free error tracking and fence-post write detection. Other features include file/line number reporting, and general logging of statistics.

What’s new

Version 5.5.2 is primarily a bug-fix release containing corrections for a couple of build and install problems.

What’s good about it

The best part about Dmalloc is that it’s extremely configurable. For example, you can configure it to include support for C++ programs as well as threaded applications. A useful functionality it provides is runtime configurability, which means that you can easily enable/disable the features the tool provides while it is being executed.

You can also use Dmalloc with the GNU Project Debugger (GDB) — just add the contents of the dmalloc.gdb file (located in the contrib subdirectory in Dmalloc’s source package) to the .gdbinit file in your home directory.

Another thing that I really like about Dmalloc is its extensive documentation. Just head to the documentation section on its official website, and you’ll get everything from how to download, install, run and use the library to detailed descriptions of the features it provides and an explanation of the output file it produces. There’s also a section containing solutions to some common problems.

Other considerations

Like Mtrace, Dmalloc requires programmers to make changes to their program’s source code. In this case you may, at the very least, want to add thedmalloc.h header, because it allows the tool to report the file/line numbers of calls that generate problems, something that is very useful as it saves time while debugging.

In addition, the Dmalloc library, which is produced after the package is compiled, needs to be linked with your program while the program is being compiled.

However, complicating things somewhat is the fact that you also need to set an environment variable, dubbed DMALLOC_OPTION, that the debugging tool uses to configure the memory debugging features — as well as the location of the output file — at runtime. While you can manually assign a value to the environment variable, beginners may find that process a bit tough, given that the Dmalloc features you want to enable are listed as part of that value, and are actually represented as a sum of their respective hexadecimal values — you can read more about it here.

An easier way to set the environment variable is to use the Dmalloc Utility Program, which was designed for just that purpose.

Bottom line

Dmalloc’s real strength lies in the configurability options it provides. It is also highly portable, having being successfully ported to many OSes, including AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix, Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware and even Unicos (on a Cray T3E). Although the tool has a bit of a learning curve associated with it, the features it provides are worth it.

 

 

Electric Fence

Developer: Bruce Perens
Reviewed version: 2.2.3
Linux support: All flavors
License: GNU GPL (version 2)

Electric Fence is a memory-debugging tool developed by Bruce Perens. It is implemented in the form of a library that your program needs to link to, and is capable of detecting overruns of memory allocated on a heap ) as well as memory accesses that have already been released.cw_electric-fence-output-100627041-large.idge

As the name suggests, Electric Fence creates a virtual fence around each allocated buffer in a way that any illegal memory access results in a segmentation fault. The tool supports both C and C++ programs.

What’s new

Version 2.2.3 contains a fix for the tool’s build system, allowing it to actually pass the -fno-builtin-malloc option to the GNU Compiler Collection (GCC).

What’s good about it

The first thing that I liked about Electric Fence is that — unlike Memwatch, Dmalloc and Mtrace — it doesn’t require you to make any changes in the source code of your program. You just need to link your program with the tool’s library during compilation.

Secondly, the way the debugging tool is implemented makes sure that a segmentation fault is generated on the very first instruction that causes a bounds violation, which is always better than having the problem detected at a later stage.

Electric Fence always produces a copyright message in output irrespective of whether an error was detected or not. This behavior is quite useful, as it also acts as a confirmation that you are actually running an Electric Fence-enabled version of your program.

Other considerations

On the other hand, what I really miss in Electric Fence is the ability to detect memory leaks, as it is one of the most common and potentially serious problems that software written in C/C++ has. In addition, the tool cannot detect overruns of memory allocated on the stack, and is not thread-safe.
Given that the tool allocates an inaccessible virtual memory page both before and after a user-allocated memory buffer, it ends up consuming a lot of extra memory if your program makes too many dynamic memory allocations.

Another limitation of the tool is that it cannot explicitly tell exactly where the problem lies in your programs’ code — all it does is produce a segmentation fault whenever it detects a memory-related error. To find out the exact line number, you’ll have to debug your Electric Fence-enabled program with a tool like The Gnu Project Debugger (GDB), which in turn depends on the -g compiler option to produce line numbers in output.

Finally, although Electric Fence is capable of detecting most buffer overruns, an exception is the scenario where the allocated buffer size is not a multiple of the word size of the system — in that case, an overrun (even if it’s only a few bytes) won’t be detected.

Bottom line

Despite all its limitations, where Electric Fence scores is the ease of use — just link your program with the tool once, and it’ll alert you every time it detects a memory issue it’s capable of detecting. However, as already mentioned, the tool requires you to use a source-code debugger like GDB.

 

 

Memcheck

Developer: Valgrind Developers
Reviewed version: 3.10.1
Linux support: All flavors
License: GPL

Valgrind is a suite that provides several tools for debugging and profiling Linux programs. Although it works with programs written in many different languages — such as Java, Perl, Python, Assembly code, Fortran, Ada and more — the tools it provides are largely aimed at programs written in C and C++.

The most popular Valgrind tool is Memcheck, a memory-error detector that can detect issues such as memory leaks, invalid memory access, uses of undefined values and problems related to allocation and deallocation of heap memory.

What’s new

This release of the suite (3.10.1) is a minor one that primarily contains fixes to bugs reported in version 3.10.0. In addition, it also “backports fixes for all reported missing AArch64 ARMv8 instructions and syscalls from the trunk.”

What’s good about it

Memcheck, like all other Valgrind tools, is basically a command line utility. It’s very easy to use: If you normally run your program on the command line in a form such as prog arg1 arg2, you just need to add a few values, like this: valgrind –leak-check=full prog arg1 arg2.

cw_memcheck-output-100627037-large.idge

(Note: You don’t need to mention Memcheck anywhere in the command line because it’s the default Valgrind tool. However, you do need to initially compile your program with the -g option — which adds debugging information — so that Memcheck’s error messages include exact line numbers.)

What I really like about Memcheck is that it provides a lot of command line options (such as the –leak-checkoption mentioned above), allowing you to not only control how the tool works but also how it produces the output.

For example, you can enable the –track-origins option to see information on the sources of uninitialized data in your program. Enabling the –show-mismatched-frees option will let Memcheck match the memory allocation and deallocation techniques. For code written in C language, Memcheck will make sure that only the free() function is used to deallocate memory allocated bymalloc(), while for code written in C++, the tool will check whether or not thedelete and delete[] operators are used to deallocate memory allocated by newand new[], respectively. If a mismatch is detected, an error is reported.

But the best part, especially for beginners, is that the tool even produces suggestions about which command line option the user should use to make the output more meaningful. For example, if you do not use the basic –leak-check option, it will produce an output suggesting: “Rerun with –leak-check=full to see details of leaked memory.” And if there are uninitialized variables in the program, the tool will generate a message that says, “Use –track-origins=yes to see where uninitialized values come from.”

Another useful feature of Memcheck is that it lets youcreate suppression files, allowing you to suppress certain errors that you can’t fix at the moment — this way you won’t be reminded of them every time the tool is run. It’s worth mentioning that there already exists a default suppression file that Memcheck reads to suppress errors in the system libraries, such as the C library, that come pre-installed with your OS. You can either create a new suppression file for your use, or edit the existing one (usually /usr/lib/valgrind/default.supp).

For those seeking advanced functionality, it’s worth knowing that Memcheck can also detect memory errors in programs that usecustom memory allocators. In addition, it also provides monitor commandsthat can be used while working with Valgrind’s built-in gdbserver, as well as aclient request mechanism that allows you not only to tell the tool facts about the behavior of your program, but make queries as well.

Other considerations

While there’s no denying that Memcheck can save you a lot of debugging time and frustration, the tool uses a lot of memory, and so can make your program execution significantly slower (around 20 to 30 times, according to the documentation).

Aside from this, there are some other limitations, too. According to some user comments, Memcheck apparently isn’t thread-safe; it doesn’t detect static buffer overruns). Also, there are some Linux programs, like GNU Emacs, that currently do not work with Memcheck.

If you’re interested in taking a look, an exhaustive list of Valgrind’s limitations can be found here.

Bottom line

Memcheck is a handy memory-debugging tool for both beginners as well as those looking for advanced features. While it’s very easy to use if all you need is basic debugging and error checking, there’s a bit of learning curve if you want to use features like suppression files or monitor commands.

Although it has a long list of limitations, Valgrind (and hence Memcheck) claims on its site that it is used by thousands of programmers across the world — the team behind the tool says it’s received feedback from users in over 30 countries, with some of them working on projects with up to a whopping 25 million lines of code.

 

Memwatch

Developer: Johan Lindh
Reviewed version: 2.71
Linux support: All flavors
License: GNU GPL

Memwatch is a memory-debugging tool developed by Johan Lindh. Although it’s primarily a memory-leak detector, it is also capable (according to its Web page) of detecting other memory-related issues like double-free error tracking and erroneous frees, buffer overflow and underflow, wild pointer writes, and more.

The tool works with programs written in C. Although you can also use it with C++ programs, it’s not recommended (according to the Q&A file that comes with the tool’s source package).

What’s new

This version adds ULONG_LONG_MAX to detect whether a program is 32-bit or 64-bit.

What’s good about it

Like Dmalloc, Memwatch comes with good documentation. You can refer to the USING file if you want to learn things like how the tool works; how it performs initialization, cleanup and I/O operations; and more. Then there is a FAQ file that is aimed at helping users in case they face any common error while using Memcheck. Finally, there is a test.c file that contains a working example of the tool for your reference.cw_memwatch_output-100627038-large.idge.png

Unlike Mtrace, the log file to which Memwatch writes the output (usually memwatch.log) is in human-readable form. Also, instead of truncating, Memwatch appends the memory-debugging output to the file each time the tool is run, allowing you to easily refer to the previous outputs should the need arise.

It’s also worth mentioning that when you execute your program with Memwatch enabled, the tool produces a one-line output on stdout informing you that some errors were found — you can then head to the log file for details. If no such error message is produced, you can rest assured that the log file won’t contain any mistakes — this actually saves time if you’re running the tool several times.

Another thing that I liked about Memwatch is that it also provides a way through which you can capture the tool’s output from within the code, and handle it the way you like (refer to the mwSetOutFunc() function in the Memwatch source code for more on this).

Other considerations

Like Mtrace and Dmalloc, Memwatch requires you to add extra code to your source file — you have to include the memwatch.h header file in your code. Also, while compiling your program, you need to either compile memwatch.calong with your program’s source files or include the object module from the compile of the file, as well as define the MEMWATCH and MW_STDIO variables on the command line. Needless to say, the -g compiler option is also required for your program if you want exact line numbers in the output.

There are some features that it doesn’t contain. For example, the tool cannot detect attempts to write to an address that has already been freed or read data from outside the allocated memory. Also, it’s not thread-safe. Finally, as I’ve already pointed out in the beginning, there is no guarantee on how the tool will behave if you use it with programs written in C++.

Bottom line

Memcheck can detect many memory-related problems, making it a handy debugging tool when dealing with projects written in C. Given that it has a very small source code, you can learn how the tool works, debug it if the need arises, and even extend or update its functionality as per your requirements.

 

 

Mtrace

Developers: Roland McGrath and Ulrich Drepper
Reviewed version: 2.21
Linux support: All flavors
License: GNU LGPL

Mtrace is a memory-debugging tool included in the GNU C library. It works with both C and C++ programs on Linux, and detects memory leaks caused by unbalanced calls to the malloc() and free() functions.cw_mtrace-output-100627039-large.idge

The tool is implemented in the form of a function calledmtrace(), which traces all malloc/free calls made by a program and logs the information in a user-specified file. Because the file contains data in computer-readable format, a Perl script — also named mtrace — is used to convert and display it in human-readable form.

What’s new

The Mtrace source and the Perl file that now come with the GNU C library (version 2.21) add nothing new to the tool aside from an update to the copyright dates.

What’s good about it

The best part about Mtrace is that the learning curve for it isn’t steep; all you need to understand is how and where to add the mtrace() — and the corresponding muntrace() — function in your code, and how to use the Mtrace Perl script. The latter is very straightforward — all you have to do is run themtrace() <program-executable> <log-file-generated-upon-program-execution> command. (For an example, see the last command in the screenshot above.)

Another thing that I like about Mtrace is that it’s scalable — which means that you can not only use it to debug a complete program, but can also use it to detect memory leaks in individual modules of the program. Just call themtrace() and muntrace() functions within each module.

Finally, since the tool is triggered when the mtrace() function — which you add in your program’s source code — is executed, you have the flexibility to enable the tool dynamically (during program execution) using signals.

Other considerations

Because the calls to mtrace() and mauntrace() functions — which are declared in the mcheck.h file that you need to include in your program’s source — are fundamental to Mtrace’s operation (the mauntrace() function is not always required), the tool requires programmers to make changes in their code at least once.

Be aware that you need to compile your program with the -g option (provided by both the GCC and G++ compilers), which enables the debugging tool to display exact line numbers in the output. In addition, some programs (depending on how big their source code is) can take a long time to compile. Finally, compiling with -g increases the size of the executable (because it produces extra information for debugging), so you have to remember that the program needs to be recompiled without -g after the testing has been completed.

To use Mtrace, you need to have some basic knowledge of environment variables in Linux, given that the path to the user-specified file — which themtrace() function uses to log all the information — has to be set as a value for the MALLOC_TRACE environment variable before the program is executed.

Feature-wise, Mtrace is limited to detecting memory leaks and attempts to free up memory that was never allocated. It can’t detect other memory-related issues such as illegal memory access or use of uninitialized memory. Also,there have been complaints that it’s not thread-safe.

Bottom line

Mtrace is a good option if all you’re looking for is an easy-to-use memory-leak detector in Linux. Since it comes as part of the GNU C library, it will likely be pre-installed on your Linux system anyway, so why not use it?

Conclusions

Needless to say, each memory debugger that I’ve discussed here has its own qualities and limitations. So, which one is best suited for you mostly depends on what features you require, although ease of setup and use might also be a deciding factor in some cases.

Mtrace is best suited for cases where you just want to catch memory leaks in your software program. It can save you some time, too, since the tool comes pre-installed on your Linux system, something which is also helpful in situations where the development machines aren’t connected to the Internet or you aren’t allowed to download a third party tool for any kind of debugging.

Dmalloc, on the other hand, can not only detect more error types compared to Mtrace, but also provides more features, such as runtime configurability and GDB integration. Also, unlike any other tool discussed here, Dmalloc is thread-safe. Not to mention that it comes with detailed documentation, making it ideal for beginners.

Although Memwatch comes with even more comprehensive documentation than Dmalloc, and can detect even more error types, you can only use it with software written in the C programming language. One of its features that stands out is that it lets you handle its output from within the code of your program, something that is helpful in case you want to customize the format of the output.

If making changes to your program’s source code is not what you want, you can use Electric Fence. However, keep in mind that it can only detect a couple of error types, and that doesn’t include memory leaks. Plus, you also need to know GDB basics to make the most out of this memory-debugging tool.

Memcheck is probably the most comprehensive of them all. It detects more error types and provides more features than any other tool discussed here — and it doesn’t require you to make any changes in your program’s source code.But be aware that, while the learning curve is not very high for basic usage, if you want to use its advanced features, a level of expertise is definitely required.

 

 

If you have some of your favorites please share with us in comments

10 Powerful hacking tools for Kali linux

maxresdefault

Kali Linux, the hacker’s operating system is very powerful Linux distro and it is my favorite OS, not only my favorite but also many Hackers and pentesters choosing Kali Linux as their favorite hacking tool. The main reason hackers and newbies like Kali is because it is blessed with 300+ hacking tools and it has developed by Offencive Security team, so today i want to introduce you the top 10 tools i like most in kali linux. Here i am giving tutorials for each hacking tools so everybody can understand it well.

1. Metasploit

Metasploit has become over the years the best framework to conduct penetration testing on network systems and IT infrastructure. The Metasploit Project, or better known as simply ” is a hugely popular pentesting or hacking tool that is used by cyber security professionals and ethical hackers. Metasploit is essentially a computer security project that supplies information about known security vulnerabilities and helps to formulate penetration testing and IDS testing.

Metasploit is in fact a sub-project of the Metasploit Framework. This hacker tool and framework is best known for its anti-forensic and evasion tools, some of which are built into the Metasploit Framework.

2. THC Hydra

Although often considered as yet another password cracker, THC Hydra is hugely popular and has a very active and experienced development team. Essentially THC Hydra is a fast and stable Network Login Hacking Tool that will use dictionary or brute-force attacks to try various password and login combinations against an log in page. This hacking tool supports a wide set of protocols including Mail (POP3, IMAP, etc.), Databases, LDAP, SMB, VNC, and SSH.

 
 

3. Sqlmap

Basically its just a tool to make Sql Injection easier. Their official website introduces the tool as -“sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of database servers. It comes with a powerful detection engine, many niche features for the ultimate penetration tester and a broad range of switches lasting from database fingerprinting, over data fetching from the database, to accessing the underlying file system and executing commands on the operating system via out-of-band connections.”

 

4. Nikto

There are a number of tools and applications to find vulnerabilities in websites, but one of the simplest (and one of my favorites) is nikto.

This small and simple tool examines a website and reports back to you the potential vulnerabilities that it found that you could use to exploit or hack the site. In addition, it’s one of the most widely used website vulnerabilities tools in the industry and in many circles considered the industry standard.

 

5. Ettercap

Ettercap has a huge following and is widely used by cybersecurity professionals. Ettercap works by placing the users network interface into promiscuous mode and by ARP poisoning the target machines, i.e. facilitating a ‘Main In The Middle’ or MITM attack. Once successfull Ettercap (and the hacker) can deploy various attacks on the victims. A popular feature about Ettercap is its’ ability to support various plugins.

 
 

6. BeEF

 

BeEF was developed by a group of developers led by Wade Alcorn. Built on the familiar Ruby on Rails platform, BeEF was developed to explore the vulnerabilities in browsers and test them. In particular, BeEF is an excellent platform for testing a browser’s vulnerability to cross-site scripting (XSS) and other injection attacks.

 

7. Wireshark

Wireshark, formerly known as Ethereal, is one of the mostpowerful tools in a network security analyst’s toolkit. As a network packet analyzer, Wireshark can peer inside the network and examine the details of traffic at a variety of levels, ranging from connection-level information to the bits comprising a single packet. This flexibility and depth of inspection allows the valuable tool to analyze security events and troubleshoot network security device issues. It’s also priced right: it’s free!

 

 
 

8. Maltego

 

Maltego is capable of gathering information about either a network or an individual; here we will focus on the former and leave individual information gathering for another time. We will be looking at gathering info on all the subdomains, the IP address range, the WHOIS info, all of the email addresses, and the relationship between the target domain and others.

 

 
 

9. Msfvenom

From 8th june 2015 we will no longer receive the services of msfpayload and msfencode. They are going to retire permanently. Yeah! Permanently off course this is a bad news. These both tools are serving us since ten years but the time has come to say good bye. Thank you msfpayload and msfencode for serving us in every level of hacking or penetration testing we will never forget you.

But the good news is msfpayload and msfencode are being replaced by a new tool called msfvenom. This is the combination of both the tools, almost from three and half years this new tool is being tested and the time has come to use it.

 

10. Wireless Auditing

In this Section i am introducing you to the 3 wireless hacking tools, Aircrack-ng, Reaver, and Pixiewps. PicaTesHackZ do not condone the illicit activities of wireless auditing on unauthorized systems. We do however encourage you to use this knowledge to your benefit to learn and practice exploitation using the latest in Wireless Auditing. Although I did do a write up about using reaver and pixiewps, there has been updates, I have more tests, and more knowledge on the tools. Please keep in mind it is illegal to penetrate networks that are not your own without proper permission. This falls on you, so do what you will but we will hold no liability for your actions.
If you have some of your own favorites please let us know in comments.

Best 10 antivirus and antimalware free opensource applications

antivirus

Contrary to what many people think, anti-malware programs do not end with Symantec, McAfee etc. The world of open source has quite a few options in the anti-malware and anti-spyware segment. Here are 10 of the best that you can use!

1. ClamWin Free Antivirus


This is an app that works only on the Windows platform and works on the well known ClamAV engine in order to detect spyware and viruses. It has a Microsoft Outlook plug-in, automatic downloads and other useful features.

2. ClamAV

This is an open source product that is based on the Clam Antivirus engine. It is specially designed in order to protect email gateways. It has features like command line scanners, automatic updates. It works on Linux, Unix and BSD platforms.

3. Moon Secure Antivirus

This open source app is based on ClamAV and works on the Windows platform. Although it is based on ClamAV, developers usually use an alternate antivirus engine.

4. Rootkit Hunter

This is an open source tool that is used for scanning the system for rootkits and unwanted tools. You can not use it for scheduled or live scanning but you can still run Rootkit hunter daily. It works on Linux and Unix platforms.

5. AMaVis

AMaVis is short for A Mail Virus Scanner. As the name suggests, this app stands between your anti-virus software and email client, scanning incoming emails for viruses. It is compatible with all platforms.

6. ClamMail

This is a free antivirus software that protects messages that you receive on Thunderbird, Outlook, Eudora dn other POP3-based applications. It operated on the Windows platform and is a combination of the POP3 email proxy and the ClamAV engine.

7. P3Scan

This is an email proxy serve that can be used for scanning both outgoing and incoming messages. It cans for malware, trojans, viruses, spam and worms. It operates on the Linux platform and is also based on the ClamAV engine.

8. Viralator

This is an open source app that works alongside your anti-virus and supplements you computer’s protection. It blocks malware, which may have evaded your anti virus. It is compatible with Linux and Unix platforms.

9. xpy

This is a tiny program, which is less than 60 KB in size. It adds to your computer’s performance and improves its security by closing vulnerabilities that may lead to spyware creeping across your Windows-based system.

10. Nixory

This is a open source app that has been designed for improving the protection for Firefox users. It blocks unwanted spyware and cookies and works along side other anti spyware programs.

 

If you have some suggestions of your own please let us know in comments!

 

 

 

Need to know Basic linux commands

The below commands are important basic commands in linux

  • mkdir – make directories
    Usage: mkdir [OPTION] DIRECTORY…
    eg. mkdir lhn
  • ls – list directory contents
    Usage: ls [OPTION]… [FILE]…
    eg. ls, ls ­l, ls lhn
  • cd – changes directories
    Usage: cd [DIRECTORY]
    eg. cd lhn
  • pwd ­-  print name of current working directory
    Usage: pwd
  • vim – Vi Improved, a programmers text editor
    Usage: vim [OPTION] [file]…
    eg. vim lhn.txt
  • cp – copy files and directories
    Usage: cp [OPTION]… SOURCE DEST
    eg. cp sample.txt sample_copy.txt
    cp sample_copy.txt target_dir
  • mv – move (rename) files
    Usage: mv [OPTION]… SOURCE DEST
    eg. mv source.txt target_dir
    mv old.txt new.txt
  • rm ­ remove files or directories
    Usage: rm [OPTION]… FILE…
    eg. rm file1.txt , rm ­rf some_dir
  • find – search for files in a directory hierarchy
    Usage: find [OPTION] [path] [pattern]
    eg. find file1.txt, find ­name file1.txt
  • history – prints recently used commands
    Usage: history
  • cat – concatenate files and print on the standard output
    Usage: cat [OPTION] [FILE]…
    eg. cat file1.txt file2.txt
    cat ­n file1.txt
  • echo – display a line of text
    Usage: echo [OPTION] [string] …
    eg. echo I love India
    echo $HOME
  • grep ­- print lines matching a pattern
    Usage: grep [OPTION] PATTERN [FILE]…
    eg. grep ­i apple sample.txt
  •  wc ­- print the number of newlines, words, and bytes in files
    Usage: wc [OPTION]… [FILE]…
    eg.  wc file1.txt
    wc ­L file1.txt
  • sort – sort lines of text files
    Usage: sort [OPTION]… [FILE]…
    eg. sort file1.txt
    sort ­r file1.txt
  • tar – to archive a file
    Usage: tar [OPTION] DEST SOURCE
    eg. tar ­cvf /home/archive.tar /home/original
    tar ­xvf /home/archive.tar
  • kill – to kill a process(using signal mechanism)
    Usage: kill [OPTION] pid
    eg. kill ­9 2275
  • ps – report a snapshot of the current processes
    Usage: ps [OPTION]
    eg. ps,  ps ­el
  • who – show who is logged on
    Usage: who [OPTION]
    eg. who , who ­b , who ­q
  • passwd – update  a user’s authentication tokens(s)
    Usage: passwd [OPTION]
    eg. passwd
  •  su –  change user ID or become super­user
    Usage: su [OPTION] [LOGIN]
    eg. su remo, su
  • chown – change file owner and group
    Usage: chown [OPTION]… OWNER[:[GROUP]] FILE…
    eg. chown remo myfile.txt
  • chmod – change file access permissions
    Usage: chmod [OPTION] [MODE] [FILE]
    eg. chmod 744 calculate.sh
  • zip – package and compress (archive) files
    Usage: zip [OPTION] DEST SOURSE
    eg. zip original.zip original
  • unzip – list, test and extract compressed files in a ZIP archive
    Usage: unzip filename
    eg. unzip original.zi
  • ssh – SSH client (remote login program)
    “ssh is a program for logging into a remote machine and for
    executing commands on a remote machine”
    Usage: ssh [options] [user]@hostname
    eg. ssh ­X guest@10.105.11.20
  • scp – secure copy (remote file copy program)
    “scp copies files between hosts on a network”
    Usage: scp [options] [[user]@host1:file1] [[user]@host2:file2]
    eg. scp file1.txt guest@10.105.11.20:~/Desktop/
  • fdisk – partition manipulator
    eg. sudo fdisk ­l
  • mount – mount a file system
    Usage: mount ­t type device dir
    eg. mount /dev/sda5 /media/target
  • umount – unmount file systems
    Usage: umount [OPTIONS] dir | device…
    eg.  umount /media/target
  • du – estimate file space usage
    Usage:  du [OPTION]… [FILE]…
    eg. du
  • df – report filesystem disk space usage
    Usage: df [OPTION]… [FILE]…
    eg. df
  • quota – display disk usage and limits
    Usage: quota [OPTION]
    eg. quota ­v
  • reboot – reboot the system
    Usage: reboot [OPTION]
    eg. reboot
  • poweroff – power off the system
    Usage: poweroff [OPTION]
    eg. poweroff
  • kate – KDE Advanced Text Editor
    Usage:  kate [options][file(s)]
    eg. kate file1.txt file2.txt
  • vim – Vi Improved, a programmers text editor
    Usage: vim [OPTION] [file]…
    eg. vi hello.c
  • gedit ­ A text Editor. Used to create and edit files.
    Usage: gedit [OPTION] [FILE]…
    eg. gedit
  • bg – make a foreground process to run in background
    Usage: type ‘ctrl+z’  and then ‘bg ‘
  • fg – to make background process as foreground process
    Usage: fg [jobid]
  • jobs – displays the names and ids of background jobs
    Usage: jobs
  • sed ­  stream editor for filtering and transforming text
    Usage: sed [OPTION] [input­file]…
    eg. sed ‘s/love/hate/g’ loveletter.txt
  • awk ­ pattern scanning and processing language
    eg.  awk ­F: ‘{ print $1 }’ sample_awk.txt
  • find ­ search for files in a directory hierarchy
    Usage: find [OPTION] [path] [pattern]
    eg. find ­name file1.txt
  • locate – find or locate a file
    Usage: locate [OPTION]… FILE…
    eg. locate file1.txt

 

If you have some suggestions of your own please let us know in comments!

 

 

Best opensource encryption tools you need to keep

We are spending more and more time online with each passing day, so much so that internet has become an indispensable part of our daily existence. When online, various threats exist that could have some serious implications on the data you send/receive. It is therefore ideal that you make use of good safety tools that can prevent your data from falling into the wrong hands. Encryption tools come in handy here!

1.AxCrypt


Open source file encryption software for Windows that integrates seamlessly with the OS to compress, encrypt, decrypt, store, send and work with individual files.

2.Gnu Privacy Guard

GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kinds of public key directories.

3.Mac GNU Privacy Guard

The goal of this project is to create a GnuPG front end for Mac OS X.

4.Gpg4win

Enables users to securely transport emails and files with the help of encryption and digital signatures. Encryption protects the contents against an unwanted party reading it. Digital signatures make sure that it was not modified and comes from a specific sender.

5.PeaZip

Free cross-platform file and archive manager utility that provides an unified portable GUI for many Open Source technologies like 7-Zip, FreeArc, PAQ, UPX.

6.Crypt

An open-source, ultra-fast light-weight encryption utility with no installation procedures.

7.NeoCrypt

Free, open-source File Protection Utility for Windows that helps you to protect your sensitive information easily by encrypting it with password(s).

 

If you have some suggestions of your own please let us know in comments!

 

 

Debian Vs Ubuntu: 10 Years of debate

Ubuntu just celebrated the 10th anniversary with release of Ubuntu 14.10 Utopic Unicorn. Ubuntu has been the most famous desktop Linux distro. The first Ubuntu versino was launched in 2004 by Canonical. Ubuntu is based on Debian Linux distro. It is important that we revise the changes that has been made in Debian in past 10 years vs the changes in Ubuntu since it’s first version. Let’s take a look at the 10 year history of Linux distro king.

1. Beginning

The first version of Ubuntu was quite ugly. It had brown themed UI and it was nothing but a replica of Debian. Development team behind Ubuntu was only focusing on making the installation process easier as installing Debian was skillful task. Ubuntu’s first version 4.10 was named as Warty Warthog. The text based installer represented all the essential information about Linux to new users. Navigation through the installation process was quite easier as compared to traditional Linux desktop distros. Back in 2004, Debian was not so famous. Users preferred Mandrake Linux over debian back then!

2. Popularity

For next few releases, Ubuntu was focused on bringing latest software packages to the platform, default setup in distro was made more user-friendly. However it seemed more like default setup of GNOME or KDE with different themes. Ubuntu was improving the quality and ease of its installer. User-friendly installation process attracted more users to try this new Linux based OS. Ubuntu featured graphical installer whereas, most other distros like OpenSUSE had confusing text installer.

Then Ubuntu integrated Wubi in the OS, which enabled users to install the distro in dual-boot way. Users could use Windows Boot Manager and easily switch between Windows and Ubuntu. It was integrated in Windows system, which could be easily removed using Add or remove programs tool in Windows. So this was not the best solution for long term usage. Ubuntu removed Wubi in next few releases.

Ubuntu’s focus was to bring long term supported open source OS to end users. Hence, team Ubuntu came out with Ubuntu 6.06 LTS (Long Term Release). LTS supported for long term as compared to normal releases. With LTS, users didn’t have to upgrade the whole system every six month. This ensured the stability and durability to users. It made Ubuntu much more attractive as compared to other desktop distros. Ubuntu started adding unique user-friendly features such as easy to use panel to install and manage proprietary drivers. Besides all these small changes, it looked much like Debian. The big UI change was brought in the picture with the release of Ubuntu 10.04 Lucid Lynx. It had a new theme, it changed lot of visuals and features and most importantly, 10.04 brought Ubuntu Software Center in picture. This was a biggest change that attracted more and more users towards Ubuntu.

3. Uniqueness

While many distress had repositories in their systems, Ubuntu replaced them with Personal Package Archives (PPAs). This enabled end users to manage and add new repositories very easily. Developers were now able to operate PPAs which users can install. Updating new versions of apps became lot more easier with PPAs. With release of Ubuntu 11.04, team replaced GNOME Shell with Unity desktop environment. This was first major change to the UX of Ubuntu.

Ubuntu proved its uniqueness than Debian with the brand new UX. Ubuntu is also working on Ubuntu for Devices which is going to be its mobile OS. The Ubuntu Touch will bring lot of new features of desktop distro to mobile platform. Canonical has great vision of having standard platform for open source desktop as well as mobile users.

4. Dependent OS

It seems like Ubuntu is lot more different than Debian but there is one basic thing that hasn’t changed and it is important of all, that is, packages. Most of the packages that Ubuntu runs are from Debian’s unstable repositories. Ubuntu cannot differentiate itself from Debian until they remove Debian from the core of Ubuntu. Better yet, the UX (user experience) between Debian and Ubuntu is dramatically different.

It is important for you to decide what suits your use case. If you are a pro Linux user and you like vanilla system then Debian is good for you. Otherwise, Ubuntu is always the best bet due to its user friendly yet attractive UI and easy-to-use features.

 

If you have some suggestions of your own please let us know in comments!

 

 

Complete collection of linux os distros

New To Linux

Ubuntu

Ubuntu is a Debian-based distro that uses Unity as a default desktop environment. It’s one of the most popular distros around, and it improves with every release. The latest releases have been quite polished, and have been optimized for desktops, and multi-touch devices such as trackpads and touchscreens.

Ubuntu

Kubuntu

Kubuntu is an Ubuntu derivative that uses KDE instead of Unity as the default desktop environment. Beneath this, it is essentially the same as Ubuntu and is released on the same schedule.

Kubuntu

Mint

Linux Mint was designed to be an elegant, modern distro that was easy to use, yet powerful. It’s based on Ubuntu and Debian, is reliably safe and comes with one of the best software managers. These days it’s one of the most popular Linux distributions around, claiming to be the most popular home operating system after Windows and Mac OS.

Linux Mint

Deepin

Deepin is an Ubuntu based distro that has built the Deepin Desktop Environment (DDE) to appeal to newer Linux users. In fact, we highly recommend new users give Deepin a go. It’s stylish, simple and intuitive, featuring one of the best system settings panel displays of any distro. Deepin also features its own applications, like DMusic, DPlayer and the soon-to-be-released DTalk.

Deepin

Elementary OS

Yet another Ubuntu-based distro, Elementary OS has differentiated itself superbly since the release of Elementary OS Luna. It features beautiful, simple default apps that follow the OS’s aesthetic appeal, such as Geary for email, Midori web browser, Maya calendar, Totem movie player, and the Noise music player. Some of the default apps were developed in-house in order to meet expectations.

Zorin OS

Zorin OS has been designed specifically for newcomers to Linux, with a look and feel that is all about making a good impression and easing the transition from Windows to Linux. The Ubuntu-based distro features, apps that will be familiar to Windows users, and makes it easy for users to run the Windows apps they still need. Zorin OS 9 has been built to be a lot like Windows 7, hoping to get some new Linux converts from those leaving Windows XP behind.

Zorin OS Office

General

OpenSUSE

The OpenSUSE distribution is a general distro for Linux built by the OpenSUSE Project, aiming to be both a great beginner distro and something that appeals to experienced Linux users. OpenSUSE comes with YAST, an administration program that controls installations, package management and more.

OpenSUSE

Fedora

Fedora is an innovation-focused distribution, with a short life cycle that lends itself to leading-edge software. It uses the GNOME desktop environment by default, but users can easily switch to KDE, Xfce, LXDE, MATE and Cinnamon, among others. Custom variations of Fedora, known as Fedora spins, are available for users with particular needs.

Fedora

Xubuntu

Xubuntu is an Ubuntu derivative that uses the Xfce (XForms Common Environment) desktop environment, meaning it is elegant and lightweight. It’s great for laptops and netbooks as well as desktops. Because it is light and uses few system resources, it is perfect for older computers.

Xubuntu

Debian

Debian is an older Linux distribution which comes with the GNOME desktop environment by default, and it’s much-loved for both personal computers and for network servers. However, it’s also available for FreeBSD and work is in progress to support other kernels, such as the Hurd. Debian prides itself on coming preloaded with over 37500 packages, and with simple utilities that make it easy to get more.

Korora

Korora was originally based on Gentoo Linux, and evolved with the aim of making Linux easy for newcomers, but also useful for experts. It comes with a choice of desktop environments, including the Cinnamon, GNOME, KDE, MATE and Xfce desktops.

Kororoa Xfce

Slackware Linux

Slackware is a distro built specifically for security and simplicity, aiming to be the most UNIX-like Linux distribution. It’s particularly useful for server management, as it has FTP, email and web servers available to use immediately.

Slackware-SWchord2

Mageia

The French Mageia began as a community-driven, non-profit fork of Mandriva Linux, and features all the major desktop environments. Primarily, KDE and GNOME are available as default desktops.

mageia

SparkyLinux

SparkyLinux is a distribution that has evolved from the “testing” branch of Debian. The main edition comes with a customized version of the lightweight LXDE desktop, with other customized desktops available.

SparkyLinux-sparky36-lxde

Gentoo Linux

Gentoo Linux is a distribution optimized for configurability, and can be adapted to almost any need. Its versatility and performance are what sets it apart from other distros. Gentoo Linux also comes with an advanced package management system called Portage.

Gentoo-1-aisbaa

CentOS

CentOS (Community Enterprise Operating System) is a Linux distribution that is a community rebuild of Red Hat Enterprise Linux. It’s designed for people who want to use an enterprise-worthy distribution for free.

CentOS

PCLinuxOS

PCLinuxOS is designed with regular PC users in mind, and features the KDE Plasma Desktop by default. This distribution makes it easy to install drivers, get Office software, edit photos, get online and start using multimedia. It also makes it easy to do snapshot backups.

PCLinuxOS netflix

PinGuy OS

PinGuyOS is both beautiful and ready to use from the start. The Ubuntu-based distribution comes pre-packaged with all the best software for regular use and for network setup, making it perfect for beginners. It features a modified GNOME user interface.

Educational

DouDou

DouDou Linux is for young children, with the aim of teaching them how to explore computers and learn from them. It provides games and educational programs suitable for kids aged 2-12 and is a safe environment that parents won’t have to watch over.

DouDou activity-menu

Edubuntu

Edubuntu is a distro for education which is partnered with Ubuntu. It has been created to be as easy as possible for teachers to set up, and for kids of all ages to use. It comes pre-packaged with all the best free software for education.

Edubuntu unity3_full

Uberstudent

Uberstudent is a distribution specifically designed for tertiary and advanced secondary students. It comes pre-packaged with software that makes it easy to do assignments and manage tasks.

Lightweight/Minimal

Lubuntu

Lubuntu is a lightweight distro based on Ubuntu that’s perfect for laptop usage. It uses the minimal desktop LXDE (Lightweight X11 Desktop Environment) and comes with lightweight applications designed for energy-efficiency and speed. It’s great for most older computers, netbooks and mobile devices as it uses minimal RAM and has low system requirements.

Lubuntu

Puppy Linux

Puppy Linux is a distribution that’s really small and can be run entirely from RAM. This means Puppy Linux is great for older computers, even without hard drives! It is also easy to use as a malware remover for any existing system.

Manjaro Linux

Manjaro Linux is a fast, easy-to-use, light-weight distribution based on Arch Linux. It aims to give all the benefits of Arch Linux, with more user-friendliness and accessibility, making it easier on newcomers. The Xfce desktop is the default, but other options are available.

Arch Linux

Arch Linux is a distribution designed with experienced users in mind. This light-weight minimalist distribution aims to keep things simple, and uses a rolling release model for updates. It features a custom-made package manager called “Pacman”, which makes it easy to build, modify and share packages.

archlinux-logo-light-90dpi.d36c53534a2b

Tiny Core

Tiny Core Linux is an extremely light, modular distribution noted specifically for its small size (currently 15 MB). It is build on the Linux kernel and uses BusyBox and FLTK (Fast, Light Toolkit).

TinyCore tc_020_trm

CrunchBang

The Debian-based CrunchBang Linux distribution is minimalist and highly customizable, featuring the Openbox window manager instead of a desktop environment. It comes with a number of GTK+ applications preinstalled.

CrunchBang screenshot-iceweasel-6music

Bodhi

The Ubuntu-based Bodhi Linux distribution comes with the light-weight and beautiful Enlightenment desktop. Bodhi is extremely customizable, with themes and apps readily available to expand on the light beginnings.

Specialised:

ArtistX

ArtistX is specifically tailored to artists of all types, from music to graphic design. It’s based on Ubuntu and comes pre-packaged with all the best 2D and 3D graphic design, video production, and audio manufacturing software for GNU/Linux.

Hybryde Fusion

The main point of Hybryde Fusion is to allow you to test out which Linux desktop environment you like best. This distribution is considered a conceptual work, and not something you’d use daily.

Kali Linux

Formerly known as BackTrack, Kali Linux is focused on penetration testing. This Debian-based Linux distribution makes it easy to perform digital forensic tasks.

Parted Magic

Parted Magic is built as a disc management tool, with disc partitioning and copying as primary tools. It also makes it easy to perform disc recovery and erasing.

PartedMagic

GParted

GParted is a single-purpose distribution, designed to make it easy to partition hard drives using a graphical interface.

gPartedBusiness:

Red Hat Enterprise Linux

Red Hat Enterprise Linux is a commercial derivative of Fedora, designed with enterprise customers in mind. There are a number of variants and addons, and certification is available for both administrators and applications.

Red Hat Enterprise Linux

SUSE Linux Enterprise

SUSE Linux Enterprise Desktop is designed for business use and is therefore enterprise-ready from installation, making it easy to work with a variety of office programs. It’s flexible enough to run on a variety of devices, but is reliable enough for extremely critical processes. Also available is the SUSE Linux Enterprise Server edition.

SUSE Linux EnterpriseSecurity:

TAILS

TAILS is a distribution that revolves wholly around the concept of privacy and security. It is a live operating system you can use from a DVD, USB stick or SD card, so that you can be safe using any computer and leave no trace of your activities. All Internet connections are routed through TOR (The Onion Router) for the best possible anonymity, and cryptographic tools are readily available to protect all your communication methods from prying eyes.

TAILS

Add Your Favourite Distros

This is just a snapshot of our favourite distros today. Please feel free to tell us about your favourite Linux distribution and why you love it. Which distro is your favourite?

 

 

Top 10 Unbeatable Vulnerability Scanners you need to know

With efficient technology comes the issue of safety and security. Even as technology around us improves drastically, unsolicited vulnerabilities that might creep in have grown smarter and way difficult to detect. Detecting vulnerabilities can be a daunting task in its own right, however, a set of efficient scanners available make the process less cumbersome yet effective!

 

Here are top 10 unbeatable vulnerability scanners:


1. Nessus

-Features: patch, configuration, and compliance auditing; mobile, malware, and botnet discovery; sensitive data identification etc.

-Versions: Nessus and Nessus Perimeter Service (commercial organisations and enterprises), Nessus evaluations (commercial organisations) and Nessus Home (non-commercial, home network).

-Operating Systems supported: Windows, Mac OS X, OpenBSD, FreeBSD, Solaris, and/or other UNIX variants.

-Price: Paid

2. OpenVAS

-Framework of several services and tools that offers a comprehensive vulnerability scanning and vulnerability management solution.

-Consists of a daily updated feed of Network Vulnerability Tests (NVTs).

-Majority of components licensed under the GNU General Public License (GNU GPL).

-Operating Systems supported: Linux, Windows and others.

-Price: Free

3. CORE Impact Pro

-Taking vulnerabilty scanning to an all new level beyond traditional exploitation, CORE Impact Pro provides the same level of Advanced Persistent Threat and password-based techniques currently being deployed by various cyber criminals.

-Allowing commercial and government organisations to actively test the security of their network and application infrastructure.

-Operating System supported: Windows

-Price: Paid

4. Nexpose

-Scans for mis-configurations, vulnerabilities, and malware and then provides specific remedies for each issue.

-Scans the entire IT environment including networks, operating systems, web applications, databases, and virtualisation.

-Operating System supported: Windows and Linux.

-Price: Paid

5. GFI Lan Guard

-Scans and detects network vulnerabilities before they are exposed. This considerably reduces the time required to patch machines.

-Provides both security and non-security patches for Microsoft, Mac OS X, Linux and over 50 other third-party operating systems and applications.

-Operating System supported: Windows

-Price: Paid

6. QualysGuard

-Award-winning cloud security and compliance solution that provides global businesses with on demand critical security intelligence.

-Provides auditing, compliance and protection for Internet perimeter systems, internal networks, and web applications.

-Operating System supported: Windows

-Price: Paid

7. MBSA

-The Microsoft Baseline Security Analyser provides a streamlined detection of missing security updates and common security misconfigurations.

– The very recent MBSA 2.3 release adds support for Windows 8.1, Windows 8, Windows Server 2012 R2, and Windows Server 2012.

-Operating System supported: Windows

-Price: Free

8. Retina

-Perhaps one of the most sophisticated vulnerability assessment solutions available.

-Available as a standalone application or as part of the Retina CS unified vulnerability management platform.

-Efficiently identifies exposures (missing patches, configuration weaknesses etc.) and then prioritises enterprise-wide remediation.

-Operating System supported: Windows

-Price: Paid

9. Secunia PSI

-The Secunia Personal Software Inspector (PSI) efficiently identifies vulnerable and out-dated programs and plug-ins, that might expose your PC to attacks. It thereafter patch these vulnerable programs.

-Operating System supported: Windows

-Price: Free

10. Nipper

-The Network Infrastructure Parser checks the security of network devices such as switches, routers, and firewalls.

-It was earlier an open source tool. Then its developer (Titania) released a commercial version and tried to hide their old GPL releases.

-Operating System supported: Windows, Apple MAC OSX, Linux

-Price: Paid

 

If you have some suggestions of your own please let us know in comments!

 

 

Best 6 OpenStack Distros For Enterprises

OpenStack has picked up in a big way in the past year or so. With the increase in cloud computing, more and more enterprises are embracing this technology and service providers oblige.

1) Red Hat Distribution of OpenStack


RDO is a community of people using and deploying OpenStack on Red Hat Enterprise Linux, Fedora and distributions derived from these (such as CentOS, Scientific Linux and others).

2) Red Hat Enterprise Linux OpenStack Platform

With Red Hat Enterprise Linux OpenStack Platform, you get all the benefits you’ve come to expect from Red Hat Enterprise Linux, plus the fastest-growing cloud infrastructure platform from OpenStack. This means you have a wide selection of hardware partners to choose from to power your cloud. And your customers have a familiar and widely supported application environment for their cloud workloads.

3) Fuel

Fuel is an open source deployment and management tool for OpenStack. Developed as an OpenStack community effort, it provides an intuitive, GUI-driven experience for deployment and management of a variety of OpenStack distributions and plug-ins.

4) Rackspace

This company hosts the biggest open cloud in the world alongisde a number of smaller private clouds. A private cloud is a scalable cloud environment—providing the agility and efficiency of a public cloud—built on infrastructure dedicated exclusively for your organisation. It can be hosted in your own data center, in a partner data center, or at Rackspace.

5) Ubuntu OpenStack

According to the website, “Ubuntu is the world’s most popular operating system for OpenStack. There’s no faster or more reliable way to build an enterprise‐scale cloud, from provisioning to deployment and management.”

6) Open Cloud System

Open Cloud System 2.6 is a complete Infrastructure as a Service (IaaS) solution powered by OpenStack technology. OCS is designed to meet the requirements of next-generation cloud-based, scale-out applications such as social apps, mobile apps, SaaS/PaaS deployments and Big Data analytics.

If you have some suggestions of your own please let us know in comments!

 

 

 

10 cool linux command line tools to try now

 

Command line tools are an indispensable part of any computer user’s daily routine. While fancy GUIs offer tremendous functionality, they just can’t replace the old-school goodness of the command line. There are many tools you can use to bring out the best of the command line, something you can’t really put on paper in one go. Here’s a list of 10 command line tools you can begin with!

1.Find


-Helps you look for files based on criteria—like name, filetype, or when they were last edited.

2.Pipes

-Class of tools that help you send the output of one command to another command.

3.Grep

-Helps you search through any text within a file on your system for a specific phrase.

4.Wget

-Gives you some serious control over your downloads.

5.SSH

-Connects you to another computer and lets you use its terminal as if you were sitting right in front of it.

6.Chmod

-Edits the permissions of any file, letting you read, write, and/or execute a given file according to your specifications.

7.Chown

-Does the same work as Chmod but it’s particularly more useful while working with multiple files.

8.Ifconfig

-Shows you the IP address of your computer, the MAC address of your Ethernet and Wi-Fi cards etc.

9.Top

Gives you a list of every program running on your system, as well as how much of your system’s resources they’re taking up.

10.Vi

Command line text editor.

 

If you have some suggestions of your own please let us know in comments!