Posted on 02/26/2020 5:48:20 AM PST by ShadowAce
Buckle up, were going on a road trip with this one, but I promise if you stick with me it will be worth it
In this article I am going to lay out five non-technical tips for the Linux beginner. These are things I wish someone had told me twenty plus years ago when I started to tinker with my first Linux installation.
I belong to a lot of Linux forums, user groups, and social media groups. There is often a ton of good conversations in these groups about all things pertaining to Linux. These good conversations often hide in a sea of the same questions being asked over and over by people cutting their teeth on Linux. Don't get me wrong, I think it is important to ask questions, and you won't find me getting easily annoyed and screaming (typing in all caps) "GOOGLE IT!", though I often agree with that sentiment. I was once that guy asking the questions others thought were silly, or simple, we've all been there.
It's inevitable that, at some point, you will get stuck on a problem. That's life though and a big part of the learning process. It is also inevitable that you will turn to the internet for answers. First you will search, but searching is often hard when you are new to a subject. You may not know the lingo, or the exact name of a feature or method. It can be frustrating. All of this leads people to ask questions on forums and other online groups.
When asking a question on a forum, or other online group, try not to burden your audience. For example, if you go online and post "I tried to open port 80 on my firewall and it's not working", this question will most likely be met with some level of hostility. The Linux community is one of sharing, but community members also have a firm belief that you should try to help yourself first. What this means is that you should do as much research as possible on the problem BEFORE asking the question. When it comes time to ask the question you should be able to articulate some basic information such as, what distro/version you are using, what you tried so far, your expected outcome, and what your actual outcome was. Let's take this example to the next level:
Bad Question:
"I tried to open port 80 on my firewall but it's not working, help."
Better Question:
"I installed apache on my Red Hat 7 system and I am in the process of trying to open port 80 on firewalld to allow web traffic. I typed the following command "firewall-cmd --zone=public --add-service=http" and it returned success. When I then tried to access the web server though I get "the server can't be reached". If I turn off firewalld it works. What am I missing?"
The moral of the story here is do your research, try things, read the pertinent parts of the manual, and then ask your question.
If you follow these rules the Linux community will be your best friend and will help you through any problem. If you just ask basic questions, lacking in detail and/or demonstration of personal effort, you will most likely be flamed or ignored.
This is an important topic, and it's never been covered better than in Eric S. Raymond's "How to Ask Questions the Smart Way". In my humble opinion, it should be required reading for all Linux beginners.
Making mistakes is critical to any learning process and shouldn't be feared. If you are constantly afraid to make a mistake, or if you easily lose confidence because you made a mistake, you should work on turning that around first. Making a mistake doesn't mean you are stupid or bad at something. Every failed attempt gives you a little more information, which, if used wisely, can lead to success. Take notes, write down what you tried and the outcome. Try to understand WHY it failed and think about how to apply that information towards a solution.
If you do this, when you do get it to work you will have a more intimate knowledge of the process. People who learn from books alone often lack this knowledge and it shows when something goes wrong. Trial and error are both your friends.
Reaching acceptance that mistakes and failure are learning tools can be difficult. We often hear this in IT circles, but this mindset is critical and applicable in just about any arena. In fact, if youre looking for a different take on the same idea you might want to check out Rodney Mullen's Ted Talk on the subject. Rodney is a professional skateboarder from my era. He discusses how the best skateboarders are the ones who take the falls and use that as the engine to drive them to be better. It is an entertaining and thought provoking 18 minutes, and it is just as applicable to Linux as it is to skateboarding.
Back in the old days, we didn't have virtual servers, docker and all the other rapid deployment solutions we have today. Anyone with a decent home PC can spin up Linux on a virtual machine, or spin up a docker image. These tools help you recover from mistakes quickly. Leverage the ability to snapshot virtual machines immediately after install. When you inevitably blow it up, just restore the snapshot and try again.
Do not be afraid to fail. FAIL = First Attempt In Learning
This is a phrase passed down to me from my father. Of course he was using the phrase in a different context, but, this holds true whether you are talking about a hand saw, or a Linux pipeline. Having the right tools for the job is important. Knowing how to use those tools is critical for success.
In order to be efficient at anything you need to understand how to use the tools associated with that job. If you were a carpenter, you would obviously need to know how to use a tape measure. You might be saying everybody knows how to use a tape measure. That's probably true, but not everybody knows all the little idiosyncrasies of that simple tool. Check out these four tips and tricks for using a tape measure. There is a reason that video has 18 million views. This person knows her tool.
In Linux, or computing in general, it is important to know your tools. Being a Linux System Administrator there are specific tool-sets designed to make your work easy and efficient. Familiarize yourself with them, and let them do the work. A good starting point for someone learning Linux is the GNU Core Utilities. These are file, text, and shell utilities that come with almost every Linux system and most are go-to tools for seasoned admins.
I had the good fortune of working with some very smart people in the beginning of my career. They all had different personalities, and different degrees of patience when dealing with me (a junior admin), but, I made it my mission to suck as much information as possible out of all of them. Even some Principle Engineers who had little to no patience for a Junior Analyst asking questions were able to unknowingly teach me skills that would last a lifetime.
You see, I learned that they would often balk at the idea of answering my seemingly stupid questions, so instead of asking them I just watched. I made it a point to be around when there was discussions of big changes and when it was time to implement them. Always watching over someones shoulders for as long as they would allow. I would offer to do the grunt work just to be involved and remain close to the projects. This allowed me to learn from people with experience. To learn things that cannot, and will not, be learned from a book.
Even as I have progressed into the senior person on the team, I still find myself watching and learning; this time from the more junior team members. They often show me new ways of doing things, some so obvious I wonder how I never thought of them before and others that simply weren't around when I was learning (Ansible, Docker, etc...). This phenomenon holds true because there are usually multiple ways to accomplish a given task in Linux. Many people using the same tools will often use different techniques. It amazes me to see how different people come to the same result from different avenues. Remember, you can learn from anybody.
As a senior team member, I accept ANY question as a valid question. Sometimes I can ramble off an answer out of my head, other times I need to go look up the answer myself. Either way I am learning.
Back in the late 80's and early 90's I was heavily involved in the BBS scene, and there was one SysOp (System Operator) who loved to teach and share his knowledge. He had a quote that was on the top of one of his pages that has stuck with me all these years:
The Smartest of Men are both Teacher and Pupil.-Unknown
In my mind patience is a very personal thing. Different people have different levels of tolerance for different things (that is a mouthful). Some people can easily tolerate a little buzzing from an overhead fluorescent light. Personally, that would drive me insane and I would get a ladder and remove the ballast if I had to. Some people listen to music while they work, it helps them think, and increases their productivity. I prefer complete silence, any music breaks my concentration as I start saying the words in my head.
The point I am making here is that patience is different for every person, but it is always equally important. If you lose patience, for any reason, you become frustrated and make mistakes. Now, I know I said you should make mistakes, but if youre too frustrated to learn from them then they arent doing you, or anyone else, any good. The best troubleshooters that I have worked with all had the same ability to block out interference and simplify the problem.
If you have worked with Linux for any amount of time you have probably come across a situation where you are trying to fix something. You were probably beating your head against the wall because you knew you did everything right. You checked and double-checked the configuration, you searched Google for the errors and you even checked another system that has the same configuration and is working fine. After a few hours you figured it out, and it was something so stupid and basic that you wondered how you missed it. We've all been there.
Most humans have an inclination to become frustrated, and you are human right? Sometimes, after a few minutes (or an hour because I am stubborn) of troubleshooting, I will walk away. I'll go for a walk, get a glass of water, and maybe talk about last night's episode of Criminal Minds, literally anything to remove that frustration. Once I have reclaimed my patience, I go back, start from the beginning, and usually figure out the problem fairly quickly.
Another way that "start from the beginning" helps is understanding to start with the low hanging fruit. I see a lot of people, some new to the industry and, some experts, start troubleshooting an issue from the most complicated possibility. When they get frustrated, their minds wonder off to a place that insists the answer has to be complex. Start your troubleshooting from the basics, remember the OSI model?
So, weve been on quite the journey with this one. Some of this seems very common sense, but all too often new Linux admins get needlessly overwhelmed discouraged. If youre not new to this then preach it and if you are new please dont give up! Ask good questions, make mistakes (make all the mistakes), know your tools, be willing to learn from anyone, and have patience because you will one day be both pupil and teacher.
Tech Ping
I dabble with Linux off and on and it’s starting over every time.
I will let Microsoft Windows 10 take over. : )
Before you begin, ask yourself WHY? Why Linux, why waste the time, now and in future? Is your time so cheap? Do you really have that big of a problem with Microsoft Windows or Apple iOS that you want to handicap yourself with Linux? Even my Linux friends have admitted that it is of limited value, for servers, NOT for desktop computers and all. We have three Raspberry Pi computers in the house with it and it is limited and for special project purposes only. Nothing more!
The burning question I have is: Why?
As a developer for over 30 years, I’ve learned that failure is not you friend but a necessary tool.
Another thing I’ve learned is not to say, “Xyz doesn’t work”.
“Doesn’t work” doesn’t work and your questions will be ignored.
“I installed apache on my Red Hat 7 system and I am in the process of trying to open port 80 on firewalld to allow web traffic. I typed the following command “firewall-cmd —zone=public —add-service=http” and it returned success. When I then tried to access the web server though I get “the server can’t be reached”. If I turn off firewalld it works. What am I missing?”
First of all, it's not a waste of time. Linux provides me a very nice income.
Second, knowledge is always good. Anything that knocks a chunk out of a monopoly (MS / Apple) is a good thing.
Third, It's *my* computer--not Microsoft's, and not Apple's. That means I have total control over it--patching, updates, which OS to run, and what software I choose to install (without being nagged that it isn't "approved").
If all you need is a desktop OS, Linux is simpler than Windows (at least, to me it is).
There’s a saying when it comes to Linux, that “Linux IS user friendly. It’s just very particular who its friends are.”
More seriously the part about mistakes is one of the real biggies. Many years ago, I worked as a networking instructor (I was a Novell Master CNI) and one of the required classes as called “Service and Support,” and for many students, it was their first time actually working on hardware. During the class we did talk about the possibility of making mistakes, and the sort of problems it can cause, from trivial, to taking down the entire network for an extended period.
Having worked as a field engineer designing, installing and troubleshooting networks for more than 5 years before I began training as an instructor, I had seen my fair share of mistakes and made a fair number myself.
The most important thing was trying to get users to realize that being human means making mistakes, what you need to do is try to minimize them.
I even gave examples of mistakes that I’d not only seen, but made myself, culminating with accepting a phone call from a panicing customer while finishing up working on a system at another site. As I was plugging in the connectors (back in the days of keyboard connectors using a 5 pin DIN plug, as I was talking, when I plugged in the keyboard, I heard a “pop” and smelled smoke. While I wasn’t paying close attention plugging in the cables, a so-called “safe” operation, I accidentally plugged a Stat-Mux (a communication device) power supply cable into the keyboard port on a Unix server, destroying the main system board. I was able to get another system board for their system, and get them up and running, but it took their system down for nearly 7 hours to get the parts, install them, load and configure Unix, then restore their data.
Also, the only “stupid question” is the one never asked.
Mark
Okay, so you are a Linux consultant or use it for work, fine. But for the common computer user, it is a total fail. That is, unless they have deep pockets or a personal relationship with you.
Actually, there are distributions (LinuxMint in particular,) that are quite user friendly, ESPECIALLY for someone with little or no computer experience.
If they just want to browse the web, send and receive email, and maybe do a bit of word processing for sending letters, it’s perfectly easy to use.
The key is that if they’re not ingrained to use a specific OS, it’s a GREAT system. It all depends on not having to “unlearn” anything.
A perfect example of that is when I try to use an iMac. I found myself having to do google-searches to perform the simplest of tasks, like burning an ISO to a CD. It’s second nature for me on Windows or the assorted *IX systems. But I wound up with a CD with the iso file on it the first time I tried.
I’ve set up several Linux Mint systems for people to use for communicating with their families, and they love the computers. All of those users have been70 years old and older.
Mark
When is AI gonna learn the problems newbies face, and the way to communicate clearly with said people?"
That is the point of this post. Thee are *plenty* of places to go for help--most of them totally free.
If you honestly don't care what goes on inside your computer, fine. Don't read the post, and move on.
However, for those interested in how their hardware works and functions, how the software interacts with that hardware, and how to maintain, troubleshoot, and protect your investment, this is a useful post.
firewall-cmd —reload
Why do you make a statement like that when you obviously have no clue what you're talking about?
#6 - get a book on Linux and read it
Linux is simple enough for my retired mother-in-law to not only use as her base system, but she installed it from scratch. All I did was provide the bootable DVD.
Why do you insist that someone who disagrees with you ‘has no clue’. I have worked with Linux for around 10 years, I have several servers and three Raspberry Pi computers running it. I also have over a dozen desktop and laptop computers using Microsoft and Apple operating systems. I used to own a computer store, I do IT consulting, and have been in the industry since the early 80s—first working with the original 8088 computers, S-100 bus systems, early UNIX, original DOS, and everything since. So don’t play that clueless BS card with me with you obviously do not know me and have an agenda to sell.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.