1、查看我們的Linux(centos6.5為例)有多少我們可以使用的shell: 系統某些服務在運作過程中,會去檢查使用者能夠使用的shells,而這些shell的查詢就是由/etc/shells這個檔案。 2、當我們登入Linux系統的時候,系統就會給我一個shell來工作,而這個登錄取得的sh ...
1、查看我們的Linux(centos6.5為例)有多少我們可以使用的shell:
[root@localhost bin]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh
系統某些服務在運作過程中,會去檢查使用者能夠使用的shells,而這些shell的查詢就是由/etc/shells這個檔案。
2、當我們登入Linux系統的時候,系統就會給我一個shell來工作,而這個登錄取得的shell就記錄在/etc/passwd這個檔案里:
[root@localhost bin]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin ...
3、shell的內部指令type,知道指令來自外部指令伙食內建在bash當中。
[root@localhost bin]# man cd [root@localhost bin]# type cd cd is a shell builtin [root@localhost bin]# type -t cd builtin #表示該指令為bash內建的指令功能 [root@localhost bin]# type -a cd cd is a shell builtin [root@localhost bin]# type type type is a shell builtin
[root@localhost bin]# type it ls
alias #表示該指令為命名別名所設定的名稱
[root@localhost bin]# type uname
uname is hashed (/bin/uname)
[root@localhost bin]# type -t uname
file #表示為外部指令
4、變數的取用 echo
[root@localhost bin]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost bin]# echo ${PATH} /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
變數的設定 = ,如果一個變數未設定,內容為空
[root@localhost bin]# echo $myname [root@localhost bin]# myname=tian [root@localhost bin]# echo $myname tian
子程式,就是在目前這個shell的情況下,去啟用另一個新的shell,新的shell就是子程式。在一般狀態下,父程式的自定義變數無法在子程式內使用,但是通過export將變數變成環境變數,就能在子程式下應用了。
[root@localhost bin]# echo $name yes [root@localhost bin]# bash #進入所謂的子程式 [root@localhost bin]# echo $name [root@localhost bin]# exit #離開子程式 exit [root@localhost bin]# export name [root@localhost bin]# bash [root@localhost bin]# echo $name yes [root@localhost bin]# exit
變數的設定規則:
5、環境變數
env,environment的簡寫,列出所有的環境變數
[root@localhost /]# env HOSTNAME=localhost.localdomain SHELL=/bin/bash TERM=xterm HISTSIZE=1000 USER=root ...
set,觀察所有變數(包含環境變數和自定義變數)
[root@localhost /]# env BASH=/bin/bash BASH_VERSINFO=([0]="4" [1]="1" [2]="2" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu") BASH_VERSION='4.1.2(1)-release' HISTFILE=/root/.bash_history HISTFILESIZE=1000 HISTSIZE=1000 HOSTTYPE=i386 OLDPWD=/ OSTYPE=linux-gnu PPID=5200 PS1='[\u@\h \W]\$ ' ...