文章目錄
/ 前言 /
持續更新中 . . .
/ 1 / 基礎語法
1 . 1 拷貝
# 將a.txt中的內容拷貝到b.txt中
cp a.txt b.txt
# 將file文件複製到/path路徑下
cp file /path/file
# 將path路徑下所有文件拷貝到newPath下
cp -a path newPath
# 覆蓋既有文件之前先詢問用戶
cp -i a.txt /path/a.txt
# 覆蓋已存在的文件目標前將目標文件備份
cp -b a.txt /path/a.txt
# 強行復制文件/目錄, 不管文件/目錄是否存在
cp -f a.txt /path/a.txt
1 . 2 剪切/重命名文件/文件夾
# 將文件移動到指定路徑下
mv <參數> file /path/file
# 參數
-b : 當文件存在時, 覆蓋前, 爲其創建一個備份
-f : 若目標文件或目錄與現有的文件或目錄重複, 則直接覆蓋現有的文件或目錄
-i : 覆蓋前先行詢問用戶
-u : 當源文件比目標文件新或者目標文件不存在時, 才執行移動操作
1 . 3 創建文件
# 1
touch test.txt
# 2
vi test.txt
1 . 4 創建文件夾
mkdir <參數> file
# 參數
-p : 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄
-m<目標屬性>或--mode<目標屬性>建立目錄的同時設置目錄的權限
1 . 5 刪除文件/文件夾
語法
rm <參數> file
# 參數
-f : 強制刪除文件或目錄
-i : 刪除文件或目錄時先詢問用戶
-r : 刪除當前目錄下所有文件
示例
# 強制刪除目錄
rm -rf /path
# 強制刪除文件
rm -f file
1 . 6 更改權限
1 . 6 . 1 chomd ( 修改文件讀寫權限 )
語法
chmod <參數> 文件
# 參數
-R : 修改當前目錄下所有文件的權限
-v : 顯示執行過程
示例
# 將path目錄下所有文件權限改爲可寫可讀可執行
chmod -R 777 /path
# 修改當前目錄下所有後綴爲.java的文件權限
chmod 777 *.java
# 修改文件的權限爲可讀
chmod 2 file
# 修改文件的權限爲可寫
chmod 4 file
# 修改文件的權限爲可執行
chmod 1 file
# 修改文件的權限爲沒有任何權限
chmod 0 file
1 . 6 . 2 chown ( 修改文件所有者 )
只有文件所有者或管理員纔可以使用此命令
語法
chown <參數> 用戶 文件
# 參數
-R : 將當前目錄下所有文件的所有者都改爲指定用戶
-v : 顯示執行過程
示例
chown -R es /elasticsearch
/ 2 / if 判斷
語法
if [ 條件 ];then
elif [ 條件 ];then
else
fi
num=3
if [ $num = 1 ];then
echo "first"
elif [ $num = 2 ];then
echo "second"
else
echo "other"
fi
符號
-
-eq : 等於(=)
-
-nq : 不等於(!=)
-
-gt : 大於(>)
-
-lt : 小於(<)
-
-ge : 大於等於(>=)
-
-le : 小於等於(<=)
-
-z : 字符串的長度是否爲0, 使用方式爲 [ -z “字符串” ]
-
-n : 字符串的長度是否大於0 ,使用方式爲 [ -n “$STRING’”], 如果是變量外圍一定要有雙引號
""
/ 3 / 循環
3 . 1 for循環
3 . 1 . 1 for (( i=0 ; i<length ; i++ ))
array=(1,2,3,4)
for ((i=0;i<${#array[@]};i++))
do
echo "${array[i]}"
done
3 . 1 . 2 for item in (1,2,3,4)
array=(1,2,3,4)
for item in ${array[*]}
do
echo "${item}"
done
3 . 1 . 3 for num in seq 1 5
for num in `seq 1 5`
do
echo $num
done
3 . 2 while循環
# 正常循環
num=1
while [ $num -gt 0 ]
do
echo "num > 0"
num=`expr $num - 1`
done
# 無限循環
while [ 1 ]
do
echo "死循環"
done
3 . 3 循環控制命令
3 . 3 . 1 break ( 結束循環 )
num=1
while [ $num -lt 10 ]
do
if [ $num -gt 5 ];then
break
fi
num=`expr $num + 1`
echo $num
done
3 . 3 . 2 continue ( 跳過本次循環進入下一次循環 )
for ((i=0;i<5;i++))
do
if [ $i -eq 2 ];then
continue
fi
echo $i
done