<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BigCoder</title>
    <description>The latest articles on DEV Community by BigCoder (@bigcoder).</description>
    <link>https://dev.to/bigcoder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F633700%2F91b51406-9d36-4e37-828c-4bf42f25fbc3.png</url>
      <title>DEV Community: BigCoder</title>
      <link>https://dev.to/bigcoder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bigcoder"/>
    <language>en</language>
    <item>
      <title>Backend and frontend</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Fri, 15 Apr 2022 17:36:40 +0000</pubDate>
      <link>https://dev.to/bigcoder/backend-and-frontend-2b6m</link>
      <guid>https://dev.to/bigcoder/backend-and-frontend-2b6m</guid>
      <description>&lt;p&gt;The backend of a web development project is responsible for the server-side of the application, including the database, security, and any other back-end processes. &lt;/p&gt;

&lt;p&gt;The frontend is responsible for the client-side of the application, including the user interface, interactivity, and any other front-end processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Backend
&lt;/h2&gt;

&lt;p&gt;The backend developer must have a strong understanding of server-side technologies such as &lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt;, &lt;a href="https://php.net"&gt;PHP&lt;/a&gt;, &lt;a href="https://www.ruby-lang.org/en/"&gt;Ruby on Rails&lt;/a&gt;, or &lt;a href="https://nodejs.org/"&gt;Node.js&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;They must also be able to work with databases such as MySQL or MongoDB. In addition to these technical skills, they must also be able to communicate effectively with the frontend developers and understand their needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uVlCd3Sb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gr4q3izctlt6yshe2v1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uVlCd3Sb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gr4q3izctlt6yshe2v1i.png" alt="backend frontend" width="500" height="781"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Frontend
&lt;/h2&gt;

&lt;p&gt;The frontend developer must have a strong understanding of client-side technologies such as &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML"&gt;HTML5&lt;/a&gt;, CSS3, and JavaScript. They should also be familiar with frameworks such as &lt;a href="https://angular.io/"&gt;AngularJS&lt;/a&gt; or &lt;a href="https://reactjs.org/"&gt;ReactJS&lt;/a&gt;. In addition to these technical skills, they must also be able to communicate effectively with the backend developers and understand their needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python for webdev?
&lt;/h2&gt;

&lt;p&gt;If you work with Python, a common choice is &lt;a href="https://www.python-me.org/python-flask"&gt;Flask&lt;/a&gt; for the backend. &lt;a href="https://flask.palletsprojects.com/"&gt;Flask&lt;/a&gt; is a microframework for creating web applications in Python. &lt;/p&gt;

&lt;p&gt;It includes everything you need to get started, such as a development server and built-in debuggers. Flask is also very lightweight, which makes it perfect for developing smaller applications or prototypes.&lt;/p&gt;

&lt;p&gt;Typically the frontend communicates with the backend using an API. An API can be created in &lt;a href="https://pythonflask.xyz/blog/api"&gt;Python&lt;/a&gt; and many other languages.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Some things you can do with Python</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Thu, 14 Apr 2022 20:22:44 +0000</pubDate>
      <link>https://dev.to/bigcoder/some-things-you-can-do-with-python-3pcl</link>
      <guid>https://dev.to/bigcoder/some-things-you-can-do-with-python-3pcl</guid>
      <description>&lt;p&gt;&lt;a href="https://python.org"&gt;Python&lt;/a&gt; is a high level programming language. It can be used for everything from writing simple scripts to building complex applications. &lt;/p&gt;

&lt;p&gt;There are thousands of modules created by other programmers that can be used in python programs along with the python standard library.&lt;/p&gt;

&lt;p&gt;To get a feel for what you can do with python check out this list of common things people use it for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Games
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.pygame.org/"&gt;PyGame&lt;/a&gt; is a Python module designed for writing games. It uses the SDL library to provide fast low level access to audio, keyboard, mouse, joystick, and graphics. &lt;/p&gt;

&lt;p&gt;Developing games in Python with PyGame is a great way to get started in game development. PyGame is fast and easy to use, and it provides all the features you need to develop complex games.&lt;/p&gt;

&lt;p&gt;It's mainly aimed at simple 2d games like arcade, rts or tetris. It is quite &lt;a href="https://pygame.fun/pygame/"&gt;easy to learn&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web development
&lt;/h2&gt;

&lt;p&gt;Web development is a tricky industry, one in which there are hundreds of different languages at play, each with its own quirks and features. The problem becomes even more complicated when you need to combine web development with other skills.&lt;/p&gt;

&lt;p&gt;Flask is one of the most popular Python web framework for developing web applications. It is designed to make getting started &lt;a href="https://pythonflask.xyz/blog/how-to-use-flask"&gt;quick and easy&lt;/a&gt;, with the ability to scale up to complex applications. &lt;/p&gt;

&lt;p&gt;One of the ideas of web apps with Python is to be dynamic. Not every page should be the same, but data should be grabbed from a database. In the web, it's always &lt;a href="https://python.bond/posts/sqlite-database-with-python/"&gt;SQL&lt;/a&gt;&lt;br&gt;
that is used for that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ckuxUIOo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lj3bjjrmtyhxoqt7nsoe.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ckuxUIOo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lj3bjjrmtyhxoqt7nsoe.jpeg" alt="python flask" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Desktop apps
&lt;/h2&gt;

