<?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: PythonBasics</title>
    <description>The latest articles on DEV Community by PythonBasics (@basicspython).</description>
    <link>https://dev.to/basicspython</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%2F658476%2Fedb012e3-1bf4-49f7-9152-d51b86b7b7c8.png</url>
      <title>DEV Community: PythonBasics</title>
      <link>https://dev.to/basicspython</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/basicspython"/>
    <language>en</language>
    <item>
      <title>How-to: Programming In Linux</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Tue, 24 Aug 2021 13:34:45 +0000</pubDate>
      <link>https://dev.to/basicspython/how-to-programming-in-linux-3h7c</link>
      <guid>https://dev.to/basicspython/how-to-programming-in-linux-3h7c</guid>
      <description>&lt;p&gt;I am an engineer who uses Linux everyday, and I write code everyday. &lt;/p&gt;

&lt;p&gt;Linux is a free open source operating system that has been around for decades. With the rise of computer science majoring in college, and the introduction of the &lt;a href="https://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt;, the demand for more linux  has grown in the recent years.&lt;/p&gt;

&lt;p&gt;When you're writing a piece of software, you're usually writing it on a computer running some kind of operating system. If you've ever written software for linux, you know how many things are different when programming under linux. &lt;/p&gt;

&lt;p&gt;The user interface is definitely different from what most people are used to, so if you're new to linux, I recommend spending some time with it before trying to write any software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qBe3RyHI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwkq51f9i4uc218njnv0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qBe3RyHI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwkq51f9i4uc218njnv0.png" alt="where app store"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Linux?
&lt;/h2&gt;

&lt;p&gt;Linux is one of the most widely used and popular operating systems in the world. It powers devices from phones, tablets, and servers to media centers, supercomputers, and more. Because it's open source, it's also free to use and modify.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coding on Linux
&lt;/h2&gt;

&lt;p&gt;Here is a brief run-down of how to go about getting started:&lt;/p&gt;

&lt;p&gt;[1.] Download and install Linux!&lt;br&gt;
[2.] Pick a text editor for programming&lt;br&gt;
[3.] Get familiar with the terminal and begin coding!&lt;/p&gt;

&lt;p&gt;Let's go over each step in greater detail. First pick a Linux distribution, create a live USB and install it on your computer. You can go for Ubuntu, Suse, Fedora or any of the other Linux based systems. Next comes the terminal (and editor).&lt;/p&gt;

&lt;p&gt;One of the key power houses in Linux is the &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;terminal&lt;/a&gt;. From the terminal, you can do coding.  If you have used Mac OS X before you may be already familiar with the terminal, but on Windows there is nothing similar.&lt;/p&gt;

&lt;p&gt;Many coders use the vim programmers editor, which has quite a hard learning curve but is powerful, see &lt;a href="https://vim.is"&gt;vim tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linux comes with a variety of tools, like Python, C++, C and other languages.&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="c"&gt;# run python&lt;/span&gt;
python app.py

&lt;span class="c"&gt;# run C&lt;/span&gt;
gcc test.c &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="nb"&gt;test&lt;/span&gt;
./test

&lt;span class="c"&gt;# run C++&lt;/span&gt;
g++ test.cpp &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="nb"&gt;test&lt;/span&gt;
./test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use an IDE if you want to. There is Visual Studio Code, Jetbrains IDE and lots of others. If for some reason you prefer doing everything in the inconvenient way (with a mouse) then you can use an IDE for coding. &lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>How to Start a Blog with Vim</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Mon, 23 Aug 2021 09:29:44 +0000</pubDate>
      <link>https://dev.to/basicspython/how-to-start-a-blog-with-vim-1ikj</link>
      <guid>https://dev.to/basicspython/how-to-start-a-blog-with-vim-1ikj</guid>
      <description>&lt;p&gt;If Web technologies got out of the way, what would the Web be?&lt;/p&gt;

&lt;p&gt;These days JavaScript frameworks are all the rage. Long term though, will this framework be around?&lt;/p&gt;

