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ư
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
Có chức năng gần giống nhau
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.
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.
Chạy Alpine Linux với iSH
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
Cài đặt iSH
Bắt đầu với việc 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ó.
Alpine sử dụng trình quản lý gói
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
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
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ô!
Thiết lập Python và pip
Tôi quyết định thêm
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à
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
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
apk add man man-pages less less-doc
Ngoài man tôi còn dùng tuyệt vời
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
thêm thông tin
ISH Wiki có một trang "
Một trang wiki khác giải thích cách
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
Nguồn: www.habr.com