Khởi chạy dòng lệnh Linux trên iOS

Khởi chạy dòng lệnh Linux trên iOS

Bạn có biết rằng bạn có thể chạy dòng lệnh Linux trên thiết bị iOS không? Bạn có thể hỏi: “Tại sao tôi nên sử dụng ứng dụng nhắn tin trên iPhone của mình?” Câu hỏi công bằng. Nhưng nếu đọc Opensource.com, bạn có thể biết câu trả lời: Người dùng Linux muốn có thể sử dụng nó trên mọi thiết bị và muốn tự tùy chỉnh nó.

Nhưng trên hết, họ khao khát giải quyết những vấn đề phức tạp.

Tôi có một chiếc iPad 2 Mini XNUMX tuổi vẫn khá tốt để đọc sách điện tử và các tác vụ khác. Tuy nhiên, tôi cũng muốn sử dụng nó để truy cập dòng lệnh của ứng dụng bằng bộ chương trình và tập lệnh của mình mà không có nó thì tôi không thể làm việc được. Tôi cần một môi trường quen thuộc cũng như môi trường phát triển tiêu chuẩn của tôi. Và đây là cách tôi đạt được điều này.

Kết nối với bàn phím

Làm việc với dòng lệnh để lập trình thông qua bàn phím ảo của điện thoại hoặc máy tính bảng khá bất tiện. Tôi khuyên bạn nên kết nối bàn phím ngoài, qua Bluetooth hoặc sử dụng bộ chuyển đổi kết nối máy ảnh để kết nối bàn phím có dây (tôi đã chọn cái sau). Khi bạn kết nối bàn phím chia Kinesis Advantage với iPhone 6, bạn sẽ nhận được một thiết bị lạ giống như cyberdeck công ty từ cổ điển đóng vai Shadowrun.

Cài đặt shell trên iOS

Để chạy hệ thống Linux đầy đủ tính năng trên iOS, có hai tùy chọn:

  • Vỏ bảo mật (SSH) được kết nối với máy tính Linux
  • Chạy hệ thống ảo sử dụng Alpine Linux với iSH, là mã nguồn mở nhưng phải được cài đặt bằng ứng dụng TestFlight độc quyền của Apple

Thay vào đó, có hai ứng dụng mô phỏng thiết bị đầu cuối nguồn mở cung cấp khả năng hoạt động với các công cụ nguồn mở trong môi trường hạn chế. Đây là tùy chọn đơn giản nhất - trên thực tế, đây là cách bạn chạy các công cụ Linux chứ không phải Linux. Có những hạn chế nghiêm trọng về tính năng khi làm việc với các ứng dụng này, nhưng bạn có được một phần chức năng dòng lệnh.

Trước khi chuyển sang các giải pháp phức tạp, tôi sẽ xem xét phương pháp đơn giản nhất.

Tùy chọn 1: Vỏ hộp cát

Một trong những cách dễ nhất là cài đặt ứng dụng iOS LibTerm. Nó mã nguồn mở Shell lệnh được đóng hộp cát với sự hỗ trợ cho hơn 80 lệnh với chi phí bằng 2.7 đô la. Nó đi kèm với Python 3.7, Python XNUMX, Lua, C, Clang và nhiều hơn nữa.

Có chức năng gần giống nhau vỏ sò, được các nhà phát triển mô tả là “giao diện người dùng thử nghiệm cho nền tảng nhập liệu màn hình”. Nguồn a-Shell được đăng mã nguồn mở, nó đang được phát triển tích cực, cung cấp quyền truy cập hệ thống tệp và đi kèm với Lua, Python, Tex, Vim, JavaScript, C và C++, cũng như Clang và Clang++. Nó thậm chí còn cho phép bạn cài đặt các gói Python.

Tùy chọn 2: SSH

