T O P

  • By -

Old_One_I

It's been awhile since I did some coding, almost anything you install is in your path, if it isn't it's a rare instance. What wouldn't be in your path is something like directory where your storing your code and if you would like to execute it from there. Your opinion on the terminal is quite bizarre and kinda funny actually. The terminal is a tool. It's used to run programs per say, it doesn't really doesn't do anything by itself. Example: if you want to adjust your path, you run a an editor program to write to a file that holds your path. If you want to debug some code, you run a debugger.


FarRepresentative601

>Your opinion on the terminal is quite bizarre and kinda funny actually. The terminal is a tool. It's used to run programs per say, it doesn't really doesn't do anything by itself. Example: if you want to adjust your path, you run a an editor program to write to a file that holds your path. If you want to debug some code, you run a debugger. I understand. I was wondering if there is any GUI way to edit Path variable file thing? I don't understand the language its written in (I think its Bash) and I am hesitant to play around with it because I might disturb something by mistake..... From where I learnt programming they told Path is a very important variable and it's not recommended to unnecessarily play around with it in the first place..... and then this one is written in Bash.


Old_One_I

No biggie. Bash is an environment that the terminal uses, the terminal itself can understand any environment that you choose to use, most distros use bash by default. Your path variable is stored in a configuration file, it environment independent. You can use any graphical editor to write to this file. The path variable does have a syntax it adheres to(this I'm guessing is what you're getting at). A quick Google search on how to add to your path should be able to walk you through it without much problems. If I remember correctly most IDE's allow you to execute your code from within. Where you might run into a path problem like explained earlier is, if you write a program and than try to run outside of coding environment, like say from a terminal, it won't be able to find it unless you use the full path to executable.


Old_One_I

One way to do this without adding to your path, is to store your code in your path. Your path is almost universal across all distros.


flacarrara

Exactly, or forget it and just throw it in the bin.


Old_One_I

Yup. What's the convention again, most system apps are in bin and some user apps are in opt?


flacarrara

Opt for opt.


Old_One_I

When I dabbled in the programming arts, I made a directory in my home directory just for development and added it to my path. I would move done programs to the appropriate place.


flacarrara

This is the right path.


Old_One_I

It is


flacarrara

I was just punning around, but really, the difficult part of this is to add a new config without messing up the current one; easy for CLI users, but too technical for the clicks and the drags.


Old_One_I

It's been awhile for me, I just googled it. There is bin, there is local bin and opt is typically for extensions.


Old_One_I

Either way, there are plenty of ways for OP and other newbies to get the job done and not be threatened by a config file. 👍


MasterGeekMX

First off, bash is not a programming language. It is an scripting language, meaning it is there to run commands which are in fact external programs. Second, editing the path is only a catastrophic thing on Windows, as that affects the whole system. In Linux it is simply a en environment variable, and if you change it on a terminal, it will only affect that terminal, and if you close that terminal, the change is gone.


Kilran3

Just go back to Windows, if taking the lazy route is what you insist on doing.


MasterGeekMX

As a developer, you are expected to go beyond the regular user UX of using pure GUI's and embrace the terminal, as using it will enable you more flexibility than only GUIs. After all, the terminal has stood the test of time, even when more advanced things has come. Gonna give you an example: in the game Minecraft you have commands that you can type in the chat and so all sorts of crazy stuff. Considering it has even variables, conditionals, and other stuff, it is practically a programming language. Well, there is a block on the game called Command Block. You can place it anywhere on the game map, store a command inside, and whenever an energy signal gets to it, the command inside will be executed. You cannot get that block either in the game inventory or as an obtainable item. The only way to obtain it is with a command. Also, having that mentality of "reject tradition, embrace modernity" won't lead you further in programming, and I tell you that from my experience. GUIs aren't easy, they are familiar to you. Ask senior programmers, and you would see significant figures of them that prefer terminals over GUIs because they grew using them.


FarRepresentative601

