Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Cách thiết lập màn hình Ubuntu mới chỉ sử dụng tập lệnh Dotfiles và tập lệnh Bash

Một trong những điều yêu thích nhất của tôi về các tệp mã nguồn mở trên GitHub là khả năng xem cách người khác làm (những gì một số người có thể gọi là) những điều trần tục, như thiết lập .bashrc của họ và các tệp dotfiles khác. Mặc dù tôi không còn hào hứng với việc ricing như khi lần đầu tiên đến với Linux, nhưng tôi vẫn khá hào hứng khi tôi tìm thấy một cài đặt cấu hình giúp mọi thứ đẹp hơn và nhanh hơn, và do đó, tốt hơn.

Gần đây tôi đã xem qua một vài điều như vậy, đặc biệt là trong dotfiles của Tom Hudson. Tom dường như thích viết kịch bản cho mọi thứ, và một số trong số đó bao gồm tự động thiết lập các liên kết tượng trưng, ​​và cài đặt các ứng dụng kho lưu trữ Ubuntu và các chương trình khác. Điều này khiến tôi phải suy nghĩ. Tôi có thể tự động thiết lập máy mới để sao chép máy hiện tại của mình không?

Là một người thường có xu hướng tách rời mọi thứ để xem chúng hoạt động như thế nào, tôi biết đôi khi tôi đã làm hỏng máy tính xách tay của mình. (Thường là khi tôi vắng nhà và ổ cứng dự phòng của tôi thì không.) Trong những tình huống hiếm hoi nhưng thực sự bất tiện khi máy tính của tôi trở thành một lớp vỏ như cũ của nó, (ba-dum-ching) thì sẽ khá tuyệt. để có một cách nhanh chóng, đơn giản để tập hợp lại Humpty Dumpty lại với nhau, theo cách tôi thích.

Trái ngược với việc tạo hình ảnh đĩa và khôi phục nó sau đó, một bộ sưu tập các tập lệnh bash dễ dàng hơn để tạo, duy trì và di chuyển xung quanh. Họ không yêu cầu các tiện ích đặc biệt, chỉ có một phương thức vận chuyển bên ngoài. Nó giống như truyền theo công thức, thay vì toàn bộ bánh. (Mmm, bánh ngọt.)

Ngoài ra, chức năng như thế này sẽ cực kỳ hữu ích khi thiết lập một máy ảo hoặc VM, hoặc thậm chí chỉ là một máy chủ riêng ảo hoặc VPS. (Cả hai điều đó, bây giờ tôi viết điều này, có thể sẽ tạo ra nhiều mục tiêu dễ tha thứ hơn cho các thí nghiệm phá hoại hơn của tôi… hãy sống và học hỏi!)

Chà, sau một số thao tác tìm kiếm và tìm kiếm trên Google, giờ tôi đã có một bộ tập lệnh có thể thực hiện việc này:

Cách thiết lập màn hình Ubuntu mới chỉ sử dụng tập lệnh Dotfiles và tập lệnh Bash

Xem video về cách thiết lập tại đây.

Đây là phần cuối của quá trình chạy thử nghiệm các tập lệnh đã thiết lập trên máy tính để bàn Ubuntu mới, được tải từ USB có khả năng khởi động. Nó đã khôi phục tất cả các chương trình và cài đặt của tôi trong vòng chưa đầy ba phút!

Bài đăng này sẽ trình bày cách thiết lập tự động máy tính chạy Ubuntu Desktop (trong trường hợp của tôi là Ubuntu LTS 18.04) bằng cách sử dụng tập lệnh bash. Phần lớn thông tin được đề cập có thể áp dụng cho tất cả các phiên bản máy tính để bàn Linux, mặc dù một số cú pháp có thể khác nhau. Các tập lệnh bash bao gồm ba lĩnh vực chính:liên kết các tập tin dotfiles, cài đặt phần mềm từ Ubuntu và các nơi khác, và thiết lập môi trường máy tính để bàn. Chúng tôi sẽ đề cập đến từng lĩnh vực này và đi qua các điểm quan trọng để bạn có thể bắt đầu tạo các tập lệnh của riêng mình.