&lt;p&gt;You can build desktop apps with Python and Qt. It's easy to use and has great documentation, making it a breeze to create professional-looking applications. It currently supports Windows, Mac and Linux. It has tons of features and widgets.&lt;/p&gt;

&lt;p&gt;Qt is a powerful toolkit that can help you create great-looking desktop applications. Python is a great language for creating desktop apps. Together, these two technologies can help you quickly &lt;a href="https://www.python-me.org/a-brief-introduction-to-pyqt"&gt;create desktop apps&lt;/a&gt;. Qt has tons of features and widgets, making it easy to create rich, user-friendly applications. Python is easy to use and has great documentation, making it a breeze to get started with creating desktop apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zWsHhwKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mudgk4horct264ojvq0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zWsHhwKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mudgk4horct264ojvq0x.png" alt="pyqt desktop app" width="813" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Hacking MS SQL</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Mon, 13 Dec 2021 10:48:04 +0000</pubDate>
      <link>https://dev.to/bigcoder/hacking-ms-sql-33lo</link>
      <guid>https://dev.to/bigcoder/hacking-ms-sql-33lo</guid>
      <description>&lt;p&gt;Hacking MS SQL is a very useful skill to learn. Especially in this recent world of computers everyone uses MS SQL (or MariaDB) and with that comes the concern of how to protect ourselves. &lt;/p&gt;

&lt;p&gt;Why do we use SQL anyway? &lt;/p&gt;

&lt;p&gt;Many web apps interact with a database and are CRUD applications (create, read, update, delete data). SQL databases can be used with &lt;a href="https://python-commandments.org/python-mysql-tutorial/"&gt;Python&lt;/a&gt;, PHP and other programming languages. Besides SQL injection, there can be other vulnerabilities.&lt;/p&gt;

&lt;p&gt;SQL database hacking (injection) is the art of making database vulnerable for data thefts. However, in this article we are interested not in the database, but in running system commands 😄&lt;/p&gt;

&lt;h3&gt;
  
  
  Brute force
&lt;/h3&gt;

&lt;p&gt;First you must already know the password which you may obtain through brute force with &lt;a href="https://sectools.org/tool/hydra/"&gt;hydra&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;You can use a list of usernames and a list of passwords to brute force mssql server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hydra &lt;span class="nt"&gt;-L&lt;/span&gt; /root/Desktop/user.txt –P /root/Desktop/pass.txt 192.168.1.128 mssql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change the ip to the MS SQL server ip address. The username and password list should exist. You can find such lists on the internet, like &lt;em&gt;rockyou.txt&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can also use medusa, xhydra, nmap or metasploit for this. These tools can also be used on &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;linux&lt;/a&gt; for brute forcing other services. After getting the password, what's next?&lt;/p&gt;

&lt;p&gt;You could explore the data. But chances are you are not interested in the data, but in gaining system access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3R_fhJCA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3l99su2bpbnxx78orb0k.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3R_fhJCA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3l99su2bpbnxx78orb0k.jpeg" alt="hack" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Browsing file system
&lt;/h3&gt;

&lt;p&gt;MS SQL servers can have the command &lt;em&gt;xp_cmdshell&lt;/em&gt; enabled. This lets you run commands through its command prompt.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sqsh &lt;span class="nt"&gt;-S&lt;/span&gt; MACHINE_IP &lt;span class="nt"&gt;-U&lt;/span&gt; sa &lt;span class="nt"&gt;-P&lt;/span&gt; &lt;span class="s2"&gt;"your_password"&lt;/span&gt;
1&amp;gt; xp_cmdshell &lt;span class="s1"&gt;'whoami'&lt;/span&gt;
2&amp;gt; go

  output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command you can do is &lt;code&gt;type filename&lt;/code&gt;. This lets you read  files from the file system. You can use &lt;code&gt;dir&lt;/code&gt; to list al files and folders. There may be interesting files in the users home folder!&lt;/p&gt;

&lt;p&gt;From there on, you can try starting a reverse shell (with nc.exe) or try other things.&lt;/p&gt;

&lt;p&gt;To learn more about web hacking, you may like &lt;a href="https://www.udemy.com/course/ethical-hacking-web-app-hacking/"&gt;this course&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
    </item>
    <item>
      <title>Hacking: Local File Inclusion</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Thu, 09 Dec 2021 18:00:02 +0000</pubDate>
      <link>https://dev.to/bigcoder/hacking-local-file-inclusion-3m4h</link>
      <guid>https://dev.to/bigcoder/hacking-local-file-inclusion-3m4h</guid>
      <description>&lt;p&gt;&lt;a href="https://www.linux.com/what-is-linux/"&gt;Linux&lt;/a&gt; is a widely popular system for hosting web apps. It's users often think that by using Linux on a server, that it is secure.&lt;/p&gt;

&lt;p&gt;But, just because you use Linux on your server and are good at the &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;shell&lt;/a&gt; commands, does not mean your web app is secure. Sure you may know how to use &lt;a href="https://vim.is"&gt;vim&lt;/a&gt;, but neither that will stop a hacker. &lt;/p&gt;

&lt;p&gt;LFI (or File Inclusion) is a common vulnerability in web appps that provides access to files on the server in question. This allows an attacker to read files and sometimes to create or modify files on the target web server. &lt;/p&gt;

&lt;p&gt;In this article I will explain a vulnerability known as local file inclusion (LFI) and how this hack is carried out.&lt;/p&gt;

&lt;h2&gt;
  
  
  LFI explained
&lt;/h2&gt;

&lt;p&gt;With many server side programming languages, you can include files. In php that is often done with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;include&lt;/li&gt;
&lt;li&gt;require&lt;/li&gt;
&lt;li&gt;include_once&lt;/li&gt;
&lt;li&gt;require_once&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lets say a web app has a parameter that lets you specify the file. The web app url can look like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://webapp.dev/forum.php?file=myCV.pdf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And the code like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
    &lt;span class="k"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"file"&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By changing the url parameter file, the attacker can open different files on the server. &lt;/p&gt;

&lt;h3&gt;
  
  
  Give me an example
&lt;/h3&gt;

&lt;p&gt;An attacker might change the url and read different files. These can include system files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://webapp.dev/forum.php?file&lt;span class="o"&gt;=&lt;/span&gt;/etc/passwd
http://webapp.dev/forum.php?file&lt;span class="o"&gt;=&lt;/span&gt;../../../../../etc/passwd
http://webapp.dev/forum.php?file&lt;span class="o"&gt;=&lt;/span&gt;/etc/shadow
http://webapp.dev/forum.php?file&lt;span class="o"&gt;=&lt;/span&gt;/etc/issue
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So what, the attacker can read system files?&lt;/p&gt;

&lt;p&gt;The attacker can get your username from /etc/passwd and your hashed password from /etc/shadow.&lt;/p&gt;

&lt;p&gt;The hashed password can be cracked using &lt;a href="https://crackstation.net/"&gt;crackstation&lt;/a&gt;, giving them full access to the server.&lt;/p&gt;

&lt;p&gt;To prevent this as coder, always check and test user input (especially GET and POST variables)&lt;/p&gt;

&lt;p&gt;The LFI vulnerability can also exist on other operating systems, but they store system files elsewhere.&lt;/p&gt;

&lt;p&gt;To learn more about web hacking, you may like &lt;a href="https://www.udemy.com/course/ethical-hacking-web-app-hacking/"&gt;this course&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>linux</category>
      <category>webdev</category>
      <category>security</category>
    </item>
    <item>
      <title>Linux Tips For Beginners</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Tue, 07 Dec 2021 14:26:06 +0000</pubDate>
      <link>https://dev.to/bigcoder/linux-tips-for-beginners-1ief</link>
      <guid>https://dev.to/bigcoder/linux-tips-for-beginners-1ief</guid>
      <description>&lt;p&gt;Newcomers to &lt;a href="https://distrowatch.com/dwres.php?resource=major"&gt;Linux&lt;/a&gt; could find this article helpful. I am sure that once you have finish reading this article you will find them very easy to follow also. &lt;/p&gt;

&lt;p&gt;For example, I am sure that you know all the basics of using a computer such as the internet, word processing and spreadsheets. If you are unsure about these basic functions then maybe it's time to come up with the laptop and practice using them before using a Linux desktop computer or laptop.&lt;/p&gt;

&lt;p&gt;So if you want to learn more about Linux then do not hesitate to follow the tips that I have put down below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1- Explore the default repositories&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Linux (along with the distributions) are software projects. What better way than looking at the available software?&lt;/p&gt;

&lt;p&gt;First of all search for GUI installation program for Linux. On Ubuntu it is called Ubuntu Software Center. Other distributions have their own GUI program for this. This program is already installed on your Linux distro. Once it has been opened, a window will pop up asking you what kind of software you need.&lt;/p&gt;

&lt;p&gt;You can use the command line to install anything, but every distribution has a different package manager. The GUI lets you browse through available software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y1Zbt-qw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mb4lmi7lub9rfv10e8l1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y1Zbt-qw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mb4lmi7lub9rfv10e8l1.png" alt="software gui" width="880" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2- Learn bash&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;command line&lt;/a&gt; is a programmers best friend. Learning the command line is useful skill because you can easily deploy servers with your apps if you know how to use the command line.&lt;/p&gt;

&lt;p&gt;Granted, there are many commands and it may seem like overwhelming. But this is with all things new. Once you learn how to use the command line, it opens up many new possibilities like maintaining servers, controlling computers remotely and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MrkFphVT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inl99jw00utstdu6z7pb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MrkFphVT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inl99jw00utstdu6z7pb.jpeg" alt="command line" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3- Learn vim&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vim is a powerful editor that is available on any computer system. Mastering vim can save you a lot of time in the future. &lt;/p&gt;

