linux4noobs

2638 readers
5 users here now

linux4noobs


Noob Friendly, Expert Enabling

Whether you're a seasoned pro or the noobiest of noobs, you've found the right place for Linux support and information. With a dedication to supporting free and open source software, this community aims to ensure Linux fits your needs and works for you. From troubleshooting to tutorials, practical tips, news and more, all aspects of Linux are warmly welcomed. Join a community of like-minded enthusiasts and professionals driving Linux's ongoing evolution.


Seeking Support?

Community Rules

founded 2 years ago
MODERATORS
176
 
 

I use a laptop, and have only just been able to finally connect an ethernet cable to it. However, ethernet doesn't work on Linux, returning this "Cable Unplugged" message, whereas it does work on dual-booted Windows.

I tried running "lspci -v" to get a list of where my drivers were located, but I could not find any entry for "Ethernet controller," or something of the like. That being said, I'm assuming I just don't have an Ethernet driver?? and I was wondering how I get one :)

177
 
 

Hi all,

As above I'm struggling to get my home server running Manjaro to be accessible outside my network. I've never messed with domains before but I do have a working knowledge of home networking.

I also have, what most would probably consider, basic working knowledge of Linux. I can work my way around the terminal and follow instructions on things given they aren't using assumptions that the reader is a knowledgeable power user of Linux.

From what I've read I need to add a reverse DNS via something like nginx and setup my Google domain to point to my external IP. Sounds simple enough but I cannot for the life of me configure nginx properly and I'm not even sure I have my Google domain setup correctly outside of payin for the domain name.

What I'd like to achieve is have my home server files be accessible from anywhere and also have jellyfin/sonarr/radarr accessible from anywhere if possible. I'm currently using Plex but that has a plethora of its own issues so would like to try something new.

Any help would be greatly appreciated, especially if provided in an "OP dumb dumb" format!

I'm currently at work at the time of writing so replies may be slow

178
 
 

Hi! I'm trying to sync a local filder with a remote folder on Mega. Copy is working but if Imodify some character in a file (by example fro S1E1 to S1E2) it doesn't sinc since the size is unchanged. Other than using copy how can I sync using date and time and not size? The flag --ignore-size apparenty is not a solution. Thanks in advance for any help

179
 
 

First of all, big surprise, right? Stuck with it for now, though. Not sure if AMD is actually any better at this point, but that's a problem for a different time.

So I've tried fedora now, (can list hardware later in post)and got it to install fine, did the system update, 4gb or so later, that's good to go, so now I figure it's time to get the GPU drivers working so I can make progress on making a daily driver out of this machine.

There's a lot of conflicting information and alternate routes to go with the drivers as I've gone to see, so that's confusing enough already.

So I'm on the KDE version of F38, since I would like to use Plasma.

I found and installed the "latest" dkms driver via cuda.

Haven't made other changes at all yet.

But at this point, it black screens after the grub menu. If I use nomodeset I can access the system, but I'm stuck in 1024x768. This is obviously terrible, I have a GPU for a reason and I would like it to work. Before installing these drivers I could at least use native resolution and native refresh rate.

It's defaulted to Wayland of course, which I hear can be another issue by itself, but I don't know the pros and cons of it vs using X (or X11 it whatever is actually called). I also know the open drivers can have issues, but am not sure if they would be useful for me.

Relevant hardware: MSI MAG Z790 i7 13700K RTX 3070 Ti

So obviously these drivers don't work for me, but I'm not sure what I need to do from here. Google got me this far, but there's not a lot of mentioned of being forced to use nomodeset, and nothing relevant at all if how to get proper drivers installed properly.

I did add the RPM Fusion repo, but haven't used it yet. Or at least the free one, can't remember if I added the non free one yet.

Happy to find outputs of whatever you need, but I'm still very new to using a terminal, so I don't know much about what I can do with it in general, much less what to do with it or try to look at in this specific case. I've picked up bits and pieces, but until I can get a working environment, learning is difficult.

180
 
 

As the title states whenever I try to login and start the desktop environment (xfce4 and dwm) I get kicked back to the login screen with no error message. Beforehand I was messing around with configuring dwm. I've tried updating through the tty and deleting dwmblocks (which is what I was messing with before all this)

