文章目錄
Linux環境下使用 shell 的學習。
新建一個 shell 並定義變量
#vim test.sh
輸入一段shell
#!/bin/bash
A=10
#!/bin/bash 爲定義解釋器。解釋器有多種,還有 bin/sh 等Linux默認就是 /bin/bash
定義一個變量 A=10 (A和=中間不能有空格)
執行 shell 的幾種方式
第一種方式 結果輸出10
# /bin/bash test.sh
第二種方式
# sh test.sh
第三種方式
# ./test.sh
但是這種方式會報錯
-bash: ./test.sh: 權限不夠
需要給文件增加權限 # chmod 777 test.sh
然後在執行 # ./test.sh 就可以成功了
判斷上一次執行shell腳本是否成功
# 如果返回 0 則成功
echo $?
查看當前服務器的磁盤信息
命令如下:
# df -h
# 輸出下面的信息
文件系統 容量 已用 可用 已用% 掛載點
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 24K 919M 1% /dev/shm
tmpfs 919M 500K 919M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 50G 8.5G 39G 19% /
tmpfs 184M 0 184M 0% /run/user/0
打印當前腳本路徑
#!/bin/bash
echo "------------------"
A=99
echo A= $A
echo "B= $B"
echo "PWD= $PWD"
echo `pwd`
執行文件輸出如下:$PWD 代表的就是Linux查看當前路徑的命令 必須是大寫的
pwd
取的是 Linux 程序集
------------------
A= 99
B=
PWD= /root/shellStudy
輸出當前文件名
其中 $0 代表的就是當前文件名
#!/bin/bash
echo "當前shel腳本的名稱是:$0"
# 輸出結果如下:
# 當前shel腳本的名稱是:test.sh
shell執行是否成功、獲取傳入參數相關
$1 代表獲取第一個參數
$2 代表獲取第二個參數
$# 代表參數個數
$* 代表所有參數
#!/bin/bash
echo "參數1是:$1"
echo "參數2是:$2"
echo "是否執行成功: $?"
echo "外界傳遞的參數是:$*"
echo "外界傳遞的參數個數是:$#"
#執行shell命令
# /bin/bash test.sh 1 2 3
#打印結果如下:
參數1是:1
參數2是:2
是否執行成功: 0
外界傳遞的參數是:1 2 3
外界傳遞的參數個數是:3
for 循環
- Linux 打印
# 這是 Linux 的循環方式 執行會打印 1-20 的數字
# seq 1 20
- 定義 sh 進行打印 for循環 腳本如下:採用Linux內置的seq
、、是 Tab上的那個點
#!/bin/bash
for i in `seq 1 10`
do
echo "循環遍歷:$i"
done
打印後循環打印 1-10
計算
- Linux 內置方式
# expr 1000 + 1
#打印如下
1001
- 新建 sh 進行 for 循環如下:
#!/bin/bash
a=0
for((n=0;n<100;n++))
do
a=`expr $n + $a`
done
echo "最終a的值爲:$a"
打印結果:最終a的值爲:4950
查找文件夾內文件
新建三個txt文件
# vim text01.txt
# vim text02.txt
# vim text03.txt
查找命令
# find . -name "*.txt"
#輸出如下
./text01.txt
./text03.txt
./text02.txt
把文件打成壓縮包
將 t1.txt 和 t2.txt 壓縮成 hello.zip
# zip -r hello.zip t1.txt t2.txt
# tar czf all.taz *
czf cvf 也是壓縮的方式
tar -czf t.tar.gz *.txt
while 循環
- 執行下面腳本輸出 1 - 100
#!/bin/bash
i=0
while((i<100))
do
i=`expr $i + 1`
echo "循環 $i"
done
while 讀取 read 手動輸入控制檯的信息
#!/bin/bash
while read line
do
echo "讀取的值爲: $line"
done
結果如下:
[root@VM_0_4_centos study]# sh test.sh
wwwww
讀取的值爲: wwwww
^C
if else 語句
#!/bin/bash
num1=100
num2=200
if(($num1>$num2))
then
echo "num1 比 num2 大"
else
echo "num1 比 num2 小"
fi
- 使用 if 判斷文件夾是否存在
#!/bin/bash
# 判斷當前文件夾下是否有 lu文件夾
if [ ! -d `pwd`/lu ]
then
# 沒有則在當前文件夾下創建 lu 文件夾
mkdir -p `pwd`/lu
else
echo "存在 lu 文件夾"
fi
Linux 重定向
- Linux 都是文件形式的存在,即使是那個黑窗口,它是 0 號文件。我們將自己定義的 txt 定向到 0 號文件上。
cat 0< t1.txt