tft每日頭條

 > 圖文

 > shell基本語法講解

shell基本語法講解

圖文 更新时间:2025-01-09 21:45:18

shell基本語法講解?幾個常用參數 -l 以長列表列出文件,我來為大家科普一下關于shell基本語法講解?下面希望有你要的答案,我們一起來看看吧!

shell基本語法講解(基本程序和命令)1

shell基本語法講解

基本命令
  • ls 列出文件的基本命令

幾個常用參數

-l 以長列表列出文件

-R選項, 遞歸選項,以目錄樹的形式列出所有文件

-S, 将會按照文件尺寸列出所有文件

-t, 将會按照修改時間來列出文件

-i選項會顯示文件的inode

  • cat, tac 把文件的内容輸出到stdout

參數 -n 所有行前邊插入行号

-b 用來加行号的, 不對空行進行編号

-v 用^标記法出不可打印字符

-T 顯示TAB ^I

-E 顯示行尾

-A -vET

-s 把多個空行壓縮成一個空行

tac 和cat 相反,從行尾打印

  • rev 反轉每一行内容
  • cp 拷貝文件

參數 -a 拷貝完整目錄樹, -u是更新選項, -r和-R選項是遞歸标志

  • mv 文件移動命令 等價于cp和rm命令的組合
  • rm 删除一個或多個文件

參數 -f 強制删除文件, 即使文件是隻讀的

-r删除整個目錄樹

  • rmdir 删除目錄 隻有目錄中沒有文件才生效
  • mkdir 創建空目錄

-p 創建遞歸目錄

  • chmod修改文件屬性
  • ln 創建文件鍊接

參數 -s 創建符号鍊接, 或"軟"鍊接

  • man, info 幫助手冊
複雜命令
  • find 查找文件

find [路徑] [選項] [操作]

參數 -name 按文件名查找文件,例如:find /etc -name '*.conf'

-iname 按文件名查找文件,不區分大小寫

-user 查找文件所屬用戶的所有文件

-group 查找文件所屬組的所有文件

-type 按文件類型查找 f文件/d目錄/c字符設備文件/b塊設備文件/l鍊接文件p  管道文件

-size 根據文件大小查詢 -n小于大小為 n 的文件 n 大于大小為 n 的文件

-mtime -n n天以内修改的文件 n n天以外修改的文件 n 正好n天修改的文件

-mmin -n n分鐘以内修改過的文件 n n分鐘之前修改過的文件

-mindepth n 從第 n 級目錄開始搜索

-maxdepth n 表示至多搜索到第 n-1 級子目錄

-newer file1 查找當前目錄下比file1文件要新的文件

  • xargs 給命令傳遞參數的一個過濾器, 也是組合多個命令的一個工具

參數 -p 當每次執行一個分隔符的時候詢問一次用戶。

-n num num為個數,表示命令在執行的時候一行用的分隔符的個數,默認是用所有的。

-t 表示先打印,然後再執行。

-i 一行一行賦值給 {},默認是單行。

-r 當xargs的輸入為空的時候則停止xargs,不用再去執行了。

-L num 從标準輸入一次讀取 num 行送給 command 命令。

-l 同 -L。

-d delim delim分隔符,這裡修改的是xargs的分隔符。

當你嘗試用rm 删除太多的文件,你可能得到一個錯誤信息,用xargs 去避免這個問題

find ~ -name ‘*.log' -print0 | xargs -0 rm -f

xargs将find 命令的輸出傳遞給ls -l

find /etc -name "*.conf" | xargs ls –l

使用xargs 下載所有鍊接

cat url-list.txt | xargs wget –c

查找所有的jpg 文件,并且壓縮它

find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

拷貝所有的圖片文件到一個外部的硬盤驅動

ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

  • expr 通用求值表達式

通過給定的操作連接參數, 并對參數求值. 可以使算術操作, 比較操作, 字符串操作或者是邏輯操作

expr 3 5 #返回8

expr 5 % 3 #返回2

expr 1 / 0 #返回錯誤消息, expr: division by zero 不允許非法的算術操作.

expr 5 \* 3 #返回15 在算術表達式expr中使用乘法操作時, 乘法符号必須被轉義.

y=`expr $y 1` # 增加變量的值, 與let y=y 1和y=$(($y 1))的效果相同. 這是使用算術表達式的一個例子.

z=`expr substr $string $position $length` #在位置$position上提取$length長度的子串.

b=`expr match "$a" '[0-9]*'` # 統計數字的個數.

b=`expr match "$a" '\([0-9]*\)'` # 注意, 括号需要轉義括号,b是匹配a的子串

:操作可以替換match命令. 比如, b=`expr $a : [0-9]*`與 b=`expr match $a [0-9]*`完全等價

時間/日期 命令
  • date

date %Y //year,輸出4位數年

date %y //輸出2位數的年

date %m //m表示month,輸出的結果是月份

date %d //d表示day,日

date %D //D表示特殊格式的日期表示方法 如當前日期為2018年3月21日 顯示21/03/18

date %Y%m%d //輸出年月日

date %F //輸出的年月日會用連字符隔開

date %H //H表示hour小時

date %M //M表示minute分鐘

date %S //S表示second秒

date %s //輸出結果是一個時間戳,表示距離1970年1月1日0時0分過去多少秒

date %T //以下面格式輸出時分秒

date %H:%M:%S //效果跟上條命令一樣

date %w //輸出結果為星期幾,比如下圖表示當前系統時間是星期三

date %W //表示當前為今年的第幾周,比如我這裡為今年的第12周

date %s //獲取時間戳

date -d @1521563928 //将時間戳換算成日期

date %s -d "2017-03-21 00:38:48" //将日期換算成時間戳

從當前時間往前或往後推算

date -d "-1day" //當前系統時間為3月21日,輸出結果為3月20日

date -d "-1 month" %F //上個月

date -d "-1 year" %F //表示去年

  • zdump

時區dump: 查看特定時區的當前時間

  • time

輸出統計出來的命令執行的時間.

time ls -l /

  • touch 更新文件被訪問或修改的時間或創建新文件
  • at 作業控制命令, 用來在指定時間點上執行指定的命令集合

at 2:30 am Friday < at-jobs.list

  • batch 與at令的行為類似 在系統平均負載量降到.8以下時執行一次性的任務
  • cal 輸出日曆
  • sleep 暫停執行,單位秒
  • usleep 同sleep 單位微秒
  • hwclock, clock 訪問或調整硬件時鐘
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved