Tin tức và phân tích của tất cả các thiết bị di động

Cách thay đổi shell mặc định trên linux bằng chsh

Bash không phải là vỏ Linux duy nhất. Thật dễ dàng để thử các shell khác như Zsh rất phổ biến. Khi bạn tìm thấy một trình bao ưng ý, hãy sử dụng lệnh chsh để biến nó thành trình bao mặc định của bạn. Chúng tôi sẽ chỉ cho bạn cách thực hiện.

Tại sao lớp phủ lại quan trọng

Shell nằm giữa bạn và hệ điều hành. Nó cung cấp một môi trường trong cửa sổ đầu cuối cho phép bạn gõ lệnh và chạy chương trình. Shell kiểm tra đầu vào của bạn và xác định những gì bạn muốn. Nếu anh ấy có thể tự đấu thầu bạn, anh ấy sẽ làm. Nếu nó cần trợ giúp từ bên ngoài, nó sẽ tìm kiếm đường dẫn và tìm các chương trình có thể làm bất cứ điều gì bạn yêu cầu.

Có nhiều trình bao khác nhau có sẵn cho Linux. Tất cả chúng đều cho phép bạn thực hiện các tác vụ cơ bản giống nhau: khám phá hệ thống tệp, làm việc với tệp, khởi chạy chương trình và chạy tập lệnh. Tuy nhiên, mỗi người trong số họ thực hiện các nhiệm vụ này theo cách riêng của mình và có những đặc thù và đặc thù riêng.

Shell thường được thiết kế bởi những người muốn mọi thứ hoạt động theo một cách nhất định. Nếu suy nghĩ của bạn phù hợp với nhà thiết kế này, lớp phủ này có thể tốt cho bạn. Ngoài ra, việc dùng thử shell mới trên Linux thật dễ dàng.

Trên hầu hết các bản phân phối Linux, bao gồm cả Ubuntu, shell mặc định là bash. Anh ấy làm một công việc tuyệt vời và rất tài năng. Tuy nhiên, một trình bao khác có thể mang lại sự khác biệt về tiết kiệm thời gian, điều này sẽ tạo ra sự khác biệt lớn cho quy trình làm việc của bạn. Bạn sẽ không bao giờ biết nếu bạn không nhìn!

Một xô vỏ sò

Chúng tôi đã đề cập đến các shell Linux khác nhau, nhưng đây là phần giới thiệu nhanh về những shell phổ biến nhất:

bash: Boundary Shell lại là mặc định trên nhiều bản phân phối.
rbash: Shell bash bị hạn chế này cung cấp chức năng tối thiểu cho người hoặc tập lệnh chạy trong đó.
Ash: The Almquist Shell là phiên bản nhẹ hơn của bash.
dấu gạch ngang: Debian Alquist Shell là tập lệnh shell mặc định trong Ubuntu. Mặc dù bash là trình bao tương tác và đăng nhập mặc định, nhưng dấu gạch ngang được sử dụng để chạy các quy trình hệ thống vì nó nhẹ hơn nhiều so với bash.
zsh: Vỏ Z là một phiên bản hiện đại của họ vỏ bash. Nó cung cấp các chỉnh sửa gọn gàng như kiểm tra chính tả lệnh và các bản sửa lỗi được đề xuất.
cá: Vỏ tương tác, thân thiện này được viết từ đầu và không bắt nguồn từ bất kỳ họ vỏ nào khác. Nó phải thân thiện với người dùng. Trong số nhiều lợi ích khác, cá cung cấp các đề xuất lệnh dựa trên lịch sử và nội dung của thư mục hiện tại, cũng như dự đoán văn bản.
ksh: KornShell cung cấp một ngôn ngữ kịch bản đặc biệt mạnh mẽ.

Thay vỏ đã lắp

Để xem trình bao nào được cài đặt trên máy tính của bạn, hãy sử dụng lệnh này. Nó chỉ hiển thị nội dung của tệp /etc/shells:

cat /etc/shells

Chúng tôi đã đề cập đến bash, dash và rbash, nhưng sh là gì?

sh là vỏ Thompson, được viết vào năm 1971 bởi Ken Thompson của Bell Labs nổi tiếng. Nó không còn được duy trì và từ lâu đã được thay thế bằng lớp phủ hiện đại. Nó chỉ được đưa vào để tương thích với các tập lệnh cũ vẫn có dòng sau trong dòng đầu tiên:

#!/bin/sh

Điều này hướng dẫn hệ thống sử dụng trình bao sh để thực thi tập lệnh. Bạn có thực sự có lớp vỏ cổ xưa này trên máy tính của mình và nó được sử dụng để chạy các tập lệnh không? Lệnh nào sẽ cho chúng ta biết chương trình nào đang thực sự chạy khi bạn gõ lệnh.

Hãy xem những gì được chạy khi bạn gõ sh:

which sh

Có vẻ như có một nhị phân. tuy nhiên, nếu tìm hiểu sâu hơn một chút, chúng ta sẽ thấy rằng đây là một liên kết tượng trưng thực sự trỏ đến một dấu gạch ngang, một lớp vỏ nhẹ được sử dụng để thực thi các tập lệnh:

ls -l /bin/sh

which sh trong cửa sổ đầu cuối.

Đó là một cách gọn gàng, nhẹ nhàng để cung cấp một mạng lưới an toàn cho các tập lệnh mong muốn tìm thấy sh trên các hệ thống hiện đại.

Cài đặt vỏ khác

Hãy cài đặt fish shell và đặt nó làm mặc định cho dave. Trong Ubuntu chúng ta nhập lệnh sau:

sudo apt-get install fish

Sudo apt-get cài đặt cá trong cửa sổ đầu cuối.

Trên Manjaro, sử dụng Pacman:

sudo pacman -Sy fish

Sudo pacman -Sy bắt cá trong cửa sổ đầu cuối.

Trong Fedora, gõ:

sudo dnf install fish

Sudo dnf cài đặt cá trong cửa sổ đầu cuối.

Khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra lại các trình bao đã cài đặt của mình:

cat /etc/shells

cat /etc/shells trong cửa sổ đầu cuối.

Shell mới của chúng tôi xuất hiện dưới dạng /usr/bin/fish. Hãy chú ý đến con đường này – bạn sẽ cần nó sớm thôi.

biến môi trường $SHELL

Biến môi trường $SHELL giữ tên của trình bao hiện tại của bạn. Chúng tôi có thể kiểm tra cái nào được đặt bằng tiếng vang:

echo $SHELL

Hãy bắt đầu với vỏ cá:

fish

Bây giờ, hãy kiểm tra lại xem biến môi trường $SHELL nói gì:

echo $SHELL

echo $SHELL trong cửa sổ đầu cuối.

Lần đầu tiên chúng tôi sử dụng echo $SHELL, chúng tôi đang ở trong bash shell. Biến môi trường lưu trữ đường dẫn đến tệp thực thi bash, /bin/bash.

Khi chúng tôi chạy fishshell, chúng tôi nhận được thông báo chào mừng thân thiện và dòng lệnh thay đổi. Có thể ngạc nhiên là môi trường $SHELL vẫn chứa đường dẫn đến tệp thực thi bash, /bin/bash. Được rồi – đó là bình thường.

Khi một trình bao mới (hoặc bất kỳ chương trình nào khác) khởi động, nó sẽ kế thừa môi trường của trình bao gốc. Vì vậy, fishshell kế thừa các biến môi trường toàn cầu và đã xuất từ ​​bash shell. Vì giá trị trong biến môi trường $SHELL không bị thay đổi nên nó có cùng giá trị trong shell cá như trong bash shell.

Chúng tôi câu cá như bất kỳ chương trình nào khác. Chúng ta cũng có thể sử dụng lối ra để ra khỏi vỏ cá. Nó đóng lại giống như bất kỳ chương trình nào khác và chúng tôi quay lại bash shell.

Thật tuyệt khi thử các lớp phủ mới, xem những gì chúng có thể làm và liệu bạn có hài lòng với chúng hay không. Bạn có thể khám phá trước khi thực hiện bước nhảy và sử dụng một chiếc làm lớp vỏ mục tiêu của mình.

Nếu bạn chọn đặt cá – hoặc bất kỳ loại vỏ nào khác – làm mặc định, bạn sẽ cần sử dụng lệnh chsh.

lệnh chsh

Lệnh chsh cho phép bạn thay đổi shell mặc định. Bí quyết là biết rằng nó cho phép bạn thay đổi cả thông tin đăng nhập mặc định và trình bao tương tác mặc định. Bạn có thể muốn thay đổi cái này hay cái kia hoặc cả hai.

Mỗi khi bạn đăng nhập cho một dòng lệnh, bạn sử dụng trình bao được cấu hình làm trình bao đăng nhập. Khi bạn đã đăng nhập và mở một cửa sổ đầu cuối, bạn đang sử dụng trình bao được định cấu hình làm trình bao tương tác. Chúng có thể giống hoặc khác vỏ.

Để đặt vỏ đăng nhập của bạn, hãy sử dụng chsh không có tham số:

chsh

chsh trong một cửa sổ đầu cuối.

Bạn sẽ được yêu cầu nhập mật khẩu của bạn. Sau đó, bạn cần nhập đường dẫn đến trình bao mới và nhấn Enter.

Nếu chúng tôi tạo kết nối từ xa đến máy tính thử nghiệm này từ một máy tính khác, chúng tôi sẽ thấy mình đang ở trong vỏ cá sau khi đăng nhập.

Kết nối SSH đang hiển thị vỏ cá dưới dạng vỏ đăng nhập trong cửa sổ đầu cuối.

Để thay đổi shell tương tác, hãy sử dụng chsh với tùy chọn -s (shell). Chuyển đường dẫn đến trình bao mới trên dòng lệnh:

chsh -s /usr/bin/fish

chsh -s /usr/bin/fish trong cửa sổ đầu cuối.

Bạn sẽ được nhắc nhập mật khẩu và quay lại dòng lệnh của trình bao hiện tại. Bạn phải đăng xuất và đăng nhập lại để thay đổi có hiệu lực. Khi thực hiện, bạn sẽ thấy dấu nhắc lệnh và lời chào mừng bằng vỏ cá.

Biến môi trường $SHELL hiện chứa đường dẫn đến trình bao mặc định mới:

echo $SHELL

echo $SHELL trong cửa sổ đầu cuối.

Thay đổi vỏ của tài khoản người dùng khác

Nếu bạn có quyền root và có thể sử dụng sudo, bạn có thể thay đổi shell của các tài khoản người dùng khác. Lệnh này giống như trước đây, với việc thêm tên người dùng của người đó vào dòng lệnh:

sudo chsh -s /usr/bin/fish mary

Sudo chsh -s /usr/bin/fish mary trong cửa sổ đầu cuối.

Lần đăng nhập tiếp theo, Mary sẽ thấy một trình bao mới khi mở cửa sổ đầu cuối.

người dùng mary trong dòng lệnh shell cá, trong cửa sổ đầu cuối.

Tất cả mọi người