&lt;p&gt;But what about IDE X? While the latest IDE is cool now, it may change in the future. Having key bindings that don't change for the next decades is a big plus in an already overwhelming world.&lt;/p&gt;

&lt;p&gt;But, vim can be quite difficult to learn because the keybindings are unusual. You can use vimtutor or &lt;a href="https://vim.is/"&gt;vim.is&lt;/a&gt; to learn quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M8wMbNzg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s9mf29q6qifyhr3ikhr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M8wMbNzg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s9mf29q6qifyhr3ikhr9.png" alt="vim editor" width="880" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4- Deploy a VM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These days you can deploy a Linux server with one click. You don't need to go through an installation process on your computer to try out Linux.&lt;/p&gt;

&lt;p&gt;Just launch a Linux server and you'll instantly have access to the command line and can explore that different Linux distributions that.&lt;/p&gt;

&lt;p&gt;Not only that, but you can also test how it works as server. If you want a web server there is &lt;a href="https://nginx.org/en/"&gt;Nginx&lt;/a&gt; and &lt;a href="https://apache.org/"&gt;Apache&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rr-TB7kW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q2qy7f576bub67pyyqo.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rr-TB7kW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q2qy7f576bub67pyyqo.jpeg" alt="vultr deploy linux vps" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4- Install developer tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can program almost any programming language in Linux. C, C++, Java, Python, Golang everything is supported.&lt;/p&gt;

&lt;p&gt;Of course, you can also do web programming with JavaScript, Node and other languages.&lt;/p&gt;

&lt;p&gt;As developer, you learn by doing so why not do some programming on Linux?&lt;/p&gt;

&lt;p&gt;Many developers like &lt;a href="https://code.visualstudio.com/"&gt;VSCode&lt;/a&gt; (supports vim keys), but other IDEs are used too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wy_bqq-W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vzrwuegth2flmdocjwt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wy_bqq-W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vzrwuegth2flmdocjwt4.png" alt="vscode on linux" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5- Take courses&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the ways to learn faster is using an instructor instead of figuring out everything on your own. There are many courses about Linux that can help you boost your skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6- Choose a distribution wisely&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Linux is only the core component of a Linux system. Distributions come and go, so pick a popular Linux distribution that will be around for the next ten years. Something like &lt;a href="https://www.opensuse.org/"&gt;OpenSuse&lt;/a&gt;, &lt;a href="https://www.debian.org/"&gt;Debian&lt;/a&gt;, &lt;a href="https://getfedora.org/"&gt;Fedora&lt;/a&gt; or &lt;a href="https://ubuntu.com/"&gt;Ubuntu&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u4g3SG_7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds5dvenxujx9vio9f5nu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u4g3SG_7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds5dvenxujx9vio9f5nu.png" alt="linux distributions time" width="880" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>Vim like tools</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Mon, 06 Dec 2021 10:06:40 +0000</pubDate>
      <link>https://dev.to/bigcoder/vim-like-tools-4bnc</link>
      <guid>https://dev.to/bigcoder/vim-like-tools-4bnc</guid>
      <description>&lt;p&gt;As developers you spent a lot of time on the keyboard. While you can make programs with the mouse in some graphical programming languages, it just isn't very convenient. So what keyboard driven programs exist?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vim.org"&gt;Vim&lt;/a&gt; is a popular editor that has been around for ages. Many developers use vim or vim keybindings in their IDE, simply because it's convenient to press keys rather than going through the file menu.&lt;/p&gt;

&lt;p&gt;Vim has always been one of my favorite text editors for Linux and Mac. Vim is similar to the editor vi, but has more features. &lt;/p&gt;

&lt;p&gt;It is keyboard driven and has quite a hard learning curve (&lt;a href="https://vim.is"&gt;learn vim&lt;/a&gt;). Because it's been designed decades ago, some things makes less sense today. To give you an example, you can use both the keys h,j,k,l and the arrow keys to move the cursor. That's because in those times, there were no arrow keys.&lt;/p&gt;

&lt;p&gt;It can be used both in the Linux &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;shell&lt;/a&gt; and in a graphical interface. Personally I have also used its keybindings in Visual Studio, Visual Studio Code and other programs.&lt;/p&gt;

&lt;p&gt;Vim isn't the only keyboard driven program out there. So what else is out there?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/muennich/sxiv"&gt;sxiv&lt;/a&gt;: an image viewer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://vifm.info/"&gt;vifm&lt;/a&gt;: a file manager with curses interface, which provides Vim-like environment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.qtile.org/"&gt;qtile&lt;/a&gt;: window manager for the X Window System&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://i3wm.org/"&gt;i3&lt;/a&gt;: a tiling window manager. It doesn't use vim keys by default but is completely keyboard driven &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.ocf.berkeley.edu/~ckuehl/tmux/"&gt;tmux&lt;/a&gt; a terminal multiplexer that you can use instead of tabs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb"&gt;vimium&lt;/a&gt; add vim bindings to chrome&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://qutebrowser.org/"&gt;qutebrowser&lt;/a&gt; a vim keyboard-focused browser with a minimal GUI. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While many graphical programs have keyboard shortcuts, they aren't all completely controllable with the keyboard.&lt;/p&gt;

