Der Linux-Emulator "iSH", der auf dem iPad läuft, ist ein heißes Thema in mir

iSH-Setup

Installiere apk

Standardmäßig ist der Paketmanager apk nicht installiert, installieren Sie ihn also.

$ wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static && rmdir sbin 2> /dev/null

apk update

$ apk update
$ apk upgrade

Zumindest verschiedene ausprobieren

$ apk add zsh vim git openssh

Standard-Shell ändern

$ vim /etc/passwd
#Vorher ändern
root:x:0:0:root:/root:/bin/ash
#Nach der veränderung
root:x:0:0:root:/root:/bin/zsh

Starten Sie iSH nach der Änderung neu. Dann wird die Eingabeaufforderung als "\ h: \ w \ $" angezeigt und ist schwer zu erkennen. Ändern wir also die Eingabeaufforderung. Ich möchte es allen Benutzern gemeinsam machen, also erstelle / etc / zshrc.

setopt PROMPT_SUBST     # allow funky stuff in prompt

if [ "$USER" = "root" ]; then
    color="red"         # root is red, user is cyan
else
    color="cyan"
fi;


local ok_yuno="%F{yellow}✘╹◡╹✘%f"
local bad_yuno="%F{red}✘>﹏<✘%f"
local command_line="
%F{green}%B%*%b%f %F{$color}%B%n@%m%b%f %F{green}%B%~%b%f
%(?.${ok_yuno}.${bad_yuno}) %F{yellow}%B%#%b%f "

export PROMPT="${command_line}"

Auch / etc / vimrc

syntax enable

set number
set title
set cursorline
set virtualedit=onemore
set showmatch
set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent
set hlsearch
nmap <Esc><Esc> :nohlsearch<CR><Esc>

set fenc=utf-8
set encoding=utf-8
scriptencoding utf-8
set ambiwidth=double

