shell腳本介紹以及經常使用命令

Shell腳本

        Shell Script,Shell腳本與Windows/Dos下的批處理類似,也就是用各種命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。可是它比Windows下的批處理更強大,比用其餘編程程序編輯的程序效率更高,畢竟它使用了Linux/Unix下的命令。
        換一種說法也就是,shell script是利用shell的功能所寫的一個程序,這個程序是使用純文本文件,將一些shell的語法與指令寫在裏面,而後用正規表示法,管線命令以及數據流重導向等功能,以達到咱們所想要的處理目的 html

shell和shell腳本的區別:

        shell是什麼呢?確切一點說,Shell就是一個命令行解釋器,它的做用就是遵循必定的語法將輸入的命令加以解釋並傳給系統。它爲用戶提供了一個向Linux發送請求以便運行程序的接口系統級程序,用戶能夠用Shell來啓動、掛起、中止甚3至是編寫一些程序。 Shell自己是一個用C語言編寫的程序,它是用戶使用Linux的橋樑。Shell既是一種命令語言,又是一種程序設計語言(就是你所說的shell腳本)。做爲命令語言,它互動式地解釋和執行用戶輸入的命令;做爲程序設計語言,它定義了各類變量和參數,並提供了許多在高階語言中才具備的控制結構,包括循環和分支。它雖然不是 Linux系統內核的一部分,但它調用了系統內核的大部分功能來執行程序、建立文檔並以並行的方式協調各個程序的運行。linux

交互式shell和非交互式shell

  交互式模式就是shell等待你的輸入,而且執行你提交的命令。這種模式被稱做交互式是由於shell與用戶進行交互。這種模式也是大多數用戶很是熟悉的:登陸、執行一些命令、簽退。當你簽退後,shell也終止了。
  shell也能夠運行在另一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,而且執行它們。當它讀到文件的結尾,shell也就終止了。
以下:
簡單的實現系統巡檢的命令:
date正則表達式

[root@linuxprobe ~]# date
2020年 03月 30日 星期一 13:00:48 CST

 


free –mshell