&lt;p&gt;The answer is probably no (The Brutal Lifecycle of JavaScript Frameworks).  JavaScript frameworks come and go, who is still using ExtJS or MooTools? &lt;/p&gt;

&lt;p&gt;For a blog you want technology that lasts and you don't want your blog to turn into work. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhlexdnd2tfpej98q5nz.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhlexdnd2tfpej98q5nz.jpeg" alt="tech deprecated"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you use WordPress you'll quickly find it starts to become work: installing updates, updating the server, your plugins will be deprecated, (frameworks) plugins use will stop to be supported etc &lt;/p&gt;

&lt;p&gt;But what will be around in the next 10 years? Linux and bash scripting and plain HTML files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create blog with vim
&lt;/h2&gt;

&lt;p&gt;You can use &lt;a href="https://github.com/cfenollosa/bashblog" rel="noopener noreferrer"&gt;bashblog&lt;/a&gt;, a simple bash script that converts Markdown to HTML.&lt;/p&gt;

&lt;p&gt;Simply download the script then edit your post in files. And finally upload your html files to your server.&lt;/p&gt;

&lt;p&gt;I recommend using vim for text editing because it's a very powerful editor. This is an editor often used by &lt;a href="https://bsdnerds.org/what-is-linux-shell/" rel="noopener noreferrer"&gt;Linux&lt;/a&gt; users.&lt;/p&gt;

&lt;p&gt;To create your first post, first make the script executable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod +x bb.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./bb.sh post
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Be aware that vim has a steep learning curve. For now know that you can use &lt;code&gt;ZQ&lt;/code&gt; to quit, learn vim first. There's a vim tutorial at &lt;a href="https://vim.is/" rel="noopener noreferrer"&gt;vim.is&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Once you wrote your posts, upload them to your server. The neat thing is that this solution will work 10 years from now - zero work ;-)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0szvmxjoq5adhe6zxlp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0szvmxjoq5adhe6zxlp8.png" alt="blogging in vim"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another advantage besides that this will work for the next 10 (or 50?) years is the security benefit. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There is no database, the database cannot be hacked. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is no login screen, nobody can hack your login (as opposed to the WordPress /wp-admin/ that's always under constant attack).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>linux</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is tmux?</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Mon, 23 Aug 2021 08:41:27 +0000</pubDate>
      <link>https://dev.to/basicspython/what-is-tmux-2bcf</link>
      <guid>https://dev.to/basicspython/what-is-tmux-2bcf</guid>
      <description>&lt;p&gt;tmux is a "terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen in &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;Linux&lt;/a&gt;. tmux may be detached from a screen and continue running in the background, then later reattached."&lt;/p&gt;

&lt;p&gt;tmux is my favorite terminal multiplexer, a program that lets you run many applications in the same terminal, with one keystroke to switch. tmux is very powerful and flexible. You can resize panes, set up shortcuts for launching programs, even use it to create text macros. &lt;/p&gt;

&lt;p&gt;There's a course on &lt;a href="https://www.udemy.com/course/linux-tmux/"&gt;tmux here&lt;/a&gt;, that explains how to use it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F2ulN7ln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0733t8xcmue3egratlg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F2ulN7ln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0733t8xcmue3egratlg6.png" alt="tmux"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In other words, it makes working on multiple programs at the same time simpler.&lt;/p&gt;

&lt;p&gt;A tmux session consists of one or more windows and zero or more panes. A window contains a single program; zero or more panes occupy each window. Each pane takes up one row of the window and has one or more lines of text.&lt;/p&gt;

&lt;p&gt;tmux is one of those programs that I can't live without as a programmer. I use it every day, multiple times a day. It's just so efficient in running my multiple programming sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tmux on Windows?
&lt;/h2&gt;

&lt;p&gt;The only problem is that tmux isn't available for Windows, and if you're a programmer, you spend most of your time in your terminals anyway.&lt;/p&gt;