Một bước tiến triển khác từ việc tải xuống ứng dụng là thiết lập ứng dụng khách SSH. Từ lâu, chúng tôi đã có thể sử dụng bất kỳ ứng dụng khách SSH nào dành cho iOS để kết nối với máy chủ chạy Linux hoặc BSD. Ưu điểm của việc sử dụng SSH là máy chủ có thể chạy bất kỳ bản phân phối nào với bất kỳ phần mềm nào. Bạn làm việc từ xa và kết quả công việc của bạn chỉ được chuyển sang trình mô phỏng thiết bị đầu cuối trên thiết bị iOS của bạn.

vỏ chớp mắt là một ứng dụng SSH trả phí phổ biến ở mã nguồn mở. Nếu bỏ qua màn hình nhỏ của máy thì việc sử dụng phần mềm này cũng tương tự như việc kết nối với máy chủ thông qua bất kỳ dòng lệnh nào khác. Blink Terminal trông rất đẹp, có nhiều chủ đề được tạo sẵn và khả năng tạo chủ đề của riêng bạn, bao gồm khả năng tùy chỉnh và thêm phông chữ mới.

Tùy chọn 3: Khởi chạy Linux

Sử dụng SSH để kết nối với máy chủ Linux là một cách tuyệt vời để truy cập dòng lệnh, nhưng nó yêu cầu máy chủ bên ngoài và kết nối mạng. Đây không phải là trở ngại lớn nhất nhưng không thể bỏ qua hoàn toàn, vì vậy bạn có thể cần chạy Linux mà không cần máy chủ.

Nếu đây là trường hợp của bạn, thì bạn sẽ cần phải tiến thêm một bước nữa. TestFlight là dịch vụ độc quyền để cài đặt các ứng dụng đã phát triển ngay cả trước khi chúng được xuất bản trên Apple App Store. Bạn có thể cài đặt ứng dụng TestFlight từ App Store rồi sử dụng các ứng dụng thử nghiệm. Các ứng dụng trong TestFlight cho phép một số lượng người thử nghiệm beta có giới hạn (thường lên tới 10) làm việc với chúng trong một thời gian giới hạn. Để tải xuống ứng dụng thử nghiệm, bạn cần đi từ thiết bị của mình đến liên kết thường nằm trên trang web của nhà phát triển ứng dụng thử nghiệm.

Chạy Alpine Linux với iSH

ISH là một ứng dụng TestFlight mã nguồn mở khởi chạy một máy ảo với bản phân phối được tạo sẵn Núi cao Linux (với một chút nỗ lực, bạn có thể chạy các bản phân phối khác).

Tính năng quan trọng: ứng dụng thực nghiệm. Vì iSH hiện là một ứng dụng thử nghiệm nên bạn đừng mong đợi nó hoạt động liên tục và đáng tin cậy. Các ứng dụng TestFlight bị giới hạn thời gian. Bản dựng hiện tại của tôi sẽ chỉ tồn tại được 60 ngày. Điều này có nghĩa là sau 60 ngày tôi sẽ bị loại và phải tham gia lại vòng thi iSH tiếp theo. Hơn nữa, tôi sẽ mất tất cả các tệp của mình trừ khi tôi xuất chúng bằng Tệp trên iOS hoặc sao chép chúng sang máy chủ Git hoặc thông qua SSH. Nói cách khác: Đừng mong đợi điều này sẽ tiếp tục hoạt động! Đừng đưa bất cứ điều gì quan trọng với bạn vào hệ thống! Sao lưu đến một vị trí riêng biệt!

Cài đặt iSH

Bắt đầu với việc cài đặt TestFlight từ App Store. Sau đó cài đặt iSH, đã nhận được link cài đặt từ trang web ứng dụng. Có một phương pháp cài đặt khác bằng AltStore nhưng tôi chưa thử. Hoặc, nếu bạn có tài khoản nhà phát triển trả phí, bạn có thể tải xuống kho iSH từ GitHub và tự cài đặt.

Sử dụng liên kết, TestFlight sẽ cài đặt ứng dụng iSH trên thiết bị của bạn. Giống như bất kỳ ứng dụng nào khác, một biểu tượng sẽ xuất hiện trên màn hình.

Quản lý gói

iSH chạy trình giả lập x86 với Alpine Linux. Alpine là một bản phân phối nhỏ, có kích thước dưới 5MB. Đây là lần đầu tiên tôi làm việc với Alpine nên tôi nghĩ chủ nghĩa tối giản sẽ gây khó chịu nhưng thực ra tôi rất thích nó.

Khởi chạy dòng lệnh Linux trên iOS
Alpine sử dụng trình quản lý gói apk, điều này còn dễ dàng hơn cả apt hoặc pacman.

Cách cài đặt gói:

apk add package

Cách xóa gói:

apk del package

Cách tìm các lệnh và thông tin khác:

apk --help

Cập nhật trình quản lý gói:

apk update
apk upgrade

Cài đặt trình soạn thảo văn bản

Trình soạn thảo văn bản mặc định của Alpine là Vi, nhưng tôi thích Vim hơn nên đã cài đặt nó:

apk add vim

Nếu muốn, bạn có thể cài đặt Nano hoặc Emacs.

Thay vỏ

Tôi không biết về bạn, nhưng tôi cần vỏ cá. Người khác thích hơn Cú đánh hoặc Zsh. Tuy nhiên, Alpine sử dụng tro! Ash là một nhánh của Dash shell, bản thân nó là một nhánh của tro ban đầu, hoặc vỏ Almquist. Ưu tiên của cô là tốc độ. Tôi quyết định đánh đổi tốc độ để lấy tính năng tự động hoàn thành tích hợp, màu sắc, điều khiển phím Vim và đánh dấu cú pháp mà tôi yêu thích và biết từ vỏ cá.

Lắp đặt cá:

apk add fish

Nếu bạn cần Bash với các trang tự động hoàn thành và trang man, thì hãy cài đặt chúng:

apk add bash bash-doc bash-completion

Hệ tư tưởng tối giản của Alpine thường có nghĩa là một số chương trình được đóng gói trong các bản phân phối khác sẽ được chia thành nhiều gói nhỏ hơn. Điều đó cũng có nghĩa là bạn có thể tùy chỉnh và giảm kích thước hệ thống của mình chính xác theo cách bạn muốn.

Để biết thêm thông tin về cách cài đặt Bash, hãy xem hướng dẫn này.

Thay đổi shell mặc định

Sau khi cài đặt cá, bạn có thể tạm thời chuyển sang nó bằng cách nhập fish và đi vào vỏ. Nhưng tôi muốn đặt cá làm vỏ mặc định và lệnh chsh, mà tôi đã sử dụng trên các bản phân phối khác, không hoạt động.

Đầu tiên chúng ta tìm ra nơi cá được cài đặt:

which fish

Đây là những gì tôi có:

/usr/bin/fish

Tiếp theo, thay đổi shell đăng nhập thành cá. Bạn có thể sử dụng bất kỳ trình soạn thảo nào thuận tiện cho bạn. Nếu bạn là người mới bắt đầu thì hãy cài đặt Nano (bằng lệnh apk add nano) để bạn có thể chỉnh sửa các tệp cấu hình và lưu chúng qua CTRL+X, xác nhận và thoát.

Nhưng tôi đã sử dụng Vim:

vim /etc/passwd

Dòng đầu tiên của tôi là như thế này:

root:x:0:0:root:/root:/bin/ash

Để biến cá thành vỏ mặc định, hãy thay đổi dòng này thành dòng sau:

root:x:0:0:root:/root:/usr/bin/fish

Sau đó lưu tập tin và thoát.

