No reason to ask for forgiveness buddy, everybody was a beginner at first, the question is did you even try to learn?
So you don't know what proton is? Tried google?
You must be registered to see the links
You must be registered to see the links
Ehh.... Depends... If you setup wine (
You must be registered to see the links
can be very useful for this) correctly, you might be able to just "double click" and run a WINDOWS APPLICATIONS on linux.
I can do that for simple applications, but I would never do it that way. Quite frankly, most times I accidentally double click an .exe file and will have to manually remove the wine prefix that was created for it.
Let me ask you this: if you are trying to run windows applications, why are you using linux?
Would you try to run windows applications on an apple device too?
How about you execute a linux binary on windows and tell me how that works for you...
On linux, file endings does not matter at all, the inode (or shebang, explanation below) of the file does.
Check ls for example, the application you use to list your directories and files.
Explanation:
First check where the location of
ls is located using
whereis. You can also use an application called
which, but in this case it might not work because on a lot of systems
ls is aliased inside .bashrc:
Code:
$ which ls
ls: aliased to ls --color=auto
$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
With
whereis the first path it the location of the application and the second is where the manual is located.
See the absense of any file suffix like .exe?
You can then check what kind of file it is with an application called
file (use the path you got in previous command, it might differ from what i have on my system):
Code:
$ file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=c4559d6cae6c36bc3cc7b1f97fe3379ada0b52a2, for GNU/Linux 4.4.0, stri
pped
Witch is unix way of telling you it's a binary.
You can do that on any file and it will tell you what it is, for example your .bashrc
Code:
$ file ~/.bashrc
.bashrc: Unicode text, UTF-8 text
But hold on a second, the content of .bashrc is a bunch of code, why is it a "text file":
Code:
$ cat ~/.bashrc
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
if [ $(tput colors) -lt 256 ]; then
PS1='\n\[\e[48;5;33m\] \[\e[38;5;255;1m\]\u\[\e[22;39m\] \[\e[48;5;239m\] \[\e[38;5;255m\]\w\[\e[39m\] \[\e[38;5;255m\]\$\[\e[39m\] \[\e[00m\] '
else
PS1='\n\[\e[38;5;255;48;5;33m\] \[\e[1m\]\u \[\e[0;38;5;33;48;5;239m\] \[\e[38;5;255m\]\w \$ \[\e[0;38;5;239m\] \[\e[00m\]'
fi
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
This is simply because the file essentially
is just a text file, the contents of that file gets sourced and ran in bash when you start your termial (your shell). This is a bit of a special case so lets do an experiment.
To show how this works, I have a folder called test in my home with three files inside:
Code:
ls -l ~/test
-rwxr--r-- 1 test test 3517 Oct 21 04:29 test2.sh
-rwxr--r-- 1 test test 5302 Oct 6 00:56 test.sh
-rw-r--r-- 1 test test 313 Jul 31 15:04 test.txt
As you can see there are two script files and one text file, the script files are executable by the owner (test) as can be seen with the x inside "rwxr--r--", user group and all others only have read access.
So lets check the files:
Code:
$ file ~/test/test.txt
test/test.txt: ASCII text
$ file ~/test/test.sh
test/test.sh: Bourne-Again shell script, ASCII text executable
$ file ~/test/test2.sh
test/test2.sh: ASCII text
Hold on, test2.sh is labeled as a text file...
The reason for this is something called the
You must be registered to see the links
, witch is the first line of a file that tells linux what to use to execute the file, looks like this:
Code:
$ cat ~/test/test.sh | head -1
#!/usr/bin/env bash
It simply tells the linux kernel to use the application
env to figure out where
bash is located on your system (the path can be different on different systems) and then execute the file using
bash as interpreter (this could for example be python for a python file).
In the second file, I removed the shebang to prove this point.
Code:
$ env --help | head -2
Usage: env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
Set each NAME to VALUE in the environment and run COMMAND.
Conclusion:
Use linux applications on linux. If there is some specific windows application you REALLY need for some reason, let's say photoshop with devs that actively fight against usage on linux, use the correct tool to run it, like
You must be registered to see the links
for example.
Games:
If you are talking about pirated windows games, yeah, you would have to know how to set that up manually with wine prefixes.
I have only tried that once for fun to see if it worked. I used
You must be registered to see the links
to install a pirated version Everspace 2 and it ran with better fps than on windows using steam, raytracing, and everything. Even stuff like dlss worked flawlessly if I wanted to use that.
So doable? yes.. Simple? Well, I would not call it complicated to be honest, you just have to understand how wine and in my case how lutris works in combination with wine and then install it through there.
As explained above, a .sh file is just a script file, just like .bat files are on windows. Has nothing to do with anything if it does not exist. What is needed is a binary for linux.
And I was talking about running games through steam. If there IS A LINUX version, steam will download and use that unless you set a global or per game translation layer.
If you manually download something, it's up to YOU to make sure you download the linux version (if the devs provide that), not windows or you will also have to setup wine prefixes and make sure you run the windows version through a proton layer.
My point about unity games
usually having a native version is when devs are making a unity game, they pretty much only have to also click a checkbox when compiling and unity will compile for linux as well.
So on steam, it's 95% "just click download and then play", steam will handle it. If there is no native version of the game and you have not selected a proton layer to use, the "play" button on steam will be greyed out and you fix that in 5s by editing compatibility layer in the steam game settings (click the game, then the cog-wheel and set compatability layer) and steam will "update the game" to launch through proton and the play button becomes available.
Hope this clarifies a bit.