Linux下Shell的使用

2021-09-04 19:30:22 字數 2558 閱讀 2700

1、shell基本引數

#cat /etc/shells 系統提供的shell位置

#bsh、csh、ksh、bash 改變root使用者的shell環境

#chsh  改變普通使用者的shell環境

#more /etc/passwd 檢視所有使用者的shell環境

2、shell變數

2.1、環境變數

#set | more  檢視環境變數

2.2、常用環境變數介紹

#echo $user 顯示當前使用者登入名

#echo $uid 顯示當前使用者的使用者號

#echo $shell 顯示當前使用者的登陸shell

#echo $home 顯示當前使用者的宿主目錄

#echo $pwd 顯示當前使用者所在的目錄

#echo $path 表示當前使用者的命令搜尋路徑

#echo $ps1 顯示當前使用者的主提示符

#echo $ps2 顯示當前使用者的輔助提示符

2.3、環境變數配置檔案

#ls -l /etc/bashrc  /etc/profile  顯示環境變數的全域性配置檔案

"bashrc"檔案用於定義全域性的函式和別名,檔案的內容除了為系統中所有登入使用者提供設定外,也適用於非互動shell和非登入shell

"profile"檔案負責設定全域性的環境,並應用於所有的使用者登入shell

#ls -l /home/username/.bash_profile   /home/username/.bashrc  顯示使用者username的配置檔案

#cd /etc/skel  進入初始的使用者配置檔案

#cp .bash_logout .bash_profile .bashrc .emacs .gtkrc  /home/username 複製使用者的初始配置檔案到使用者username的宿主目錄下(當使用者對自己的配置檔案設定出錯時使用)

2.4、位置變數

格式:$n n從1到9

單引號(''):不進行任何的變數替換,保持字串的原始值

雙引號(""):以變數的值來替換,並作為字串的一部分

反引號(``):用於進行命令替換,引號中命令的執行結果將替換命令本身作為字串

2.5、預定義變數

#echo $# 表示位置引數的變數

#echo $* 表示位置引數的內容

#echo $? 表示命令執行後返回的狀態,用於檢查乙個命令的執行是否正確;在linux中,命令退出狀態為0表示命令正確執行,任何非0值表示命令執行錯誤

#echo $$ 表示當前程序的程序號

#echo $! 表示後台執行的最後乙個程序號

#echo $0 表示當前執行的程序名

2.6、使用者自定義變數

#變數名=變數值 day=sunday

#echo $變數名  echo $day

#unset -f -v name

2.7、bash常用功能

#history  歷史命令檢視

#history -c 命令歷史清除

2.8、命令別名

#alias 命令='新命令'   alias ll='ls -l' 使用ll別名更換ls -l命令

#unalias -a name  取消命令別名

#cd /etc/profile.d/ 檢視系統別名定義檔案

3、管道與重定向

3.1、輸入重定向

#wc /etc/passwd  計算檔案/etc/passwd中的字元數、單詞數和行數

#wc < /etc/passwd  將"/etc/passwd"檔案中的內容輸入重定向到wc命令中

3.2、輸出重定向

#cat /etc/passwd  >file  將/ect/passwd下的內容覆蓋到file中

#cat /etc/passwd  >>file  將/etc/passwd下的內容追加到file中

#aaa 2>errfile 將aaa命令顯示的錯誤結果輸入到errfile中

#ls afile bfile &>allfile 將標準輸出和錯誤輸出重定向到同乙個檔案

#ls /etc/passwd/ | head -5 顯示passwd中前5行內容

4、shell指令碼

#ls -l /etc/init.d/目錄中存在著數量相當多的系統服務啟動程式,這些程式全部都是shell指令碼檔案,可以使用file命令查詢這些檔案的型別

#bash *.sh  使用shell命令執行指令碼

#. /home/techer/filename.sh 執行filename.sh

Linux下shell的使用

linux 常見問題1000個詳細解答 1 shell基本引數 cat etc shells 系統提供的shell位置 bsh csh ksh bash 改變root使用者的shell環境 chsh 改變普通使用者的shell環境 more etc passwd 檢視所有使用者的shell環境 2 ...

Linux下Shell中陣列的使用

定義 可以整體定義陣列 array name value0 value1 value2 value3 或者 array name value0 value1 value2 value3 此時陣列的下標預設是從0開始的 還可以單獨定義陣列的各個分量 array name 0 value0 array ...

Linux下使用popen 執行shell命令

簡單說一下popen 函式 include file popen const char command const char type int pclose file stream popen 函式通過建立乙個管道,呼叫fork 產生乙個子程序,執行乙個shell以執行命令來開啟乙個程序。這個管道必...