this post was submitted on 19 Dec 2024
7 points (76.9% liked)

Linux

48721 readers
1074 users here now

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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

While I was adding Golang to the PATH my terminal (Konsole) suddenly stopped recognizing basic commands like nano and ls. I restared my PC and after logging back in (X11) KDE started throwing errors because it wasn't able to find any program I tried to launch. Konsole is gone. I can't open any program whatsoever (Firefox, Discover etc.). Trying to log in into Wayland just throws a black screen. After a few more reatarts I decided to use the terminal from the login screen, but it is broken as well. ls not found, nano and vim don't exist. So far I can use pwd and cd.

What the hell is wrong here? Is it hardware failure (bad SSD)? Is there anything I can attempt to recover the system?

top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 17 points 1 week ago (1 children)

Did you accidentally replace your path rather than append to it? You might need to get a recovery drive, chroot in, and reset the path. Not sure what the actual value should be though.

[–] [email protected] 5 points 1 week ago

That was the problem. Stupid me...

[–] [email protected] 6 points 1 week ago* (last edited 1 week ago) (1 children)

I think I know what happened. Did you do something like PATH="/usr/bin/golang"?

Because doing that overwrite your path variable. You need to set it like this:

PATH="{PATH}:/usr/bin/golang" to append to the path.

And well... I hope you got a backup of your /root/.bashrc or whatever you use as a terminal. Restoring it should fix it

Edit: you should be able to use any program by appending /usr/bin/ to your commands, as long as it's in this directory

[–] [email protected] 2 points 1 week ago

You are right. I messed it up adn didn't put $ infront of PATH... Luckily I found an stackoverflow post with a similar issue and it suggested setting PATH to the default PATH=/usr/bin:/usr/sbin that would alowe using commands again and it worked.

[–] [email protected] 4 points 1 week ago

It definitely could be a hardware failure, but if the system still boots fine, it's probably not that. Based on the symptoms, I think you might have clobbered your PATH variable. This can happen when you do something like PATH=/new/path/ because the variable gets overwritten. You have to remember to preserve the existing value with PATH=$PATH:/new/path/. Don't worry, this is reversible.

The best thing to do would be to fix or temporarily remove the commands you used to set PATH in whatever profile or .rc file it's in. You can run whatever text editor you have installed by specifying the path to the executable. I don't know exactly where vim is on Fedora, but it's probably something similar to /sbin/vim or /usr/bin/vim. Keep trying locations until you find the right one. Then log out and back in and it should be fixed.

You might also be able to login as root and use the shell normally to fix the problem, depending on which file contains the faulty command. Hopefully this helps.

[–] [email protected] 2 points 1 week ago

in your shoes: i would switch to a virtual terminal to see if my path has been misconfigured.

most distros have setup alt+ctrl+f1 through alt+ctrl+f7 to let you switch to a virtual terminal where it will give you a cli after you login. once you do; you can use either echo $PATH or env to inspect your environment configuration.

if i'm right and based on your description; i would expect the same command not found message and you'll need to restore it. you can restore it using either an environment skeleton (assuming your distro includes one) or you can get a basic one from a google search and reconstruct it.

also if i 'm right: i recommend using a versioning system (eg git, svn, perforce, etc.) so that you can easily roll back in case you encounter something like this again.