若有錯誤,歡迎批評指正,站內聯繫或郵箱zhuo2333@qq.comhtml
一、 建立CentOS虛擬機,也可安裝CentOS雙系統。linux
二、 熟悉Linux常見命令。程序員
三、 瞭解超強的vi編輯器。shell
四、 熟悉gcc編譯器。編程
五、 本實驗設計意在提供解決問題的基本工具以及方式,所以詳細以及進階內容請自行查詢書、網絡或者詢問助教。centos
六、 經過本實驗學會如何在linux上進行開發。網絡
CentOS編輯器
一、 建立CentOS工具
① 使用虛擬機建立CentOS在實驗指導書(《Linux編程基礎》黑馬程序員)中有詳細步驟。優化
我用的是CentOS6.8 安裝包百度雲連接:
連接: https://pan.baidu.com/s/1cF1llXJU1pYGqQy_PrFIzw
提取碼:pnix
下載第一個壓縮包便可
② 雙系統安裝方式,建議熟練或者有興趣的同窗嘗試,提供幾條博客連接:
https://blog.csdn.net/mengxiangjia_linxi/article/details/78965103
http://www.javashuo.com/article/p-gcnfgddf-cs.html
二、 Linux常見命令(請學會使用終端Terminal)
(1) 絕對路徑和相對路徑:
Linux操做系統中存在着兩種路徑:絕對路徑和相對路徑。咱們在訪問文件或文件夾的時候,其實都是經過路徑來操做的。兩種路徑在實際操做中能起到同等的做用。
絕對路徑永遠都是相對於根文件夾的。它們的標誌就是第一個字符永遠都是「/」。
相對路徑永遠都是相對於咱們所處的文件夾位置。它們的第一個字符沒有「/」。
好比/home/usr/test/h.c,這就是絕對路徑。若是當前處於usr文件夾下,那麼相對路徑就是test/h.c。
‘.’表示當前路徑,./test/h.c和以上相對路徑等價,’..’表示上一級目錄,故也可寫做 ../usr/test/h.c
(2) 文件操做命令
ls 查看目錄和文件 如 「ls /home/usr/test」,就會列出該目錄下文件。
pwd 查看當前路徑。
mkdir 建立目錄, mkdir /home/usr 在/home下建立usr目錄
cd 切換目錄,cd /home/usr/test 。cd 可使用 .和.. ,即cd . 和 cd ..
cp 複製文件,命令格式 cp [源路徑] [目的路徑]
mv 移動文件,命令格式 mv[源路徑] [目的路徑]
rm 刪除文件或目錄,命令格式 rm [目標路徑],參數-r遞歸刪除,即刪除子文件夾,-f強制刪除。「rm –rf /*「 毀滅世界。
rmdir 刪除目錄 rmdir [路徑]
cat 查看文件內容, cat /home/usr/test/h.c , 輸出文件中內容
more 分頁查看。好比當cat輸出大量文本內容時,很難看清,則能夠經過cat [文件] | more來分頁查看。f/空格顯示下一頁,回車顯示下一行,Q/q退出。此處涉及到管道,有興趣的可自行搜索。
(3) 權限操做命令
su 切換到root,root帳戶具備最高權限。返回當前用戶則使用exit。
sudo 在指令前加上sudo,使得本條指令以最高權限運行。
chmod使用chmod命令更改文件權限。
chow 使用chown命令更改文件全部者。
chgrp 使用chgrp命令更改文件的所屬組。
(4) 網絡管理命令
Ifconfig 查看當前網絡配置,如ip等。
Netstat 查看當前網絡狀態。
Ping 檢查網絡是否連通。Ping www.baidu.com
(5) 查詢命令幫助手冊 man命令
好比man ls, 就會打印ls的使用方法。更詳細的man使用方式見百度或者:
https://www.cnblogs.com/Jason-Ch/articles/2772973.html
(6) yum命令
centos安裝包管理一般是使用yum完成,yum list可顯示當前安裝的程序包。
一、使用時首先配置源,即程序包來源。http://mirrors.163.com/.help/centos.html
二、配置好源後,則能夠經過 sudo yum install xxxx命令來安裝包。卸載包則是經過sudo yum remove xxx。
三、更詳細內容請參考man yum或者百度搜索。
三、 vi編輯器
在命令行中編輯文件能夠經過執行 vi xxx進行,下面簡要介紹經常使用(不全)命令。
進入vi後是命令模式,經過按鍵控制光標移動以及文本內容的複製粘貼刪除。
一、光標上下左右移動對應kjhl,部分vi支持上下左右鍵。
二、Home移動到行首,End移動到行尾。
三、x刪除光標所在字符, dd刪除光標所在行。
四、yy複製當前行,nyy複製自當前行起,包含當前行在內的n行,如3yy。
五、p將內容粘貼到光標處。
六、u 撤掉上一次操做。
只有在插入模式下才能修改文本, i或者Insert從命令模式進入插入模式。
底行模式則是在輸入模式下按Esc進入,經常使用輸入 :q 退出vi,:w 保存修改內容, :wq退出並保存。:q! 強制退出等。
Vi更多使用參見書或者man或者網絡。
四、 GCC編譯器
(1) 檢查gcc版本
使用gcc –v輸出信息,若是不存在gcc,請使用yum安裝gcc。
(2) gcc編譯單文件
編譯方式是 gcc [文件路徑],默認文件名是a.out,執行方式是 ./a.out 。
經過-o指定文件名, gcc hello.c –o hello,編譯生成hello執行文件。
(3) gcc編譯多文件
當程序源碼分散在多個文件中時,舉例爲 gcc a.c b.c –o test,將a.c和b.c聯合編譯生成test可執行文件。
(4) 其餘
如使用-o1 –o2 –o3來進行程序優化,更多請百度或者參考書。
一、 寫出知足下列題目要求的命令,並解釋每條命令中你使用的選項、參數的含義。
注意:每一個小題只能使用一條命令完成,命令的格式參考:command [options] [arguments]。
(1) 假設在當前路徑下不存在任何目錄,如今當前路徑下建立名爲「a1」的目錄,並在「a1」目錄中建立名爲「b1」的目錄。
mkdir /a1 在當前路徑下建立a1目錄
mkdir /a1/b1 在a1目錄中建立b1目錄
(2) 在當前路徑下刪除一個非空子目錄/tmp。
rm -rf /tmp
刪除目錄下全部文件包括子目錄方法:rm -rf 目錄名
因爲/tmp是系統文件,儘可能不要刪除,這裏能夠選擇刪除第一小題建立的a1目錄(因爲內含b1目錄,所以a1也是非空子目錄)
本題不能使用rmdir命令,rmdir只能用於刪除空目錄
現已在用戶coding我的目錄下建立了目錄software,完成如下(3)、(4)兩個小題。
(3) 搜索etc目錄下全部以「pa」開頭的文件,並拷貝到software中。
cp /etc/pa* /home/coding/software
cp 複製文件,命令格式 cp [源路徑] [目的路徑]
其中,源路徑/etc/pa*表示etc中全部以pa開頭的文件,/home/coding/software是目的路徑
(4) 將目錄software下全部內容創建成一個tar包,並命名爲software.tar.gz。
tar -cvf software.tar.gz /home/coding/software
tar是打包器 -cvf是打包,software.tar.gz是壓縮文件名,/home/coding/software是要被打包的目錄路徑
二、 對一個文件file.txt執行命令:#chmod 746 file.txt。請解釋該命令的含義並寫出執行該命令後該文件的權限信息。(用r、w、x和-表示)
chmod使用chmod命令更改文件權限
r(4)表示可寫
w(2)表示可讀
x(1)表示可執行
7=4+2+1
4=4+0+0
6=4+2+0
因此746就是rwx r-- rw-
三、 在根目錄下建立一個Lab1文件夾,並建立hello.c和output.c,要求使用vi完成對2個文件的編輯。output.c中存在一個方法,原型是 void MyPrint(char* str),用於打印字符串,hello.c中使用代碼調用MyPrint輸出」helloXXX」。(XXX表明你本人名字的拼音全稱)。而後使用gcc將2個文件編譯成爲一個可執行文件,而後在shell中執行該文件,最後輸出。請提交在終端輸入命令和輸出結果的完整截圖,可添加一些必要的文字說明。
使用 / 命令進入根目錄
當程序源碼分散在多個文件中時,舉例爲 gcc a.c b.c –o test,將a.c和b.c聯合編譯生成test可執行文件
截圖中的警告是我的問題(在output.c中忘記寫頭文件)
使用chomd命令,使得test文件擁有x權限,也便可執行
./xxx表示運行可執行文件xxx
四、用vi編輯器,執行下述操做,並詳細說明操做過程及方法。
刪除第5,15和25行指令:——
命令:nd表示刪除第n行
在刪除一行事後,下面的行數會發生變化,因此應該從下面開始刪除
esc進入命令模式
:25d
:15d
:5d
將文本中全部的」etc」替換爲」config」:——
:%s/etc/config/g
使用%才能在全文搜索,使用s命令進行替換,最後加/g以替換每一行中的每個etc
複製第11~20行的內容,而且貼到文件最後一行以後:——
11,20y p
a,by是複製命令,表示從第a行到第b行的複製,而後將光標移至最後一行,使用p命令進行粘貼
而後將光標移動至文件最後:——
一直按↓
將每行開頭第一個字符」#」刪除:——
:%s/^#/
%表示全文,s是替換命令,把每一行的第一個#替換成空白,完成刪除操做
刪除包含有字符串」conf」的那幾行: ——
:g/conf/d
使用g/表示全局查詢,查詢到conf以後,使用/d命令完成刪除整行
在第一行新增一行,輸入你的姓名,學號:——
光標移動至第一行,點擊i進入插入模式,回車而後輸入姓名學號 xxx 17373xxx
文件另存爲new-inittab.conf: ——
:w new-inittab.conf
使用w命令完成另存爲操做
思考題(建議思考,不要求必須完成)
系統中引入了文件和目錄的概念方便了用戶的使用。設想若是有一個不使用文件或目錄的系統,咱們能夠用什麼其餘方式來代替它們的功能?在生活中有沒有這樣的例子?請簡要回答並說明緣由。(思考方向:建議瞭解文件的組織結構,文件的做用)
胡思亂想了一通,就不貼上來了23333
原本運行命令行該有截圖的,可是我作完做業關了虛擬機,纔想起來沒有截圖。。。下次注意