Here's the output when running startxfce4:

usr/bin/startxfce4: Starting X server

(EE)
Fatal server error:
(EE) Server is already active for display 0
                if this server is no longer running, remove /tmp/.X0-lock and start again.
(EE)
(EE)
Please consult the X.org foundation support at http://wiki.x.org for help.
(EE)
Authorization required, but no authorization protocol specified

xinit: giving up
xinit: unable to connect to C server: Resource temporarily unavailable
xinit: server error
181
 
 

Is it possible to have the drives weather you use RAID ZFS to be encrypted?

182
2
submitted 2 years ago* (last edited 2 years ago) by wheeldawg@sh.itjust.works to c/linux4noobs@programming.dev
 
 

Hello,

Finally built a new rig, and wanted to ditch Windows.

Got KDE neon up and running, booted into it, got my browser mostly back to how I like it, ran an update for my video card. I didn't notice the screen blackout and come back like it normally would for a video update, but I don't think that has anything to do with my current issue. I tried to restart to make sure it was running, and the update part of discover showed up and said I had a couple hundred updates to get, no big surprise there, since it is a fresh install.

Then it hung on fetching updates, and while I could browse my list of programs, I couldn't do anything else. So I did a hard shut down and powered back up.

It sticks on some kennel warnings and won't go any further.

Obviously I can't really do anything from there that I know of.

I also can't even get it to boot with the install media. That just sticks on a black screen. I can tell the monitor is actually showing black, as it doesn't give the "NO SIGNAL" warning. I have no idea what to do from here since I can't get it to react to anything, much less know how to fix anything if I could get in.

As for what the warnings say, there are 6 or so lines saying the same thing: problem blacklisting hash (-13), and one more that says nvme2: failed to set APST feature (2)

I haven't put anything on nvme2 yet, I haven't even formatted it yet, just the primary drive (nvme0). So I'm not sure what could possibly be wrong with it yet.

183
11
Fedora install borked (lemmy.dbzer0.com)
submitted 2 years ago* (last edited 2 years ago) by ArcaneSlime@lemmy.dbzer0.com to c/linux4noobs@programming.dev
 
 

Hey guys my Fedora install has been giving me trouble lately, and now refuses to boot at all. For a while mullvad and firewalld refused to start on occasion so I just started manually checking at boot and starting them when need be, but now hostname.service fails and the other two fail, and the system gets hung up on some gnome doohicky and refuses to go past it to boot. Yesterday it wouldn't let me update because pipewire i686 (or is it i868? Anyway..) and gnu-utils (or something) i688668 (still can't remember the numbers) kept causing conflicts with the x86_64 versions, and the advice was to uninstall the non-x86_64 versions, but when I tried to uninstall it told me they weren't installed to begin with.

Frankly I'm sick of it, so I'm gonna do a fresh install I guess. This brings us to my question. Currently just transferring my entire /home/ to a drive, then gonna transfer it to the new install. What, outside of that directory, should I also bring for ease of setting up the new system? And what should I specifically exclude, especially anything which would cause issues or conflicts that is in the /home/ dir? Finally, I had a bunch of what appeared to be bash related temporary garbage files, all I really need to bring from bash is .bashrc, right? The rest of those can get trashed? I should add, I'm likely just going to go with fedora again, though I am considering debian.

Thanks for your help in advance. Didn't see my day being this but I guess it's what I'm doing.

184
 
 

So I am hoping to finally get around to installing Linux for the first time. Ideally I would like to eventually replace my win10 installation with it, but for now I plan on dual booting until I am comfortable enough on Linux. This leads me to a couple questions:

  • which one is best suited for gaming? I do a couple other things as well but I would expect that any OS could deal with those. I know vaguely about proton / the steam deck improvements that trickled down, but don’t know if and how that affects different Linux versions.

  • I read some days ago that ubuntu is being used by Microsoft, does that mean it is more compatible with their other applications?

  • I also read that amd is better suited to linux because nvidia refuses to support it, which would be a happy coincidence for me because I just recently built a fully amd computer, is that actually true?

  • And lastly, provided there is even a definitive answer to my first question, where should I look to get started? I have never dealt with Linux before but would consider myself reasonably tech / computer savvy.

