超詳細的Shell命令大全

/ 前言 /

       持續更新中 . . .

/ 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章