&lt;p&gt;In order to use tmux on Windows, you have to install a virtual machine on top of your existing operating system. This works - but it's completely unnecessary. But the Windows terminal is very limited anyhow&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>Why I use vim</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Sun, 22 Aug 2021 17:39:27 +0000</pubDate>
      <link>https://dev.to/basicspython/why-i-use-vim-57id</link>
      <guid>https://dev.to/basicspython/why-i-use-vim-57id</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uwI2CtWgltk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vim.org/"&gt;Vim&lt;/a&gt; is very powerful text editor, you can do all kinds of things with it.&lt;/p&gt;

&lt;p&gt;You can jump immediately to a line, search by pressing &lt;code&gt;/&lt;/code&gt; and anything you want to do - with a few keystrokes. &lt;/p&gt;

&lt;p&gt;Vim is everywhere: on your local device (Linux), on embedded systems, on servers. It's really everywhere and it's really powerful.&lt;/p&gt;

&lt;p&gt;In fact, if you use Linux then vi/vim is installed by default. Even on Mac OS X the vim editor is available in the terminal (I use this for work).&lt;/p&gt;

&lt;p&gt;If you want to learn vim I recommend &lt;a href="https://vim.is"&gt;this tutorial&lt;/a&gt; besides the basic vimtutor.&lt;/p&gt;

</description>
      <category>techtalks</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to Master Vim</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Sun, 22 Aug 2021 13:50:08 +0000</pubDate>
      <link>https://dev.to/basicspython/how-to-master-vim-4kp2</link>
      <guid>https://dev.to/basicspython/how-to-master-vim-4kp2</guid>
      <description>&lt;p&gt;Vim is a text editor that I use every day. It's a program that most people know about, but not many mastered.Here are some tips and tricks to get you started.&lt;/p&gt;

&lt;p&gt;Vim is part of the UNIX family of programs, which means that it's an old program with a lot of history and power. Vim is not just a text editor, it's a "programmer's editor". That means it has some pretty advanced features under the hood.&lt;/p&gt;

&lt;p&gt;First thing you need to do is get Vim installed on your computer, where I will assume that you are using Linux. If not, you can download it at &lt;a href="https://vim.org"&gt;vim.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One thing to know about vim is that it's &lt;strong&gt;keyboard oriented&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every function has a keyboard shotcut. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To quit without saving, press &lt;code&gt;ZQ&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;To save press &lt;code&gt;ESC&lt;/code&gt; &lt;code&gt;:w&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;To start typing press &lt;code&gt;i&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;To go back to option mode, press &lt;code&gt;ESC&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And so in order to master vim, you need to master the keyboard shortcuts. &lt;/p&gt;

&lt;p&gt;To start learning vim, this &lt;a href="https://vim.is/"&gt;tutorial&lt;/a&gt; is a good staring point. It takes you from beginner to master level.&lt;/p&gt;

&lt;p&gt;Alternatively, you can grab a cheat sheet and start editing text. But that can be a frustrating process, as you will need to learn the keyboard shortcuts while at the same time doing your work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why vim?
&lt;/h2&gt;

&lt;p&gt;As software developers, we often spend all day inside looking at computers and writing code. &lt;/p&gt;

&lt;p&gt;So many people like me start a terminal to type vim. The reason is that vim is a good tool. Users can edit files, run simple shell commands, compile programs&lt;/p&gt;

