跳到主要内容

读《Linux命令行与shell脚本编程大全》

《Linux 命令行与 shell 脚本编程大全(第 4 版)》

第五章

获取已安装 shell

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/fish

设置默认 shell

chsh -s <shll程序>

例如设置为 bash

chsh -s $(which bash)

子 shell

产生子 shell 的方式:括号、命令替换、管道、脚本。

(cd /tmp && ls)
output=$(ls /etc)
cat file.txt | grep "pattern"
bash script.sh

bash 创建子 shell,ps -f 表现子 shell 间的嵌套关系。

判断外部命令

使用 type <命令> 判断命令是内部还是外部,有的命令有多种实现方式。

type

执行外部命令会衍生子 shell,产生额外的消耗。