&lt;p&gt;If you know of other cool programs that rely on keyboard shortcuts, let me know in the comments.&lt;/p&gt;

</description>
      <category>vim</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to Hack Into a Website </title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Sun, 05 Dec 2021 12:12:37 +0000</pubDate>
      <link>https://dev.to/bigcoder/how-to-hack-into-a-website-1jkm</link>
      <guid>https://dev.to/bigcoder/how-to-hack-into-a-website-1jkm</guid>
      <description>&lt;p&gt;Hacking into websites is one of the most fundamental skills a hacker can learn. As a developer, you should be aware of the risks. &lt;/p&gt;

&lt;p&gt;Many &lt;a href="https://haveibeenpwned.com/PwnedWebsites"&gt;websites get hacked&lt;/a&gt;! So how can you prevent your website or web app from being hacked? You should learn how a hacker thinks.&lt;/p&gt;

&lt;p&gt;Once you learn how to hack into a website, you will be able to test the security of your website (or web app) and also know how others can hack into your website. &lt;/p&gt;

&lt;p&gt;There are many tools available for hacking, but for beginners, I suggest Burp Suite or hydra.  Burp Suite is a GUI tool and hydra is a terminal tool.&lt;/p&gt;

&lt;p&gt;These tools are included in &lt;a href="https://www.kali.org/"&gt;Kali Linux&lt;/a&gt;, a computer system for hacking. You should have some knowledge of the &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;Linux command line&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wait.. roll my own tools?
&lt;/h3&gt;

&lt;p&gt;As a developer, you may be inclined to roll your own hacking tools. That is possible, but why reinvent the wheel?&lt;/p&gt;

&lt;p&gt;If your goal is to test the security of your website, you wouldn't start with writing an operating system and designing a CPU. Instead, just use the tools that exist.&lt;/p&gt;

&lt;p&gt;But.. how does the coding work? &lt;/p&gt;

&lt;p&gt;Create a script in your favorite editor like &lt;a href="https://code.visualstudio.com/"&gt;VSCode&lt;/a&gt; or &lt;a href="https://www.vim.org/"&gt;vim&lt;/a&gt; (&lt;a href="//vim.is/"&gt;learn vim&lt;/a&gt;). For example, to brute force you could intercept a curl request and run it through a &lt;a href="https://pythonprogramminglanguage.com/"&gt;Python&lt;/a&gt; &lt;a href="https://python-commandments.org/python-for-loop/"&gt;for loop&lt;/a&gt; with a password text file to brute force. &lt;/p&gt;

&lt;h3&gt;
  
  
  hydra
&lt;/h3&gt;

&lt;p&gt;Hydra lets you brute force passwords of any server. You do by having a password word list. This is a let of millions of passwords that Hydra will automatically try.&lt;/p&gt;

&lt;p&gt;You can let it automatically bruteforce, with any protocol&lt;/p&gt;

&lt;p&gt;The syntax is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hydra &lt;span class="nt"&gt;-L&lt;/span&gt; &amp;lt;USERNAME_LIST&amp;gt; &lt;span class="nt"&gt;-P&lt;/span&gt; &amp;lt;PASSWORD_LIST&amp;gt; &amp;lt;TARGET_IP&amp;gt; &amp;lt;PROTOCOL&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can brute force ssh, mysql, ftp and many other protocols.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hydra &lt;span class="nt"&gt;-L&lt;/span&gt; users.txt &lt;span class="nt"&gt;-P&lt;/span&gt; passwords.txt 192.168.0.1 ssh &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="nt"&gt;-V&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will output the passwords in the terminal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OBRWmlQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o1cf5tvu2irp4cnm6vgu.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OBRWmlQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o1cf5tvu2irp4cnm6vgu.jpeg" alt="hydra can also hack login forms" width="880" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affirmative, this is a low level tool. For more high level attacks you can use a tool called burp suite.&lt;/p&gt;

&lt;h3&gt;
  
  
  Burp Suite
&lt;/h3&gt;

&lt;p&gt;The way &lt;a href="https://portswigger.net/burp"&gt;Burp Suite&lt;/a&gt; works is by intercepting your browser traffic. It then lets you modify the requests, so you can for instance brute force passwords on a login form. In the browser, you can set the Proxy to Burp Suite.&lt;/p&gt;

&lt;p&gt;Step 1. Run Burp Suite&lt;br&gt;
Step 2. Open Firefox and navigate to the login form&lt;br&gt;
Step 3. Navigate to the Proxy tab in Burp Suite&lt;br&gt;
Step 4. Press "Intercept On" in "Proxy -&amp;gt; Intercept"&lt;br&gt;
Step 5. Set Burp in FoxyProxy&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nBObZ4Y0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4l3kt03k4nv8wn8ysok0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nBObZ4Y0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4l3kt03k4nv8wn8ysok0.png" alt="foxy proxy" width="479" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 6. Submit dummy data by clicking login with the dummy username and password in Firefox&lt;br&gt;
Step 7. In Proxy Intercept -&amp;gt; Right click and Send to Intruder&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NShsaXhK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zoeumws92s7mccflk9s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NShsaXhK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zoeumws92s7mccflk9s.png" alt="burp forward to intruder" width="880" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 8. Click "Clear $" and add "$" around the username nad password&lt;br&gt;
Step 9. Select "Cluster Bomb"&lt;br&gt;
Step 10. In "Intruder -&amp;gt; Payloads" set a wordlist (password list) to try. You can set the payload for both parameter 1 and 2 (username and password)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--45t_QvFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rp42may2nsbmph75fdid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--45t_QvFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rp42may2nsbmph75fdid.png" alt="burp payload" width="880" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 11. Click Start Attack and wait for credentials&lt;/p&gt;

