<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ System administration - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ System administration - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 08 Jun 2026 11:38:35 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/system-administration/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ What is a Process ID? How to Use PIDs for Process Management ]]>
                </title>
                <description>
                    <![CDATA[ Have you ever wondered how a computer knows which program’s output to display, especially when multiple programs are running simultaneously? This is possible because of the Process ID (PID). A PID is a unique identifier that helps the operating syste... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-a-process-id-process-management-tutorial/</link>
                <guid isPermaLink="false">679bb8262a7ebc3c99ecb6ea</guid>
                
                    <category>
                        <![CDATA[ System administration ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cmd ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Syeda Maham Fahim ]]>
                </dc:creator>
                <pubDate>Thu, 30 Jan 2025 17:34:30 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1738252940529/8ee6969c-7a74-4b2f-bd33-f2d48332e8e0.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Have you ever wondered how a computer knows which program’s output to display, especially when multiple programs are running simultaneously? This is possible because of the Process ID (PID).</p>
<p>A PID is a unique identifier that helps the operating system track and manage running programs.</p>
<p>In this article, we’ll explore what a Process ID (PID) is, why it’s important, and how you can use it to manage processes, including terminating a program when necessary.</p>
<h2 id="heading-understanding-pids-how-does-a-computer-identify-running-programs">Understanding PIDs: How Does a Computer Identify Running Programs?</h2>
<p>Let’s consider two Python scripts:</p>
<ul>
<li><p><code>hello_maham.py</code> → <code>print("Hello Maham")</code></p>
</li>
<li><p><code>hello_amna.py</code> → <code>print("Hello Amna")</code></p>
</li>
</ul>
<p>How does the computer know that <code>hello_maham.py</code> should show the output "Hello Maham" and not "Hello Amna" from <code>hello_amna.py</code>?</p>
<p>If you think it just happens magically, then think again! This happens because of something called a <strong>Process ID (PID)</strong>.</p>
<p>In any operating system, processes are constantly running in the background to execute tasks. Whether it’s a program you launched manually or a system task running automatically, each of these processes is assigned a unique PID.</p>
<p>Let’s break this down further.</p>
<h2 id="heading-what-is-a-process-id-pid">What is a Process ID (PID)?</h2>
<p>Simply put,</p>
<blockquote>
<p><em>A</em> <strong><em>Process ID (PID)</em></strong> <em>is a unique identifier assigned to each process running in an operating system.</em></p>
</blockquote>
<p>Let’s understand what’s going on in the background.</p>
<p>Whenever a program runs, no matter the language, it needs memory and time to execute. So, when you run a program, the operating system creates a new process for it. To identify the program, the computer assigns it a unique identifier – the <strong>Process ID</strong> – and then it begins execution.</p>
<p>Let’s revisit our previous example:</p>
<ul>
<li><p>When you run <code>hello_maham.py</code>, the system assigns a unique PID to it.</p>
</li>
<li><p>Similarly, when you run <code>hello_amna.py</code>, it gets its own unique PID.</p>
</li>
</ul>
<p>This is why the outputs of both scripts don’t overlap!</p>
<p>Now, you got it? Each time a new process is created, the system ensures that every process gets a different PID. This PID is used by the system to manage and interact with processes. Its called <strong>Uniqueness Of PIDs</strong></p>
<h3 id="heading-how-does-the-computer-handle-this-id">How Does the Computer Handle This ID?</h3>
<p>Now you may wonder, does the computer have millions of PIDs? After all, we could be running many programs at once.</p>
<p>The answer is <strong>no</strong>. Once a process ends, the PID becomes available again for reuse. This means that PIDs are reusable, and there is no shortage of them.</p>
<h3 id="heading-but-why-and-when-do-i-need-pids">But Why and When Do I Need PIDs?</h3>
<p>Now that you know what a PID is, you might be wondering: <strong>Why do I need this?</strong></p>
<p>Well, PIDs are actually very useful for system administrators and developers. They help in:</p>
<p><strong>System admins and developers manage processes</strong>. Like, if something’s not working properly, you need to be able to find and stop the specific process causing the issue, right?</p>
<p>PIDs are also important for <strong>resource management<em>.</em></strong> The operating system uses them to allocate memory and CPU time to each process, so no one program hogs everything.</p>
<h2 id="heading-how-to-find-the-pid-of-a-running-program">How to Find the PID of a Running Program</h2>
<p>Up until now, we've covered the theoretical concepts. Now, you might be wondering: How do I actually find the PID of a program on my computer?</p>
<p>Well, here are some simple ways to find the <strong>PID</strong> of a running program using various commands in the terminal.</p>
<p>Note, that I’ve used Bash to execute the PID command and included a screenshot for it. But for other terminals like CMD and PowerShell, the respective commands are mentioned at the end.</p>
<p>Some of these methods include:</p>
<h3 id="heading-1-using-the-ps-command">1. Using the <code>ps</code> Command</h3>
<p>The <code>ps</code> command shows a snapshot of the current running processes and their PIDs.</p>
<pre><code class="lang-bash">ps aux | grep &lt;program_name&gt;
</code></pre>
<p>Here’s an example:</p>
<pre><code class="lang-bash">ps aux | grep python
</code></pre>
<p>This command will display all the Python processes running on the system, along with their PIDs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1737914130884/686568b8-77d5-439d-a08b-61e18d4e5d56.png" alt="Python processes running plus their PIDs" class="image--center mx-auto" width="875" height="195" loading="lazy"></p>
<h3 id="heading-2-using-the-top-command">2. Using the <code>top</code> Command</h3>
<p>The <code>top</code> command shows real-time information about processes running on the system, including their PIDs.</p>
<pre><code class="lang-bash">top
</code></pre>
<p>Look under the <strong>PID</strong> column to find the process you're interested in.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1737914189672/43f93890-2e06-42a8-b61b-9103227cf912.png" alt="Result of running the top command" class="image--center mx-auto" width="1066" height="782" loading="lazy"></p>
<h2 id="heading-how-to-kill-a-process-using-its-pid">How to Kill a Process Using its PID</h2>
<p>What if you want to <strong>kill</strong> the program? Whether it’s a cron job or a program that is misbehaving or running for too long, how can you stop it using the PID?</p>
<p>Let’s go through how you can do that:</p>
<h3 id="heading-1-using-the-kill-command">1. Using the <code>kill</code> Command</h3>
<p>To terminate a process, use the <code>kill</code> command followed by the PID:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">kill</span> &lt;PID&gt;
</code></pre>
<p>Here’s an example:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">kill</span> 1234
</code></pre>
<p>This command will gracefully terminate the process with PID <code>1234</code>.</p>
<h3 id="heading-2-using-the-kill-9-command-force-kill">2. Using the <code>kill -9</code> Command (Force Kill)</h3>
<p>If the process does not stop after using the regular <code>kill</code> command, you can force kill it using the <code>kill -9</code> command:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">kill</span> -9 &lt;PID&gt;
</code></pre>
<p>Here’s an example:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">kill</span> -9 1234
</code></pre>
<p>This forcefully terminates the process and bypasses any shutdown procedures it may have, so make sure you use it with caution.</p>
<h2 id="heading-how-to-stop-cron-jobs-using-a-pid-practical-example">How to Stop Cron Jobs Using a PID – Practical Example</h2>
<p>So, let’s say you’ve got a cron job running, and it’s acting up. How do you stop it?</p>
<p>Cron jobs are scheduled tasks that run automatically at specific intervals.</p>
<p>If you need to stop a running cron job, you can use the PID of the process running the cron job.</p>
<h3 id="heading-stop-a-running-cron-job">Stop a Running Cron Job</h3>
<p>If you need to stop a running cron job, you can use the PID of the process running the cron job.</p>
<p>Here’s how to kill a cron job:</p>
<ol>
<li><p><strong>Find the PID</strong>: Use the <code>ps</code> or <code>pgrep</code> command to find the PID of the cron job. Example:</p>
<pre><code class="lang-bash"> ps aux | grep cron
</code></pre>
</li>
<li><p><strong>Kill the Cron Job</strong>: Once you find the PID of the cron job, use the <code>kill</code> or <code>kill -9</code> command to stop it.</p>
</li>
</ol>
<h2 id="heading-commands-for-other-terminals">Commands For Other Terminals:</h2>
<p>Here’s how to manage processes in different terminals:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Action</td><td>CMD Command</td><td>PowerShell Command</td><td>Bash Command</td></tr>
</thead>
<tbody>
<tr>
<td><strong>List all processes</strong></td><td><code>tasklist</code></td><td><code>Get-Process</code></td><td><code>ps aux</code></td></tr>
<tr>
<td><strong>Find process by name</strong></td><td><code>tasklist</code></td><td><code>findstr &lt;name&gt;</code></td><td><code>Get-Process</code></td></tr>
<tr>
<td><strong>Kill process by PID</strong></td><td><code>taskkill /PID &lt;PID&gt;</code></td><td><code>Stop-Process -Id &lt;PID&gt;</code></td><td><code>kill &lt;PID&gt;</code></td></tr>
<tr>
<td><strong>Force kill process</strong></td><td><code>taskkill /F /PID &lt;PID&gt;</code></td><td><code>Stop-Process -Id &lt;PID&gt; -Force</code></td><td><code>kill -9 &lt;PID&gt;</code></td></tr>
</tbody>
</table>
</div><h2 id="heading-conclusion">Conclusion</h2>
<p>Understanding <strong>Process IDs</strong> is key to managing processes on your computer. With simple commands, you can easily find and stop problematic processes, ensuring smooth system operation.</p>
<p>So, stay in control of your system with PIDs!</p>
<p><strong>Stay connected — @syedamahamfahim 🐬</strong></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Must-Have Network Certifications for IT Managers ]]>
                </title>
                <description>
                    <![CDATA[ In this increasingly digital world, Information Technology careers have expanded and blossomed to suit nearly everyone’s skill sets. One such lucrative career is IT Management. IT Managers earn an average of $91,000 a year. This salary bracket can ac... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/must-have-network-certifications-for-it-managers/</link>
                <guid isPermaLink="false">66bb5254074d8d7b12eae37e</guid>
                
                    <category>
                        <![CDATA[ Certification ]]>
                    </category>
                
                    <category>
                        <![CDATA[ computer networking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Network Engineering ]]>
                    </category>
                
                    <category>
                        <![CDATA[ System administration ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ry Vee ]]>
                </dc:creator>
                <pubDate>Thu, 07 Jan 2021 17:09:49 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5ff3d53d7af2371468bb77eb.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this increasingly digital world, Information Technology careers have expanded and blossomed to suit nearly everyone’s skill sets. One such lucrative career is IT Management.</p>
<p>IT Managers earn an average of $91,000 a year. This salary bracket <a target="_blank" href="https://www.indeed.com/career-advice/careers/what-does-an-it-manager-do">can actually range</a> from $21,000 to $180,000 annually, depending on the industry of the IT Manager. In each case, though, the job entails problem-solving and project management.</p>
<p>Specifically, an IT Manager position has the following job description:</p>
<ul>
<li>Analyze, plan, and design the company’s information system needs and execute such plans and designs.</li>
<li>Monitor and improve such a system (which may also include the company’s full telecommunications infrastructure) and recommend any upgrades required to its top management.</li>
<li>Manage the company’s IT policies, including information policy, data/information access, and regulatory compliance.</li>
<li>Hire and lead system administrators and other personnel who will be part of their team.</li>
<li>Identify the training needs of the team and be able to arrange for such training and measure the benefits.</li>
</ul>
<p>The first three above, as you will see, require the IT Manager to be astute in the technical aspects of the job. In particular, they must be competent in network-related areas. They should master these skills if they want to reach the higher tier of the salary scale.</p>
<p>Luckily, there are many training programs designed for IT Management professionals. These aren’t just regular training programs but fully-fledged certification courses. What follows are some of the top programs.</p>
<h2 id="heading-cisco-certified-network-associate-ccnahttpswwwciscocomcenustraining-eventstraining-certificationscertificationsassociateccnahtml"><a target="_blank" href="https://www.cisco.com/c/en/us/training-events/training-certifications/certifications/associate/ccna.html">Cisco Certified Network Associate (CCNA)</a></h2>
<p><img src="https://lh5.googleusercontent.com/f4S28XjFyAb80RUONagOn7wzEbSnvAnrI_jgM_ykBpHnh6EnDMdKiLuHR0giQWGL2zffx0aoOhDZ9Yp6kwcgVlibSCi41DsUKKn1izXd9StcBhgRxmCWl5bveDVAP-dRPg" alt="Image" width="1600" height="882" loading="lazy"></p>
<p>The Cisco Certified Network Associate (CCNA) course is probably the most widely respected certification out there for IT professionals. It is an intermediate-level certification course. A CCNA holder has high competence in configuring, operating, and troubleshooting routed networks.</p>
<p>To get this certification, you must take and pass the CCNA 200-301 examination, which deals with fundamentals on network security, internet protocols, automation, and other security-related skills. </p>
<p>The exam is composed of 120 questions where each question has an associated score. To pass the exam, you must have a score of at least 800 (the highest attainable is 1,000). The cost for this exam is $300.</p>
<h2 id="heading-cisco-certified-network-professional-ccnphttpswwwciscocomcenustraining-eventstraining-certificationscertificationsprofessionalhtml"><a target="_blank" href="https://www.cisco.com/c/en/us/training-events/training-certifications/certifications/professional.html">Cisco Certified Network Professional (CCNP)</a></h2>
<p><img src="https://lh6.googleusercontent.com/u7bKANhre4cxUye5Lnx150ni7d0Dx0rsZuYQmD0wqMpVYSGi19MRmHGAykzCmEGJqNiYpN8FlrrZniaupJkUZxXiX133HGEk13FuAw9SBV2mb16ArYm9g0C-7vmecok_0A" alt="Image" width="1600" height="905" loading="lazy"></p>
<p>Whereas CCNA covers the basic to intermediate skill level, the Cisco Certified Network Professional certification is for those who want to achieve a higher level of certification.</p>
<p>Unlike the CCNA, which requires the candidate to pass one exam, CCNP certification requires two exams: a core exam, covering fundamental networking concepts, and a concentration exam in any one area of intended focus (network design, automation, and so on).</p>
<p>It’s best to get a CCNP certificate after at least three years of experience in this industry. You don't need to take the CCNA before the CCNP examination. The costs for CCNP examinations range anywhere from $900 to $1,200. </p>
<h2 id="heading-secure-access-service-edge-sasehttpswwwcatonetworkscomsasesase-expert-level-1"><a target="_blank" href="https://www.catonetworks.com/sase/sase-expert-level-1/">Secure Access Service Edge (SASE)</a></h2>
<p><img src="https://lh6.googleusercontent.com/3ozE3MSwh2rMMMvJJkzoJfHRGXH3JFgv-gM-04tDn7Ku8vo4Ry7PlPQZoN5JpbeO-K4tWAQB375wabpPhfmvDJlHnlCvOsd719E4rz67F9sHxAhH63QYc8O0sSonpPs54w" alt="Image" width="1600" height="903" loading="lazy"></p>
<p>SASE is a new technology (as described in Gartner’s “<a target="_blank" href="https://thehackernews.com/2019/11/network-security-sase.html">The Future of Network Security is in the Cloud</a>”). This architecture integrates Wide Area Network (WAN) and some native security protocols of the cloud. </p>
<p>Cato Networks is a company that offers a cloud-based SASE platform, and they also offer a certification course for SASE so you can get familiarized with this new technology.</p>
<p>For this particular architecture, the center of a company’s network access is its physical data centers. For SASE, that center transfers over to the cloud. </p>
<p>In a nutshell, SASE makes it more efficient for IT Managers to administer the network as it removes some of the complexities associated with traditional physical data center setup.</p>
<p>To get a SASE certification, you need to take the SASE Expert Level 1 course and pass the associated examination (minimum score must be 85%).</p>
<h2 id="heading-comptia-cloudhttpswwwcomptiaorgcertifications"><a target="_blank" href="https://www.comptia.org/certifications">CompTIA cloud+</a></h2>
<p><img src="https://lh4.googleusercontent.com/UCtX_yh_g-kbwR-weKXWdTBu6gJ78j90l35tcInCuICzy2tJKEmO6nrSvdNTP4P4S1nkFQRkQXpGi2jFmU2SMTkHxdIKE-vMrDcb4iY3BMFlWoj5aPpj1G6oQ-SEK3Jj6A" alt="Image" width="1600" height="903" loading="lazy"></p>
<p>CompTIA’s cloud+ certifications are for those who want to validate their system administration, cloud services maintenance, and other network-related knowledge and skills.</p>
<p>Currently, there are two such exams you can take to get a certification.</p>
<p>The CV0-002 (launched in February of 2018) is designed for candidates whose tasks include integrating various solutions into a business-specific system. It has 90 questions max and can be taken in 90 minutes. The passing score (from 100 to 900) is 750. The cost to take this exam is $329.</p>
<p>The CV0-003 (still in beta mode) is designed to get the candidate vendor-agnostic in creating solutions for their organizations. It has 110 questions that can be answered in 165 minutes. At the moment, there isn’t any finalized passing mark, and since it’s in beta, the cost to take this particular certification is just $50.</p>
<p>In both cases, it is recommended that the candidate has at least two years of experience.</p>
<h2 id="heading-aws-certified-solutions-architecthttpsawsamazoncomcertificationcertified-solutions-architect-professional"><a target="_blank" href="https://aws.amazon.com/certification/certified-solutions-architect-professional/">AWS Certified Solutions Architect</a></h2>
<p><img src="https://lh4.googleusercontent.com/pqePNLAG7Qr0uEJ2hMA78bE39byopwvRHvsnhQNNLdWM4GXj8tSqLCD6FWjvbdKJPVX4O8qx87kFhbw1AErxvg2k5IkGOZJWn-zfEn2epyT5c0UPAUBKkBmpSF-pFqhsvw" alt="Image" width="1600" height="903" loading="lazy"></p>
<p>The AWS Certified Solutions Architect certification is geared for professionals who design network architecture involving AWS. It requires that the candidate has at least two years of experience in operating and administering AWS applications.</p>
<p>It is one of the more sought-after certifications, as Amazon is the top vendor for cloud computing services. Hence, more and more organizations hire professionals that can navigate through this infrastructure.</p>
<p>With a price tag of $300 to take the exam, you should prepare for it thoroughly. The great thing is Amazon provides some <a target="_blank" href="https://aws.amazon.com/certification/certification-prep/">preparatory materials</a> for those interested in acquiring this prized certification. And <a target="_blank" href="https://www.freecodecamp.org/news/pass-the-aws-certified-solutions-architect-exam-with-this-free-10-hour-course/">so does freeCodeCamp</a>.</p>
<h2 id="heading-salesforce-certified-development-lifecycle-and-deploymenthttpstrailheadsalesforcecomcredentialsdevelopmentlifecycledeploymentdesigner"><a target="_blank" href="https://trailhead.salesforce.com/credentials/developmentlifecycledeploymentdesigner">Salesforce Certified Development Lifecycle and Deployment</a></h2>
<p><img src="https://lh5.googleusercontent.com/-3Tgw4LsvcllNhxCS7pnqLOlKpQOaSbXQ7p_oYODhoKnqUKDyTceT9auLA_PibGt3u4o925nBN4ragylZ6A43khtInmWoZ6vZPQ-HJ5XGhpm7pEmVz7WXFGO1BMizNc_iQ" alt="Image" width="1600" height="904" loading="lazy"></p>
<p>As Salesforce is a key enterprise CRM solution, organizations often count on this SaaS platform to manage their relationship with customers as well as provide centralized access for related departments.</p>
<p>This exam also has a hefty price tag - $400. The exam itself has 60 multiple choice questions and requires the candidate to answer at least 60% of them correctly. Those failing the exam are allowed to retake it for a $200 fee.</p>
<h2 id="heading-in-conclusion">In conclusion</h2>
<p>These certifications are by no means the only ones that can enhance an IT Manager’s skills (and hence, career prospects). There are also others related to project management. </p>
<p>What is important to note here is that in the ever-changing technology landscape, it’s always essential to put yourself into continuous learning mode.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Another way to Learn Linux Administration ]]>
                </title>
                <description>
                    <![CDATA[ Looking to learn to administer Linux computers? Excellent choice. While it can hold its own in the consumer desktop space, where Linux absolutely dominates is the world of servers, especially virtual and cloud servers.  Because most serious server ad... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/another-way-to-learn-linux-administration/</link>
                <guid isPermaLink="false">66b995a1c39234149cf010f0</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ servers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ System administration ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ David Clinton ]]>
                </dc:creator>
                <pubDate>Wed, 21 Aug 2019 13:30:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9ca0b7740569d1a4ca4a58.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Looking to learn to administer Linux computers? Excellent choice. While it can hold its own in the consumer desktop space, where Linux absolutely dominates is the world of servers, especially virtual and cloud servers. </p>
<p>Because most serious server administration these days takes place remotely, working through a GUI interface of one sort or another just adds unnecessary overhead. </p>
<p>If you want to manage the servers and network architectures that are currently attracting all the attention, you’re going to have to learn your way around the Linux command line.</p>
<p>The good news is that the core Linux command set is going to work for you across geographic and corporate lines, just about anywhere computers and business intersect. The better news is that, relatively speaking, Linux skills have staying power.</p>
<p>Because it’s such a mature and stable operating system, most of the tools used a quarter century ago are still just as effective as ever, and most of the tools used today will probably still be actively used after another quarter century. Learning Linux, in other words, is a lifelong investment.</p>
<h4 id="heading-how-linux-in-action-works">How Linux in Action works</h4>
<p>But you’re busy and you’ve got deadlines. Well, I can’t promise you that mastering Linux will be as simple as learning to tie your shoes. But I can help you focus like a laser so you can leave all the stuff you don’t need lying on the highway, choking on your exhaust fumes (assuming you’re not driving a Tesla, of course).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/08/image-146.png" alt="Image" width="600" height="400" loading="lazy">
<em>Manning's Linux in Action</em></p>
<p>How am I going to pull that one off? My <a target="_blank" href="https://www.manning.com/books/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9">Linux in Action book</a> turns technology training sideways. That is, while other books, courses, and online resources organize their content around categories (“Alright boys and girls, everyone take out your slide rules and charcoal pencils. Today we’re going to learn about Linux file systems.”), I use real-world projects to teach.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/08/image-147.png" alt="Image" width="600" height="400" loading="lazy">
_The skills and associated topics covered by <a target="_blank" href="https://www.manning.com/books/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9">Linux in Action</a>_</p>
<p>So, for example, I could have built an entire chapter (or two) on Linux file systems. But instead, you’ll learn how to build enterprise file servers, system recovery drives, and scripts to replicate archives of critical data. In the process, you’ll pick up the file system knowledge as a free bonus.</p>
<p>Don’t think I’m going to cover every Linux administration tool. That’s impossible: there are literally thousands of them out there. But don’t worry. The core skills and functionality needed through the first years of a career in Linux administration will be covered, and covered well, but only when needed for a practical, mission-critical project. When you’re done, you’ll have learned no less than what you would have from a traditional source, but you’ll also know how to complete more than a dozen major administrative projects, and be comfortable tackling dozens more.</p>
<p>Are you in? I thought so.</p>
<h2 id="heading-who-should-read-this-book">Who should read this book</h2>
<p>This book is designed to help you acquire a solid range of Linux administration skills. Perhaps you’re a developer who wants to work more directly with the server environment within which your applications will live. Or maybe you’re ready to make your move in the server administration or DevOps worlds. Either way, you belong with us.</p>
<p>What should you already know? At the very least, you should be comfortable working with the files, networks, and basic resources of a modern operating system. Experience with system administration, network management, and programming languages definitely won’t hurt, but are not required. Most of all, you should be unafraid of exploring new environments and enthusiastic about experimenting with new tools.</p>
<p>One more thing: you’re expected to know how to perform a simple and straightforward installation of a Linux operating system.</p>
<p>Just a few words about the way the book is built. Each chapter of Linux in Action covers one or two practical projects — except chapter 1. Chapter 1, because it’s designed to fill in any very basic gaps that might exist in your Linux knowledge, will be different from all the others. Don’t need the basics? I’m absolutely sure you’ll find lots of fun new toys to play with in chapter 2.</p>
<p>Along with the book’s projects, I’ll also introduce you to the individual skills and tools that you’ll need. In addition, each chapter’s projects usually build on the skills you’ve learned previously in the book. Just to show you that I mean business, here’s a fairly complete list of the main projects (under the Chapter heading), skill domains, and tools you’ll meet through the course of the book:</p>
<p>There are currently dozens of actively maintained Linux distributions. Even though most of the Linux basics are common to all distros (distributions), there’ll always be little things that’ll work “here” but not “there.” For practicality’s sake, I’m going to concentrate mostly on two distributions: Ubuntu and CentOS. Why those two? Because each represents an entire family of distributions. Ubuntu shares its roots with Debian, Mint, Kali Linux, and others, while CentOS enjoys the company of Red Hat Enterprise Linux (RHEL) and Fedora.</p>
<p>That’s not to say I don’t value other distros like Arch Linux, SUSE, and Gentoo, or that what you’ll learn in this book won’t help you work with those environments. But fully covering the Ubuntu and CentOS families means grabbing the largest single slice of the Linux pie that I could reach using just two distributions.</p>
<p><em>This article was adapted from the introduction to my</em> <a target="_blank" href="https://www.manning.com/books/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9"><em>Linux in Action</em></a><em>. Besides the book, you can also work through</em> <a target="_blank" href="https://www.manning.com/livevideo/linux-in-motion?a_aid=bootstrap-it&amp;a_bid=0c56986f&amp;chan=motion1"><em>Linux in Motion</em></a> <em>— a hybrid course made up of more than two hours of video and around 40% of the text of Linux in Action.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to manage Ubuntu Snaps: the stuff no one tells you ]]>
                </title>
                <description>
                    <![CDATA[ Canonical’s Snaps are definitely the real deal. The secure and portable Linux package management system is more than a geeky tool for showing off your tech creds. Just consider the growing list of companies that have already bought in and are providi... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/managing-ubuntu-snaps/</link>
                <guid isPermaLink="false">66b9960ec39234149cf01101</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ snaps  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ System administration ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ David Clinton ]]>
                </dc:creator>
                <pubDate>Mon, 19 Aug 2019 13:23:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/08/lego.svg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a target="_blank" href="https://snapcraft.io/">Canonical’s Snaps</a> are definitely the real deal. The secure and portable Linux package management system is more than a geeky tool for showing off your tech creds. Just consider the <a target="_blank" href="https://snapcraft.io/store">growing list</a> of companies that have already bought in and are providing their desktop software through snaps, including Blender, Slack, Spotify, Android Studio, and Microsoft’s (Microsoft!) Visual Studio Code. And don’t forget that the real growth of the snap system is in the world of IoT devices and servers rather than desktops.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/08/image-138.png" alt="Image" width="600" height="400" loading="lazy">