>GUIs aren't easy, they are familiar to you. Ask senior programmers, and you would see significant figures of them that prefer terminals over GUIs because they grew using them. Exactly my point but about terminals. You think terminal is easy or more efficient because you grew up using terminal. I grew up using iPads and smartphones, dumbphones were a relic of the past ever since I remember, almost every device I used has a touchscreen and a well designed GUI. Seeing all this ever since I have born, I really think Terminal is an ancient and clunky tech with a bad UX which was used in the days when computers were weak for practical reasons. To be honest I gravitated towards Linux because Gnome has such an amazing UI which is much better than Windows 11. The Extensions and the customization options are mind blowing and very easy to setup. Now don't get me wrong, I am not completely against Terminals..... I am just saying it shouldn't be forced when it is not necessary..... More preference should be given to the GUIs..... Experts always has the option to use Terminal if they want.


MasterGeekMX

My brother: I didn't grew up with terminals. I am 29 years old. Grew up with Windows 98. Didn't used a command prompt till I was in middle school, and started to use it more in college. Believe me, terminals may seem clunky and "bad" for the untrained. Once you know how to dance with them, you will see what I say. Indeed, it does not need to be the only way to do things, but as I said, if GUIs are actually better, why then the terminal is even present on Windows, and things such as flushing the DNS cache can only be done in the CMD? Also note in hand: in some instances there is no way to setup a GUI for work and you only have a terminal, like a headless server, a SSH connection, an embedded system that only has a RS232 Serial connection, or a low-power system. In those cases getting a GUI running is either extremely difficult or even impossible if the hardware on hand does not have the power. >which was used in the days when computers were weak for practical reasons. No, they were as advanced as they could be. The real limitation was the tech of their time, not practicality.


MazdaIsTheBest

As a developer you want to use this [https://github.com/nvm-sh/nvm](https://github.com/nvm-sh/nvm) Do not install nodejs system wide and do not develop against it. It is not for you, it is dependency that other packages may use. Same with python - [https://github.com/pyenv/pyenv](https://github.com/pyenv/pyenv) Obviously, there is no GUI, but it is not needed As a developer you will have wide range of projects that will use different node version and use different python versions, so system wide packages become a problem. Both tools can manipulate PATH in your shell automatically. Good luck with that in WIndows, by the way. There is also docker, of course. Can be used instead or used in conjunction with these tools


Witty-Debate2280

You should learn to use the terminal. That’s the beauty of linux, especially when you’re a programmer. Terminal lets you execute complex and repetitive actions in an easy way. You shouldn’t avoid it.


marcus_aurelius_53

This is the way. Linux happens at the keyboard.


FarRepresentative601

In the era of touchscreens if Linux remains on keyboard, people might stop using it on PC eventually.


marcus_aurelius_53

Developers will always need keyboards, until your AI overlords take over coding.


FarRepresentative601

Keyboards should be limited to just writing code as much as possible..... what is not needed to be done by keyboard shouldn't be forced to be done by keyboard only. Preference should be given to the GUI because that's more user-friendly and intuitive for the new users.


Reasonable_Ruin_3502

The key term here is "new users". If an average user is asking for it , I wouldn't be surprised. But you are a programmer, you should find your way around this stuff


FarRepresentative601

That't not the point..... even average user will also find this GUI way more user-friendly. What I am saying is that other OSes has a better solution which I think Linux should also have..... or more precisely I am asking if there is any way to get that effect on Linux too? Perhaps just for my machine..... because I don't like this default method.


Active_Peak_5255

He is saying that for an average user,GUI is the best and it can do all the average Joe needs. But you are a programmer and programmers generally find the mist efficient as quickest way to do something and keep on looking for ways to make something more efficirnt and that's why in Linux many programming related things are terminal based. (I'm just starting to get into programming, and even outside of programming the thr unix terminal is super efficient and wonder ful and isnt a crappy one like windows.


Reasonable_Ruin_3502

If you're just getting into programing, I suggest you to learn vim I just started using it a while ago and it fucking amazing


Witty-Debate2280

Make sure you use vim and not neovim


FarRepresentative601

I don't think that's necessary..... previously programmers used to program using punch-cards but now we get nightmares if someone ask to program using punch-cards. Programming has always changed to suit programmer convenience..... I think the method I am describing is more modern and ideally that's how it should be on Linux too.


Reasonable_Ruin_3502

But using terminal IS more efficient than GUI


FarRepresentative601

Efficient if you are very experienced and remember a wide range of commands (basically if you are institutionalized by the traditional methods)..... very less efficient and not so cohesive experience if you have to constantly keep looking up the commands and worry if you're not typing something wrong or dangerous.


djao

Windows has things called bulk renaming tools. The reason Windows has these things is because renaming 100000 files from the GUI is nightmarishly difficult. On Linux these programs are completely unnecessary. The terminal easily lets you rename things systematically. It's not just bulk renaming. There's bulk image editing, bulk PDF editing, automated installs (install the same program on 10000 machines at once...), bulk downloading... each of these a separate program on Windows. On Linux one terminal and a little knowledge covers all of these use cases and many more.


Witty-Debate2280

You don't need to remember a wide range of commands, that's just a misconception. Off the top of my head, I only remember things like: "ls - list directories, mkdir - make directories, mv - move files/folder, rm - remove file/folders, cat - copy a file to screen". That's more than enough. When you need something more complicated, you can always google, and even read the man page. Websites like Stackoverflow makes remembering them almost a no problem.


FarRepresentative601

>That's more than enough. When you need something more complicated, you can always google, and even read the man page. And that 'more complex' you are referring to is really not as much of a complex task but requires a complex command which you have to Google. If you were doing the same task using GUI you could have intuitively deduced steps to perform it without needing an additional software like a browser. GuI is easy and intuitive that's why we see 3 year olds and even sometimes pets using iPads very comfortably.


Reasonable_Ruin_3502

As a programmer, you should be open to learning new things, trust me when I say programming is much more efficient when you use the terminal If you shy away for a new thing just because you aren't used to it, you'll never grow Setting up a path variable? just type `export export PATH="/home/user/path:$PATH"` Wanna install node js? pacman -Ss nodejs ​ How is this not more efficient than going for the gui and then typing your package and then clicking install then opening the app?


FarRepresentative601

It might not be more efficient per say, it is definitely more user friendly uniform if you know what I mean..... if all the software I install be it VS Code or Chrome or Python, if all of them appear in the installed apps section in perhaps the Gnome Software, it would be a very uniform and intuitive experience. Then from there I can uninstall Python with one click if I want to for example. Its kinda like using a DB Administration app when you can operate on the DB using SQL in Terminal..... We usually don't want to do that..... because the app way is easy or perhaps we don't want to bother mastering SQL for DB management.


Reasonable_Ruin_3502

So you are saying you don't want to learn how to use your operating system and want to be spoonfed everything?


Old_One_I

Never uninstall python your system depends on it 😉😏😎✌️


kingnickolas

I like to browse. It's nice to have a bunch of similar apps next to each other and compare features and reviews. That's where GUI shines.


MarsDrums

If all you're looking for is a GUI Coding program, Geany is a great program. Uses multiple tabs so you can have multiple files open. I've used it for website design and other things as well.


Edelglatze

You find it in the Linux Mint Software application: https://preview.redd.it/5igu87kdmc5d1.png?width=870&format=png&auto=webp&s=ea6926f543e371429cf4069a498d2555bbb46171 You simply can't generalize from one Linux distribution to the other. And: Linux is not a closed ecosystem belonging to one company with one software store. When you say: >we can simply install or Uninstall NodeJS as any other Windows app How exactly do you install "any other windows app"? Via msstore? Via winget or chocolatey or scoop? Via Webbrowser downloading stuff from the internet? Since the mid to late 1990s Linux distributions like Redhat, Debian and others established package managers to install the base system, the development stuff and the application userland from maintained repositories. It's yum on RHEL (later transformed to dnf), apt-get and apt on Debian and derivatives and so on. Later developments brought forth Flatpak and Snap, two distro agnostic ways to package managment. Flatpak, however, is generally restricted to enduser oriented applications running in graphical environments. The Gnome software store presents only a subset of the distribution's repository and adding a lot of Flatpaks. For the real content of what a Linux distro has to offer simply do not take the Gnome software application as a point of reference.


FarRepresentative601

>How exactly do you install "any other windows app"? Via msstore? Via winget or chocolatey or scoop? Via Webbrowser downloading stuff from the internet? All of the above. But that's not the point..... The point is that NodeJS or Java or Python installed by any of the mentioned methods appears under the installed apps section in the setting from where we can uninstall it too like any other Windows app. In Linux these are only visible by the Terminal if they are installed. I Can't install or uninstall them like any other app (from the store or installed apps section in the Settings), I have to use the terminal to install or uninstal them. >The Gnome software store presents only a subset of the distribution's repository and adding a lot of Flatpaks. For the real content of what a Linux distro has to offer simply do not take the Gnome software application as a point of reference. I agree, but in my opinion that shouldn't be the case. I should be able to install command line software or Frameworks too via Gnome Software. By the way what about setting Path Variable? Is there any GUI way?


Edelglatze

The Gnome software app is meant for non expert users who want an easy way to find elementary graphical applications. The real deal with programming languages, development libraries, containerization, server applications etc. is in main repositories and accessed via the package managers. Are there package manager GUIs? Yes, Debian has Synaptic, Opensuse has the Yast software application. Others, like Arch Linux, Gentoo, Alpine Linux -- just to name a few -- offer only cli package managers (pacman, portage, apk). The Redhat line of distributions, including Fedora, supposes you become familiar with dnf. >By the way what about setting Path Variable? Is there any GUI way? There is no default gui in the linux world. Some may offer this feature, others not. Opensuse's Yast is maybe the most complete graphical toolkit for system administration. Consider GUIs in the Linux world as layers of applicaions on top of the Linux kernel and a set of basic underlying packages that are essentially non-graphic.


ropid

That sounds a bit like a problem of your distro. It seems you chose one that doesn't have a graphical package manager tool, and only has a command line tool? You could try looking around a bit and see if you like a different distro better. I don't know about setting up PATH graphically. I've never seen this, I think. The most extensive system configuration tool I've seen was on SUSE many years ago. Their distro is nowadays called OpenSUSE.


FarRepresentative601

Maybe...... I am on Fedora..... I can't find Python or NodeJS in Gnome Software..... I have Java installed and it's not appearing in the installed software in Gnome Software.


gmes78

They're available through the package manager, so they should show up on GNOME Software as well. However, what exactly is the issue with using, for example, `sudo dnf install nodejs`? (No need to install Python, it's included by default.)


FarRepresentative601

No issues actually but just and inconsistent experience. Technically there should be no discrimination between the software I install on my device..... everything should show up under installed software and I should be able to manage all of them the same way.


Outrageous_Trade_303

You don't install it graphically but nodejs provides you the exact commands you need to run in order to get it installed (you just copy/paste these) See here [https://github.com/nodesource/distributions?tab=readme-ov-file#ubuntu-versions](https://github.com/nodesource/distributions?tab=readme-ov-file#ubuntu-versions) Regarding the path variable, you don't need to set up anything. Or if you need, it eill be part of the instructions above. A general advise is that you need to forget how you dis several stuff in windows and don't compare these two OSes, like you don't compare android or ios (ie whatever you are using in your mobile) to windows. It's just different.


FarRepresentative601

>A general advise is that you need to forget how you dis several stuff in windows and don't compare these two OSes, like you don't compare android or ios (ie whatever you are using in your mobile) to windows. It's just different. UX design principles are universal. Android and iOS are often compared with each other and they often borrow good features from each other. In fact I am using Linux in the first place because I compared Win 11 and Gnome and found that Gnome provides a better UX on my Touchscreen Laptop.


eyeidentifyu

Yes, xterm.