&lt;p&gt;Whew, this was quite a setup. Main difference is that with Burp Suite you only have to click, with hydra you have to use the command line. Burp Suite has more features than hydra.&lt;/p&gt;

&lt;p&gt;More on web hacking? You may like: &lt;a href="https://www.udemy.com/course/ethical-hacking-web-app-hacking/"&gt;Ethical Hacking: Web App hacking&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>hacking</category>
      <category>webdev</category>
    </item>
    <item>
      <title>My favorite Linux command line apps</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Sat, 04 Dec 2021 11:23:41 +0000</pubDate>
      <link>https://dev.to/bigcoder/my-favorite-linux-command-line-apps-2mkp</link>
      <guid>https://dev.to/bigcoder/my-favorite-linux-command-line-apps-2mkp</guid>
      <description>&lt;p&gt;A long time ago, in an internet far, far away, it was still the Wild West with open plains and free land for all to explore. On these plains, some people came across a land that would become known as Linux.&lt;/p&gt;

&lt;p&gt;This new land was free for the taking and there wasn't a soul in sight. The ones who discovered Linux claimed it for themselves and called it theirs. They tamed the land and built roads throughout the countryside. They made a system to run the land so that it would always be there when they returned. This system they called Linux.&lt;/p&gt;

&lt;p&gt;Linux is a unix-like system and comes with a &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;command line&lt;/a&gt;. While the days are long gone when everyone had to use a command line interface, it's a very powerful set of tools for developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  vim
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.vim.org/"&gt;Vim&lt;/a&gt; is one of my favorite terminal apps. It's a command line editor (has GUI version too) that let's you edit files very quickly. The whole app is using keyboard shortcuts that can be challenging to &lt;a href="https://vim.is/"&gt;learn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's available on any server (or their predecessor vi), can be used over the network and any IDE supports its key bindings. It was here 20 years ago and will still be here 20 years from now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zNhnZigE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57ytvbjrkyfzef8v51xt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zNhnZigE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57ytvbjrkyfzef8v51xt.png" alt="vim editor" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ranger
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ranger/ranger"&gt;ranger&lt;/a&gt; is a free, open-source software file manager for the linux desktop. It aims to help both new and experienced users to efficiently manage their files, and to seamlessly navigate their file systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K564srhu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yay884qtidosrnra78c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K564srhu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yay884qtidosrnra78c5.png" alt="ranger" width="650" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ssh
&lt;/h2&gt;

&lt;p&gt;The linux ssh command is used to connect to a Linux server using a secure shell protocol. It works by connecting to the given hostname or IP address and then creating a secure channel between the local machine and its remote counterpart.&lt;/p&gt;

&lt;p&gt;In the past telnet was used for that, but it was unencrypted and insecure. The community has moved on to use secure shell or ssh in short.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ssh user@ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From there on you can use the remote Linux system as if it were your own. This also works for OS X and Windows, but the Windows prompt works differently of course.&lt;/p&gt;

&lt;p&gt;What are your favorite command line programs?&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>Linux: An Intro For Newbies</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Fri, 03 Dec 2021 17:19:21 +0000</pubDate>
      <link>https://dev.to/bigcoder/linux-an-intro-for-newbies-45ln</link>
      <guid>https://dev.to/bigcoder/linux-an-intro-for-newbies-45ln</guid>
      <description>&lt;p&gt;The Linux operating system is one of the most widely used pieces of software in the world, though its open source nature means that most people don’t know this. You might be using Linux every day, whether you know it or not.&lt;/p&gt;

&lt;p&gt;Linux (the core system) comes bundled with many software packages called a &lt;em&gt;Linux distribution&lt;/em&gt;. There are many different Linux distributions available like &lt;a href="https://www.opensuse.org/"&gt;OpenSuse&lt;/a&gt;, &lt;a href="https://ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, &lt;a href="https://getfedora.org/"&gt;Fedora&lt;/a&gt;, &lt;a href="https://www.kali.org/"&gt;Kali&lt;/a&gt; and many others. &lt;/p&gt;

&lt;h3&gt;
  
  
  Linux server
&lt;/h3&gt;

&lt;p&gt;Linux has been widely used in web servers for some time now. In fact, the majority of websites you visit are served by a computer running Linux. &lt;/p&gt;