<em>The snapcraft.io site: where snap developers and users meet</em></p>
<p>But as the popularity of snaps grows — some new Linux distros come with the snapd service installed by default — you might be forgiven for wondering how you’re supposed to make them work. Don’t get me wrong: there are all kinds of web-based guides for finding, installing, and removing snaps. And there are places developers can go for help building their applications as snaps. But right now I’m talking about <em>configuring</em> their behavior or <em>troubleshooting</em> when things go wrong.</p>
<p>Just for the record, you search for new snaps to install using something like:</p>
<pre><code>snap find aws
</code></pre><p>When you find a package you like, you install it using:</p>
<pre><code>snap install aws-cli
</code></pre><p>Oh, and you delete ‘em with remove.</p>
<pre><code>snap remove aws-cli
</code></pre><p>There. You can’t say I never taught you anything. But that’s not what this article is about. What we are going to talk about is real management stuff, like changing configurations or troubleshooting things that broke.</p>
<h2 id="heading-understanding-the-snap-file-system">Understanding the snap file system</h2>
<p>Well, how’s that going to be different from the way you’d normally do it on Linux? Configuration files are usually going to be in <em>/etc/</em>, processes will reveal their deepest secrets through <em>systemctl</em>, and logs will find their way to <em>/var/log/</em>.</p>
<p>Not so fast there, pilgrim. That’s not always how things work in Snapland. You see, a snap is really nothing more than a single compressed file (named using the <em>.snap</em> extension) containing the entire file system needed for running a package. These files are never actually decompressed and “installed,” but are mounted dynamically at run time and exposed to the user as a virtual environment.</p>
<p>This means that the resources used by a program might not actually exist on the host system. Thus, for example, the Nextcloud snap creates its own versions of Apache and MySQL for its backend. So if, say, you want to configure a new virtual host in <em>/etc/apache2/sites-available/</em> or create a new MySQL user the traditional way, you’re out of luck.</p>
<p>The advantages of this approach are significant: installation and setup will generally be much smoother and you’re far less likely to run into dependency issues and conflicts. But it also at least appears to mean that you get less access to the vital organs that power your software.</p>
<p>So, then, where does everything snappy happen? Take a look through your host file system for yourself: you’ll probably find more snap directories than you can shake a stick at (should you be so inclined). Here are the directories the snap install process probably created:</p>
<p>/snap/<br>/var/snap/<br>/var/lib/snapd/<br>/home/username/snap/</p>
<p>That many? What for? Let’s go through those one at a time. Feel free to poke around your own Linux machine to see all this for yourself.</p>
<p>The actual <em>.snap</em> files are kept in the <em>/var/lib/snapd/snaps/</em> directory. When running, those files will be mounted within the root directory <em>/snap/</em>. Looking over there — in the /snap/core/ subdirectory — you’ll see what looks like a regular Linux file system. It’s actually the virtual file system that’s being used by active snaps.</p>
<pre><code>ls /snap/core/current
bin   dev  home  lib64  meta  opt   root  sbin  srv  tmp  <span class="hljs-keyword">var</span>
boot  etc  lib   media  mnt   proc  run   snap  sys  usr  writable
</code></pre><p>And here’s a subdirectory containing (read-only) configuration files used by the Nextcloud snap. That’ll only be there, of course, if you’ve installed Nextcloud (<em>snap install nextcloud</em>).</p>
<pre><code>ls /snap/nextcloud/current/conf/
httpd.conf  mime.types  ssl.conf
</code></pre><p>Ok. Now what about <em>/var/snap/</em>? Very much like traditional inhabitants of <em>/var/</em>, the files within <em>/var/snap/</em> contain various forms of user data and log files — the kind of data that’s generated and consumed by applications during operations. This example shows directories for data used by some desktop-related snaps, including the AWS CLI and the Slack team communication tool. (OK, technically speaking, the AWS CLI isn’t a desktop tool.)</p>
<pre><code>ls /<span class="hljs-keyword">var</span>/snap
aws-cli  core18           gnome-system-monitor  gnome-calculator
brave    gnome<span class="hljs-number">-3</span><span class="hljs-number">-26</span><span class="hljs-number">-1604</span>  gnome-characters      gtk-common-themes
core     gnome<span class="hljs-number">-3</span><span class="hljs-number">-28</span><span class="hljs-number">-1804</span>  gnome-logs            slack
</code></pre><p>Dive deep into the subdirectories within _/var/snap/_on your machine and see what you can discover.</p>
<p>That leaves just the <em>~/snap</em> directory that exists in a user’s home directory on at least some Linux file systems. It’ll contain directories using some of the names you’ll see in /var/snap. What’s going on in there?</p>
<pre><code>ls ~/snap
aws-cli  brave  gnome-calculator  slack
</code></pre><p>As far as I can tell, these directories are meant to store versioned data related to settings used by your user account.</p>
<h2 id="heading-snap-administration-tools">Snap administration tools</h2>
<p>So far I’ve shown you how to find various classes of data kept in configuration files (within <em>/var/snap/</em>), virtual file systems (<em>/snap/</em>), and collections of user settings (<em>~/snap</em>). I also showed you where <em>not</em> to look — <em>/var/lib/snapd/</em> — which is where the .snap files themselves live; nothing to see here, move along now.</p>
<p>Now what about actual administration? This is a bit more complicated. Some snaps — like Nextcloud — expose a fully-featured admin interface. I talk about that in <a target="_blank" href="https://www.freecodecamp.org/news/snapd-nextcloud/">my Administrating Nextcloud as a Snap article</a>. But it seems that the simplicity of snaps sometimes means that there just isn’t much hands-on configuration that’s possible.</p>
<p>However, that’s not always the case. But first, you’ll need to know about <em>snap services</em>. Some more complex applications require multi-layer software stacks. Nextcloud, for instance, creates and manages its own versions of Apache, MySQL, PHP, and Redis. Each one of those “layers” is, in snap terms, called a service.</p>
<p>If any snaps installed on your machine have their own services, you’ll be able to list them along with their status using this snapd command:</p>
<pre><code>snap services
Service                    Startup  Current   Notes
nextcloud.apache           enabled  active    -
nextcloud.mdns-publisher   enabled  active    -
nextcloud.mysql            enabled  active    -
nextcloud.nextcloud-cron   enabled  active    -
nextcloud.nextcloud-fixer  enabled  inactive  -
nextcloud.php-fpm          enabled  active    -
nextcloud.redis-server     enabled  active    -
nextcloud.renew-certs      enabled  active    -
</code></pre><p>You can also control the run and startup status of a service. This example will stop Nextcloud’s Apache service and ensure that it doesn’t launch when the system reboots (although, just remember that this will disable Nextcloud — you probably don’t want to do that):</p>
<pre><code>snap stop --disable nextcloud.apache
</code></pre><p>You can also use systemctl to manage snap service processes:</p>
<pre><code>systemctl status snap.nextcloud.apache
</code></pre><p>If your snap includes at least one service, you can view its logs using snapd:</p>
<pre><code>snap logs nextcloud
</code></pre><p>You can also specify a particular service:</p>
<pre><code>snap logs nextcloud.mysql
</code></pre><p>For some snaps (like Nextcloud), snapd makes useful configurations available from the command line. You can display available settings using <em>snap get</em>:</p>
<pre><code>snap get nextcloud
Key        Value
mode       production
nextcloud  {...}
php        {...}
ports      {...}
private    {...}
</code></pre><p>Drop down a level by adding the name of a specific setting. This example shows us that Nextcloud is currently listening on only ports 80 (HTTP) and 443 (HTTPS).</p>
<pre><code>snap get nextcloud ports
Key          Value
ports.http   <span class="hljs-number">80</span>
ports.https  <span class="hljs-number">443</span>
</code></pre><p>You could change a setting using the <em>set</em> command. This one would tell Nextcloud to listen on port 8080 for insecure HTTP requests instead of 80.</p>
<pre><code>snap set nextcloud ports.http=<span class="hljs-number">8080</span>
</code></pre><p>Snapd also offers some system-wide configuration settings that are <a target="_blank" href="https://docs.snapcraft.io/system-options/87">described here</a>, documentation of <a target="_blank" href="https://docs.snapcraft.io/environment-variables/7983">environment variables is maintained here</a>, and information on <a target="_blank" href="https://docs.snapcraft.io/keeping-snaps-up-to-date/7022">keeping your snaps updated can be found here</a>.</p>
<p>All that’ll get you started when things need fixing. So get to it.</p>
<p><em>Looking for more? You might enjoy my</em> <a target="_blank" href="https://bootstrap-it.com/"><em>books and Pluralsight courses</em></a> <em>on Linux, AWS, and Docker-related topics.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to get started with CentOS ]]>
                </title>
                <description>
                    <![CDATA[ By Krasimir Vatchinsky You can download CentOS versions here. CentOS or Community Enterprise OS is an open source distribution based on RHEL or Red Hat Enterprise Linux. This is available only if you’ve bought the support package. Moreover, all RHEL ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/getting-started-with-centos-15eac7215c99/</link>
                <guid isPermaLink="false">66c34b5b30aba6677fb9f9ac</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ servers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ System administration ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 05 Jan 2019 16:13:42 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*bIzsWHmJ6nun5bayHe3LKg.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Krasimir Vatchinsky</p>
<p>You can download CentOS versions <a target="_blank" href="https://wiki.centos.org/Download"><em>here</em></a><em>.</em></p>
<p>CentOS or Community Enterprise OS is an open source distribution based on RHEL or Red Hat Enterprise Linux. This is available only if you’ve bought the support package. Moreover, all RHEL packages are fully compatible with CentOS, providing a robust, stable and easy to manage platform, ensuring the highest level of operational security for free.</p>
<p>CentOS is binary compatible with RHEL out of the box and is the preferred platform for server installations. One of the most valuable parts of CentOS is the long support cycle. While the release support cycles for Fedora, for example, last up to 13 months, CentOS releases provide support for up to 7 years. That makes it extremely dependable and reliable.</p>
<p>Furthermore, the CentOS community project is expanding their availability over a large array of platforms like Google, Amazon AWS and others. It’s also available in generic cloud-init enabled images.</p>
<p>To learn more about CentOS visit <a target="_blank" href="https://www.centos.org/">the CentOS Project here</a>.</p>
<h4 id="heading-versions">Versions</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/FexWtcAsU02omlWN2zMjEBD-S9O4KYaNDnv2" alt="Image" width="263" height="163" loading="lazy"></p>
<h4 id="heading-examples">Examples</h4>
<p>Let’s go through some detailed instructions on getting CentOS 7 installation and basic set up going.</p>
<ol>
<li>Download the latest <a target="_blank" href="https://www.centos.org/download/">CentOS .ISO</a></li>
<li>After downloading the last version of CentOS using the above links or using the official CentOS download page, burn it to a DVD or create a bootable USB stick using LiveUSB Creator called <a target="_blank" href="https://unetbootin.github.io/">Unetbootin</a>.</li>
<li>After you have created the installer bootable media, place your DVD/USB into your system appropriate drive, start the computer, select your bootable unit, and the first CentOS 7 prompt should appear. At the prompt choose Install CentOS 7 and press the [Enter] key.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/rk-uJQssZewGXgFP9sIRmUHGpHjUEIpz0ee2" alt="Image" width="585" height="402" loading="lazy"></p>
<ol start="4">
<li>The system will start loading media installer and a Welcome screen should appear. Select your Installation Process Language — that will assist you through the entire installation procedure — and click on Continue.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/21CN30c3nOpSCAb9XSlWJncObEl5fyqAIQEr" alt="Image" width="589" height="419" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/IIAp4gYwhWdcRvg0KP8de6Y7ivhgiZJ4SXvH" alt="Image" width="590" height="453" loading="lazy"></p>
<ol start="5">
<li>In the next step, the present screen prompt is Installation Summary. It contains a lot of options to fully customize your system. The first thing you may want to setup is your time settings. Click on Date &amp; Time and select your server’s physical location from the provided map and hit the upper Done button to apply that configuration.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/zPoewuybibFqlg79nqCcDjEtKE1lxAi8RqXj" alt="Image" width="587" height="443" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/udVF8vI0FuFqP8uFY-fXGeXIHcyVUYZcEmQg" alt="Image" width="563" height="429" loading="lazy"></p>
<ol start="6">
<li>Next, choose your Language Support and Keyboard settings. Choose your main and extra language for your system, and when you’re finished, hit Done.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/GNUOD3cBf0HukL0AdEFSaslfAXDfihcOeJxt" alt="Image" width="589" height="444" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0SOMnkOxnmkG4DSwnogamdTSlEOC45QFi23m" alt="Image" width="590" height="450" loading="lazy"></p>
<ol start="7">
<li>In the same way, choose your Keyboard Layout by hitting the plus button and test your keyboard configuration using the right input filed. After you’ve finish setting up your keyboard, you can use any key combination for switching between keyboards. In my case I am using Alt+Ctrl. After selecting your desired key combination, press Done again to apply changes and go back to the main screen on Installation Summary.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/YI7FkWgL8h9QTXALMgCCvqxrKgZarWNFh5gn" alt="Image" width="588" height="447" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/r0NDr-cIq3UyaXoa0y3qgmE7EhiMLj8DZRS4" alt="Image" width="562" height="433" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/yPi-j4-sjLXe4ShqPpR-bnKWwY2wO-keP5mv" alt="Image" width="560" height="428" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/aXcgQKMdphnhNTLzTcWWWt7B-3bduQ3b4AXm" alt="Image" width="562" height="423" loading="lazy"></p>
<ol start="8">
<li>Now we can add LANGUAGE SUPPORT if you don’t want to use English. Click on “LANGUAGE SUPPORT” to open the dialog.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/caxBvCvaLqNJYHbuqCEnWz4SlzHcnjJWbSHN" alt="Image" width="565" height="423" loading="lazy"></p>
<ol start="9">
<li>By default, CentOS comes with the English language preinstalled, but we can add more languages easily. In my case, I am adding Deutsch German with Deutsch (Deutschland) as the additional language. Press Done after your selection.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/p69eRIErcsIn7g1AMpUQskZ2gCN2hnpzxAI5" alt="Image" width="561" height="429" loading="lazy"></p>
<ol start="10">
<li>In the next step, you can customize your installation by using other Installation Sources than your local DVD/USB media, such as a network locations using HTTP, HTTPS, FTP or NFS protocols. You can even add some additional repositories, but use this method only if you know what you’re doing. So leave the default Auto-detected installation media and hit Done to continue.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/TOxIxWtUUaU6dck4gKzc2d5VPzbFaWbH7XP0" alt="Image" width="584" height="443" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/5SagBXBx6G402fzVKdcQgKJXJ3vRqFv9j3Rr" alt="Image" width="589" height="445" loading="lazy"></p>
<ol start="11">
<li>Next you can choose your system installation software. In this step, CentOS offers a lot of Server and Desktop platform environments that you can choose from. But if you want a high degree of customization, especially if you are going to use CentOS 7 to run as a server platform, then I suggest Minimal Install with Compatibility Libraries as Addons. This will install a minimal basic system software and later you can add other packages as your needs require using:</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/aiPGfy0I85i73SC5EYBucyDGslreAYyBUvai" alt="Image" width="666" height="38" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/9VBciZwESM-gjiXOUsLz-88I7H9fLs1GghwC" alt="Image" width="558" height="420" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/w4QVnApDtJTm1jcMIFnQ8z-Z7ZW68jdjXMxB" alt="Image" width="588" height="442" loading="lazy"></p>
<ol start="12">
<li>Now it’s time to partition your hard-drive. Click on Installation Destination menu, select your disk, and choose the one you want. I will configure partitioning. Read more about what partition to choose <a target="_blank" href="https://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-diskpartitioning-x86.html">here</a>.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/enMF4gpceUHqdwSWDhP6-n0Zvyb0122RP8NQ" alt="Image" width="586" height="447" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/7nKmF4m-peDAaJT-pJz7F4EvKAzW1fYbHIQX" alt="Image" width="587" height="445" loading="lazy"></p>
<ol start="13">
<li><p>On the next screen, choose LVM (Logical Volume Manager) as partition layout and then click on Click here to create them automatically. This option will create three system partitions using XFS filesystem, automatically redistributing your hard-disk space and gathering all LVS into one big Volume Group named “centos”. 11.</p>
</li>
<li><p>/boot — Non LVM</p>
</li>
<li>/(root) — LVM</li>
<li>Swap — LVM</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/N-pKNTOCYDUvsQjB7N5O8H2JV02iw08ODO93" alt="Image" width="588" height="442" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/U7obhodVkpI38y4oV19VUrC4WU59fYo65s2H" alt="Image" width="584" height="448" loading="lazy"></p>
<ol start="14">
<li>If you are not pleased with the default partition layout created automatically by the installer, you can completely add, modify, or resize your partition scheme. When you finish hit the Done button and Accept Changes on the Summary of Changes prompt.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/fyZ3sVKHOs8pN77NHqcRDfwpYpuyyF4xlzsJ" alt="Image" width="587" height="449" loading="lazy"></p>
<p>NOTE: For those users who have hard-disks more than 2TB in size, the installer automatically will convert the partition table to GPT. But if you wish to use GPT table on smaller disks than 2TB, then you should use the argument inst.gpt to the installer boot command line in order to change the default behavior.</p>
<ol start="15">
<li>The next step is to set your system hostname and enable networking. Click on Network &amp; Hostname label and type your system FQDN (Fully Qualified Domain Name) in the Hostname field, then enable your Network interface, switching the top Ethernet button to ON. If you have a functional DHCP server on your network, then it will automatically configure all your network settings for enabled NIC, which should appear under your active interface.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/aJaSFWrR0OhcclQfctFmPeShvAb4CrK-yJfO" alt="Image" width="589" height="449" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/6JGzTjzo0weuiVyPoGWOYzRRsh1Rl6C5GcHF" alt="Image" width="589" height="447" loading="lazy"></p>
<ol start="16">
<li>If your system is a server, it’s better to set static network configuration on Ethernet NIC by clicking on the Configure button and adding all your static interface settings like in the screenshot below. When you’re finished, hit Save, disable and enable the Ethernet card by switching the button to OFF and ON, and then hit Done to apply the settings and go back to the main menu.</li>
</ol>
<p>Otherwise:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/LSvNkE3Tc2i7Fa2q1DDT6YCtJ3C0WQpEam8G" alt="Image" width="588" height="444" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/j44d6AGcV6OTDbjZOMx8MY8eFGVt4c5QDYOp" alt="Image" width="562" height="426" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/xNSaSz1Fe3lQ9dZHBqTha5Y4kciBIxVDs7R2" alt="Image" width="564" height="424" loading="lazy"></p>
<ol start="17">
<li>Add the entries for Address, Netmask and Gateway as per your static IP environment. In my case I am using the Address 192.168.1.100, Netmask 255.255.255.0, Gateway 192.168.1.1 and DNS servers 8.8.8.8 8.8.4.4. These values may vary according to your network environment. After that press Save.</li>
</ol>
<p>IMPORTANT: If you do not have an IPv6 internet connection, then set IPv6 from auto to ignore on the IPv6 tab. Otherwise you won’t be able to reach the internet from this server on IPv4, as CentOS seems to ignore the correct IPv4 setup then and uses IPv6 instead which fails.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/zIVn34DFeRZBICltiKeJ6ZoLae4c2pN45Xdp" alt="Image" width="559" height="423" loading="lazy"></p>
<ol start="18">
<li>Next, we have to turn the connection ON as shown in the screenshot below. After, press Done.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ZnGNcnOiXpdvvpMya2dRhJ4CaOY8pSRYLnaJ" alt="Image" width="559" height="419" loading="lazy"></p>
<ol start="19">
<li>Now it’s time to start the installation process by choosing Begin Installation and setting up a strong password for the root account.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ea3kScov6z01BRxr4jOLM4NRJccCxUS3EDqN" alt="Image" width="559" height="424" loading="lazy"></p>
<ol start="20">
<li>The installation process will start now and you will get a small blue progress bar in the next windows. Now we have to set the ROOT PASSWORD and add a new non-root user in the USER CREATION option. I will first go for root password.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/c5h9dW9aqyasoNX9aDwfInjkU5xnPGq4QAu2" alt="Image" width="559" height="426" loading="lazy"></p>
<ol start="21">
<li>Enter a secure password of your choice and press Done.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/2Ky7QzNMLccBT5QPLSqGbav50VsK3cH4JmBI" alt="Image" width="557" height="425" loading="lazy"></p>
<ol start="22">
<li>Next we will go for USER CREATION.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/GeveORGJo-scuJeD1Z25sxVDSeNNeAN7Npr-" alt="Image" width="559" height="423" loading="lazy"></p>
<ol start="23">
<li>Next I will create a user. In my case I used the Full name “Administrator” and Username “administrator”. Check the option Require the password to use this account and then press Done. Of course you can use any value as per your choice.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/3sGgDLaj28eqO4yvWYHgANUkwZn-kXz10LmY" alt="Image" width="563" height="426" loading="lazy"></p>
<ol start="24">
<li>Press Finish. Have patience and wait for the completion of the setup.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/n8Qxnk5BdvJRkM6sntmR62uC4eV8GiNK7dFk" alt="Image" width="560" height="421" loading="lazy"></p>
<ol start="25">
<li>After completion of the installation, it will ask to reboot the server, just press Finish configuration.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/rTWWi5rPGgTBBjTN8vI6uInYwTqD9nhcb2Yy" alt="Image" width="561" height="424" loading="lazy"></p>
<ol start="26">
<li>The server reboots and will request your username and password afterwards.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/yQwZNdAYh2gDJ3cxbDzEiVFGQYnzz412Q3j8" alt="Image" width="559" height="316" loading="lazy"></p>
<p>Congratulations! You have now installed last version of CentOS on your brand new machine. Remove any installation media and reboot your computer so you can login to your new minimal CentOS 7 environment and perform other system tasks, such as update you system and install other useful software needed to run day to day tasks.</p>
<p>Now we are ready to do login with the user that we just created above or we can use the root credentials.</p>
<p>First Login on CentOS. Login as root user to the server so we can do some final installation steps.</p>
<p>The first one is to install all available updates with yum.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/yjaMZ33oDpbtjB21GtAnE-yh3GHkhHuZsEOp" alt="Image" width="707" height="42" loading="lazy"></p>
<p>Confirm with “y” to proceed with the installation of the updates. I will install two command line editors to be able to edit configuration files on the shell:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/eRLKdk7Ha3KRU3fgjZF847V9wIiHhxTpXqnO" alt="Image" width="705" height="43" loading="lazy"></p>
<h4 id="heading-network-configuration">Network Configuration</h4>
<p>CentOS 7.2 minimal don’t come pre-installed with the ifconfig command, so we will install it as follows:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/slhBMQEUoqGJkgEDUQOW-3rxa3WZCA7PD-V3" alt="Image" width="705" height="40" loading="lazy"></p>
<p>If you want to change or see the network configuration file, just edit the file:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/OliVYcSJvGNYWk9mDB5zqtMExcggQG5SqzbM" alt="Image" width="705" height="41" loading="lazy"></p>
<p>It will be like this when you configured a static IP address:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/pofxOfE9lJnMwr4nIKs0AOyORp4k-r1eUMBI" alt="Image" width="705" height="508" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/CNjWloceJVc8vHVn9BaiqeZ5c1hEhoYw7WuN" alt="Image" width="704" height="203" loading="lazy"></p>
<p>Change the values if required.</p>
<p>Note: The above DEVICE name may vary, so please check the equivalent file in the directory /etc/sysconfig/network-scripts.</p>
<h4 id="heading-adjust-etchosts">Adjust /etc/hosts</h4>
<p>Adjust the file /etc/hosts as follows:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/9f52fds4U3nqAdcQtDp5tv98MDuQ6nm09m3q" alt="Image" width="703" height="40" loading="lazy"></p>
<p>Make the values like this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/4G8Ve0NTRP1Jx6fVcVNx6a7HGIGRiAVK02Hm" alt="Image" width="711" height="88" loading="lazy"></p>
<p>Congratulations! Now we have basic minimal CentOS 7 server setup.</p>
<p>Now you may prefer to use GUI instead, here is a variety of flavors you could choose from:</p>
<h4 id="heading-installing-gnome-desktop">Installing GNOME-Desktop:</h4>
<p>Install GNOME Desktop Environment by entering the following:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/8xrxZk0240pPvx-yslBxJXZih9jrhfOPaksU" alt="Image" width="705" height="41" loading="lazy"></p>
<p>To start the GUI, enter after finishing installation:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/cZPdsALzVpA5DYKoToQ2lgMG7FDBftKHJgGY" alt="Image" width="704" height="38" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/8O5W1tTbW4-caJbSU9qQxqIM5RaUfugFt6BJ" alt="Image" width="588" height="447" loading="lazy"></p>
<h4 id="heading-how-to-use-gnome-shell">How to use GNOME Shell</h4>
<p>The default GNOME Desktop of CentOS 7 starts with classic mode, but if you’d like to use GNOME Shell, set it like this:</p>
<p>Option A: If you start GNOME with <strong>startx</strong>, set it like this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/UGFEuBeOA5TeYZZlPE-E2iOZBJmXvjjrfFYn" alt="Image" width="708" height="59" loading="lazy"></p>
<p>Option B: set the system graphical login systemctl set-default graphical.target and reboot the system. After the system starts:</p>
<ol>
<li>Click the button which is located next to the “Sign In” button.</li>
<li>Select “GNOME” on the list. (The default is GNOME Classic)</li>
<li>Click “Sign In” and log in with GNOME Shell.</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/N2icRiFgBxnYEXUUu8cHdfVTGPo-yGzHhlAU" alt="Image" width="586" height="282" loading="lazy"></p>
<p>GNOME shell starts like this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/oiqDsqZuANvGUG2XEpJU8M9LJbaEhfBTcrAV" alt="Image" width="585" height="443" loading="lazy"></p>
<h4 id="heading-installing-kde-desktop">Installing KDE-Desktop:</h4>
<p>Install KDE Desktop Environment by entering</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/8EKvkfyxykrD7ESdx-NTZqLn1-XoAHUxqB0t" alt="Image" width="708" height="44" loading="lazy"></p>
<p>Input a command like below after finishing the installation:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/BM7BB8s7TzICeeeYJyhw9H2XeBU5BmXcEAfb" alt="Image" width="708" height="59" loading="lazy"></p>
<p>KDE Desktop Environment starts like this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/vLim8XR1-vl7DP2Nzbk7GPe34X7PNLjx4KcR" alt="Image" width="589" height="447" loading="lazy"></p>
<h4 id="heading-installing-mate-desktop-environment">Installing MATE Desktop Environment:</h4>
<p>Install MATE Desktop Environment by entering this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/KQGWjK2f5QL-ESkHT71foneUyytOZgC76THw" alt="Image" width="704" height="45" loading="lazy"></p>
<p>Input a command like below after finishing the installation:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/S-9RT00AC-D0EyVaqdsQMYbH9G1CMKf5imSZ" alt="Image" width="706" height="53" loading="lazy"></p>
<p>MATE Desktop Environment starts:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/6bLYOa7ktDIkJ5-nJ7BK9mQifjizzOZK47ir" alt="Image" width="586" height="448" loading="lazy"></p>
<h4 id="heading-installing-xfce-desktop-environment">Installing Xfce Desktop Environment:</h4>
<p>Install Xfce Desktop Environment by entering this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/eajRi-cVLawzVkihC8nTDZNGXKjdEISEnn6Y" alt="Image" width="701" height="40" loading="lazy"></p>
<p>Input a command like below after finishing the installation:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/nvqLmB2PqwYamPW3KOfIRf4mIKvohyGzwbgv" alt="Image" width="709" height="57" loading="lazy"></p>
<p>Xfce Desktop Environment starts like this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/3916tM9oz0pGpYNGX5H1EfjvA93F4aSQ33qf" alt="Image" width="584" height="443" loading="lazy"></p>
<h4 id="heading-other-way-to-do-it">OTHER WAY TO DO IT:</h4>
<p>Rather than make use of the hacking of a startx command into a .xinitrc file, it’s probably better to tell Systemd that you want to boot into a graphical GUI vs. the terminal.</p>
<p>To accomplish this simply do the following:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/clCHZwiwW12IxLg8F-1eV8MMpwww250wx8Fn" alt="Image" width="708" height="59" loading="lazy"></p>
<p>Then simply reboot.</p>
<p>The last bit will associate the runlevel 5 target as your default with respect to Systemd.</p>
<h4 id="heading-doing-it-with-systemd">Doing it with Systemd</h4>
<p>You can also use Systemd to accomplish this. This is arguably the better method, since you’re managing the state of the system directly through Systemd and its CLIs.</p>
<p>You can see what your current default target is:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/GAMQwC7zZTIyvWWjnOwCxOBII0f9ZJFo6NpV" alt="Image" width="708" height="59" loading="lazy"></p>
<p>And then change it to graphical:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/MRK-LDaeKfDAPHrq1UiP3aG6USYtZYMp0c8Z" alt="Image" width="706" height="43" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Q3WkBqFK0D7pAQCU0Kzure2BqDw5cSoA24tC" alt="Image" width="704" height="44" loading="lazy"></p>
<h4 id="heading-targets">Targets</h4>
<p>In Systemd the targets runlevel5.target and graphical.target are identical. So too are runlevel2.target and multi-user.target.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/04fnoUaIaChUTVk1gI5bpdWueeHe9j6Z4AZx" alt="Image" width="703" height="156" loading="lazy"></p>
<h4 id="heading-rhel-centos-linux-install-core-development-tools-automake-gcc-cc-perl-python-amp-debuggers">RHEL / CentOS Linux Install Core Development Tools Automake, Gcc (C/C++), Perl, Python &amp; Debuggers</h4>
<p>Q. How do I install all developer tools such as GNU GCC C/C++ compilers, make and others, after installing CentOS or RHEL or Fedora Linux from a shell prompt?</p>
<p>You need to install ‘Development Tools’ group on RHEL/CentOS/Fedora/Scientific/Red Hat Enterprise Linux. These tools include core development tools such as automake, gcc, perl, python, and debuggers which are required to compile software and build new rpms:</p>
<ol>
<li>flex</li>
<li>gcc c/c++ compiler</li>
<li>redhat-rpm-config</li>
<li>strace</li>
<li>rpm-build</li>
<li>make</li>
<li>pkgconfig</li>
<li>gettext</li>
<li>automake</li>
<li>strace64</li>
<li>gdb</li>
<li>bison</li>
<li>libtool</li>
<li>autoconf</li>
<li>gcc-c++ compiler</li>
<li>binutils and all dependencies.</li>
</ol>
<h4 id="heading-installation">Installation:</h4>
<p>Open the terminal or login over ssh session and type the following command as a root user:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/FBV3oXITAW4NDKmUlCSnqKRHkrpFxOsywEOa" alt="Image" width="706" height="37" loading="lazy"></p>
<p>Sample outputs that follow:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/eJlL3KG2asfbT7-KjJODLskpBeLTsgNbcCRt" alt="Image" width="567" height="609" loading="lazy"></p>
<p>Now you can compile and use any application on your system.</p>
<h4 id="heading-installation-verification"><strong>Installation Verification</strong></h4>
<p>To display Gnu gcc/c/c++ compiler version type:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/gCh9plzh1fFHqRAxIN41R2Z024dgm-3uUICK" alt="Image" width="764" height="43" loading="lazy"></p>
<p>Sample outputs:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/f3COT3u-Xb8zvgnrNGVvH-7rpiPqZenBdivq" alt="Image" width="767" height="99" loading="lazy"></p>
<h4 id="heading-how-do-i-list-all-currently-running-services-in-fedora-rhel-centos-linux-server">How do I list all currently running services in Fedora / RHEL / CentOS Linux server?</h4>
<p>There are various ways and tools to find and list all running services under Fedora / RHEL / CentOS Linux systems.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/sR1j7IEftLUJcf3l8eA09lFf4QuW31Na3dbE" alt="Image" width="763" height="42" loading="lazy"></p>
<p>The syntax is as follows for CentOS/RHEL 6.x and older (pre systemd):</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/34duN-gDwYU8Voox68o0OWpyO0lcROokMeN6" alt="Image" width="769" height="98" loading="lazy"></p>
<p>Print the status of any service. To print the status of apache (httpd) service:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/hrg5zAjTRW789CRAM0kLPpoEdJi4VCqdf2re" alt="Image" width="766" height="44" loading="lazy"></p>
<p>List all known services (configured via SysV):</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/zdMHiLpBgWw-7wcHU4rtNePnTWydgPGwNVSY" alt="Image" width="768" height="46" loading="lazy"></p>
<p>List services and their open ports:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ONlXfdtpMuQThom-1TXCwogvZLW-CxvJsZSu" alt="Image" width="763" height="44" loading="lazy"></p>
<p>Turn on / off service:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/9zwxQTHcBo1W4-bYkTdLRYkRqlxbgiwH30Fo" alt="Image" width="768" height="116" loading="lazy"></p>
<p><strong>ntsysv</strong> is a simple interface for configuring runlevel services which are also configurable through <strong>chkconfig</strong>. By default, it configures the current runlevel. Just type <strong>ntsysv</strong> and select the service you want to run.</p>
<h4 id="heading-a-note-about-rhelcentos-7x-with-systemd">A note about RHEL/CentOS 7.x with systemd</h4>
<p>If you are using systemd based distro such as Fedora Linux v22/23/24 or RHEL/CentOS Linux 7.x+, try the following command to list running services using the systemctl command. It controls the systemd system and service manager.</p>
<p>To list systemd services on CentOS/RHEL 7.x+ use the following.</p>
<p>The syntax is:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/HMgfPY4TiCQZt5VqkAeVnOA6wzKA0tHb7fnM" alt="Image" width="765" height="129" loading="lazy"></p>
<p>To list all services:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/4X-Q7tJMtViVrTXOg1118N4RQSxK8fIIsG8q" alt="Image" width="766" height="45" loading="lazy"></p>
<p>Sample outputs:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/8HHdKMxQvr1tP9gfoT3K602qrD3FkQ-RpAU2" alt="Image" width="538" height="678" loading="lazy"></p>
<p>The above image shows List all units installed on the CentOS /RHEL 7 systemd based system, along with their current states.</p>
<p>To view processes associated with a particular service (cgroup), you can use the systemd-cgtop command. Like the top command, systemd-cgtop lists running processes based on their services:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/cnQkMU558eEjH4IQ7NY546voU0Q079Aj5iOp" alt="Image" width="635" height="38" loading="lazy"></p>
<p>Sample outputs:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/vOiJ6B9pCEt3sT5CrOGbkiIGf5UoSdQ7xv42" alt="Image" width="530" height="547" loading="lazy"></p>
<p>To list SysV services only on CentOS/RHEL 7.x+ use (does not include native systemd services):</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/C6mSxcdwt6RdEjfLwbP0XmdjJBv7UrKEjr33" alt="Image" width="636" height="36" loading="lazy"></p>
<p>Sample outputs:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/psYt44SaI963eoYVsBCFSCEFGyERv4H3V2nC" alt="Image" width="596" height="255" loading="lazy"></p>
<h4 id="heading-firewall-how-to">FIREWALL HOW TO:</h4>
<p>Learn how to set up the firewall <a target="_blank" href="https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-oncentos-7">here</a>.</p>
<p><strong>References</strong></p>
<ul>
<li><a target="_blank" href="https://wiki.centos.org/Documentation">CentOS Documentation</a></li>
<li><a target="_blank" href="https://wiki.centos.org/Manuals/ReleaseNotes/CentOS7">CentOS Release Notes</a></li>
<li><a target="_blank" href="https://linuxconfig.org/how-to-install-gui-gnome-on-centos-7-linux-system">Install Gnome GUI on CentOS 7 / RHEL 7</a></li>
<li><a target="_blank" href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-targets">Working with SYSTEMD Targets</a></li>
</ul>
<p><strong>Documentation How To guide for CentOS</strong></p>
<p><a target="_blank" href="https://docs.centos.org/en-US/docs/">CentOS version 7</a></p>
<p>CentOS 7 is fully based on RedHat’s detailed documentation. Examples and system administration guides are located here: <a target="_blank" href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/">CentOS 7 full documentation</a></p>
<p><a target="_blank" href="https://riptutorial.com/centos/topic/7640/getting-started-with-centos"><em>Originally published by Krasimir Vatchinsky in Archived Stack Overflow Documentation — RIP Tutorial</em></a></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