Dấu chấm

Dotfiles là cái mà hầu hết những người đam mê Linux gọi là tệp cấu hình. Chúng thường nằm trong thư mục chính của người dùng (được biểu thị bằng tập lệnh bash với biến nội trang $ HOME ) và kiểm soát sự xuất hiện và hành vi của tất cả các loại chương trình. Tên tệp bắt đầu bằng . , biểu thị các tệp ẩn trong Linux (do đó là tệp “chấm”). Dưới đây là một số tập tin dotfiles phổ biến và các cách mà chúng hữu ích.

.bashrc

.bashrc tệp là danh sách các lệnh được thực thi khi khởi động bằng các trình bao tương tác, không đăng nhập. Vỏ tương tác và không tương tác có thể hơi khó hiểu, nhưng chúng tôi không cần phải lo lắng về điều này ở đây. Vì mục đích của chúng tôi, bất cứ khi nào bạn mở một thiết bị đầu cuối mới, nhìn thấy lời nhắc và có thể nhập lệnh vào đó, .bashrc của bạn đã được thực thi.

Các dòng trong tệp này có thể giúp cải thiện quy trình làm việc của bạn bằng cách tạo bí danh giúp giảm số lần gõ phím hoặc bằng cách hiển thị lời nhắc hữu ích với thông tin hữu ích. Nó thậm chí có thể chạy các chương trình do người dùng tạo, như Eddie. Để biết thêm ý tưởng, bạn có thể xem tại .bashrc của tôi trên GitHub.

.vimrc

.vimrc dotfile cấu hình nhà vô địch của tất cả các trình soạn thảo văn bản, Vim. (Nếu bạn chưa sử dụng được sức mạnh của các phím tắt, tôi thực sự khuyên bạn nên chơi một trò chơi thú vị để học Vim.)

Trong .vimrc , chúng tôi có thể đặt tùy chọn trình chỉnh sửa như cài đặt hiển thị, màu sắc và phím tắt tùy chỉnh. Bạn có thể xem qua .vimrc của tôi trên GitHub.

Các tệp chấm khác có thể hữu ích tùy thuộc vào chương trình bạn sử dụng, chẳng hạn như .gitconfig hoặc .tmux.conf . Khám phá các tệp dotfiles trên GitHub là một cách tuyệt vời để hiểu những gì có sẵn và hữu ích cho bạn!

Liên kết dotfiles

Chúng tôi có thể sử dụng một tập lệnh để tạo các liên kết tượng trưng hoặc liên kết tượng trưng cho tất cả các tệp dotfiles của chúng tôi. Điều này cho phép chúng tôi giữ tất cả các tệp trong một kho lưu trữ trung tâm, nơi chúng có thể dễ dàng được quản lý, đồng thời cung cấp một loại trình giữ chỗ ở vị trí mà chương trình của chúng tôi mong muốn tìm thấy tệp cấu hình. Đây thường, nhưng không phải luôn luôn, là thư mục chính của người dùng. Ví dụ:vì tôi lưu trữ tệp dotfiles của mình trên GitHub, tôi giữ chúng trong một thư mục có đường dẫn như ~ / github / dotfiles / trong khi bản thân các tệp được liên kết với nhau, dẫn đến một đường dẫn như ~ / .vimrc .

Để kiểm tra và xử lý theo chương trình mọi tệp và liên kết tượng trưng hiện có, sau đó tạo những tệp và liên kết mới, chúng ta có thể sử dụng tập lệnh shell thanh lịch này. Tôi khen nó chỉ vì tôi đã ngang nhiên lấy cắp cốt lõi của nó từ kịch bản thiết lập của Tom, vì vậy tôi không thể ghi nhận nó vì nó đáng yêu như thế nào.