&lt;p&gt;What makes the tool good? I created some list of features that are very important for me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fullscreen&lt;/strong&gt; is the best way to focus. How to close windows, how to maximize them, how to split them - you don't need to think about how to use vim. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keyboard control&lt;/strong&gt; because as a coder your hands are already on the keyboard. You can just do everything what you need with keyboard. It's similar to "Windows" keyboard shortcuts, but much more powerful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keyboard macros&lt;/strong&gt; easily record and replay keystrokes. This feature saves you a lot of time&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>vim</category>
      <category>linux</category>
    </item>
    <item>
      <title>Free courses this month (limited time)</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Sun, 22 Aug 2021 12:15:06 +0000</pubDate>
      <link>https://dev.to/basicspython/free-courses-this-month-limited-time-17e1</link>
      <guid>https://dev.to/basicspython/free-courses-this-month-limited-time-17e1</guid>
      <description>&lt;p&gt;Some of my courses are 100% free this month. If you want to learn more about ethical hacking or programming don't hesitate, it's a limited time offer 😄&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ethical hacking&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/ethical-hacking-password-cracking-with-python/"&gt;Password cracking with Python&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/sql-injection-tutorial/"&gt;SQL Injection tutorial&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/ethical-hacking-introduction-to-exploits/?couponCode=AUG2021FREE"&gt;Introduction to Exploits&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Programming&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/c-programming-exercises-for-beginners/"&gt;C programming exercises&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/haskell-exercises-for-beginners/"&gt;Haskell programming exercises&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DevOps&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/redis-database-tutorial/"&gt;Redis Database tutorial&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/awk-tutorial/"&gt;Linux AWK tutorial&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/linux-tmux/"&gt;Linux tmux tutorial&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>redis</category>
      <category>linux</category>
      <category>haskell</category>
    </item>
    <item>
      <title>Vim: The Best Way to Write Code?</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Sun, 04 Jul 2021 14:50:40 +0000</pubDate>
      <link>https://dev.to/basicspython/vim-the-best-way-to-write-code-1d16</link>
      <guid>https://dev.to/basicspython/vim-the-best-way-to-write-code-1d16</guid>
      <description>&lt;p&gt;vim (aka Vi IMproved) is a highly efficient text editor that has inspired other editors like it, most notably &lt;a href="https://github.com/macvim-dev/macvim"&gt;MacVim&lt;/a&gt; (which I will refer to as vim from here on) and &lt;a href="https://gvimeditor.blogspot.com/2013/03/gvim-basics.html"&gt;gVim&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You see, I use a code editor called Vim, which is sort of like an operating system for writing code.  I know it might seem bizarre, but there's a method to my madness:  Vim lets me write code very quickly and with very little effort. It's a great way of working that I wake up excited to do every day.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w1_HBkk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m0tgi719lt700g85z2z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w1_HBkk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m0tgi719lt700g85z2z.png" alt="gvim"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why vim?
&lt;/h2&gt;

&lt;p&gt;Vim is one of the most popular text editors, which is why you’re either using it or wondering why you should be using it. But if you’re not a programmer, why should you care?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's a matter of preference&lt;/strong&gt;, but &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don’t have to open vim to write code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re like us, you don’t want to have to switch between your text editor and your terminal while you write your code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can use it over an SSH connection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a big plus. With a few commands you're inanother computer and can edit right away&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It works on all operating systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even the most obsecure operating systems support vim. Like some router with busybox installed&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's completely controlled by key presses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to use the mouse, vim is controlled by key presses. However if you like clicking around, there's gvim.&lt;/p&gt;

&lt;p&gt;Vim does have a steep learning curve, but you can practice vim on sites like &lt;a href="https://vim.is/"&gt;vim.is&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vim</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to Run a Bash Script</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Thu, 01 Jul 2021 18:07:18 +0000</pubDate>
      <link>https://dev.to/basicspython/how-to-run-a-bash-script-4m44</link>
      <guid>https://dev.to/basicspython/how-to-run-a-bash-script-4m44</guid>
      <description>&lt;p&gt;Running a bash script is easy, but it does take a few steps and it’s important to do them in the right order. In this post, we’ll go through the steps to ensure that your script will run correctly 😉&lt;/p&gt;

&lt;p&gt;The first step is to make a bash script. Any bash script uses the Linux &lt;a href="https://bsdnerds.org/what-is-linux-shell/"&gt;commands&lt;/a&gt;.  A script can simply be a file with a list of commands and the &lt;em&gt;.sh&lt;/em&gt; extension. If you are new to Linux, you can use &lt;a href="https://www.practicelinux.com/"&gt;this site&lt;/a&gt; to practice. &lt;/p&gt;

&lt;p&gt;The second step is to make sure that your script file is executable. In Linux and macOS, you can check if a file is executable by running the &lt;code&gt;ls -l&lt;/code&gt; command and then looking for an &lt;strong&gt;x&lt;/strong&gt; in the permissions column. &lt;/p&gt;

&lt;p&gt;The example below shows the difference:&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;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.sh
&lt;span class="nt"&gt;-rwxrwxr-x&lt;/span&gt; 1 frank frank   43 mei 29 16:30 hello.sh
&lt;span class="nt"&gt;-rw-rw-r--&lt;/span&gt; 1 frank frank 8192 jul  1 19:41 not-executable.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If it isn’t executable, run the following command in Terminal.&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="nb"&gt;chmod&lt;/span&gt; +x script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To start a script you write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  When to use Bash scripts? 😁
&lt;/h2&gt;

&lt;p&gt;I can write a shell script when I need to, but then continue working in Python or Perl or C++ or whatever real programming language I'm most comfortable with at the time (these days mostly C++).&lt;/p&gt;

&lt;p&gt;For example, one of my recent side projects involved crunching data from a database, working with various embedded systems and more. Shell is not the right tool for that kind of application.&lt;/p&gt;

&lt;p&gt;Bash is more suited for when you write a lot of commands in the shell anyway and want to automate that.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>bash</category>
    </item>
    <item>
      <title>Vim Resources: A Hacker's Guide</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Thu, 01 Jul 2021 15:19:59 +0000</pubDate>
      <link>https://dev.to/basicspython/vim-resources-a-hacker-s-guide-353p</link>
      <guid>https://dev.to/basicspython/vim-resources-a-hacker-s-guide-353p</guid>
      <description>&lt;p&gt;I have discovered and used vim as my primary text editor for the past few years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vim&lt;/strong&gt;, an acronym meaning &lt;a href="https://en.wikipedia.org/wiki/Vim_(text_editor)" rel="noopener noreferrer"&gt;Vi IMproved&lt;/a&gt;, is a ubiquitous text editor available on nearly every system imaginable. &lt;/p&gt;

&lt;p&gt;Even in the most arcane corners of life, you will find a version of vim. From the data center to the local science lab to the classroom to the server farm, there is probably a version of vim running.&lt;/p&gt;

&lt;p&gt;Vim is a text editor that operates in the console. It is very popular among programmers, and is particularly well-suited to editing source code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ie15xe7dgtyupfow74p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ie15xe7dgtyupfow74p.png" alt="vim comic"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vim is often used by &lt;a href="https://bsdnerds.org/what-is-linux-shell/" rel="noopener noreferrer"&gt;terminal users&lt;/a&gt;. But it can also be used inside modern IDEs (vim mode) and there are graphical versions as well (gVim)&lt;/p&gt;

&lt;p&gt;In this post, I'm going to lay out a Hacker's Guide to Vim. This will be a collection of the best "Vim resources" that I have come across. &lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;Vim is a very complex tool with hundreds of commands and thousands of plugins that can be used to extend Vim and add functionality. So where do you start?&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://vim.is/" rel="noopener noreferrer"&gt;learn vim&lt;/a&gt; by exercise. This site offers interactive exercises. Vim is one of the programs you learn by doing.&lt;/p&gt;

&lt;p&gt;Of course, the official &lt;a href="https://www.vim.org/" rel="noopener noreferrer"&gt;vim website&lt;/a&gt; is a good resource as well. It has some documentation and lets you download vim. If you use Linux vim or vi is probably already installed, the same for Mac OS X users.&lt;/p&gt;

&lt;p&gt;How to setup &lt;a href="https://www.fullstackpython.com/vim.html" rel="noopener noreferrer"&gt;vim for Python&lt;/a&gt;. I find it quite useful, as I write quite a lot of Python code. Of course you can write Python code in any editor you want, I find for small scripts it's very practical to fire up vim.&lt;/p&gt;

