Linux第一周作業:Linux 基礎入門(新版)
實驗一:Linux系統簡介
本實驗主要介紹了什么是Linux、Linux歷史人物簡介、Linux重要人物、Linux與Windows的不同以及如何學習Linux。令我最印象深刻的就是介紹Linux與Windows的不同,我們都習慣於簡單的圖形界面上手,也就是使用windows系統,應該要去學習去使用Linux系統,多使用命令行,少使用鼠標,Linux系統遠比我們想象的要強大的多,正如那句話說的windows能做的Linux都能做,windows不能做的Linux也能做。
實驗二:基本概念及操作
本實驗主要是對實驗樓環境的介紹,對常用shell命令及快捷鍵和Linux使用小技巧的介紹。
批量建立文件:
一些命令在使用前需要更新和安裝:
在使用touch命令創建文件時會出現權限不夠的問題,這主要是由於所在目錄不對或是用chmod命令修改權限。
實驗三:用戶及文件權限管理
本實驗主要介紹如何在Linux中創建、刪除用戶及用戶組等操作和Linux中一些文件權限設置。
創建用戶:
將其它用戶加入 sudo 用戶組:
刪除用戶:
變更文件所有者:主要要學會更換用戶身份,實現lilei與shiyanlou之間的切換。
作業:
實驗四:Linux目錄文件及文件基本操作
首先要清楚Linux目錄與windows目錄的區別。
移動文件與文件批量重命名:
作業:
-
創建一個 homework 目錄,建立名為 1.txt~10.txt 文件,並刪除 1.txt~5.txt 。
-
Linux 的日志文件在哪個目錄?
答:Linux日志文件是動態的,所以在/var/log中。
實驗五:環境變量與文件查找
與搜索相關的命令常用的有 whereis,which,find 和 locate 。其中whereis簡單快速,which小而精,find 精而細和 locate快而全。
作業:找出 /etc/ 目錄下的所有以 .list 結尾的文件。
挑戰1:尋找文件
有一個非常重要的文件(sources.list)但是你忘了它在哪了,你依稀記得它在/etc/目錄下,現在要你把這個文件找出來,然后設置成自己可以訪問,但是其他用戶並不能訪問?
實驗六:文件打包與解壓縮
本次實驗主要介紹 Linux 上常用的壓縮/解壓工具,講解 zip,tar 的使用。
zip壓縮打包:
tar打包工具的使用:
作業:創建一個名為 test 的文件,分別用 zip 和 tar 打包成壓縮包,再解壓到 /home/shiyanlou 目錄。
實驗七:文件系統操作與磁盤管理
本實驗主要學習df,du,mount命令的使用。
創建虛擬磁盤:
作業:找出當前目錄下面占用最大的前十個文件?
實驗八:Linux下的幫助命令
本實驗主要介紹內建命令與外部命令,以及help , man , info命令的使用和異同。
help命令是用於顯示 shell 內建命令的簡要幫助信息:
實驗九:Linux任務計划crontab
本實驗主要學習對crontab的使用,它主要用於設置周期性被執行的指令。
挑戰2:備份文件
小明是一個服務器管理員,他需要每天備份論壇數據(這里我們用日志替代),備份當天的日志並刪除之前的日志。而且備份之后文件名是年-月-日的格式。alternatives.log在/var/log/下面。
實驗10:命令執行順序控制與管道
本實驗主要介紹cut,grep,wc,sort命令的使用以及對管道的理解。
有選擇的執行命令:
grep命令與wc命令:
sort命令與uniqu命令:
實驗11:簡單的文本處理
本實驗主要介紹這幾個命令tr(注意不是tar),col,join,paste。
tr命令可以用來刪除一段文本信息中的某些文字或者將其進行轉換(如大小寫轉換):
col命令與join命令:
作業:在不使用上述兩個轉換工具的情況下,使用前面學過的命令手動完成 dos 文本格式到 UNIX 文本格式的轉換?
實驗12:數據流重定向
重定向是指將原本輸出到標准輸出的數據重定向到一個文件中。
作業:理解下面這段代碼的作用,實際這段代碼不會正常工作,請結合這一小節的知識分析這段代碼沒有正確工作的原因,並設法解決這個問題。
從外觀上看,這是想把 ls 命令的輸出也就是當前目錄的文件列表逐行讀取出來,然后使用 rm -iv 在獲得你許可的情況下刪除他們。
假設我們的測試目錄下存在名為:1、2、3的三個文件。那么運行這個程序后你會發現,雖然 rm 命令顯示了詢問是否刪除的信息,
但是 rm 完全沒有關心你的回答。並且整個程序也沒有刪除一個文件。
答:那么問題出在哪兒呢?這是因為 rm -iv 偷了 read 的數據!因為 rm -iv 期待用戶從標准輸入給出一個 y 或 n 的答案以確認是否刪除,但標准輸入被 < <(ls) 重定向了。
於是 rm -iv 開始在 < <(ls) 里尋找答案。如果找不到 y 或者 n 就一直尋找下去,直到把 < <(ls) 的內容消耗完。這時在下一輪的循環中由於數據沒有了, read 讀不出數據,程序也就退出了。
挑戰3:歷史命令
在linux中,對於文本的處理和分析是極為重要的,現在有一個文件叫做data1,
里面記錄是一些命令的記錄,現在需要你從里面找出出現頻率次數前3的命令並保存在/home/shiyanlou/result?
實驗13:正則表達式基礎
本次實驗主要學會sed ,grep ,awk命令的使用以及對正則表達式符號和語法有一定的了解。
grep命令的使用:
擴展正則表達式的使用:
awk操作簡單體驗:
作業:基於 pattern space 和 hold space 實現將一個文本倒序輸出和交換奇數行和偶數行?
挑戰4:數據提取
小明在做數據分析的時候需要提取文件中關於數字的部分,同時還要提取用戶的郵箱部分,但是有的行不是數組也不是郵箱,現在需要你在data2這個文件中幫助他用正則表達式匹配出數字部分和郵箱部分。
將下載的data2保存在/home/shiyanlou/data2?
實驗14:linux下軟件安裝
本實驗主要介紹linux下四種軟件安裝的方式。
做完此次實驗,感覺對dpkg的理解與使用還不夠,需要多加練習。
實驗15:Linux進程概念
本次實驗主要是對Linux中進程與程序的關系進行介紹,以及對進程的衍生的學習。
熟悉系統調用 fork() 與 exec()與父子進程的關系:
子進程就是父進程通過系統調用 fork() 而產生的復制品,fork() 就是把父進程的 PCB 等進程的數據結構信息直接復制過來,只是修改了 PID,所以一模一樣,只有在執行 exec() 之后才會不同,而早先的 fork() 比較消耗資源后來進化成 vfork(),效率高了不少。
實驗16、17:Linux進程管理與Linux日志系統
實驗16主要是要我們掌握一些 Linux 所提供的工具來進行進程的查看與控制。
使用top、ps、pstree來查看一些進程的有關狀態:
掌握kill命令的使用以及對控制進程調度的優先級的PR與nice命令有一定的了解。
實驗17主要是對Linux日志系統進行介紹,理解產生日志的兩種方式,一種是由軟件開發商自己來自定義日志格式然后指定輸出日志位置;另一種方式是 Linux 提供的日志服務程序,主要是通過 syslog 來實現,提供日志管理服務。並且要熟悉logrotate 日志文件管理工具。
實驗小結:
通過對這17個實驗的學習以及四個挑戰的鍛煉,既有收獲,同時也感受到了自己有嚴重的不足。自己對於Linux的常用命令有了基本掌握,但對有些命令還是特別的生疏,比如:打包zip與tar命令、cut和grep等命令、重定向的知識等。另外,正則表達式也比較難,后面幾個有關進程的實驗內容比較多,由於時間關系,未能看得過於詳細,導致對有關知識也比較生疏,需要后面對此進行多加練習。
Linux功能強大,只需要運用一個終端就可以完成windows可以做的工作,但由此帶來的是上手難度的增大,需要長期認真努力地學習!雖然自己基礎不好,但只要努力學肯定能學好,給自己加個油!