Скомпилированный код — это просто (обычно довольно длинная )последовательность байтов. Если вы cat
такой файл, терминал попытается отобразить символы с одинаковым значением байта в пределах ASCII/UTF8/UTF16. Это не удается для большинства комбинаций байтов, поэтому результат cat a.out
выглядит как тарабарщина.
Для просмотра двоичных значений в шестнадцатеричном формате
$ od -x a.out
0000000 facf feed 0007 0100 0003 8000 0002 0000
0000020 000f 0000 04b0 0000 0085 0020 0000 0000
0000040 0019 0000 0048 0000 5f5f 4150 4547 455a
0000060 4f52 0000 0000 0000 0000 0000 0000 0000
0000100 0000 0000 0001 0000 0000 0000 0000 0000
...
или, если он есть в вашей системе,
$ hexdump -C a.out
00000000 cf fa ed fe 07 00 00 01 03 00 00 80 02 00 00 00 |................|
00000010 0f 00 00 00 b0 04 00 00 85 00 20 00 00 00 00 00 |...............|
00000020 19 00 00 00 48 00 00 00 5f 5f 50 41 47 45 5a 45 |....H...__PAGEZE|
00000030 52 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |RO..............|
00000040 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 |................|
...
00000f90 00 00 00 41 53 ff 25 65 00 00 00 90 68 00 00 00 |...AS.%e....h...|
00000fa0 00 e9 e6 ff ff ff 48 65 6c 6c 6f 2c 20 57 6f 72 |......Hello, Wor|
00000fb0 6c 64 21 0a 00 00 00 00 01 00 00 00 1c 00 00 00 |ld!.............|
00000fc0 00 00 00 00 1c 00 00 00 00 00 00 00 1c 00 00 00 |................|
...
Я хотел задать вопросы, прежде чем опубликовать возможный ответ, но у меня недостаточно представителей для этого, поэтому здесь много предположений и мало возможностей.
Я предполагаю, что вы используете X11, а не Wayland. Найдите файл Xsession
или xinitrc
в /etc/X11/xinit/
. Если у вас есть один, отредактируйте его, используя nano
или что-то еще, что плавает на вашей лодке, используя:
sudo nano /etc/X11/xinit/xinitrc
и либо добавьте туда содержимое вашего скрипта, если оно достаточно краткое, либо выполните свой скрипт оттуда, добавив:
source path/to/your/script.sh
Убедитесь, что #!/bin/sh
находится вверху как вашего скрипта, так и файла xinitrc
или Xsession
, и что файл является исполняемым, выполнив sudo chmod +x xinitrc
, если у вас, например, xinitrc
.
У меня есть xinitrc
в моем домашнем каталоге, который я использую, так что, может быть, у вас тоже есть такой или вы можете создать его (? )Но тогда я не использую KDE, так что это может не сработать для вас. У меня также есть один в /etc/X11/xinit/
, который я не редактирую.
Затем отредактируйте или создайте файл в /etc/sddm.conf
, если он не существует, и добавьте в него следующее:
[X11]
SessionCommand=/etc/X11/xinit/xinitrc
для xinitrc
. Может быть, вы могли бы указать его на один в вашем домашнем каталоге? Я недостаточно осведомлен, чтобы быть уверенным на 100%. Если уже есть блок [X11]
, просто добавьте к нему строку, не добавляйте второй блок [X11]
.
Этодолжнозапускать ваш скрипт после входа в систему с использованием SDDM, которыйобычнодиспетчер отображения KDE (с вашим именем пользователя и паролем при входе в систему ). Вы также можете использовать DisplayCommand
вместо SessionCommand
, а затем указать его на /etc/sddm/Xsetup
, но он может не запуститься после выхода из системы и обратно, он запустится после запуска диспетчера дисплея (, то есть перезагрузки системы ). ], но я не знаю, действительно ли он перезапускается после входа в систему.
Если это не помогло, извините, вот документация, которую я прочитал, которая привела меня к решениям, которые я предоставил, которые вы также можете использовать, и я очень уверен, что вы найдете решение из них:
https://wiki.gentoo.org/wiki/SDDM(соответствующая часть внизу)