Linux sh,bash,csh,tcsh等shell的區別


背景:用戶家目錄下的.cshrc文件定義的快捷命令失效。查看用戶的shell類型是bash shell,而.cshrc是運行在C shell 下才會有效,因此需要更改當前用戶的shell類型。

 

簡介:

shell的腳本一般用.sh作為后綴,在linux上沒有特別含義。

腳本的第一行有#!/bin/bash或者是其他的解釋器,如#!/bin/csh,執行該腳本時系統會使用該注明的解釋器來解釋。

Bourne Shell(即sh)是UNIX最初使用的shell,平且在每種UNIX上都可以使用。Bourne Shell在shell編程方便相當優秀,但在處理與用戶的交互方便作得不如其他幾種shell.

LinuxOS默認的是Bourne Again Shell,它是Bourne Shell的擴展,簡稱bash,與Bourne Shell完全兼容,並且在Bourne Shell的基礎上增強了很多特性。

C Shell是一種比Bourne Shell更適合的變種Shell,它的語法與C語言很相似。Linux為喜歡使用C Shell的人提供了Tcsh。

Tcsh是C Shell的一個擴展版本。Tcsh包括命令行編輯,可編程單詞補全,拼寫校正,歷史命令替換,作業控制和類似C語言的語法,他不僅和Bash Shell提示符兼容,而且還提供比Bash Shell更多的提示符參數。

 

chsh命令:

chsh 這個命令現在一般被用來替換,usermod -s 命令即更改用戶登錄的shell。其常用的只有兩個參數 -l 和 -s 

chsh -l 起到的作用是列出當前系統的所有shell

[root@z home]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh

 

chsh -s 就是為用戶指定shell了

cat /etc/passwd|grep "username" ---查看當前用戶所用的shell
chsh -s /bin/csh "username" ---更改當前用戶的shell

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM