shell程式設計 卓延寒雪

2022-09-23 05:27:11 字數 4068 閱讀 2558

shell 程式設計

shell 基礎命令#cd /home 進入 '/home' 目錄cd .. 返回上一級目錄cd../.. 返回上兩級目錄ls 檢視目錄中檔案ls -a 顯示隱藏檔案ls -l 顯示詳細資訊ls -lrt 按時間顯示檔案pwd 顯示工作目錄mkdir newfile 建立'newfile'目錄mv dir1 dir2 移動/重新命名乙個目錄rm -rf file1 刪除'feil1'檔案以及目錄cat file1 從第乙個位元組開始正向檢視檔案內容head -2 file1 檢視乙個檔案的前兩行more file1 檢視乙個長檔案內容tac file1 從最後一行開始反響檢視乙個檔案的內容tail -n 20 file1 檢視最後20條記錄;grep str /tmp/test 在檔案'/tmp/test' 中查詢『str』grep ^err /usr/local/greenplum/log/20190412.log 在 檔案『/usr/local/greenplum/log/20190412.log』中查詢以'err' 開始的grep [0-9] /data/gpmaster/gpseg-1/postgresql.conf 在檔案中查詢包含數字的行find / -name file1 從 / 開始 查詢指定檔名的檔案或者目錄find / -user username 查詢屬於使用者'username'的檔案目錄bzip2 file 壓縮file 檔案bunzip2 file.bz2 解壓檔案gzip file 壓縮檔案gunzip file.gz 解壓檔案tar -cvf test.tar file 將file 打包成 test.tar yum -y install [package] **並安裝乙個rpm包yum -y update 更新當前系統中安裝的所有的rpm包yum remove [package] 刪除乙個 rpm包yum list 列出當前系統中安裝的所有包yum search [package] 在rpm 倉庫中搜尋軟體包yum clean [package]清楚快取目錄 /var/cache/yum 下的軟體包yum clean headers 刪除所有標頭檔案yum clean all 刪除所有的快取包和標頭檔案su - 切換使用者shutdown -r now 當前重啟shutdown -h now 當前關機top 羅列使用cpu資源最多的任務pstree 以屬性圖顯示程式passwd 修改密碼df -h 檢視磁碟

1、shell 入門1、shell 指令碼 以#!/bin/sh 開頭 其中 #! 用來告訴系統後面的引數用於執行該檔案的程式一般編寫完成後 需要 chmod +x filename.sh 這樣才可以執行 ./filename 來執行同時指令碼檔案 以.sh 為字尾2、變數定義和引用在shell中 所有的變了都是字串組成同時不需要對變數宣告;賦值給乙個變數就可以。#/bin/bashrz='www.ruozedata.com'dat=date

輸出變數

echo $

echo $

靜態變數

k=v 'v' "v"

動態變數

k=`v`

其中 =前後不可能有空格

引用:$ka

$a3、傳遞引數

指令碼獲取引數格式 $0 $1 $2 $3 .... 其中 $1為傳遞的第乙個引數 而$0接受的是 ./parameter.sh 這個檔案

#!/bin/bash

echo $1

echo $2

echo "個數:$#"

echo "pid: $$"

#ps -ef |grep 5480

#ps -ef |grep 5480|grep -v grep4、陣列--在shell中 用() 來表示的陣列,陣列元素之間用空格來分隔,由此 可以定義如下形式:--陣列可以存放多個值,shell 只支援一維組(不支援多維陣列)

array=(1,2,3,4,5,6) -----=號不能有空格,必須緊挨這陣列名和陣列元素

定義陣列

arr=(1,2,3,4,5)

shell 是弱型別,他並不要所有陣列元素型別必須相同;

arr=(60,88,"")

#!/bin/bash

arr=(ruoze jepson xingxing dashu xiaoshiqi xiaohai)

echo $

echo $

echo $

echo

# chmod +x array.sh 授權5、if 判斷語法格式if condition;thenstatement(s)fi例子:#if.sh#!/bin/bash

a="abc"

b="jepson"

if [ $a == $b ]; then

echo "=="

else

echo "!="

fi==前後空格[ $a == $b ]

6、迴圈while 迴圈 當新增滿足時 while 重複地執行一組語句, 當條件不滿足時 就退出while 迴圈#!/bin/bash

i=1sum=0

while (i <= 100)

do((sum +=i))

((i++))

done

echo "the test $sum"

for 迴圈用法

for ((exp1;exp2;exp3))

dostatements

done

-----其中 exp1、exp2、exp3 是表示式,其中 exp2是判斷條件,for 迴圈依據 exp2 的結果來決定是否繼續席下次迴圈;

statements 是 迴圈體語句,可以有一條,或者多條;

do 和 done 是shell 中關鍵字;

#!/bin/bash

sum=0

for ((i=1;i<=100;i++))

do((sum +=i))

doneecho "then sum $sum"

i++ ==>>i=i+1

7、分割vi spilt.sh#!/bin/bash

s="ruoze,jepson,xingxing,dashu,xiaoshiqi,xiaohai"old_ifs="$ifs"ifs=","arr=($s)ifs="old_ifs"

for x in $doecho $xdone

#chmod +x ./spilt.sh#./spilt.shruozejepsonxingxingdashuxiaoshiqixiaohai

8、awkawk options program file1、 -f fs 指定行中劃分資料字段的字段分隔符;2、-f programfile 從指定檔案中讀取**資料;3、 -v var=value 定義awk 程式乙個變數以及預設值$0代表整個文字行$1代表文字行中的第乙個資料字段,$2代表第二個字段,以此類推

$ cat test.txtthis is a test, this is the first line of the test.this is a test, this is the second line of the test.hahahaha!$?awk '' test.txtthisthishahahaha!

#vi awk.loga,b,c1,2,34,5,6#cat awk.log |awk ''a,b,c1,2,34,5,6#cat awk.log| awk -f ',' ''a14#cat awk.log| awk -f ',' ''c36#cat awk.log |awk -f"," 'nr >1'36

9、替換

vi sed.log

a b c1 2 3

sed -i 's/a/aa' sed.log 用於將 a 替換成 aacat sed.logaa b c1 2 3

#sed -i "s/b/w" sed.log#cat sed.logwbb b c1 2 3

前面加#sed -i "s/^/uuuu&/g" sed.logcat sed.loguuuwww w cuuu1 2 3

後面加#sed -i "s/$/&uuu/g" sed.logcat sed.loguuwww w cuuuuuul 2 3uuu

Linux命令一 卓延寒雪

1 部署客戶端部署xshell crt登陸方式賬戶 root 密碼 協議 ssh22 linux 命令 root hadoop3 root 使用者 連線符hadoop3 機器名 家目錄 3 pwd 檢視當前目錄路徑 root hadoop3 pwd root 超級管理員 對應的目錄 rootjeps...

寒二程式設計總結

7 1 幣值轉換 20 分 輸入乙個整數 位數不超過9位 代表乙個人民幣值 單位為元 請轉換成財務要求的大寫中文格式。如23108元,轉換後變成 貳萬叄仟壹百零捌 元。為了簡化輸出,用小寫英文本母a j順序代表大寫數字0 9,用s b q w y分別代表拾 百 仟 萬 億。於是23108元應被轉換輸...

安卓 shell 點亮螢幕

echo on sys power state echo 222 sys class leds lcd backlight brightness 現在89平台輸入這兩個命令螢幕不能點亮,請問如何可以直接在終端通過命令來點亮螢幕?89以後平台和77之前的架構不一樣,可以如下操作測試 在系統正常開啟的時...