Thank you

185
 
 

@linux4noobs How to install Fedora on Laptop with FDE via LUKS using TPM. So, It unlocks automatically during boot ?

186
 
 

I've tried many recs from ProtonDB but it doesn't work for me. Both DS1 and DS2 just never open a window.

I use Steam, I switched proton versions and some %program launch options, but no luck.

If you have some ideas, I'd love to hear them.

187
 
 

Linux and its software is constantly under development and the community seems to really be making an effort to ensure that programs work exactly as expected. I often notice little things like glitches or program crashes and I am able to replicate them and I think I should probably submit a bug report or something. Since I am not a dev I have no idea how to do this or where to start. How do I know if its my issue or the programs issue?

For example, Thunderbird 115.1.0 is crashing when I open a specific email. I will put the steps I took to debug it in the comments.

188
 
 

Today's tip is a simple one many experienced users will roll their eyes at, but that is because it is so common and handy to use. When watching and helping people new to Linux, I often see them fail to utilize this powerful tool. They struggle to remember file names and commands and it hurts my soul to watch knowing how much easier it could be for them. Knowing how to use this helps you help yourself. There isn't a day that goes by I don't use this probably a hundred times.

Tab completion

Tab completion is a powerful feature in the Linux terminal that allows you to quickly complete filenames, directory paths, and commands by pressing the 'Tab' key. It can significantly speed up your workflow and reduce the chances of typos.

Benefits of using tab completion:

  • Efficiency: Saves time by reducing typing and minimizing errors.
  • Discoverability: Helps you discover available commands and file/directory names.
  • Accuracy: Reduces typos and potential mistakes.

Using Tab Completion

Completing Commands: Type the start of a command, maybe one you can't quite remember the name of, and press 'Tab' twice to see a list of available commands that match the entered text. If you've typed enough that there will only be one option, it'll complete that one for you.

Completing Filenames and Directories: When typing a file or directory name, press 'Tab' to automatically complete the name. If multiple options match, pressing 'Tab' twice will display the options.

Navigating Directories: Use tab completion to navigate through directories quickly. For example, type cd /usr/l and press 'Tab' to complete to /usr/local/.

Conclusion

It should be noted that tab completion may work slightly different depending on the terminal and other settings you may have. Pressing 'Tab' twice may bring up a full menu to select from for available files or directories, for instance. However, this overview provides the gist of how it works for most any system I regularly come across.

189
 
 

Today's tip is on customizing the terminal prompt. If you're a developer, there is a high chance that you use source control. There's also a high chance that source control is git. You likely find yourself in and out of project directories, navigating different branches quite often. One customization I like to make to my prompt is adding the git branch I'm currently working in, if one exists. This is far from the only customization that can be made, but I'm going to cover because it is so common and relatable to many.

Understanding the Default Prompt

The default prompt usually includes your username, hostname, and current directory. It might look like:

user@hostname:~/current_directory$

The cool thing is you can set this to whatever you'd like - or nothing at all. Some of those things might be an indicator that shows whether you are working on a remote or local machine, cpu load and other system stats, or the time. If you want to pull the water temperature from a buoy in the Gulf of Mexico and you'd find that useful in your prompt, you can add that, too. You can also stylize your prompt with colors. You can even create a multi-line prompt with some of these on each line using the new line escape sequence (detailed below).

The prompt is simply the value of the PS1 environment variable. To view your current one, you can run echo $PS1

Changing the Prompt Temporarily:

You can change your prompt temporarily by assigning a new value to the PS1 environment variable:

PS1="MyFirstCustomPrompt$ "

This will change your prompt to MyFirstCustomPrompt$ until you close the terminal.

Customizing with Escape Sequences:

You can use escape sequences to add color, time, date, and more to your prompt. Here are the escape sequences:

  • \u: Current username

  • \h: Hostname

  • \w: Full current working directory

  • \W: Last part of the current working directory

  • \d: Date (e.g., Fri Aug 11)

  • \t: Time (24-hour format, 14:30:00)

  • \n: New line

  • \e[x;ym: This sequence is used to set foreground and background colors. Replace x and y with color codes from below.

Color Codes

  • 0 : Reset / No color
  • 1: Bold / Bright
  • 2: Dim / Faint
  • 3: Italic
  • 4: Underlined
  • 5: Blinking
  • 7: Inverted colors (swap foreground and background)
  • 8: Hidden / Concealed

Foreground Color Codes:

  • 30: Black
  • 31: Red
  • 32: Green
  • 33: Yellow
  • 34: Blue
  • 35: Magenta
  • 36: Cyan
  • 37: White

Background Color Codes:

  • 40: Black
  • 41: Red
  • 42: Green
  • 43: Yellow
  • 44: Blue
  • 45: Magenta
  • 46: Cyan
  • 47: White

For example:

PS1="[\e[1;32;41m\u@\h \W\e[m]$ "

This displays your prompt in green on a red background (ugly), including the username (\u), hostname (\h), and current directory (\W).

Git Branch Function and Make Changes Permanent:

To make your custom prompt permanent, add the PS1 assignment to your shell's profile configuration file (~/.bashrc for Bash, ~/.zshrc for Zsh).

To add the current git branch to the prompt, you'll need to include a function that parses the git branch for the current directory. If there is a git branch, the function returns the value to be displayed. This is what you'd add at the end of your configuration file.

parse_git_branch() {
   git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

PS1="\[\e[1;32m\][\u@\h \W\$(parse_git_branch)]\[\e[m\]$ "

This code defines parse_git_branch that extracts the current branch from a Git repository and adds the branch information to the prompt.

Conclusion

Using this method, there are all sorts of creative prompts that can be created. If you use or know of any handy prompts or come up with any after reading this, please share in the comments.

190
 
 

What is tmux?

tmux, short for terminal multiplexer, is a command-line tool that allows you to split your terminal into multiple panes, create and manage multiple terminal sessions, and attach and detach to them. It allows you to create multiple terminals in one window.

What's the point?

The feature I appreciate most is the attach and detach functionality. I manage a multitude of servers running an array of services and tasks. There are instances where my internet connection acts up while I'm working remotely and I get disconnected. Losing my shell environment and any ongoing processes due to a hiccup in my internet is frustrating and can be time consuming.

Working within a tmux session allows me to reconnect, attach to my session, and seamlessly pick up right where I left off without sacrificing any progress. Another nice thing is that I can effortlessly move to another workstation and resume my session on a remote machine there. I find it particularly useful to detach and send certain processes to the background. While testing and developing, I often choose this approach in lieu of setting up a systemd service. What many people will do is create a script that launches a service in a tmux session, which allows for attaching to it at some point later to either interact or view any output from what is running easily.

If it is hard to conceptualize the value of this, you can think of it as having many terminal windows open that you can minimize and come back to later.


Using tmux

There are a lot of tmux features and shortcut keys, but I'm going to cover the ones I regularly use that fit my needs. As with most things in Linux, there are several ways to accomplish the same task. Here is a handy cheatsheet of tmux commands. Try not to be overwhelmed with the amount of shortcuts. I certainly don't have them all memorized. If you're like me, you'll have just a few you regularly use and it'll become muscle memory after a short time.

Installing

Not all systems will have tmux installed by default, but it is very likely in the package manager as tmux. sudo dnf install tmux, sudo apt install tmux, or sudo pacman -S tmux will likely get the majority of people there, depending on which system and package manage is in use.


New Session

The most simple way to start a tmux session is to simply run tmux. This will create the virtual session with a generic name. I prefer to name my sessions so I can easily identify them if I get several sessions going. This makes it easy to identify what is what. I start my sessions with tmux new-session -s sessionname


Detach Session

To detach from this session, you press Ctrl+b then d . That session is now running in the background and whatever process you were running, if any, are still running. You'd be free to end the ssh connection if that is how you are connected and that session will still remain alive.


Listing, Attaching and Switching Sessions

To list your running sessions while not in a tmux session, you can run tmux ls. To attach to one of these sessions by name, you can run tmux a -t sessionname. What I often do out of laziness after connecting to a machine is simply run tmux a. This will join the last session you were attached to or sometimes it feels like it just selects a random one. From there, pressing Ctrl+b, s will open a list of all the running sessions you can easily select and jump to with the arrow keys and pressing enter. This is my normal workflow, but again, there are several ways to accomplish the same thing and even several variants of the commands, as can be seen on the cheatsheet link above.


Killing a Session

The usual way that I kill a session is to just run exit while inside of the one I wish to end. As noted on the cheatsheet, there are other ways to kill it without actually entering it.


Scrolling

The only other common feature I use is scrolling. While inside a session, you lose the ability to easily scroll back as you normally would in a terminal emulator such as terminator or konsole. To scroll back up you use Ctrl+b [. You can then use the arrow keys to scroll above what is presently on the screen. Ctrl+c gets you out of scrolling mode. Be careful to only Ctrl+c once, as you might unintentionally kill a running process if there is one going.


Conclusion

This is how I usually use tmux. It'll be useful to look at the cheatsheet and play around with some of the other features you might find handy, such as creating panes and windows.

Another popular multiplexer that accomplishes a lot of these same tasks is screen. screen is older but many still find it just as useful.


I'm curious how other people utilize tmux. Are there any lesser known tips or tricks that I didn't cover or may not know about? Better methods that'd make my workflow as described above easier? Does anyone have a strong opinion on using screen instead of tmux? Any considerations or dangers that people should be aware of when using a multiplexer? If so, let us know!

191
 
 

I thought it might be nice to start a daily tips & tricks post to stimulate some conversation while offering up fundamental knowledge to those who might appreciate it. And it gives me something to get my brain going with my morning coffee. I intend for them to be very brief (this turned out to be a lie) and serve as a starting point for anyone who may wish to dig deeper through their own research or discussion.

Feel free to add any additional thoughts or questions in the comments. Certainly please correct me if I make any mistakes. If there are any topic requests for future tips & tricks, throw them out there or if you have one of your own you'd like to share, please post it. I'll try to post and/or feature one daily. If I don't have time to write my own and no one else has offered anything up, I'll find something interesting elsewhere to feature.


File Permissions and Ownership

Understanding permissions and ownership for files and directories gives you granular control over who can access and modify your files. Understanding this is especially essential for security and privacy. I'll be working in the terminal to explain:

View Permissions

To view permissions, run ls -l. This outputs a long listing of the files in your current directory. The information in the far left column are the permissions. It should be noted that everything in Linux is treated as a file, including directories. This isn't technically true, but you can think of it this way for our purposes here.

drwxr-xr-x is an example of permissions for one of my directories I'll refer to as funny_memes.

Permission Symbols
  • d = directory
  • r = read
  • w = write
  • x = execute
  • - = not set (or regular file)

For our purposes, you can ignore the first character. Most commonly you'll see 'd' or '-' to denote it being a directory or a regular file. There are also others you may wish to explore (symlinks, sockets, etc).

The 3 groups we are interested in each contain 3 characters. That is, 3 groups of 3. (I know this is confusing, but "group" is one of the groups of 3.) The order of these groups are 'user', 'group', and 'others'. That order is specific and important to remember. To use my funny_memes example, my current permissions are set as follows:

~$ ls -l

drwxr-xr-x. 1 PlutoParty PlutoParty 0 Aug 9 04:08 funny_memes

Type User Group Others
d rwx r-x r-x

This means the user who owns this directory can read, write, and execute. The group assigned to this directory can only read and execute. And all others can also only read and execute.

Ownership

In the ls -l output, the user and group assigned to the directory (or file) is displayed just after the permissions, in that order. In my example, PlutoParty is my user and PlutoParty is the group of the funny_memes directory.

Changing permissions

Octal Notation

Permissions can be changed with chmod using octal or symbolic notation. Understand the 3 bit octal notation is a little tricky to understand at first. In short, for each group (user, group, and others) the sum of the bits set determines the file permission. Individual permission bits are as follows:

  • 'r' (Read): 4
  • 'w' (Write): 2
  • 'x' (Execute): 1

If I wanted to give execute and read permission only to a user, group, or to others, for example, that permission value would be 5. (1 + 4). Full permissions would be 7. Read and write only would be 6. This works because every combination is a unique sum.

Here is a cheat sheet of all the combinations for reference:

Octal Value Permissions
0 No permissions
1 Execute only
2 Write only
3 Write and execute
4 Read only
5 Read and execute
6 Read and write
7 All permissions

The user, group, and others each get a value set. To change my funny_memes directory to full permissions for user, group, and others, I'd set that with chmod 777 funny_memes. Again, each number represents the sum of the permission bits you want assigned for user, group, and others, individually and in that order. 777 gives full permission to each of them because 4 (read) + 2 (write) + 1 (execute) = 7.

If I want to only allow the user full permissions (myself, in this case) and deny group and others anything, I'd run chmod 700 funny_memes. One more example is if I wanted to allow the user to read and write while only allowing the group and others to read, I'd use chmod 644 funny_memes

For many people, this is tricky to remember and understand at first. So, don't get frustrated. Write the individual permission bits down (read, write, and execute - not the full cheat sheet) from above and use it. You'll quickly have it memorized. It's really only 3 numbers to memorize. If you memorize those and remember that the order is user, group, others, you'll be a master at setting permissions with octal notation by the end of the day. In my opinion, it is actually easier than setting with symbolic notation, which we'll get familiar with now.

Symbolic Notation

  • u : owner of the file.
  • g : group associated with the file.
  • o : users who are not the owner or part of the group (others).
  • a : all users (or you can also use ugo combined).

Permissions:

  • r (read)
  • w (write)
  • x (execute)

Operators:

  • + : Adds a permission.
  • - : Removes a permission.
  • = : Sets the specified permissions and removes any others.

If we had a script called do_backup.sh and we want to set the permissions for the owner to execute, the group to read, and deny others from any permissions, we'd run chmod u+x,g+r,o- do_backup.sh. You can add or remove permissions individually in this manner. You can also combine u, g, or o as needed if they will have identical permissions. I think this is handy for 'fine tuning' any permissions, but it is a bit (hehe) of a pain to type it all out in comparison to 3 numbers that can quickly be added up in your head.

Changing Ownership and Conclusion

In order to change the owner and group of a file (which you may need elevated permissions to do depending on existing permissions), I'll leave you to explore the chown and chgrp commands. They are pretty straightforward, but do offer more advanced options you can read about in the man pages.

And that's really the basics of assigning permissions. To explore more, I'd suggest reading the man pages on the following commands:

  • man chmod
  • man chown
  • man chgrp

Those really interested may want to go on to read about creating and managing groups.

192
 
 

You can backup your config files before editing them, like this:

cp configbeingedited.conf configbeingedited.conf__orig_datestring

This way, when things break or don't function how you like, you can easily copy the original config file back into position, restoring the original functionality.

193
 
 

Hello, I'm trying to install ubuntu alongside windows 10 which I need for school.

I've tried two methods to get windows to use AHCI: 1) switch to safe mode, choose AHCI in the BIOS, log on to windows then turn safe mode off. 2) use the registry editor to get the AHCI drivers on, then choose AHCI in the BIOS.

In both cases windows fails to startup and thinks the hard disk is messed up. Are there any alternative methods? Anything I couldve gotten wrong? Unable to find leads so far.

I will next be trying to update some drivers, maybe that will work, but would love some guidance until I get back to trying.

EDIT: I wasn't able to figure out how to get my existing windows installation to work with AHCI. I also wasnt able to use a windows live usb to fix my isntallation. I had two partitions and ended up installing windows on the partition I had freed up for ubuntu, moving my files to it, then installing ubuntu on the partition windows initially was on.

I have no idea whats wrong with my computer because that wasnt all the trouble I faced lol, but now am happy I have ubuntu working.

194
 
 

I'm not a beginner anymore, but I'm much less interested in technical tinkering for its own sake than I used to be. These days I just want my computer to work properly without too much intervention from me.

I've been using Kubuntu for a number of years, but I'm also hearing increasing complaints about how Canonical is running things. I don't think I'm ready to switch to a new distro yet, but it wouldn't hurt to know what's out there.

Is Kubuntu still a good choice for an "it just works" KDE-based distro, or has it been surpassed?

195
 
 

Post your questions relating to the installation, configuration, & usage of Linux without fear of sounding dumb.

The only dumb question is the one you don't ask!