Copyright XDA Developers

When you dive into Linux for the first time, you'll probably be spending most of your time poking around the desktop environment, figuring out where things are that you frequently used on your previous operating system. Eventually, you will encounter a setting or a process that cannot be used with a GUI, and will force you to venture into the deep end. Learning even just a handful of basic commands for a Linux command line can be extremely useful, and can take a lot of the anxiety away from having to use it. For a lot of users, including myself, that's the main way I interface with Linux, but even I have command line demons that I refuse to conquer. These 5 Linux skills have evaded me for one reason or another, but they're incredibly powerful and are well worth your effort to learn. Bash scripting Automate everything One of the first scripting languages I ever used in an academic setting was Bash. I did pass the class, and I definitely could write you a Bash script today, but whether it works or not is a whole different conversation. Bash (Bourne Again Shell) is first and foremost a shell for the Linux kernel. It's the command-line environment for most Linux distributions where you'll run all your commands, and it can also be used to write scripts for automating these commands. The syntax of bash is very specific, lacks real data types, and has pretty poor readability, but it excels at orchestrating system tasks, chaining utilities together, or manipulating files in a very specific way. For example, you could write a bash script that converts all .png files in a directory to .jpg, or automate system updates. It's mostly used to turn tedious, repetitive tasks into one-click ordeals, and these scripts are often quite simple to write. It's really worth learning if you love any kind of automation, but be prepared to fumble around with spaces, brackets, and symbols a lot. Using Vim Not even once Watching people that know how to use Vim makes it look so easy, seamless, and incredibly powerful, but I can't for the life of me get myself to use it. And before you ask: yes, I know how to exit Vim. Nano is perfectly usable when you're just trying to quickly edit one line in a configuration file, but Vim is so much more efficient once you learn it. You can edit multiple lines at once, navigate large files much easier, rearrange text, and it even supports syntax highlighting that makes it feel like an IDE. Add in some plugins, and you'll be surprised at just how much is possible. I'm sticking with nano like the scrub I am, but I would implore every Linux user to learn Vim if they haven't already. Cron jobs Automate everything Cron is also something I learned during my time in college that I completely forgot how to use, but it's probably the thing on this list that's easiest to pick up and learn right away. Cron is a built-in task scheduler for Linux that can automate essentially anything for you. Pairing this with bash scripting can be incredibly powerful, as it allows you to run repetitive maintenance tasks at a specific time. The syntax for this is unfortunately a bit weird, but it's not too difficult to learn. You can also use websites like crontab.guru to generate the correct syntax for the time you're trying to set a cron job for. Once you learn it, you'll never run out of ways to use it. Permissions Can get you into trouble if you don't know what you're doing File permissions are one of those things that every Linux user knows just enough about to be dangerous. You can spend hours learning about users, groups, and symbolic bits, or just type chmod 777 and move on. As someone who doesn't currently daily drive Linux, I usually pick the latter, but if you're trying to actually use it every day, learning permissions is pretty important. Permissions in Linux determine not only what users can access, but also what programs can modify or execute files on your system, and understanding them helps you prevent problems before they happen. If something can't read or write where it needs to, it can fail to run or act unpredictably, but if it has too many permissions, it could expose system data, cause instability or overwrite things it shouldn't. For example, a file manager or converter tool that has access to more directories than otherwise necessary can lead to data loss. Running Apache, Nginx, or any other outward-facing service as root is also a textbook example of a security blunder. Curiosity is a good thing