Linux Shell編程基礎

在學習Linux BASH Shell編程的過程當中,發現因爲不常常用,因此不少東西很容易忘記,因此寫篇文章來記錄一下正則表達式

ls   顯示當前路徑下的文件,經常使用的有 -l 顯示長格式  -a 顯示全部包括隱藏  -R 顯示文件夾內的內容  -c 按照最後一次修改時間排序  -t 按照修改時間排序輸出編程

echo 顯示  -n 不換行數組

touch  建立一個文件,或者修改文件的訪問時間和修改時間 touch -a file 只更改訪問時間 -m之更改修改實際那 -t指定特定時間bash

cp  複製文件 -a 保留文件的屬性 -f強行復制,如存在則覆蓋  -i 存在覆蓋則提示  -r 複製文件夾中全部存在的內容  -u 只有源文件更新的狀況下複製 less

mv  移動和重命名 mv a b 將a文件移動到b的路徑函數

rm 刪除 -i 刪除時提示  -r 刪除目錄及其中內容  -f 不提示工具

file 查看文件類型學習

cat 查看文件內容ui

more 查看文件內容,滿一頁後暫停, 空格和z下一頁 d下半頁  q退出spa

less  加強版的more  b能夠向後翻頁 u能夠向後翻半頁

tail 顯示後幾行的內容  tail -f能夠動態刷新 很經常使用 tail -n指定行數

head 顯示前幾行的內容,和tail對應

ps 顯示進程  ps aux 查看全部進程  經常使用 顯示的比較多,通常配合 管道來查找

top 實時監控進程 命令  u 查看某個用戶的進程  k 結束指定進程 q 退出

kill pid 結束進程  kill -9 pid 強制結束

killall 進程名   不用輸入pid 直接輸入進程名來進行結束進程

mount 掛載   mount -t type device directory    type是磁盤類型  device是設備文件 directory 是掛載地址 常常用 通常是經過fdisk -l找到設備地址,而後進行掛載

umount 卸載  卸載掛載點或者設備文件  若是有程序使用則沒法卸載 用lsof 來查看那些進程正在使用

df 查看磁盤使用狀況  

du 查看那特定目錄下文件的磁盤使用狀況 通常用du -h 直觀一些

sort 排序  sort -n 按數字排序 -r 反序

cut 分割   cut -f1 -d':'  按:分割,取第一列

grep 搜索 通常配合管道使用   cat tt|grep number   -n添加行號  -c有幾個匹配的

tar  壓縮和解壓     經常使用的是tar 和tar.gz文件    打包     tar -cvf      拆包  tar -xvf    對於tar.gz  打包  tar -zcvf  拆包 tar -zxvf

export 將變量做爲環境變量,想要重啓不會消失,能夠寫在用戶家目錄的.bash_profile 中,寫在/etc/profile則對全部用戶都有效

unset 刪除環境變量

array=(1 2 2 3 4) 用圓括號括起來做爲數組 ${array[*]}顯示全部 ${#array[*]} 顯示個數

useradd 添加用戶 -u 指定uid -g指定組名或gid       userrm 刪除用戶  usermod 修改密碼   passwd 修改本身的密碼     相關文件  /etc/passwd  /etc/shadow  

groupadd  添加組  groupmod 修改組   grouprm 刪除組        相關文件/etc/group

chmod 修改文件權限       chmod 666 a.sh  每一個數字表明rwx權限   第一個數字是擁有着第二個是組第三個是其餘,666就是全部人都用用寫和執行的權限

chown 修改文件全部者   chgrp 修改文件所屬組  

fdisk磁盤管理工具

yum 下載安裝工具   通常  yum install xxx  查看已安裝的包   yum list installed      卸載 yum remove  xxx   完全卸載  yum erase xxx

rpm 安裝rpm包  與yum功能相似

date 日期 通常用   date +%y%m%d

who查看用戶信息

雙引號  將其中的信息做爲字符串 ,除了轉義符 \   反引號 和$變量

反引號  將其中的文本做爲命令執行

單引號      將其中的全部東西做爲字符

> 輸出重定向 覆蓋   >>輸出重定向 追加

<輸入重定向

|管道  前面的輸出做爲後面的環境

$[]  進行數學運算只支持整數

bc  具體不描述,支持小數運算

$? 上一條命令的運行結果 0是成功

exit 0  腳本退出並返回狀態碼

if語句依照以下結構

if command;then
    xxxxxx
fi

if command;then
    xxxxxx
elif  command; then
    xxxxxxx
else
    xxxxxxx
fi

test 因爲if驗證的只能是命令,因此引入test  [ $a -gt $b ] 用方括號括起來能夠做爲判斷條件,用於文件則是[ -f "$file"]  其中f是文件  e是存在  d是文件夾 等等

判斷字符串只有   [ $str1 = $str2]   = != > < -z -n

(())  雙圓括號支持更犀利一些的算術運算  如++ -- **  & | 等    [[]] 支持更犀利的字符串比較,好比正則表達式

case命令

case  $param in
aaa) xxxxxxxxx;;
bbb) xxxxxxxxx;;
*)    xxxxxxxxx;;
esac

for 循環控制 while 循環控制  until循環控制 比較簡單,再也不贅述

break n 退出n層循環 continue 從新回到n層外的循環

read 讀取輸入 -p 後面跟提示   read -p "please input a and b"  a b  將用戶輸入讀入並存在a b中  -n 指定超時時間

local temp 在函數中聲明臨時變量temp

$0 腳本名 $#參數數量 $1 $2 .. 第n個參數  $* 全部參數做爲一個    $@ 全部參數

shift 向前移動參數

Ctrl+z暫停當前任務

Ctrl+c退出任務

Ctrl+d 結束輸入

at 指定命令運行時間 atq查看已有  atrm刪除

cron指定命令運行週期

 

目前先寫這麼多,用到了在進行添加

相關文章
相關標籤/搜索