&lt;p&gt;An &lt;a href="https://opensource.com/article/19/3/getting-started-vim" rel="noopener noreferrer"&gt;introduction to vim&lt;/a&gt;. This article shows you the basics of vim. How to open a terminal, vim and how to quit (&lt;code&gt;ESC&lt;/code&gt; &lt;code&gt;ZQ&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Settings up &lt;a href="https://freshman.tech/vim-javascript/" rel="noopener noreferrer"&gt;vim for javascript&lt;/a&gt;. If you write a lot of JS code, you can use vim. You can also use vim-mode inside visual studio code or phpstorm.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://devhints.io/vim" rel="noopener noreferrer"&gt;cheatsheet for vim&lt;/a&gt;. Shows an overview for the vim commands. While a cheat sheet is useful, i think it's better to practice a lot with the commands.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://www.tabnine.com/blog/top-15-vim-plugins-100-free/" rel="noopener noreferrer"&gt;list of vim plugins&lt;/a&gt;. Personally I use NerdTree quite a bit.&lt;/p&gt;

&lt;p&gt;Do you know any others? Which plugins do you use?&lt;/p&gt;

</description>
      <category>vim</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to Learn Linux: An Easy Guide</title>
      <dc:creator>PythonBasics</dc:creator>
      <pubDate>Tue, 29 Jun 2021 16:50:04 +0000</pubDate>
      <link>https://dev.to/basicspython/how-to-learn-linux-an-easy-guide-5ga</link>
      <guid>https://dev.to/basicspython/how-to-learn-linux-an-easy-guide-5ga</guid>
      <description>&lt;p&gt;Learning a new skill always begins with a simple "how to" guide. The same holds true for learning Linux.&lt;/p&gt;

&lt;p&gt;If you're interested in Linux, a complete and open source operating system, you've likely encountered some "how to" guides. But learning Linux is more than just following instructions—it's about understanding why you do what you do, and not just what to do.&lt;/p&gt;

&lt;p&gt;As a beginner, knowing how to get started with Linux can be tricky. You may find yourself overwhelmed by the sheer number of resources out there. How do you choose? What's going to work for you and your unique set of skills?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7Q5Ag4JT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xw9rtl6k70yoid13szfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7Q5Ag4JT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xw9rtl6k70yoid13szfl.png" alt="linux on the desktop"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First Things First
&lt;/h2&gt;

&lt;p&gt;Of course, the first step is to get Linux on a computer. For new users, it's not that hard—Linux is now available on everything from Chromebooks to Raspberry Pis. &lt;/p&gt;

&lt;p&gt;If you want to install Linux yourself, there are many &lt;a href="https://distrowatch.com/"&gt;distributions&lt;/a&gt; to choice from. Some examples for beginners are shown &lt;a href="https://bsdnerds.org/best-linux-for-beginner/"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Most of these Linux distribution provide the same software and differ mainly in system details and package management. You can run your favorite web browser and programs on any of them, but the time you may lose and how much manual config you need to do depends per distro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pEzSk9zJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vrz0zmifqm535dtjld9i.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pEzSk9zJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vrz0zmifqm535dtjld9i.jpeg" alt="linux meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you've installed a Linux environment, it's a good idea to learn the command line. There are hundreds of commands, it's a good time investment to &lt;a href="https://www.practicelinux.com/"&gt;practice the command line&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is Linux for?
&lt;/h2&gt;

&lt;p&gt;It is not for everyone. But if you're a programmer who wants to learn more about how the operating system works, it could be a great way to advance your career.&lt;/p&gt;

&lt;p&gt;Besides developers, sysadmins must know Linux. Linux is the most widely used server operating in the world. You can easily spin up a Linux VPS for as little as 5 bucks a month.&lt;/p&gt;

&lt;p&gt;These days Linux comes with tons of apps and many apps that used to run on the desktop now run on the web. Apps like office, accounting and others. &lt;/p&gt;

&lt;p&gt;It's easier to switch to Linux than it was 15 years ago, but if it's for you depends on what you want to do with your computer. &lt;/p&gt;

&lt;p&gt;Personally I use all operating systems including Apple OS X, Windows, Linux and others. Reason being it depends on what the client wants (I'm a freelancer). Chances are you need to use Linux for your client in the future.&lt;/p&gt;

&lt;p&gt;Almost all of your favorite programming languages can be used in Linux, so it's a great platform for web programming as well as embedded programming. &lt;/p&gt;

&lt;p&gt;Linux uses another desktop system (X/Wayland), but you can create cross-platform apps with Linux as well using something like &lt;a href="https://pythonpyqt.com/"&gt;PyQt&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