symlink.sh script hoạt động bằng cách cố gắng tạo các liên kết tượng trưng cho từng dotfile trong $ HOME của chúng tôi . Trước tiên, nó sẽ kiểm tra xem liệu một liên kết tượng trưng đã tồn tại chưa, hoặc nếu một tệp hoặc thư mục thông thường có cùng tên đã tồn tại. Trong trường hợp trước đây, liên kết biểu tượng bị xóa và làm lại; trong phần sau, tệp hoặc thư mục được đổi tên, sau đó tạo liên kết biểu tượng.

Cài đặt phần mềm

Một trong những điều thú vị khi khám phá các tập lệnh shell là khám phá xem có thể đạt được bao nhiêu chỉ bằng cách sử dụng dòng lệnh. Là một người lần đầu tiên tiếp xúc với máy tính thông qua hệ điều hành đồ họa, tôi thấy việc làm việc trong thiết bị đầu cuối diễn ra nhanh chóng.

Với Ubuntu, hầu hết các chương trình chúng tôi yêu cầu đều có sẵn thông qua kho phần mềm Ubuntu mặc định. Chúng tôi thường tìm kiếm những thứ này bằng lệnh apt search và cài đặt chúng bằng sudo apt install . Một số phần mềm chúng tôi muốn có thể không có trong kho lưu trữ mặc định hoặc có thể không được cung cấp ở đó trong phiên bản mới nhất. Trong những trường hợp này, chúng tôi vẫn có thể cài đặt các chương trình này trong Ubuntu bằng PPA hoặc Kho lưu trữ gói cá nhân. Chúng tôi sẽ phải cẩn thận rằng các PPA mà chúng tôi chọn là từ các nguồn chính thức.

Nếu một chương trình chúng tôi thích không xuất hiện trong kho lưu trữ mặc định hoặc dường như không có PPA, chúng tôi vẫn có thể cài đặt chương trình đó qua dòng lệnh. Tìm kiếm nhanh cho “dòng lệnh cài đặt” sẽ nhận được một số câu trả lời.

Vì các tập lệnh bash chỉ là một tập hợp các lệnh mà chúng ta có thể chạy riêng lẻ trong thiết bị đầu cuối, nên việc tạo một tập lệnh để cài đặt tất cả các chương trình mong muốn của chúng ta cũng đơn giản như đặt tất cả các lệnh vào một tệp tập lệnh. Tôi đã chọn tổ chức các tập lệnh cài đặt của mình giữa các kho lưu trữ mặc định, được cài đặt bởi aptinstall.sh của tôi script và các chương trình liên quan đến các nguồn bên ngoài, được xử lý bằng Programs.sh của tôi tập lệnh.

Thiết lập môi trường máy tính để bàn

Vào những dịp gần đây khi tôi nhận được một màn hình mới (cố ý hay cách khác), dường như tôi luôn quên mất bao lâu để nhớ, tìm và sau đó thay đổi tất cả cài đặt môi trường máy tính để bàn. Phím tắt, không gian làm việc, cài đặt âm thanh, chế độ ban đêm ... nó sẽ bổ sung!

Rất may, tất cả các cài đặt này phải được lưu trữ ở đâu đó ở định dạng không phải đồ họa, có nghĩa là nếu chúng tôi có thể khám phá cách thực hiện, chúng tôi có thể tìm ra cách dễ dàng thao tác cài đặt bằng tập lệnh bash. Lưu và xem lệnh đầu cuối, gsettings danh sách-đệ quy .

Có rất nhiều cài đặt cho môi trường máy tính để bàn GNOME. Chúng tôi có thể làm cho danh sách dễ dàng hơn để cuộn qua (nếu, giống như tôi, đôi khi bạn là kiểu người nói “Hãy để tôi xem xét mọi thứ và tìm ra những gì tôi muốn!”) Bằng cách chuyển đến less : gsettings danh sách-đệ quy | ít hơn . Ngoài ra, nếu chúng ta băn khoăn về những gì chúng ta có thể đang tìm kiếm, chúng ta có thể sử dụng grep : gsettings danh sách-đệ quy | grep 'bàn phím' .

