2019-2020-1 20181218《Linux內核原理與分析》第一週做業

本文是學習Linux基礎入門(新版)後的總結。linux

問題和參考

虛擬機莫名崩潰,一天重啓了幾十次電腦,重裝兩次系統,心累。想起去年十一時節,大一的我也在安虛擬機,沒想到一年過去又是一個輪迴,還遇到了不少全新的問題,一環套一環,一個問題接一個。常安常新啊。git

錯誤的邏輯順序:

  • 全屏後找不到安裝加強功能——HOME+HOST,HOST+C能夠從新顯示菜單欄,且要將菜單欄的「設備」設爲顯示,才能找到「安裝加強功能」——找不到HOME鍵在鍵盤的位置——逆序將問題解決;
  • 安裝加強功能出現「糟糕!運行這個軟件時出現問題。沒法定位程序」的錯誤——直接在命令行按老師的參考博客設置共享文件夾那裏會出現「unknown filesystem type 'vboxsf‘」的錯誤——須要安裝加強功能(問題回到開始)——須要安裝kernel——Debian不用kernel,而應安裝linux-headers——無論裝什麼都顯示「E:沒法定位軟件包」——排除網絡未鏈接的問題,那就是網絡質量的問題——須要換源——換源的網址要是能直接粘貼過來就行了——想共享粘貼板須要安裝加強功能(問題鏈閉合了!!)——手動輸入源,從換源這一步開始逆序將問題解決,裝好了共享文件夾仍是挺有成就感的:D,彌補了大一時的缺失

參考博客和小點

基於VirtualBox虛擬機安裝Ubuntu圖文教程正則表達式

20165214 2018-2019-2 《網絡對抗技術》Exp0 Kali安裝 Week1vim

Virtualbox安裝加強功能時顯示【未能加載虛擬光盤】網絡

Y7000P的HOME鍵是Fn+less

安裝linux-headersiview

安裝加強功能時,圖形界面使用sh ./VBoxLinuxAdditions.run,若是./VBoxlLinuxAdditions.run報權限不夠的錯誤的話socket

「mkdir:沒法建立目錄」的錯誤,加上-p參數可建立未存在的目錄編輯器

kali 安裝中文中文輸入法(一遍成功無錯誤)

Kali Linux 更新源

Linux下使用QQ郵箱發送郵件(失敗)

linux用mail往qq郵箱發郵件(失敗)

Linux管道命令(Pipe)

有趣/有用的Linux命令

  • banner、printerbanner、toilet、figlet sudo apt-get install sysvbanner輸出圖形字符
  • cmatrix 模擬黑客帝國特效
  • aafire sudo apt-get install libaa-bin火爐特效
  • cowsay 動物說話特效,-l列舉動物,-f選擇動物
  • xeyes 使用nohup xeyes放到後臺運行,一雙眼睛監督你
  • fortune、fortune-zh 輸出一首詩(能夠結合cowsay,用|隔開使用)
  • asciiview 有趣的查看圖片文件的方法,須要安裝aview和imagemagick
  • ninvaders 遊玩基於ncurse命令行圖形庫作的經典遊戲Space Invaders/usr/games/ninvaders
  • bb /usr/games/bb,某種文字特效
  • history 查看最近執行過的命令
  • tree 顯示目錄、文件的關係
  • less、head、tail 查看文件內容,tail的-f參數能夠實現實時監視
  • vimtutor linux自帶的vim教程
  • vimdiff 文本比較合併工具
  • locate、find 搜索文件的工具
  • grep 結合正則表達式進行匹配和查找 -E使用擴展至正則表達式ERE
  • cut 從文件的每一行剪切字節、字符和字段並寫至標準輸出
  • sort 針對文本文件的內容,以行爲單位排序
  • uniq 檢查和刪除文本文件中重複出現的行列,常於sort結合使用
  • tr 刪除一段文本信息中的某些文字或將其進行轉換 echo 'input some text here' | tr '[:lower:]' '[:upper:]' #將輸入的文本所有轉換爲大寫,也可寫成'[a-z]' '[A-Z]'
  • col -x將Tab轉換爲空格;-h將空格轉換爲Tab(默認)
  • join 將兩個文件中指定字段的內容相同的行鏈接起來
  • paste 在不對比數據的狀況下簡單地合併多個文件
  • dos2unix、unix2dos 將dos文本格式和UNIX文本格式相互轉換
  • tee 將輸入打印到終端,同時重定向到多個文件
  • exec 使用一個進程替換當前進程
  • xargs 將參數列表轉換成小塊分段傳遞給其餘命令,以免參數列表過長的問題
  • sed 用於過濾和轉換文本的流編輯器 -r使用擴展正則表達式;-i將直接修改輸入文件內容,而不是打印到標準輸出設備
  • awk 文本處理工具
  • dpkg Debian Packge,一個底層的遠程獲取軟件包及處理複雜軟件包關係的工具
  • remove 卸載軟件
  • top、ps、pstree 查看系統或進程信息
  • kill、nice、renice 進程的管理命令
  • logrotate 管理日誌

