The Linux community is indeed remarkable, but the multitude of available distributions can sometimes give an impression of fragmentation. When you discover the distribution that best fits your needs, it's important to remember not to take it personally. Avoid developing a bias towards your chosen distribution as it could potentially lead to unnecessary conflicts with others who prefer different distributions within the community.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
I do not know what sort of power management software exists by default on Ubuntu, but for laptop use I would strongly recommend getting a power management package like TLP to configure power profile settings for your laptop when on battery and on charge. It can greatly improve battery performance. Some alternatives like auto-cpufreq and powertop exist, but I have tried all 3 and found that TLP worked the best for me.
Remember to play. There are multiple terminal emulators, window managers, shells, all the things! Try 'em out. When installing stuff to test via distro package, keep note of which dependencies were dragged in so you can get rid if all of them, not just the thing you wanted to test. Also keep a list of what you tested and later got rid of (and why) so you avoid testing it again.
If you ever ssh into other machines to do stuff, learn the minimum of vi (classic w/no arrow keys, not vim) and bash. Servers "always" have those (though FreeBSD also has tcsh).
unshare -nc followed by a command will run that program without network access. Very useful if you're running trash in Wine
Be patient. Anytime you have to delete any system files just rename it with bak suffix. Have fun
First thing I'd do is ditch the GUI file manager: get comfortable with cd, ls, mv, rm, etc.
After that, maybe start with basic text manipulation, like grep, awk, sort, uniq, etc. This ties in nicely with IO redirection, which is essential for a "CLI based workflow." Get comfortable with pipes and file redirection, it's extremely powerful!
Writing shell scripts is another super useful exercise: any time you find yourself running the same set of commands multiple times, think about making it a shell script. You may end up with some really useful little custom tools that way.
Start off with Bottles if Wine is too hard. Wine is a cmd line application while Bottles is Wine with a GUI making it easy to manage Wine.
Also, it is wise to try and have a different wine bottle (aka prefix) for each windows application you install and run.
Also Linux Mint is a distro that comes with Cinnamon pre-installed as long you download the Cinnamon option which is a fork of Ubuntu.
Unless you are looking to work on shared systems/servers as sysadmin or other jobs, explore shells like zsh or fish and customise them rather than stick to bash. A lot more user friendly and accessible advanced features. Helps with learning a lot. Zsh is compatible with bash but fish isn't. So choose based on what your goal with learning shell is.
If you are sticking with debian based distros, try apt and synaptic(GUI) to install your software. At some point you might also need to install tar archives. Don't get worried as most guides should be easy to follow.
Ctrl+R to search your bash history. I hate how long I went without knowing this, so I've always got to spread the word about it.
Jfc.....I've been using Linux for almost 2 decades.....and TIL
if you use zsh, typing the first part of the command and then using the up arrow searches through the history for commands with the same starting characters
If you're typing out a long file path in the terminal you don't have to type the whole thing out, you can just press tab and it'll autocomplete for you.
So for example, if your file is called 1234567890.jpg you can just type 123 and hit tab and it'll fill in the rest. And if there's more than one file that begins with 123 it'll list them. Works for folder names too.
Rather than Ubuntu Cinnamon, you'd be better off with Linux Mint.
My tip would be to try a few distros before you settle on one. Ubuntu was it for me about seven years ago, but I used mint for a few years and am using MX with xfce now.
Also, sudo !!
is pretty useful when you forget to sudo
the previous command. It means "super user do the last command I just boneheadedly forgot to do that to"
Also can use !!
and do a space at any place to bring in last command. Not used much as you could just do an up arrow but helps if you edit around a lot and experimenting with a cli tool or command.
Also, !!
is a shortcut for !-1
so if you want the 2nd latest command you could do !-2
and so on.
I think the two "major tips" that I can give you are simply
1- Package manager is your best friend.
2- Figure out the "know-hows" of Linux (i.e who "is responsible" for the video card, who deals with the cpu, how do i configure my sound card, how do i configure my video card, etc.).
Master those two tips and you can call yourself an average linux user.
Never use sudo for graphical apps. If you need admin permissions use pkexec instead.
ie. pkexec gparted
That's one I haven't heard before. Care to elaborate? And who works you use sudo on graphical apps in the first place?
Some GUI apps need admin permissions and will not work without them. Gparted is an example. pkexec (polkit exec) is the right way to start these apps, read this for more info https://askubuntu.com/questions/270006/why-should-users-never-use-normal-sudo-to-start-graphical-applications
KDE is your friend in the trenches, Kubuntu > Ubuntu 100%
Regardless of whatever distro, definitely keep all your stuff backed up on an external drive. I had to "restart" my install a few times to get the hang of things. Yet I still keep all my info on an Vegacrypt encrypted external just in case to this day.
My big tip is if you haven't already, switch to a local package repository. There are a lot of people mirroring the software packages for mint and you can switch to one that is geographically the closest to you for better speed and to spread out the server load.
I love Linux Mint and it's what I install on all my decom-laptops turned servers. It will do pretty much all you want to do in Windows and then some. The only thing it probably isn't the absolute best for is PC gaming but if you are just using a laptop it probably doesn't make much of a difference either way.
If you like Mint then I also suggest PopOS. They are both based on Ubuntu so a lot of the paths and the package manager are the same. The killer feature there is auto-tiling Windows which is like the window snap feature in windows but happens automatically. It's not for everyone but once I started using it, it changed my entire workflow.
Last thing is, if you haven't already, familiarize yourself with running docker containers. A lot of stuff that's complicated to set up is a breeze with docker and docker-compose.
Not very practical, but good for understanding the OS: Everything is a file. Even your filesystem and harddrive is represented by a file (devicenode).
Back in the day, before things such as pulseaudio and equivalents became the norm, there was also such a file (it might still exist, idk) for your soundcard. By shoving the contents of a wav file directly into /dev/dsp, you could hear it as if it was played normally.
Unrelates to the above, in a terminal context it's very handy to learn the concepts of STDIN, STDOUT, and STDERR, and how to manipulate these. I won't go into it here, but whenever you see a bunch of commands strung together with redirects, < > | >>, that's usually for sending the output (STDOUT) of one command somewhere else, such as to the input STDIN to another command.