Chúng tôi có thể thao tác cài đặt của mình với gsettings set yêu cầu. Đôi khi có thể khó tìm ra cú pháp cho cài đặt chúng tôi muốn, vì vậy khi chúng tôi lần đầu tiên xây dựng tập lệnh của mình, tôi khuyên bạn nên sử dụng GUI để thực hiện các thay đổi, sau đó tìm gsettings dòng chúng tôi đã thay đổi và ghi lại giá trị của nó.

Để có chút cảm hứng, bạn có thể xem desktop.sh của tôi tập lệnh cài đặt trên GitHub.

Tập hợp tất cả lại với nhau

Có các tập lệnh mô-đun (một cho các liên kết tượng trưng, ​​hai để cài đặt chương trình, một cho các cài đặt trên màn hình) rất hữu ích để giữ mọi thứ được ngăn nắp và có thể chạy một số nhưng không phải tất cả các thiết lập tự động. Ví dụ:nếu tôi thiết lập một VPS mà tôi chỉ sử dụng dòng lệnh, tôi sẽ không cần phải bận tâm đến việc cài đặt các chương trình đồ họa hoặc cài đặt máy tính để bàn.

Tuy nhiên, trong những trường hợp tôi muốn chạy tất cả các tập lệnh, làm như vậy từng tập lệnh sẽ hơi tẻ nhạt. Rất may, vì bản thân các tập lệnh bash có thể được chạy bằng các lệnh đầu cuối, chúng ta có thể chỉ cần viết một tập lệnh chính khác để chạy tất cả chúng!

Đây là tập lệnh chính của tôi để xử lý việc thiết lập một máy tính để bàn Ubuntu mới:

#!/bin/bash

./symlink.sh
./aptinstall.sh
./programs.sh
./desktop.sh

# Get all upgrades
sudo apt upgrade -y

# See our bash changes
source ~/.bashrc

# Fun hello
figlet "... and we're back!" | lolcat

Tôi đã ném vào dòng nâng cấp để có biện pháp tốt. Nó sẽ đảm bảo rằng các chương trình được cài đặt trên màn hình mới của chúng tôi có các bản cập nhật mới nhất. Giờ đây, một lệnh bash đơn giản sẽ xử lý mọi thứ!

Bạn có thể nhận thấy rằng, mặc dù máy tính để bàn của chúng ta giờ đây trông và chạy quen thuộc, nhưng các tập lệnh này không bao gồm một khu vực rất quan trọng:tệp của chúng ta. Hy vọng rằng bạn có một phương pháp sao lưu cho những gì liên quan đến một số dạng phần cứng bên ngoài đáng tin cậy. Nếu không, và nếu bạn có xu hướng đặt công việc của mình vào các máy chủ lưu trữ bên ngoài như GitHub hoặc GitLab, tôi có một cách để tự động sao chép và sao lưu các kho lưu trữ GitHub của bạn bằng bash one-liners.

Tuy nhiên, dựa vào các máy chủ lưu trữ bên ngoài không cung cấp mức độ phù hợp 100%. Do đó, không thể lấy các tệp mà bạn không đưa vào kho lưu trữ bên ngoài (riêng tư hoặc cách khác). Các đối tượng bị bỏ qua trong Git không thể được tạo từ các tệp được bao gồm, chẳng hạn như khóa riêng tư và bí mật, sẽ không được tạo lại. Tuy nhiên, những tệp đó có khả năng đủ nhỏ để bạn có thể chứa cả đống trên một vài ổ USB flash được mã hóa (và nếu bạn không có bản sao lưu khóa riêng, có lẽ bạn nên làm điều đó trước?).

Điều đó nói rằng, tôi hy vọng bài đăng này đã cung cấp cho bạn ít nhất một số cảm hứng về cách các tệp dotfiles và tập lệnh bash có thể giúp tự động hóa việc thiết lập một màn hình mới. Nếu bạn đưa ra một số cài đặt mà bạn thấy hữu ích, hãy giúp những người khác khám phá chúng bằng cách chia sẻ tệp dotfiles của bạn!