shell是一個命令解釋器,是操作系統的最外層。
把用戶的輸入解釋給操作系統,將操作系統的輸入結果返回給用戶。
硬件-->kernel-->shell-->外圍應用程序
清除日志文件腳本,需root
#!/bin/bash
LOG_DIR=/var/log
then
echo "Must be root to run this script."
exit 1
fi
cd $LOG_DIR || {
echo "Cannot change to necessary directory.">&2
exit 1
}
cat /dev/null>messages
echo "Logs cleaned up."
exit 0
A && B //A成功執行B
A || B //A沒成功執行B
echo >filename //多一個空行
cat /dev/null >filename
Linux bash (Bourne Again shell)
echo $SHELL
輸出 /bin/bash
grep root /etc/passwd
shell腳本的建立
在vim中編寫,包括Linux命令、bash shell命令、程序控制結構、注釋。
腳本第一行指定由哪個程序來執行腳本中的內容。
#!/bin/bash 或
#!/bin/sh ?#!稱為幻數 sh為bash的軟鏈接
對于輸入的命令:Ctrl+e 到結尾,Ctrl+u 清除
shell腳本的執行方式
bash script-name ?sh script-name //當文件無執行權限或文件未指定解釋器時 推薦
path/scritp-name ?./script-name ?//必須有執行權限
source script-name . script-name //可以將其中的變量加入到當前shell環境
規范:
1、開頭指定腳本解釋器;
2、開頭加版本和版權信息;
3、不用中文
4、擴展名.sh
5、成對符號一次書寫;中括號的兩端有空格;流程控制一次書寫;代碼縮進;
變量
環境變量/全局變量:可在創建它們的shell及其派生出的子shell中使用;
局部變量:只能在shell函數或腳本中使用
環境變量可寫在~/bash_profile文件中,或全局配置文件/etc/bashrc、/etc/profile文件中,或/etc/profile.d/中
大寫
export導出
如:
export JAVA_HOME=path
JAVA_HOME=path
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
幾個環境變量:
PS1:控制登錄用戶的顯示方式
TMOUT:超時退出
HISTSIZE:歷史命令記錄條數
HISTFILESIZE:歷史文件記錄條數
UID
USER
把用戶的輸入解釋給操作系統,將操作系統的輸入結果返回給用戶。
硬件-->kernel-->shell-->外圍應用程序
shell腳本:將命令或語句寫入文件,進行操作系統管理。
shell腳本中有命令、變量和流程控制語句。
清除日志文件腳本,需root
#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
if ["$UID" -ne "$ROOT_UID"]then
echo "Must be root to run this script."
exit 1
fi
cd $LOG_DIR || {
echo "Cannot change to necessary directory.">&2
exit 1
}
cat /dev/null>messages
echo "Logs cleaned up."
exit 0
A && B //A成功執行B
A || B //A沒成功執行B
清空文件的三種方法:
保留文件,清空內容
>filenameecho >filename //多一個空行
cat /dev/null >filename
Linux bash (Bourne Again shell)
echo $SHELL
輸出 /bin/bash
grep root /etc/passwd
shell腳本的建立
在vim中編寫,包括Linux命令、bash shell命令、程序控制結構、注釋。
腳本第一行指定由哪個程序來執行腳本中的內容。
#!/bin/bash 或
#!/bin/sh ?#!稱為幻數 sh為bash的軟鏈接
對于輸入的命令:Ctrl+e 到結尾,Ctrl+u 清除
shell腳本的執行方式
bash script-name ?sh script-name //當文件無執行權限或文件未指定解釋器時 推薦
path/scritp-name ?./script-name ?//必須有執行權限
source script-name . script-name //可以將其中的變量加入到當前shell環境
規范:
1、開頭指定腳本解釋器;
2、開頭加版本和版權信息;
3、不用中文
4、擴展名.sh
5、成對符號一次書寫;中括號的兩端有空格;流程控制一次書寫;代碼縮進;
變量
環境變量/全局變量:可在創建它們的shell及其派生出的子shell中使用;
局部變量:只能在shell函數或腳本中使用
環境變量可寫在~/bash_profile文件中,或全局配置文件/etc/bashrc、/etc/profile文件中,或/etc/profile.d/中
大寫
export導出
如:
export JAVA_HOME=path
JAVA_HOME=path
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
幾個環境變量:
PS1:控制登錄用戶的顯示方式
TMOUT:超時退出
HISTSIZE:歷史命令記錄條數
HISTFILESIZE:歷史文件記錄條數
UID
USER