小做業和解答

  • 找出/etc/目錄下的全部以.list結尾的文件。sudo find /etc -name "*.list"

  • 找出當前目錄下佔用最大的前十個文件。du -a|sort -n -r|head -n 10

  • 使用mail用本身的QQ郵箱發送郵件。(失敗)

    請參考上面的參考博客

    沒有certutil能夠用apt-get install libnss3-tools

  • 每一年女友生日的時候發一封祝福郵件給她。(因爲上一條失敗因此失敗)

    crontab -e
    #打開後在文件尾添加
    59 23 31 1 * mail -s "郵件主題" 收件地址 < 本地正文文件.txt

    理論上是這樣的,惋惜配了兩天mail仍是失敗,發郵件雙方都沒有任何反饋,只能暫時放棄了。

  • 理解管道(Pipe):參考上面的參考博客。

    管道是一種通訊機制,一般用於進程間的通訊(也可經過socket進行網絡通訊),它表現出來的形式將前面每個進程的輸出(stout)直接做爲下一個進程的輸入(stdin)。

    管道命令使用|做爲界定符號。

  • 2>&1是什麼意思?&1是文件描述符1,1表示標準輸出,2表示標準錯誤。2>&1表示將標準錯誤重定向到標準輸出

一些圖片

Linux相關

vi基礎學習

正則表達式

相關學習

正則表達式基礎學習

注意正則表達式的語法與通配符不一樣。

  • 語法

    字符 描述
    \ 將下一個字符標記爲一個特殊字符或一個原義字符
    ^ 匹配輸入字符串的開始位置
    $ 匹配輸入字符串的結束位置
    {n} 匹配肯定的n次(n是非負整數)
    {n,} 至少匹配n次(n是非負整數)
    {n,m} 最少匹配n次且最多匹配m次(n<=m,都是非負整數)
    * 匹配前面的子表達式任意次(包括0);等價於{0,}
    + 匹配前面的子表達式至少1次;等價於{1,}
    ? 匹配前面的子表達式0次或1次;等價於{0,1}
    ? 當該字符緊跟在任何一個其餘限制符(*,+,?,{n},{n},{n,m})後面時,匹配模式爲非貪婪。eg.對於字符串"oooo","o+?"將匹配單個"o",而"o+"將匹配全部"o"
    . 匹配除"\n"以外的任何單個字符。若是要匹配包括"\n"在內的任何字符,可以使用「(.|\n)」
    (pattern) 匹配pattern並獲取這一匹配的子字符串。該子字符串用於向後引用。若是要匹配圓括號字符,可以使用「\(」和「\)」
    x|y 匹配x或y
    [xyz] 匹配所包含的任意一個字符。連字符-若是出如今字符串中間表示字符範圍描述;若是出如今首位則緊做爲普通字符
    [^xyz] 排除包含的字符,匹配未列出的任意字符
  • 優先級

    從上到下從左到右,由高到低:

    運算符 說明
    \ 轉義符
    (),(?:),(?=),[] 括號和中括號
    *、+、?、{n}、{n,}、{n,m} 限定符
    ^、$、\任何元字符 定位點和序列
    | 選擇
  • 特殊符號

    特殊符號 說明
    [:alnum:] 英文字母和數字
    [:alpha:] 英文字母
    [:blank:] 空白鍵和Tab
    [:cntrl:] 鍵盤上的控制按鍵,CR、LF、Tab、Del等等
    [:digit:] 數字
    [:graph:] 除了空白鍵和Tab以外的全部按鍵
    [:lower:] 小寫英文字母
    [:print:] 任何能夠被列印出來的字符
    [:punct:] 標點符號
    [:upper:] 大寫英文字母
    [:space:] 任何會產生空白的字符,空白鍵、Tab、CR等等
    [:xdigit:] 16進位的數字類型,0-九、A-F、a-f

    若是隻使用[a-z],對於不一樣語系有時可能無論用,而用[:lower:]就不會出現問題

相關文章
相關標籤/搜索