[root@linuxprobe ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1826       1268        558         10          7        388
-/+ buffers/cache:        871        954
Swap:         2047          0       2047

 

 


df –Th編程

[root@linuxprobe ~]# df -Th
文件系統                         類型      容量  已用  可用 已用% 掛載點
/dev/mapper/rhel_linuxprobe-root xfs        18G  3.8G   14G   22% /
devtmpfs                         devtmpfs  905M  4.0K  905M    1% /dev
tmpfs                            tmpfs     914M  140K  914M    1% /dev/shm
tmpfs                            tmpfs     914M  8.9M  905M    1% /run
tmpfs                            tmpfs     914M     0  914M    0% /sys/fs/cgroup
/dev/sr0                         iso9660   3.5G  3.5G     0  100% /mnt
/dev/sda1                        xfs       497M  125M  373M   26% /boot

 

 


寫成一個簡單的腳本test.sh
#!/bin/bash
date
free –m
df –Th
chmod +x test.sh
./test.shbash

[root@linuxprobe ~]# ./test.sh 
2020年 03月 30日 星期一 13:02:50 CST
             total       used       free     shared    buffers     cached
Mem:          1826       1266        560         10          7        388
-/+ buffers/cache:        870        956
Swap:         2047          0       2047
文件系統                         類型      容量  已用  可用 已用% 掛載點
/dev/mapper/rhel_linuxprobe-root xfs        18G  3.8G   14G   22% /
devtmpfs                         devtmpfs  905M  4.0K  905M    1% /dev
tmpfs                            tmpfs     914M  140K  914M    1% /dev/shm
tmpfs                            tmpfs     914M  8.9M  905M    1% /run
tmpfs                            tmpfs     914M     0  914M    0% /sys/fs/cgroup
/dev/sr0                         iso9660   3.5G  3.5G     0  100% /mnt
/dev/sda1                        xfs       497M  125M  373M   26% /boot

 

 

 

shell 腳本中-d,-e,-f的區別

-e filename 若是 filename存在,則爲真
-d filename 若是 filename爲目錄,則爲真
-f filename 若是 filename爲常規文件,則爲真
-L filename 若是 filename爲符號連接,則爲真
-r filename 若是 filename可讀,則爲真
-w filename 若是 filename可寫,則爲真
-x filename 若是 filename可執行,則爲真
-s filename 若是文件長度不爲0,則爲真
-h filename 若是文件是軟連接,則爲真
filename1 -nt filename2 若是 filename1比 filename2新,則爲真。
filename1 -ot filename2 若是 filename1比 filename2舊,則爲真。
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於服務器

shell腳本的經常使用命令

cat,head,tail命令

1.求/etc/passwd文件第20行內容app

[root@linuxprobe ~]# cat -n /etc/passwd | head -20 | tail -1
    20    avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

 

rev,tac命令

rev左右顛倒測試

tac上下顛倒ui

find命令

經常使用選項
-name
-type
-user
-nouser
-group
-nogroup
-mtime
-size
可使用 -o 或者 -a 鏈接多個條件
可使用-exec或者-ok來執行shell命令

find /etc/ -name hosts -exec cp {} /tmp/ \;

如:

find /var/logs -type f -mtime +7 -exec rm {} \;

計劃任務crond和crontab

*/10 * * * * 腳本|命令

&命令

當在前臺運行某個做業時,終端被該做業佔據;而在後臺運行做業時,它不會佔據終端。
xclock -update 1 & 後臺運行


nohup命令


若是你正在運行一個進程,並且你以爲在退出賬戶時該進程還不會結束,那麼可使用 n o h u p命令。該命令能夠在你退出賬戶以後繼續運行相應的進程。 N o h u p就是不掛起的意思( n o hang up)。
該命令的通常形式爲: nohup command &
nohup xclock -update 1 &

shell的通配符

*
?
[...]和[!...] [a-z] [0-9] [!a12d]
{..}

echo命令

-e 使轉義符生效 如: 解釋\t \n含義
-n 不換行輸出
字顏色:30—–37 
echo -e 「\033[30m 黑色字 \033[0m」
echo -e 「\033[31m 紅色字 \033[0m」
echo -e 「\033[32m 綠色字 \033[0m」
echo -e 「\033[33m 黃色字 \033[0m」
echo -e 「\033[34m 藍色字 \033[0m」
echo -e 「\033[35m 紫色字 \033[0m」
echo -e 「\033[36m 天藍字 \033[0m」
echo -e 「\033[37m 白色字 \033[0m」

[root@linuxprobe ~]# echo -e "\033[31m 紅色字 \033[0m"
 紅色字 

字背景顏色範圍:40—–47 
echo -e 「\033[40;37m 黑底白字 \033[0m」
echo -e 「\033[41;37m 紅底白字 \033[0m」
echo -e 「\033[42;37m 綠底白字 \033[0m」
echo -e 「\033[43;37m 黃底白字 \033[0m」
echo -e 「\033[44;37m 藍底白字 \033[0m」
echo -e 「\033[45;37m 紫底白字 \033[0m」
echo -e 「\033[46;37m 天藍底白字 \033[0m」
echo -e 「\033[47;30m 白底黑字 \033[0m

[root@linuxprobe ~]# echo -e "\033[41;37m 紅底白字 \033[0m" 紅底白字 

 


printf命令

[root@linuxprobe ~]# printf aa
aa[root@linuxprobe ~]#  
[root@linuxprobe ~]# printf "aa\n"
aa

格式化輸出

[root@linuxprobe ~]# printf "%s,%s,%d\n" good job 123
good,job,123

  %s 字符串 %d十進制整數

 read命令

可使用read語句從鍵盤或文件的某一行文本中讀入信息,並將其賦給一個變量。若是隻指定了一個變量,那麼 read將會把全部的輸入賦給該變量,直至遇到第一個文件結束符或回車。
如:
賦值

[root@linuxprobe ~]# read name
zhang san
[root@linuxprobe ~]# echo $name
zhang san

 賦多值

[root@linuxprobe ~]# read firstname lastname
zhang san 
[root@linuxprobe ~]# echo $firstname $lastname
zhang san
[root@linuxprobe ~]# echo $firstname
zhang
[root@linuxprobe ~]# echo $lastname
san

 

交互式

[root@linuxprobe ~]# read -p "輸入姓名: " name
輸入姓名: zhang san
[root@linuxprobe ~]# echo $name
zhang san

 

|管道命令

管道(Pipe)實際是用於進程間通訊的一段共享內存. 建立管道的進程稱爲管道服務器,鏈接到一個管道的進程爲管道客戶機
管道命令的兩個做用:
1.管道兩邊產生兩個子進程
2.前一個進程的標準輸出和後一個進程的標準輸入

注意如下狀況不能賦值
echo 123 | read aa
echo $aa

重定向(文件描述符)

文件描述符:進程鏈接到文件時,得到的一個標記.當進程操做文件時,首先
打開文件 得到打開文件的一個狀態,給它一個標記 成爲文件描述符
0標準輸入
1標準輸出
2標準錯誤輸出

> >> 定向符(重定向) >覆蓋 >>追加
1> 標準正確輸出,文件存在則覆蓋,不存在則建立
1>> 標準正確輸出,文件存在則追加,不存在則建立
2> 標準錯誤輸出,文件存在則覆蓋,不存在則建立
2>> 標準錯誤輸出,文件存在則追加,不存在則建立
&> 標準正確和標準錯誤輸出,文件存在則覆蓋,不存在則建立

cat < /dev/sda > /dev/null 測試改變文件描述符

ls >cleanup.out 2>&1
在上面的例子中,咱們將 ls命令的輸出重定向到 cleanup.out文件中,並且其錯誤也 被重定向到相同的文件中。
2>&1 標準錯誤輸出定向到標準正確輸出


  < 輸入重定向 後邊跟的是文件 > >>
<< here document 後邊跟的是一個文本
以下

[root@linuxprobe ~]# cat >a.txt <<EOF
> dsadsadsa
> cxzcxzcxz
> qwewqewqe
> EOF
[root@linuxprobe ~]# cat a.txt 
dsadsadsa
cxzcxzcxz
qwewqewqe

[[root@linuxprobe ~]# fdisk /dev/sda <<EOF
> n
>
> +200M
> w
> EOF

<<<here string 後邊跟字符串 直接交給文本 如:

[root@linuxprobe ~]# cat>a.txt <<<kkkkk
[root@linuxprobe ~]# cat a.txt 
kkkkk

 tee命令

tee命令做用能夠用字母 T來形象地表示。它把輸出的一個副本輸送到標準輸出,另外一個 副本拷貝到相應的文件中。若是但願在看到輸出的同時,也將其存入一個文件, 這種狀況可使用tee命令
如:

[root@linuxprobe ~]# who | tee aa.txt
root     :0           2020-03-31 17:01 (:0)
root     pts/0        2020-03-31 17:01 (:0)
[root@linuxprobe ~]# cat aa.txt 
root     :0           2020-03-31 17:01 (:0)
root     pts/0        2020-03-31 17:01 (:0)

 

[root@linuxprobe ~]# find /etc -name hosts | tee bb.txt
/etc/avahi/hosts
/etc/hosts
[root@linuxprobe ~]# cat bb.txt 
/etc/avahi/hosts
/etc/hosts

sort命令

Linux sort命令用於將文本文件內容加以排序。

sort可針對文本文件的內容,以行爲單位來排序。

sort [-bcdfimMnr][-o<輸出文件>][-t<分隔字符>][+<起始欄位>-<結束欄位>][--help][--verison][文件]

 

  • -b 忽略每行前面開始出的空格字符。
  • -c 檢查文件是否已經按照順序排序。
  • -d 排序時,處理英文字母、數字及空格字符外,忽略其餘的字符。
  • -f 排序時,將小寫字母視爲大寫字母。
  • -i 排序時,除了040至176之間的ASCII字符外,忽略其餘的字符。
  • -m 將幾個排序好的文件進行合併。
  • -M 將前面3個字母依照月份的縮寫進行排序。
  • -n 依照數值的大小排序。
  • -u 意味着是惟一的(unique),輸出的結果是去完重了的。
  • -o<輸出文件> 將排序後的結果存入指定的文件。
  • -r 以相反的順序來排序。
  • -t<分隔字符> 指定排序時所用的欄位分隔字符。
  • +<起始欄位>-<結束欄位> 以指定的欄位來排序,範圍由起始欄位到結束欄位的前一欄位。
  • --help 顯示幫助。
  • --version 顯示版本信息。
[root@linuxprobe ~]# cat aa.txt 
2
4
3
21
90
78
45
23
2
3
5
1
[root@linuxprobe ~]# sort aa.txt 
1
2
2
21
23
3
3
4
45
5
78
90
[root@linuxprobe ~]# sort -n aa.txt 
1
2
2
3
3
4
5
21
23
45
78
90
[root@linuxprobe ~]# sort -n -r aa.txt    按完整數字排序 降序
90
78
45root
23
21
5
4
3
3
2
2
1
[root@linuxprobe ~]# sort -u aa.txt  去掉重複值 
1
2
21
23
3
4
45
5
78
90

[root@linuxprobe ~]# sort -t: -k3nr /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
never:x:1004:1004::/home/never:/bin/bash
shitianle:x:1003:1003::/home/shitianle:/bin/bash
tom:x:1002:1002::/home/tom:/bin/bash

 

 

uniq命令(默認去掉連續的重複值)

Linux uniq 命令用於檢查及刪除文本文件中重複出現的行列,通常與 sort 命令結合使用。

uniq 可檢查文本文件中重複出現的行列。

 

uniq [-cdu][-f<欄位>][-s<字符位置>][-w<字符位置>][--help][--version][輸入文件][輸出文件]
  • -c或--count 在每列旁邊顯示該行重複出現的次數。
  • -d或--repeated 僅顯示重複出現的行列。
  • -f<欄位>或--skip-fields=<欄位> 忽略比較指定的欄位。
  • -s<字符位置>或--skip-chars=<字符位置> 忽略比較指定的字符。
  • -u或--unique 僅顯示出一次的行列。
  • -w<字符位置>或--check-chars=<字符位置> 指定要比較的字符。

 

[root@linuxprobe ~]# cat qq.txt 
2
4
4
3
3
21
90
78
45
23
2
3
5
1
[root@linuxprobe ~]# sort -n qq.txt |uniq -u
1
5
21
23
45
78
90
[root@linuxprobe ~]# cat qq.txt 
2
4
4
3
3
21
90
78
45
23
2
3
5
1
[root@linuxprobe ~]# sort -n qq.txt | uniq -d 
2
3
4
[root@linuxprobe ~]# sort -n qq.txt | uniq -d -c
      2 2
      3 3
      2 4

grep 命令

linux grep 命令用於查找文件裏符合條件的字符串。

grep 指令用於查找內容包含指定的範本樣式的文件,若是發現某文件的內容符合所指定的範本樣式,預設 grep 指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名爲 -,則 grep 指令會從標準輸入設備讀取數據。

grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動做>][-e<範本樣式>][-f<範本文件>][--help][範本樣式][文件或目錄...]

 

  • -a 或 --text : 不要忽略二進制的數據。
  • -A<顯示行數> 或 --after-context=<顯示行數> : 除了顯示符合範本樣式的那一列以外,並顯示該行以後的內容。( 後 N 行)
  • -b 或 --byte-offset : 在顯示符合樣式的那一行以前,標示出該行第一個字符的編號。
  • -B<顯示行數> 或 --before-context=<顯示行數> : 除了顯示符合樣式的那一行以外,並顯示該行以前的內容。(前N 行)
  • -c 或 --count : 計算符合樣式的列數。(統計匹配次數)
  • -C<顯示行數> 或 --context=<顯示行數>或-<顯示行數> : 除了顯示符合樣式的那一行以外,並顯示該行以前後的內容。(先後N行)
  • -d <動做> 或 --directories=<動做> : 當指定要查找的是目錄而非文件時,必須使用這項參數,不然grep指令將回報信息並中止動做。
  • -e<範本樣式> 或 --regexp=<範本樣式> : 指定字符串作爲查找文件內容的樣式。
  • -E 或 --extended-regexp : 將樣式爲延伸的正則表達式來使用。
  • -f<規則文件> 或 --file=<規則文件> : 指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式爲每行一個規則樣式。
  • -F 或 --fixed-regexp : 將樣式視爲固定字符串的列表。
  • -G 或 --basic-regexp : 將樣式視爲普通的表示法來使用。
  • -h 或 --no-filename : 在顯示符合樣式的那一行以前,不標示該行所屬的文件名稱。
  • -H 或 --with-filename : 在顯示符合樣式的那一行以前,表示該行所屬的文件名稱。
  • -i 或 --ignore-case : 忽略字符大小寫的差異。
  • -l 或 --file-with-matches : 列出文件內容符合指定的樣式的文件名稱。(顯示文件名)
  • -L 或 --files-without-match : 列出文件內容不符合指定的樣式的文件名稱。
  • -n 或 --line-number : 在顯示符合樣式的那一行以前,標示出該行的列數編號。(顯示行號)
  • -o 或 --only-matching : 只顯示匹配PATTERN 部分。
  • -q 或 --quiet或--silent : 不顯示任何信息。
  • -r 或 --recursive : 此參數的效果和指定"-d recurse"參數相同。(遞歸)
  • -s 或 --no-messages : 不顯示錯誤信息。
  • -v 或 --revert-match : 顯示不包含匹配文本的全部行。(取反)
  • -V 或 --version : 顯示版本信息。
  • -w 或 --word-regexp : 只顯示全字符合的列。
  • -x --line-regexp : 只顯示全列符合的列。(精確匹配)
  • -y : 此參數的效果和指定"-i"參數相同。

 

[root@linuxprobe ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@linuxprobe ~]# grep halt$ /etc/passwd
halt:x:7:0:halt:/sbin:/sbin/halt

[root@linuxprobe ~]# grep -A 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@linuxprobe ~]# grep -B 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@linuxprobe ~]# grep -C 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@linuxprobe ~]# grep -c root /etc/passwd
2

 

 

cut命令

Linux cut命令用於顯示每行從開頭算起 num1 到 num2 的文字。

cut  [-bn] [file]
cut [-c] [file]
cut [-df] [file]

 

 

使用說明:

cut 命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段寫至標準輸出。

若是不指定 File 參數,cut 命令將讀取標準輸入。必須指定 -b、-c 或 -f 標誌之一。

參數:

    • -b :以字節爲單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。
    • -c :以字符爲單位進行分割。
    • -d :自定義分隔符,默認爲製表符。
    • -f :與-d一塊兒使用,指定顯示哪一個區域。
    • -n :取消分割多字節字符。僅和 -b 標誌一塊兒使用。若是字符的最後一個字節落在由 -b 標誌的 List 參數指示的
      範圍以內,該字符將被寫出;不然,該字符將被排除

 

[root@linuxprobe ~]# head -10  /etc/passwd| cut -d: -f 1,3 
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
operator:11
[root@linuxprobe ~]# head -10  /etc/passwd| cut -d: -f 1-3 
root:x:0
bin:x:1
daemon:x:2
adm:x:3
lp:x:4
sync:x:5
shutdown:x:6
halt:x:7
mail:x:8
operator:x:11

 

 tr命令

 

Linux tr 命令用於轉換或刪除文件中的字符。

tr 指令從標準輸入設備讀取數據,通過字符串轉譯後,將結果輸出到標準輸出設備。

tr [-cdst][--help][--version][第一字符集][第二字符集]  
tr [OPTION]…SET1[SET2] 

 

  • -c, --complement:反選設定字符。也就是符合 SET1 的部份不作處理,不符合的剩餘部份才進行轉換
  • -d, --delete:刪除指令字符
  • -s, --squeeze-repeats:縮減連續重複的字符成指定的單個字符
  • -t, --truncate-set1:削減 SET1 指定範圍,使之與 SET2 設定長度相等
  • --help:顯示程序用法信息
  • --version:顯示程序自己的版本信息

 

字符集合的範圍:

  • \NNN 八進制值的字符 NNN (1 to 3 爲八進制值的字符)
  • \\ 反斜槓
  • \a Ctrl-G 鈴聲
  • \b Ctrl-H 退格符
  • \f Ctrl-L 走行換頁
  • \n Ctrl-J 新行
  • \r Ctrl-M 回車
  • \t Ctrl-I tab鍵
  • \v Ctrl-X 水平製表符

 

[root@linuxprobe ~]# echo helooooooo worddddddd | tr -s [a-z]
helo word
[root@linuxprobe ~]# head -10 /etc/passwd |tr [a-z] [A-Z]
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC
SHUTDOWN:X:6:0:SHUTDOWN:/SBIN:/SBIN/SHUTDOWN
HALT:X:7:0:HALT:/SBIN:/SBIN/HALT
MAIL:X:8:12:MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN
OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN

 

 wc命令

Linux wc命令用於計算字數。

利用wc指令咱們能夠計算文件的Byte數、字數、或是列數,若不指定文件名稱、或是所給予的文件名爲"-",則wc指令會從標準輸入設備讀取數據。

wc [-clw][--help][--version][文件...]
  • -c或--bytes或--chars 只顯示Bytes數。
  • -l或--lines 只顯示行數。
  • -w或--words 只顯示字數。
  • --help 在線幫助。
  • --version 顯示版本信息。
  •   m 統計字符數。這個標誌不能與 -c 標誌一塊兒使用。
  •   -L 打印最長行的長度。

 統計/tmp目錄下文件的個數(數目中包含目錄自己

[root@linuxprobe ~]# ls -l /tmp/ |wc -l
56

 

split命令

 

inux split命令用於將一個文件分割成數個。

該指令將大文件分割成較小的文件,在默認狀況下將按照每1000行切割成一個小文件。

 

split [--help][--version][-<行數>][-b <字節>][-C <字節>][-l <行數>][要切割的文件][輸出文件名]
  • -<行數> : 指定每多少行切成一個小文件
  • -b<字節> : 指定每多少字節切成一個小文件
  • --help : 在線幫助
  • --version : 顯示版本信息
  • -C<字節> : 與參數"-b"類似,可是在切 割時將盡可能維持每行的完整性
  • [輸出文件名] : 設置切割後文件的前置文件名, split會自動在前置文件名後再加上編號

 

[root@linuxprobe ~]#cat /etc/passwd >> zz.txt
[root@linuxprobe ~]# split -6 zz.txt 
[root@linuxprobe ~]# ls
 zz.txt  xaa  xae  xab  xaf  xac  xag  xad  xah 

 

 eval命令

Linux eval命令用於從新運算求出參數的內容。

eval可讀取一連串的參數,而後再依參數自己的特性來執行。

 

eval [參數]

 

 

[root@linuxprobe ~]# aa="tail -1 /etc/passwd"
[root@linuxprobe ~]# echo $aa
tail -1 /etc/passwd
[root@linuxprobe ~]# eval $aa
never:x:1004:1004::/home/never:/bin/bash

 

 

date命令

Linux date命令能夠用來顯示或設定系統的日期與時間,在顯示方面,使用者能夠設定欲顯示的格式,格式設定爲一個加號後接數個標記,其中可用的標記列表以下:

時間方面:

 

[root@linuxprobe ~]# date
2020年 03月 31日 星期二 19:32:14 CST
[root@linuxprobe ~]# date +%F-%H:%M:%S
2020-03-31-19:34:17
[root@linuxprobe ~]# date +%F-%H:%M:%S
2020-03-31-19:34:17

 

 

 bc命令

bc 命令是任意精度計算器語言,一般在linux下當計算器用。

它相似基本的計算器, 使用這個計算器能夠作基本的數學運算。

經常使用的運算:

  • + 加法
  • - 減法
  • * 乘法
  • / 除法
  • ^ 指數
  • % 餘數

 

[root@linuxprobe ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
3-1
2
2*2
4
3*3
9
2/2
1
5/2
2
5%2
1
5^2
25

 

輸入 quit 退出。

小數:

[root@linuxprobe ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
scale=5
7/3
2.33333

 

轉換進制:

[root@linuxprobe ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
ibase=10;obase=2
10
1010
2
10

 

 非交互式:

[root@linuxprobe ~]# echo "3*3" | bc
9

 

 

 ||邏輯或 前邊命令失敗執行後邊命令
&&邏輯與 前邊命令成功運行後邊命令

相關文章
相關標籤/搜索