fish - ubuntu 更换用户默认 shell

  • https://github.com/fish-shell/fish-shell

  • https://fishshell.com/

  • http://www.ruanyifeng.com/blog/2017/05/fish_shell.html

  • https://github.com/b-ryan/powerline-shell#fish

ubuntu 安装 fish

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish

mac 安装 fish

brew install fish

centos 安装 fish

yum install fish

查看 linux 系统上的所有可用shell

g@g ~/w/x/framework.xyzla> cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/fish

注意

  • 用户可以将自己的shell更改为任何事物:但是必须列在/ etc / shells文件中
  • 只有root可以运行未列在/ etc / shells文件中的shell
  • 如果一个帐号有一个受限的登录shell,那么只有root可以改变该用户的shell

查看当前使用的 shell

  • bash

ps | grep $$ | awk '{print $4}'

  • fish

ps | grep %self | awk '{print $4}'

usermod

usermod是用于修改存储在 /etc/passwd 文件中的用户帐户详细信息的实用程序, -s--shell 选项用于更改用户的登录shell。

在这个例子中,我们首先检查用户 xqghp 的帐户信息以查看他的默认登录 shell,然后将其登录shell从 /bin/sh 更改为 /bin/bash ,如下所示。

# grep xqghp /etc/passwd
# usermod --shell /bin/bash xqghp
# grep xqghp /etc/passwd

chsh

chsh是一个命令行实用程序,用于使用 -s-shell 选项更改登录shell。

# grep howtoing /etc/passwd
# chsh --shell /bin/sh xqghp
# grep howtoing /etc/passwd

更改 /etc/passwd 文件中的 用户 Shell

在这种方法中,只需使用任何您喜爱的命令行文本编辑器打开 /etc/passwd 文件,并更改特定的用户shell。

# vi /etc/passwd

在密码文件中更改用户Shell

完成编辑后,保存并关闭文件。

参考 - 在Linux中更改用户默认Shell的3种方法