Tôi chắc chắn có một cách hay để thay đổi đường dẫn đến shell để có thể sử dụng ngay. Nhưng tôi không biết điều đó, vì vậy tôi khuyên bạn nên quay lại trình duyệt ứng dụng, buộc thoát khỏi shell và để đảm bảo an toàn, hãy tắt và khởi động lại iPad hoặc iPhone của bạn. Mở iSH một lần nữa và ngay bây giờ, ngoài thông báo “Chào mừng đến với Alpine!” và thông tin về việc khởi chạy từ apk, bạn sẽ thấy thông báo chào mừng đăng nhập cá tiêu chuẩn: Chào mừng bạn đến với cá, vỏ tương tác thân thiện. Hoan hô!

Khởi chạy dòng lệnh Linux trên iOS

Thiết lập Python và pip

Tôi quyết định thêm Python (phiên bản 3.x), không chỉ để viết mã mà còn vì tôi sử dụng một số chương trình Python. Hãy cài đặt nó:

apk add python3

Mặc dù Python 2.x đã lỗi thời nhưng bạn có thể cài đặt nó:

apk add python

Hãy cài đặt trình quản lý gói Python có tên pip và công cụ thiết lập:

python3 -m ensurepip --default-pip

Sẽ mất một chút thời gian để cài đặt và định cấu hình trình quản lý gói, vì vậy hãy chờ đợi.

Sau đó bạn có thể tải về một công cụ để truyền file qua mạng quăn lại:

apk add curl

Đọc sách hướng dẫn

Fish sử dụng tính năng tự động hoàn thành tích hợp dựa trên các trang man. Giống như những người dùng dòng lệnh khác, tôi sử dụng hướng dẫn man, nhưng nó không được cài đặt ở Alpine. Vì vậy tôi đã cài đặt nó với máy nhắn tin đầu cuối ít:

apk add man man-pages less less-doc

Ngoài man tôi còn dùng tuyệt vời dự án trang tldr, cung cấp các trang hướng dẫn đơn giản và hướng đến cộng đồng.

Tôi đã cài đặt nó bằng pip:

pip install tldr

Đội tldr kết nối với web để truy xuất các trang khi gặp yêu cầu về một trang mới. Nếu bạn cần biết cách sử dụng lệnh, bạn có thể viết một cái gì đó như tldr curl và nhận mô tả bằng tiếng Anh đơn giản cùng các ví dụ hay về cách sử dụng lệnh.

Tất nhiên, tất cả công việc cài đặt này có thể được tự động hóa bằng cách sử dụng dotfiles hoặc một tập lệnh cài đặt, nhưng trên thực tế, điều này không thực sự tương ứng với hệ tư tưởng của Alpine - tùy chỉnh cài đặt tối thiểu một cách nghiêm ngặt để phù hợp với nhu cầu của bạn. Hơn nữa, nó mất rất nhiều thời gian phải không?

thêm thông tin

ISH Wiki có một trang "cái gì hiệu quả" với các báo cáo về gói nào hiện đang chạy. Nhân tiện, có vẻ như npm hiện không hoạt động.

Một trang wiki khác giải thích cách truy cập tập tin iSH từ ứng dụng Tệp iOS. Đây là một trong những cách bạn có thể di chuyển và sao chép tập tin.

Bạn cũng có thể cài đặt Git (vâng! apk add git ) và đẩy công việc của bạn đến một kho lưu trữ từ xa hoặc chuyển nó đến máy chủ thông qua SSH. Và tất nhiên, bạn có thể tải xuống và chạy bất kỳ dự án nguồn mở tuyệt vời nào từ GitHub.

Thông tin thêm về iSH có thể được tìm thấy tại các liên kết sau:

Như một quảng cáo

Vdsina cung cấp máy chủ ảo trên Linux hoặc Windows. Chúng tôi sử dụng độc quyền thiết bị có thương hiệu, bảng điều khiển máy chủ tốt nhất được thiết kế riêng và là một trong những trung tâm dữ liệu tốt nhất ở Nga và EU. Hãy nhanh tay đặt hàng nhé!

Khởi chạy dòng lệnh Linux trên iOS

Nguồn: www.habr.com

Thêm một lời nhận xét