個(gè)人主頁:點(diǎn)我進(jìn)入主頁
專欄分類:C語言初階? ? ??C語言程序設(shè)計(jì)————KTV? ? ? ?C語言小游戲? ? ?C語言進(jìn)階
C語言刷題? ? ? ?數(shù)據(jù)結(jié)構(gòu)初階? ??Linux
歡迎大家點(diǎn)贊,評論,收藏。
一起努力
1.前言
? ? ? ? Linux系統(tǒng)有很多使用方式,我們可以在電腦上搞一個(gè)雙系統(tǒng),也可以下一個(gè)虛擬機(jī),當(dāng)然我們也可以購買一個(gè)云服務(wù)器人然后使用我們的Xshell進(jìn)行登錄,Xshell免費(fèi)版本,可以點(diǎn)擊這個(gè),連接進(jìn)行下載,Linux的學(xué)習(xí)尤其是Linux前期的學(xué)習(xí)是非常的痛苦,Linux也是我們學(xué)習(xí)新的大門,1991年10月5日,赫爾辛基大學(xué)的一名研究生Linus Benedict Torvalds在一個(gè)Usenet新聞組
(comp.os.minix)中宣布他編制出了一種類似UNIX的小操作系統(tǒng),叫Linux。新的操作系統(tǒng)是受到另一個(gè)UNIX的小操作系統(tǒng)——Minix的啟發(fā),該系統(tǒng)是由一名叫Andrew S Tanenbaum的教師開發(fā)的。讀者也許猜想所發(fā)布的這個(gè)系統(tǒng)應(yīng)該是Linux的0.01版本,實(shí)際上不是這樣。真正的Linux 0.01版本并沒有被發(fā)布,原因是0.01版本不實(shí)用。 Linus僅僅在第一個(gè)Linux的FTP站點(diǎn)(ftp://nic.funet.fi)上提供過這個(gè)版本的的源代碼Torvalds于10月5日發(fā)布的這個(gè)Linux版本被稱為0.02版,它能夠運(yùn)行GNU Bourne Again Shell(bash)和GNU的C編譯程序(gcc)以及為數(shù)不多的其它語言。 Torvalds絕對沒有想到他設(shè)想的一種能夠針對高級業(yè)余愛好者和黑客們的操作系統(tǒng)已經(jīng)產(chǎn)生,這就是人們所稱的Linux。;Linux發(fā)布時(shí)的版本是0.02,后來又有0.03版,然后又跳到0.10版。因?yàn)槭澜绺鞯卦絹碓蕉嗟某绦騿T都開始開發(fā)Linux,它已經(jīng)達(dá)到0.95版。這就意味著正是公布1.0版本的時(shí)間已經(jīng)為期不遠(yuǎn)了。正式的1.0版本是在1994年公布的。
2.基礎(chǔ)指令
2.1 ls指令
我們直接輸入ls指令我們就可以看到我們當(dāng)前目錄中的文件以及子目錄
當(dāng)然我們輸入ls -a是指我們將隱藏文件,文件,子目錄輸出出來
我們可以看到 .文件, ..文件等文件就是隱藏文件,我們還有一個(gè)常用的是ls -l也可以寫為ll這是將文件和子目錄以及它們的文件信息打印出來,?
?當(dāng)然我們也可以輸入ls -la或者ls -al對隱藏文件和文件,子目錄的文件信息進(jìn)行輸出,當(dāng)我們輸入ls -la 文件名時(shí)我們會將這個(gè)文件中的文件信息進(jìn)行輸出
2.2 pwd指令?
? ? ? ? pwd指令就是現(xiàn)實(shí)我們現(xiàn)在文件所在的路徑,/root就是我們所在的位置。
2.3 cd指令
? ? ? ? cd指令是使用方式是 cd 路徑(幾個(gè)特殊符號),例如我們再根目錄想進(jìn)入/root/yang中我們輸入cd /root/yang,然后輸入pwd進(jìn)行查看我們所在的位置
如果我們錯(cuò)誤進(jìn)入一個(gè)文件內(nèi)比如我們再根目錄里想進(jìn)入root里面,卻進(jìn)入了root里面的yang文件中難道我們還重新輸入cd /root嗎?顯然不是,還記得我們上面那個(gè) . 文件和..文件嗎?這時(shí)候就需要我們使用這兩個(gè)操作了我們輸入cd .是進(jìn)入到當(dāng)前路徑,我們輸入cd ..是進(jìn)入到上一個(gè)路徑里,
對如cd指令我們還有兩個(gè)常用的指令cd -和cd ~這兩個(gè)指令其中cd -指令是進(jìn)入上次在的路徑中就像我們?yōu)g覽器中的前進(jìn)和后退
我們再看cd ~指令這是進(jìn)入我們登錄的路勁當(dāng)中比如我們是使用的root進(jìn)行登錄的我們使用這一個(gè)指令就會進(jìn)入到/root中無論我們在哪里
2.4 touch指令
? ? ? ? touch指令是創(chuàng)建一個(gè)文件
2.5 mkdir指令
? ? ? ? mkdir也是創(chuàng)建目錄,例如mkdir atext
這時(shí)候問題來了如果我們想在目錄a中創(chuàng)建一個(gè)目錄b再在b中創(chuàng)建一個(gè)目錄c再在c里面創(chuàng)建一個(gè)目錄d難道我們創(chuàng)建一個(gè)然后進(jìn)入里面進(jìn)行創(chuàng)建就像下面的操作
事實(shí)上Linux提供了這樣的操作也就是mkdir -p a/b/c/d,我們輸入這個(gè)指令
?2.6 rm指令
? ? ? ? rm指令是刪除指令可以刪除文件和目錄例如我們想要?jiǎng)h除text.txt文件我們需要輸入rm text.txt,也就是說我們想要?jiǎng)h除空目錄只需要輸入rm [目錄名]
當(dāng)然我們想要?jiǎng)h除文件時(shí)需要我們的rm -rf 【文件名】,例如我們呢想刪除文件a我們輸入rm -rf a
我們可以看到文件a被刪除,當(dāng)然我們也就可以在rm后面加上絕對路徑進(jìn)行刪除例如rm -rf /root/a/a也可以達(dá)到和上面相同的結(jié)果,但是由于我們不小心在root前面加上一個(gè)空格,這時(shí)候就會認(rèn)為我們要?jiǎng)h除根目錄,根目錄刪除我們就必須重新裝系統(tǒng),我們自己的刪除可能沒有什么問題,但是當(dāng)我們在工作時(shí)刪除這就可能有很嚴(yán)重的后果,也就是我們常說的刪庫跑路。
2.7 tree指令
? ? ? ? Linux還提供了一種可以查看文件中的文件的指令,例如a文件中有b文件,b文件中有c文件,c文件中有d文件等我們輸入tree a就可以查看a文件的文件
看a文件中有b文件和data.txt文本,b中有c,c中有d,能這樣顯示的主要原因就是由于文件在Linux中是以樹的形式進(jìn)行存儲
tree指令后面也可以使用我們的絕對路徑進(jìn)行查詢,比如我們輸入 tree /root/a也可以進(jìn)行查詢
但是當(dāng)我們不下心在root前面加了一個(gè)空格我們就會出現(xiàn)
?瘋狂的進(jìn)行輸出,會將我們的全都文件進(jìn)行輸出,難道我們必須等它輸出完嗎?這時(shí)候我們可以輸入ctrl c強(qiáng)制停止。
2.8 man指令?
? ? ? ? man指令是Linux系統(tǒng)提供給我們的使用說明書,我們可以查看各種指令以及c語言函數(shù)的功能
我們輸入man man,可以看到有這幾行
其中我們用的多的就是1和3,其中1是指我們的指令,3是指我們的c語言函數(shù)例如我們想查詢touch指令我們可以輸入 man touch指令或者man 1 touch進(jìn)行查詢
我們想要退出只需要輸入q即可退出?,我們查詢函數(shù)也是同樣例如我們想要查詢fopen函數(shù)我們輸入man fopen或者man 3 fopen即可查詢
2.9 which指令?
? ? ? ? which指令是我們用于查找指令的存儲位置例如我們想要查詢man指令所在的位置我們輸入which man指令就可以查詢?yōu)槭裁次覀兛梢赃M(jìn)行查詢呢?這主要就是Linux系統(tǒng)的特點(diǎn)有關(guān),Linux具有一切皆文件的特點(diǎn)每個(gè)指令就是一個(gè)個(gè)程序。
在這里man指令就在/usr/bin/man中。
2.10 cp指令
? ? ? ? cp指令可以對文件進(jìn)行復(fù)制其中復(fù)制有兩種一種是復(fù)制到當(dāng)前路徑一種是復(fù)制到其他路徑下,例如我們創(chuàng)建一個(gè)text.txt文件我們想將這個(gè)文件復(fù)制一份到到當(dāng)前路徑并且命名為data.txt我們輸入cp text.txt ./data.txt或者cp text.txt data.txt即可
我們想將text.txt文件復(fù)制到b文件里面我們輸入cp text.txt ./b/data.txt(當(dāng)我們不輸入data。txt時(shí)會直接復(fù)制過去)即可?
然而我們想要復(fù)制目錄b到當(dāng)前路徑并且命名為a時(shí)單單輸入cp b ./a?時(shí)不可行的
這時(shí)候我們輸入cp -r b ./a即可
2.11 mv指令
? ? ? ? 有我們的cp復(fù)制指令我們的剪切指令是不能少的mv指令可以實(shí)現(xiàn)我們的剪切功能也可以對文件進(jìn)行修改名字,例如我們想吧b文件改為c我們只需要輸入mv b ./c即可
例如我們想把文件c移動(dòng)到a文件中時(shí)我們只需要輸入mv c ./a/c即可
如果我們想要修改名字只需要將c進(jìn)行修改即可。
?2.12寫一個(gè)hello linux的c語言程序并實(shí)現(xiàn)編譯
? ? ? ? 這時(shí)候我們需要?jiǎng)?chuàng)建一個(gè)text.c文件
這時(shí)候我們打開記事本我們輸入nano text.c對文本進(jìn)行編譯
然后依次輸入ctrl x ,y, 回車進(jìn)行保存,
我們再輸入gcc text.c 對其進(jìn)行編譯我們在輸入ll可以看到
a.out*就是我們要運(yùn)行的程序,我們輸入./a.out就可以運(yùn)行我們的程序
我們就可以看到我們運(yùn)行了我們的程序。
2.13 cat指令
? ? ? ? cat指令是顯示文本的內(nèi)容例如我們輸入cat text.c 就可一看到其中的內(nèi)容
當(dāng)我們輸入cat -n text.c就可以看到文件的行號
當(dāng)我們輸入tac text.c倒著輸入(先打最后一行)
2.14 echo指令以及重定向
? ? ? ? echo類似于我們的printf是將我們輸入的信息進(jìn)行打印例如我們輸入echo hello linux它就會在屏幕上輸出hello linux
‘
但是我們想在text.txt中輸出hello是時(shí)候需要我們的>符號和我們的echo,我們輸入echo hello > text.txt,其中>是我的輸出重定向,這個(gè)功能類似于我們C語言中的以w的形式進(jìn)行寫文件,當(dāng)我們每次寫時(shí)都會刪除上次的內(nèi)容,然后在寫。
在C語言中我們還可以對文件的內(nèi)容進(jìn)行追加,也就是我們以a的形式進(jìn)行寫文件,在Linux中我們的>>是追加重定向,我們輸入echo linux >> text.txt即可
還記得我們的touch指令嗎?我們創(chuàng)建text.txt文件還可以利用輸出重定向進(jìn)行創(chuàng)建我們輸入> tetx.txt指令就可以創(chuàng)建。
我們看到tetx.txt文件中有0個(gè)字節(jié)。
2.15 more指令
? ? ? ? more指令是我們查詢大文本的一條指令,我們在查詢大文本時(shí)使用cat會造成刷屏,所以我們可以通過more指令,它會顯示滿一屏幕然后我們按回車可以進(jìn)行翻頁,我們還可以輸入/關(guān)鍵字進(jìn)行高亮匹配。
2.16 less指令
? ? ? ? 這個(gè)和more類似,我們輸入/關(guān)鍵字可以找到對應(yīng)的數(shù)據(jù),可以通過上線鍵進(jìn)行翻頁,當(dāng)我們輸入/999時(shí)可以看到
2.17 head指令
? ? ? ? head指令是查看文本的一個(gè)指令我們輸入head [文本名]就默認(rèn)查看文本的前10行內(nèi)容例如我們想查看big.txt文件的前10行我們輸入head big.txt指令即可
有時(shí)候我們向查看的不只是10行或許多于10行,或許少于10行這時(shí)候我們就可以輸入head -行數(shù) 【文本名】即可,例如我們想查看big.txt的前5行我們輸入haed -5 big.txt指令即可
2.18 tail指令
? ? ? ? 有我們查看開始的幾行文本的指令那么我們絕對不會少了我們查看文本結(jié)尾的指令,我們輸入tail [文本名]就是默認(rèn)查看文本后10行的內(nèi)容,例如我們查看big.txt的后10行我們輸入tail big.txt指令
同樣的我們想查看多余或少于10行的內(nèi)容我們輸入tail -行數(shù) 【文本名】即可,例如我們想查看big.txt文本的后5行我們輸入tail -5 big.txt指令即可
2.19 |管道符號
? ? ? ? |符號是我們的管道符號是我們同時(shí)執(zhí)行多行指令的連接符號對于我們指令的寫入有很大的幫助例如我們想把big.txt的8000行到8010行的內(nèi)容打印出來我們首先想到的是先把前8010行的內(nèi)容寫道一個(gè)新的文件然后再利用tail指令進(jìn)行輸出,就像下面一樣:
這樣寫不是不可以但是比較浪費(fèi)時(shí)間這時(shí)候就需要我們的管道操作符號了,我們輸入指令tail -8100 big.txt | tail -10 就可以了
?加入我們想倒著輸出我們只需要輸入指令 head -8100 big.txt | tail -10 | tac 就可以了
?2.20 date 指令
? ? ? ? date指令是Linux顯示時(shí)間的指令例如我們想展示一下當(dāng)前的年月日時(shí)分秒我們可以輸入指令
date +%Y-%m-%d_%H:%M:%S其中 -符號和_符號異界:符號可以讓我們自由修改
其中%Y-%m-%d可以用%F代替,%H:%M:%S可以用%X代替
在時(shí)間里面有一個(gè)很重要的東西,時(shí)間戳,在生活中我們的二維碼等信息都用到了時(shí)間戳,時(shí)間戳是在1970年1月1日0點(diǎn)開始的我們可以輸入指令date +%s就可以查看
我們還可以利用date +%Y-%m-%d_%H:%M:%S -d?@時(shí)間戳來看一下這個(gè)時(shí)間戳對應(yīng)的日期
當(dāng)然我們可以讓時(shí)間戳為0來看時(shí)間戳的開始時(shí)間?
由于我們在東八區(qū)所以為1970年1月1日8點(diǎn) 。
2.21 cal指令
? ? ? ? cal指令是我們查看日歷的指令例如我們想查看這個(gè)月上個(gè)月以及下個(gè)月的日歷我們輸入cal -3就可以查看
我們想查看當(dāng)年的日歷我們輸入cal -y就可以查看
?
我們想查看今天是一年中的第幾天我們可以輸入cal -j就可查看
2.22 find指令
? ? ? ? find指令是一個(gè)用于尋找文件的函數(shù)例如我們想找包含所有后綴為.txt的文件我們輸入指令find? -name *.txt就可以了
2.23 grep指令
? ? ? ? grep指令是一種文本過濾的指令,例如我們創(chuàng)建一個(gè)文本,內(nèi)容為:
例如我們想查找包含bit的內(nèi)容,我們可以輸入指令grep "bit" same.txt,
如果我們還想顯示行號我們加入-n選項(xiàng)就行了
我們還可以輸入-v指令,例如指令grep -v "bit" same.txt,是將所有不包含bit的進(jìn)行輸出
當(dāng)然我們還可以忽略大小寫,這需要我們輸入選項(xiàng)-i進(jìn)行,例如grep -i "bit"? same.txt,
2.24 zip與unzip指令
? ? ? ? 我們經(jīng)常使用壓縮包進(jìn)行數(shù)據(jù)的傳輸,那Linux的生成壓縮包是zip指令如我們想對于一個(gè)空目錄或者文本信息生成壓縮包我們輸入指令zip 壓縮后的名字? 想壓縮的文件例如我們想將text.txt他所為txt.zip
?將壓縮包生成文件時(shí)unzip text.zip
當(dāng)我們想將一個(gè)非空目錄進(jìn)行壓縮時(shí)我們需要輸入選項(xiàng) -r,因?yàn)槲覀冃枰f歸進(jìn)行壓縮。
2.25 tar
????????我們除了zip還有一種進(jìn)行打包和解包的指令是tar,例如 我們想將目錄a進(jìn)行打包,我們輸入指令tar -czf a.tga a就可以了。
當(dāng)然選項(xiàng)中加入-m可以看到打包的過程,a.tga就是我們生成的壓縮包。在解包時(shí)我們輸入指令tar -xzf a.tga就可以進(jìn)行解包操作
?
?2.26 uname指令
? ? ? ? 我們可以通過uname指令查看我們云服務(wù)器系統(tǒng),例如我們輸入uname即可以看到
我們輸入uname -r就可以看到我們的版本
2.27 sz和rz指令
? ? ? ? 我們存在一種在虛擬機(jī)和主機(jī)之間進(jìn)行交互的指令,sz和rz指令,我們可以通過他們在逐漸和虛擬機(jī)直接進(jìn)行文件的上傳和下載,例如我們想把a(bǔ).zip傳到主機(jī)上我們輸入指令sz a.zip指令就可以了。
我們找好要下載的位置
我們可以找到
?
這樣我們的虛擬機(jī)到主機(jī)的文件下載就完成了,我們想實(shí)現(xiàn)主機(jī)到虛擬機(jī)需要輸入指令rz,
我們輸入rz就可看到
選擇好后進(jìn)行查找就可以看到
文章來源:http://www.zghlxwxcb.cn/news/detail-813704.html
三.總結(jié)?
? ? ? ? 到這里基本指令的內(nèi)容就結(jié)束了,對于指令我們應(yīng)該多去手動(dòng)的使用,多去回憶,最后內(nèi)創(chuàng)作不易,希望大家可以一鍵三連支持一波。文章來源地址http://www.zghlxwxcb.cn/news/detail-813704.html
到了這里,關(guān)于Linux之基礎(chǔ)指令大全【痛苦的開始】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!