&lt;p&gt;The easiest way is to start a linux cloud vps on a service like Vultr or Digital Ocean.  That gives you access to a Linux server. From there, you can use the &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;Linux command line&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a developer, knowing the Linux command line is a must have skill. Because so much software uses Linux: web apps, routers, embedded systems etc. Often times you'll have to login through a remote terminal connection (ssh).&lt;/p&gt;

&lt;h3&gt;
  
  
  Linux on desktop?
&lt;/h3&gt;

&lt;p&gt;It’s also increasingly popular on the desktop, with users able to take advantage of its cross-platform nature. This means that Linux can be installed on almost any computer, whether Apple or Windows-based, and work exactly as it should.&lt;/p&gt;

&lt;p&gt;There are many different graphical environments and there isn't a "Linux way" of doing things. In fact, when it comes to Linux usually there's a dozen ways of doing the same thing. There are many graphical choices like &lt;a href="https://www.gnome.org/"&gt;Gnome&lt;/a&gt;, &lt;a href="https://kde.org/"&gt;kde&lt;/a&gt;, &lt;a href="https://mate-desktop.org/"&gt;mate&lt;/a&gt; etc. Usually a Linux distributions comes bundled with all of them.&lt;/p&gt;

&lt;p&gt;Given the Linux desktop share, it doesn't seem like there will ever be the &lt;em&gt;"year of the Linux desktop"&lt;/em&gt; but nonetheless it's comfy system for doing software development.&lt;/p&gt;

&lt;p&gt;Many development tools are available including &lt;a href="https://code.visualstudio.com/"&gt;VSCode&lt;/a&gt;, &lt;a href="https://www.vim.org/"&gt;Vim&lt;/a&gt; (&lt;a href="https://vim.is/"&gt;learn vim&lt;/a&gt;), &lt;a href="https://developer.android.com/studio/"&gt;Android Studio &lt;/a&gt; and loads of others. In fact, most developers I've met use either Linux or OS X all the time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install Linux
&lt;/h3&gt;

&lt;p&gt;As you might imagine, installing Linux is a little more complicated than downloading an app on your phone. The good news is that it’s not actually that hard to install.&lt;/p&gt;

&lt;p&gt;The general idea is to download the &lt;strong&gt;.iso&lt;/strong&gt; file and write it on a &lt;strong&gt;bootable USB disk&lt;/strong&gt;. Then boot from the usb disk using the bios. Sometimes it doesn't boot because secure boot is enabled.&lt;/p&gt;

&lt;p&gt;After booting, you may find yourself in an installation menu. Some distributions however, just give you a terminal where you can type commands to install everything like Gentoo (those are only free if your time is worthless). However, most Linux distributions guide you through some kind of graphical installer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0oYy32WU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/30hyfpl8h6ecqvlqc09m.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0oYy32WU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/30hyfpl8h6ecqvlqc09m.jpeg" alt="cat on pc" width="640" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>Vim Tips and Tricks for Beginners</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Wed, 01 Dec 2021 23:22:04 +0000</pubDate>
      <link>https://dev.to/bigcoder/vim-tips-and-tricks-for-beginners-45a</link>
      <guid>https://dev.to/bigcoder/vim-tips-and-tricks-for-beginners-45a</guid>
      <description>&lt;p&gt;Vim is an amazingly powerful, yet super simple text editor. It's an easy to use and free text/programming editor that anyone can use regardless of their skill level. &lt;/p&gt;

&lt;p&gt;You can use vim both in the &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;terminal&lt;/a&gt; and in a GUI version (gvim). You can also use it over a remote network session (ssh).&lt;/p&gt;

&lt;p&gt;Here are some Vim tips and tricks that will help you get started with Vim.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Navigation
&lt;/h3&gt;

&lt;p&gt;To move around, we use the &lt;strong&gt;h, j, k&lt;/strong&gt; and &lt;strong&gt;l&lt;/strong&gt; keys to move left, down, up, and right respectively.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;h moves the cursor one character to the left. &lt;/li&gt;
&lt;li&gt;j moves the cursor one line down.&lt;/li&gt;
&lt;li&gt;k moves the cursor one line up.&lt;/li&gt;
&lt;li&gt;l moves the cursor one character to the right.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vim also uses the arrow keys to move around too! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;gg&lt;/strong&gt; moves to the top of the file. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;G&lt;/strong&gt; moves to the bottom of the file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Opening and saving
&lt;/h3&gt;

&lt;p&gt;In order to save a file with vim, you need to first open it with vim editor. You can do so with the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vim filename.txt
vim /home/you/Documents/filename.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To save the file, press &lt;code&gt;ESC&lt;/code&gt; followed by &lt;code&gt;:w!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Inside vim you can open files using &lt;code&gt;ESC&lt;/code&gt; followed by &lt;code&gt;:e filename&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quit vim
&lt;/h3&gt;

&lt;p&gt;To quit vim, you can either press &lt;code&gt;ESC&lt;/code&gt; followed by &lt;code&gt;:q!&lt;/code&gt; (quit without saving) or press &lt;code&gt;ZQ&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To save and exit, press &lt;code&gt;ESC&lt;/code&gt; followed by &lt;code&gt;:wq!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KuPHn-FD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tw530lh5w58aitgn5u37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KuPHn-FD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tw530lh5w58aitgn5u37.png" alt="how to quit vim" width="500" height="672"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  .vimrc
&lt;/h3&gt;

