學習筆記6

2021-07-10 01:46:56 字數 2977 閱讀 2076

第七單元 :標準的輸出管道命令及for...do...done語句

1.輸出和輸出重定向:

a.在i/o輸出分為正確的輸出和錯誤的輸出,例如:

正確的輸出:【root@nana-pc mnt】#   ls

file1    file2     file3     file4      file5

錯誤的輸出:【root@nana-pc mnt】#  sadfsadf

bash:sadfsadf: command not found

(問題1:因為ls命令是本身就知道的正確的輸出命令,而sadfsadf命令是隨機亂編的乙個系統不存在的命令,所以通過它們對比來顯示正確的輸出和錯誤的輸出。這樣的理解是正確的嗎?)

b.重定向輸出:(注意學習這塊內容做實驗時要用乙個普通使用者)

a.重定向正確的輸出: >      ,例如:

【xiyou@nana-pc ~】$   find  /etc/  -name passwd  >file

find:/etc/ipsec.d/private:許可權不夠

find:/etc/cups/ssl:許可權不夠

find:/etc/chatscripts:許可權不夠

find:/etc/vpnc:許可權不夠

find:/etc/polkit-1/localauthority:許可權不夠

find:etc/ppp/peers:許可權不夠

find:etc/ssl:許可權不夠

【xiyou@nana-pc ~】$ cat  file

/etc/passwd

/etc/pam.d/passwd

/etc/cron.daily/passwd

【上例說明,在執行這個命令的時候,find命令的正確輸出沒有顯示出來,而是被重定向到file這個檔案中】

b.重定向錯誤的輸出:2>       ,例如:

【xiyou@nana-pc ~】$   find  /etc/  -name passwd  2>file.er

/etc/passwd

/etc/pam.d/passwd

/etc/cron.daily/passwd

【xiyou@nana-pc ~】$ cat  file.er

find:/etc/ipsec.d/private:許可權不夠

find:/etc/cups/ssl:許可權不夠

find:/etc/chatscripts:許可權不夠

find:/etc/vpnc:許可權不夠

find:/etc/polkit-1/localauthority:許可權不夠

find:etc/ppp/peers:許可權不夠

find:etc/ssl:許可權不夠

【上例說明,find命令的錯誤輸出被重定向到了file.er這個檔案中】

c.重定向所有的輸出:&>      ,find命令在執行的時候沒有輸出,所有的輸出都被定向到另乙個檔案中;

(問題2:重定向正確的輸出、錯誤的輸出和所有的輸出基本了解,find命令執行之後的命令何來對錯而言?應該就是我不知道find命令的作用吧,我好像看後面某章講到了這個命令)

d.追加正確的輸入:>>

(問題3:這一塊例子的操作都有問題,連正確的追加都實現不了,下面附上一張錯誤的截圖。此外,怎麼理解「用》重定向的時候會覆蓋檔案原有內容而用》不會」這句話?希望舉例子講解一下)

2.管道命令:

a.管道的意義在於用多條命令組合操作達到乙個比較複雜的目的。例如,想檢視/etc這個目錄中有多少個次級檔案,用ls只能顯示這個目錄裡面的內容,達不到所要的效                   果,而wc -l 命令用於統計所輸出內容的結果,故可以用管道命令將兩者結合起來實現最終的結果,命令書寫如下:ls /etc |wc -l

b.在標準輸出中只有正確的內容可以通過管道,例如:

【xiyou@nana-pc ~】$   find  /etc/  -name passwd  |wc -l

find:/etc/ipsec.d/private:許可權不夠

find:/etc/cups/ssl:許可權不夠

find:/etc/chatscripts:許可權不夠

find:/etc/vpnc:許可權不夠

find:/etc/polkit-1/localauthority:許可權不夠

find:etc/ppp/peers:許可權不夠

find:etc/ssl:許可權不夠

【通過這條命令可以看到用wc命令來統計find命令輸出的行數,結果是3。上例中輸出的是find命令的錯誤內容,3顯然是將正確內容通過了管道】

c.讓錯誤的輸出也可以通過管道,要在管道符前加2>&1來實現,例如:

【xiyou@nana-pc ~】$   find  /etc/  -name passwd  >file

【find命令的正確輸出3行,錯誤輸出7行】

d.讓一組命令通過管道:當讓一組命令的輸出全部通過管道,要把這個命令組用()括起來;(問題4:將冊子上的例子操作了一遍,可是我不理解它怎麼實現了讓一組命令通過管道)

3.匯入符號《及多行錄入<<(問題5:這一塊看不懂看不懂就是看不懂)

4.for…do…done語句:for指定變數值,do做什麼事情,done完成

a.可以寫在命令列中執行,例如:

【xiyou@nana-pc mnt】# for ip in  $(seq 1 3);do ping -cl -wl 192.168.0.$ip;done

【for定義變數,do使用變數,done完成,$(seq 1 3)的意義在於賦予ip這個變數1到3這個值】

b.在指令碼中,例如:(for…do…done語句在指令碼中應用地很廣泛)

【xiyou@nana-pc mnt】# vim test

【xiyou@nana-pc mnt】# cat test

#!/bin/bash

for ip in $(seq 1 3)

doping  -cl -wl 192.168.0.$ip

done

再用sh test執行這個指令碼就可以了,效果和上面是一樣的;

學習筆記6

mysql 的常用命令 1.create database name 建立資料庫 create 內部命令 mysql create database 資料庫名 2.use databasename 選擇資料庫 use 內部命令 mysql use 資料庫名 3.drop database name ...

學習筆記6

php操作mysql 連線mysql伺服器 1.常量定義引數 defin 名稱 值 2.連線 conn mysql connect 伺服器位址,使用者名稱,密碼 or die 3.資料庫錯誤資訊 mysql error 選擇指定資料庫 mysql select db 資料庫名稱,資料庫連線資訊 or...

學習筆記 6

筆記在 注釋裡。類的定義 typedef int elementtype class node node friend class linkquene protected int priority elementtype data 資料域 node next 指標域 class linkquene ...