本節主要學習了 Linux 的歷史,Linux 與 Windows 的區別等入門知識。經過學習,我明確了目的,是要用 Linux 來作程序開發、搭建服務器等;而且很是接受不用或少用圖形界面;儘量多學習一些Linux的發行版。在安裝Ubuntu時也遇到了不支持虛擬化的問題,進入BIOS設置得以解決。linux
?
和*
的區別?
匹配一個字符,*
匹配一個或者多個字符。banner
命令toilet
命令flight
命令groups
命令,或者查看/etc/group
文件查看用戶組,使用usermod
添加用戶組。chown
命令更改文件權限FHS(英文:Filesystem Hierarchy Standard 中文:文件系統層次結構標準),多數 Linux 版本採用這種文件組織形式,FHS 定義了系統中每一個區域的用途、所須要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理。
FHS 定義了兩層規範,第一層是,/
下面的各個目錄應該要放什麼文件數據,例如 /etc
應該放置設置文件,/bin
與/sbin
則應該放置可執行文件等等。第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。例如/var/log
放置系統日誌文件,/usr/share
放置共享數據等等。git
rename
批量修改文件名mv
命令,可是想要批量修改的話,須要使用rename
命令。cat
和tac
命令(正反)file
命令查看文件類型whereis
--簡單快速which
--小而精find
--精而細locate
--快而全,經過/var/lib/mlocate/mlocate.db
數據庫查找,不過這個數據庫也不是實時更新的,系統會使用定時任務天天自動執行 updatedb
命令更新一次,因此有時候你剛添加的文件,它可能會找不到,須要手動執行一次 updatedb
命令。updatedb
命令,因此本次做業在本身電腦上進行。sources.list
文件(依稀記得在/etc/
目錄下)-r
表示遞歸打包,將目錄下全部文件打包。-9
表示打包速度與大小等級設定,1表示最快壓縮但體積大,9表示體積最小但耗時最久。-q
表示靜默打包,不向終端輸出信息。-o
表示輸出文件。-c
表示建立一個 tar 包文件-x
表示解壓縮文件,只能解壓縮到一個已存在的目錄,因此下圖中第一次實現錯誤提示。-f
用於指定建立的文件名,注意文件名必須緊跟在 -f 參數以後du -a | sort -n -r | head -n 10
du
查看當前目錄,並使用-a
參數顯示大小,sort
進行排序,head
取前十。type
進行區分。help
命令是用於顯示 shell 內建命令的簡要幫助信息。man
沒有內建與外部命令的區分,顯示系統手冊頁中的內容,大多數都是對命令的解釋信息,還有一些相關的描述。info
是 GNU 的超文本幫助系統,可以更完整的顯示出 GNU 信息。*/1 * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S)
能夠實現每分鐘在/home/shiyanlou
目錄下建立一個以當前的年月日時分秒爲名字的空白文件。cron
的守護進程並無啓動,它根本都不會監測到有任務,固然也就不會執行.能夠經過如下2種方式來肯定cron
是否成功的在後臺啓動。crontab -e
爲當前用戶添加計劃任務,此時不能使用sudo,不然是給root用戶添加計劃任務。0 3 * * * cp alternatives.log /home/shiyanlou/tmp/$(date +\%Y-\%m-\%d)
wc
計數命令-l
:行數-w
:單詞數-c
:字節數-m
:字符數-L
:最長行字節數wc
結合管道,統計/etc
下面全部目錄數tr -d '\r' <test.txt> tes.txt
進行轉換,將test.txt轉換爲tst.txt。cat
的連續輸出(heredoc方式)重定向到一個文件;echo
命令經過管道傳過來的數據做爲cat命令的輸入,將標準輸出做爲命令的輸出;echo
命令的輸出從默認的標準輸出重定向到一個普通文件。tee
命令同時重定向到文件和終端exec
實現shell重定向while read filename; do rm -iv $filename done <<(ls)
理解:這段代碼的本意是讀取當前目錄的文件列表,並有交互地刪除。
rm -iv
的做用是在刪除時進行交互,而且顯示步驟。它期待用戶從標準輸入中輸入y或者n來進行是否刪除的操做,可是標準輸入被<<(ls)
重定向了,rm
命令在 <<(ls)
中尋找y或者n,找不到就中斷退出了。
解決:標準輸入必定要給到循環體,此時將標準輸入複製一份,給予rm -iv
命令進行交互便可。正則表達式
exec 8<&0 //此時使用3~8都可 while read filename; do rm --iv $filename <&8 done <<(ls)
100 ls
」cat data1 | cut -c 8- | sort |uniq -dc | sort -n -r | head -3 > result
grep
操做,使用正則表達式(做業:結合正則表達式作更多練習)^
放到中括號內爲排除字符,不然表示行首。-E
,不加則不執行sed
sed
工具用於過濾和轉換文本的流編輯器。打印奇數行,並將"shiyanlou" 全局替換爲"ly"。p
一般與-n
參數配合使用,不能省略最後的p
命令。awk
文本處理語言\t
要用雙引號。sed '1!G;h;$!d' test.txt
1!G
—— 只有第一行不執行G命令,將hold space中的內容append回到pattern spaceh
—— 第一行都執行h命令,將pattern space中的內容拷貝到hold space中$!d
—— 最後一行不執行。其它行執行d命令,刪除當前行sed -n 'h;$!{n;G};p' test.txt
-n
—— -n參數靜默模式,只打印受影響的行h
—— 將pattern space中內容拷貝到 hold space中$!{n,G}
—— 最後一行不執行。n進入下一行,G將hold space中內容append到pattern space中,appttern space中的兩行位置交換了p
—— 打印出交換後的兩行/home/shiyanlou/num
文件/home/shiyanlou/mail
的文件grep '^[[:digit:]]' data2>num
grep'^[[:alnum:]]*@[[:alnum:]]*\.com' data2>mail
apt-get
是用於處理 apt包的公用程序集,咱們能夠用它來在線安裝、卸載和升級軟件包等。-f
——修復損壞的依賴關係-d
——只下載不安裝--reinstall
——從新安裝已經安裝但可能存在問題的軟件包dpkg
工具——"Debian Package"的簡寫deb
形式打包的軟件包。經過這兩節大體瞭解進程的概念、進程之間存在的相互關係、進程的查看命令ps
、pstree
、top
、進程的管理命令kill
、nice
、renice
等。shell
經過本實驗,瞭解了較新的系統日誌收集工具rsyslog及其配置文件,還有一個日誌文件管理工具logrotate
,省心省力,不但能夠壓縮日誌文件,減小存儲空間,還能夠將日誌發送到指定E-mail,方便管理員及時查看日誌。logrotate
是基於CRON
來運行的,其腳本是 /etc/cron.daily/logrotate
;同時咱們能夠在 /etc/logrotate
中找到其配置文件。數據庫
本次進行了共計21個實驗,即便之前使用過Ubuntu系統,也學習到了不少新的知識,將我對Linux系統的認識扳回了正確的方向,即便表面類似,內部的原理也是大有不一樣的。學習了不少知識,可是不少命令還不熟練,須要本身在實際使用中加深理解,熟練使用。bash