歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Shell入門:掌握Linux,OS X,Unix的Shell環境

Linux或類Unix系統中,每個用戶和進程都運行在一個特定環境中。這個環境包含了變量、設置、別名、函數以及更多的東西。下面是對Shell環境下一些常用命令的簡單介紹,包括每個命令如何使用的例子,以及在命令行下設定你自己的環境來提高效率。

找出你當前的shell

在終端應用中輸入下面命令中的任意一個:

ps $$
ps -p $$
或者
echo "$0"
輸出范例:

圖1: Finding out your shell name

圖1:找出當前的shell

找出所有已安裝的shell

找到已安裝shell的完整路徑:

type -a zsh
type -a ksh
type -a sh
type -a bash
輸出范例:

Fig.02: Finding out your shell path

圖2:找出shell的路徑

文件/etc/shells裡包含了系統所支持的shell列表。每一行代表一個shell,是相對根目錄的完整路徑。用這個cat命令來查看這些數據:

cat /etc/shells
輸出范例:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish

臨時改變當前shell

只需要輸入shell的名字。在下面的例子裡,我從bash切換到了zsh:

zsh
這只是臨時改變了系統shell。也叫做子shell。要從子/臨時shell退出,輸入下面的命令或者按下CTRL-D:
exit

找出子shell的層級或臨時shell的嵌套層級

每個bash實例啟動後,變量$SHLVL的值都會加一。輸入下面的命令:

echo "$SHLVL"

示例輸出:

Fig. 03: Bash shell nesting level (subshell numbers)

圖3:Bash shell嵌套層級(子shell數目)

通過chsh命令永久變更系統shell

想要把當前系統shell從bash永久換成zsh?試試這個:

chsh -s /bin/zsh
想把其他用戶的shell從bash永久換成ksh?試試這個:
sudo chsh -s /bin/ksh userNameHere
譯文:http://linux.cn/article-5151-2.html
Copyright © Linux教程網 All Rights Reserved