inoremap { {}<Left>
inoremap {<Enter> {}<Left><CR><ESC><S-o>
inoremap ( ()<ESC>i
inoremap (<Enter> ()<Left><CR><ESC><S-o>
inoremap [ []<Left>
inoremap ' ''<Left>
inoremap " ""<Left>

nnoremap j gj
nnoremap k gk
nnoremap <down> gj
nnoremap <up> gk

Lassen Sie iSH im Hintergrund laufen

Es ist eine magische Magie.

$ cat /dev/location > /dev/null &

Erlauben Sie als Nächstes immer die Verwendung von iSH-Standortinformationen in der iPad OS-Einstellungs-App.

Melden Sie sich von Ihrem Lieblingsclient mit SSH bei iSH an

Das iSH-Terminal ist etwas langweilig, daher wäre es großartig, wenn Sie es von einem Client aus bedienen könnten, den Sie gewohnt sind. Hier werde ich versuchen, iSH mit der von Minorin empfohlenen "Blink Shell" zu betreiben.

Mit iSH vorbereiten

Port 22000 #Der Zugriff auf dasselbe Gerät unter Nummer 22 ist nicht möglich
PermitRootLogin yes #Wechseln Sie später zu Nein
PubkeyAuthentication yes
PasswordAutentication yes #Wechseln Sie später zu Nein
ClientAliveInterval 60 #Wie Sie möchten, damit SSH nicht unterbrochen wird
ClientAliveCountMax 60
$ passwd #Entscheiden Sie sich für ein Root-Passwort
$ ssh-keygen -A
$ /usr/sbin/sshd

Alles was Sie tun müssen, ist sich von Ihrem Lieblingsclient aus zu verbinden (o ・ ω ・ o)

ssh root@localhost -p 22000

Allgemeine Benutzer hinzufügen

$ adduser -s /bin/zsh minorin
$ addgroup minorin wheel

Installieren Sie sudo

$ apk add sudo
$ visudo
#Kommentar
%wheel ALL=(ALL) ALL

SSH-Einstellungen

Schlüsselerstellung

$ su minorin
$ chmod 755 /home/minorin
$ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ touch authorized_keys
$ chmod 600 authorized_keys
$ ssh-keygen
$ chmod 600 id_rsa

Kopieren Sie dann den öffentlichen Schlüssel des Clients und fügen Sie ihn in "autorized_keys" ein.

Einstellung sshd_config

PermitRootLogin no
PasswordAutentication no
AddressFamily inet
UseDNS no
$ sudo /usr/sbin/sshd

Jetzt müssen Sie nur noch sicherstellen, dass Sie SSH von Ihrem normalen Client mit Schlüsselauthentifizierung ausführen können.

ssh minorin@localhost -p 22000

wie openrc

$ apk add openrc
$ rc-update add sshd

Dies sollte sshd automatisch starten, funktioniert aber nicht (; ∀;)

Installation des Code-Servers

$ apk add alpine-sdk libstdc++ libc6-compat npm libx11-dev libxkbfile-dev libsecret-dev python3
$ npm config set unsafe-perm true
$ npm config set python python3
$ npm install -g @google-cloud/[email protected]
$ npm install -g code-server
npm WARN @coder/[email protected] requires a peer of @google-cloud/logging@^4.5.2 but none is installed. You must install peer dependencies yourself.

npm ERR! code ENOENT
npm ERR! syscall rename
npm ERR! path /usr/lib/node_modules/code-server/node_modules/tar-fs/node_modules/chownr
npm ERR! dest /usr/lib/node_modules/code-server/node_modules/tar-fs/node_modules/.chownr.DELETE
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, rename '/usr/lib/node_modules/code-server/node_modules/tar-fs/node_modules/chownr' -> '/usr/lib/node_modules/code-server/node_modules/tar-fs/node_modules/.chownr.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-**-*****_**_**_****-debug.log

Es war nicht gut (; ∀ ;)

Vorschau beim nächsten Mal

Vorerst werde ich versuchen, VNC einzustellen.

Recommended Posts

Der Linux-Emulator "iSH", der auf dem iPad läuft, ist ein heißes Thema in mir
Linux ist in erster Linie so etwas
Spielen Sie Sounds in Python ab, vorausgesetzt, die Tastatur ist eine Klaviertastatur
Einfach! Implementieren Sie einen Twitter-Bot, der auf Heroku in Python ausgeführt wird
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
Die NVM-Prüfsumme ist ungültig, eine Lösung für das Problem, das das kabelgebundene LAN von Intel unter Linux nicht erkennt.
Suchen Sie in Google Earth nach einem Gebäude, das der Höhe von Shin Godzilla entspricht
[2020Juli] Überprüfen Sie die UDID des iPad unter Linux
Legen Sie eine feste IP in der Linux-Umgebung fest
Es ist ein Mac. Was ist der Linux-Befehl Linux?
CodePicnic, das eine Umgebung [Entwicklung | Ausführen | Tutorial | Demo] erstellen kann, die im Browser ausgeführt wird
Ein Hinweis zur Bibliotheksimplementierung, in der Hyperparameter mithilfe der Bayes'schen Optimierung in Python untersucht werden
[Django] Drücken Sie einen Befehl, den Sie in dem Prozess ausgeführt haben, der auf manage.py ausgeführt wird.
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Geben Sie die Lautstärke unter Linux an und spielen Sie den Sound ab
Erstellen Sie unter Linux einen QR-Code für die URL
Suchen Sie den Teil 575 aus Wikipedia in Python
Überprüfen Sie, ob das LAN-Kabel unter Linux nicht angeschlossen ist
Schreiben Sie in Python ein logarithmisches Histogramm auf die x-Achse
So löschen Sie "(base)", das im Terminal angezeigt wird, wenn Anaconda auf einem Mac installiert ist
Problemumgehung für sys.argv wird nicht übergeben, wenn ein Python-Skript mit nur dem Dateinamen unter Python2.7 unter Windows ausgeführt wird