&lt;p&gt;While vim does a lot of things out of the box, you may want to configure it to work with certain programming languages, to show line numbers etc.&lt;/p&gt;

&lt;p&gt;You can customize with your &lt;code&gt;.vimrc&lt;/code&gt; file. You can configure vim with that file. &lt;/p&gt;

&lt;p&gt;To enable syntax highlighting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;" Turn syntax highlighting on.
syntax on
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To enable line numbers&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;" numbers on each line
set number
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don't want to configure manually, you can generate a vimrc config file on this &lt;a href="https://vim-bootstrap.com/#tagline"&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Programming in vim
&lt;/h2&gt;

&lt;p&gt;You can use vim as a programming IDE. I do this quite a lot, as vim is a very powerful editor and great for editing some files on the fly.&lt;/p&gt;

&lt;p&gt;Let's say you want to create a hello world program. The first thing you will want to do when opening vim&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;:edit hello_world.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will open up a blank python file. From here, you can start writing code by pressing &lt;strong&gt;i&lt;/strong&gt; (or insert) to go into insert mode. &lt;/p&gt;

&lt;p&gt;Write your code.&lt;/p&gt;

&lt;p&gt;After press &lt;code&gt;esc&lt;/code&gt; to exit insert mode, the buffer should be saved automatically. You can then run &lt;strong&gt;esc&lt;/strong&gt; &lt;strong&gt;:wq&lt;/strong&gt; to close and save the file.&lt;/p&gt;

&lt;h2&gt;
  
  
  what's next? 😄
&lt;/h2&gt;

&lt;p&gt;It can take a while to get used to all the keyboard commands when learning vim. It can be challenging to use vim while at the same time learning vim. &lt;/p&gt;

&lt;p&gt;So what to do? If you want to learn vim quickly, you can use &lt;a href="https://vim.is/"&gt;vim.is&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>vim</category>
    </item>
    <item>
      <title>Free courses for December</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Wed, 01 Dec 2021 10:49:27 +0000</pubDate>
      <link>https://dev.to/bigcoder/free-courses-for-december-13ag</link>
      <guid>https://dev.to/bigcoder/free-courses-for-december-13ag</guid>
      <description>&lt;p&gt;&lt;strong&gt;Ethical Hacking&lt;/strong&gt;&lt;a href="https://www.udemy.com/course/ethical-hacking-hacking-with-python/?couponCode=REDAPPLE"&gt;&lt;br&gt;
Ethical Hacking: Hacking with Python&lt;/a&gt;&lt;a href="https://www.udemy.com/course/ethical-hacking-network-attacks/?couponCode=REDAPPLE"&gt;&lt;br&gt;
Ethical Hacking: Network Attacks&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/ethical-hacking-john-the-ripper/?couponCode=REDAPPLE"&gt;Ethical Hacking: John the Ripper&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;a href="https://www.udemy.com/course/excel-files-with-python/?couponCode=REDAPPLE"&gt;&lt;br&gt;
Excel Files with Python&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/python-performance-optimization/?couponCode=REDAPPLE"&gt;Python Performance Optimization&lt;/a&gt;&lt;a href="https://www.udemy.com/course/create-snake-with-python-pygame/?couponCode=REDAPPLE"&gt;&lt;br&gt;
Create Snake with Python PyGame&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;a href="https://www.udemy.com/course/linux-desktop-automation/?couponCode=REDAPPLE"&gt;&lt;br&gt;
Linux Desktop Automation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/awk-tutorial/"&gt;Linux awk tutorial&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/redis-database-tutorial/"&gt;Redis database tutorial&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>hacking</category>
      <category>linux</category>
      <category>python</category>
    </item>
    <item>
      <title>Free courses for november</title>
      <dc:creator>BigCoder</dc:creator>
      <pubDate>Wed, 03 Nov 2021 09:07:01 +0000</pubDate>
      <link>https://dev.to/bigcoder/free-courses-for-november-39g4</link>
      <guid>https://dev.to/bigcoder/free-courses-for-november-39g4</guid>
      <description>&lt;p&gt;Some of my courses, free this month :)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ethical Hacking&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/ethical-hacking-introduction-to-exploits/?couponCode=REDHEAD"&gt;Ethical Hacking: Introduction to Exploits&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/ethical-hacking-web-app-hacking/?couponCode=REDHEAD"&gt;Ethical Hacking: Hacking Web Apps&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/sql-injection-tutorial/?couponCode=REDHEAD"&gt;Ethical Hacking: SQL Injection for Beginners&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cyber Security&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/cyber-security-secure-passwords-on-linux/"&gt;Cyber Security: Secure Passwords&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/apparmor-linux-security/?couponCode=REDHEAD"&gt;Cyber Security: Linux AppArmor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/make-simple-games-with-python/?couponCode=CD5055F2EAEC3DFE0215"&gt;Make Simple Games with Python&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/awk-tutorial/"&gt;awk tutorial&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/redis-database-tutorial/"&gt;Redis databases&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
