日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux常用基础指令、Linux常用工具(软件包)使用带图详解

發(fā)布時間:2023/12/14 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux常用基础指令、Linux常用工具(软件包)使用带图详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

目錄相關(guān)指令:

文件相關(guān)指令:

?壓縮解壓縮指令:

匹配查找指令:

權(quán)限相關(guān)指令:

Linux常用工具:


?指令使用規(guī)則:指令 [該指令的詳細操作選項] [操作對象(通常有路徑)],后面兩可不加.

目錄相關(guān)指令:

ls:瀏覽目錄,但不會使當前位置進入到該目標操作對象,-a是把該目錄下包括隱藏文件(以'' . ''開頭的文件,單個點表示當前目錄,兩個點表示上層目錄,比如./test就表示當前目錄下的test目錄)所有文件顯示,-l查看文件詳細信息.

?注意: ./test和直接打test效果一樣的

?cd:進入某目錄改變當前位置,cd ~ 返回用戶家目錄即/home/qifei

pwd:顯示當前所造位置

所以值得一提的是Linux指令嚴格區(qū)分大小寫

mkdir:創(chuàng)建一個目錄,mkdir ./test/aaa在test目錄下創(chuàng)建aaa目錄,-p選項:多級創(chuàng)建,若test還沒有創(chuàng)建就創(chuàng)建test目錄再在test下創(chuàng)建aaa目錄

rmdir:只能刪除空目錄

rm: rm -r [目錄名] 刪除目錄,也將該目錄下的文件刪除了,rm [文件名]直接刪除文件?

cp:cp -r [被復(fù)制源目錄] [要復(fù)制到的目錄]

mv:剪切(移動)一個目錄或者文件,mv [要移動的目錄] [要移動到的位置]

文件相關(guān)指令:

touch:創(chuàng)建一個新文件,若文件已存在則刷新該文件的時間屬性

cat:打印所有文件內(nèi)容

more:分頁顯示文件內(nèi)容,回車下一行,空格ctrl+f下一頁,ctrl+b上一頁,q退出

less:分頁顯示文件內(nèi)容,ctrl+f下一頁,ctrl+b上一頁,上下箭頭或者j/k按行滾動,q退出,/字符串向下查找指定字符串,?字符串向上查找

|:管道符,鏈接兩個命令前面的結(jié)果在進行后面的命令,只打印passwd文件第三行內(nèi)容:

head -n 3 ./passwd | tail -n 1

?echo:echo "字符串" >> [目標文件],將字符串寫入目標文件末尾.? echo "字符串" >?[目標文件],刪除原有文件內(nèi)容重寫.

?壓縮解壓縮指令:

zip:zip [壓縮后名字] [要壓縮的文件]??

unzip:unzip [要解壓的文件名] -d [要解壓到的位置],

? ? ? ? ? unzip [要解壓的文件名],直接解壓到當前位置

?gzip/gunzip 和 bzip2/bunzip2 格式的壓縮指令相同

?

?打包:tar -czvf 打包后的名字.tar.gz? ?文件名1? ?(文件名2)

解包:tar -xzvf 包名

以gzip打包的的后綴名用 .tar.gz,不同格式有不同后綴名.

匹配查找指令:

在指令目錄查找文件:

find:? ?find ./ -name "*e*",按文件名尋找中間字符有e的目錄和文件

? ? ? ? ? find ./ -type [f(普通文件)d(目錄)p(管道)l(符號鏈接)c(字符設(shè)備)b(塊設(shè)備)],按文件類型查找

? ? ? ? ? find ./ size +10M,找大于10M的文件

? ? ? ? ? find ./ -[a(最后一次訪問時間)m(最后一次修改時間)c(最后一次狀態(tài)改變時間)]time -1,

? ? ? ? ? 以24小時為一個單位,上例是找一天以內(nèi)修改過的文件

? ? ? ? ??find ./ -[a(最后一次訪問時間)m(最后一次修改時間)c(最后一次狀態(tài)改變時間)]min?-1,

? ? ? ? ? 以分鐘為單位

在指定文件查找內(nèi)容:

grep:

?

?gerp路徑在最后,find路徑在操作選項前,grep沒有模糊查找*,find可以有*

權(quán)限相關(guān)指令:

su:切換用戶,su 用戶名或root

sudo:臨時提權(quán),當使用需要更高權(quán)限的操作的時候在命令前加sudo

若沒有配置好,先進入root,然后visudo指令,光標在最后一用戶名上按o,打上需要用sudo的用戶名,后面的all啥的全復(fù)制下來,然后按esc,再按 :wq 保存退出.

用戶分類:文件所有者u,文件所屬組g,其他用戶o

操作分類:文件(-) :? -或r是否可讀,-或w是否可寫,-或x是否可執(zhí)行

? ? ? ? ? ? ? ?目錄(d) :? -或r是否可瀏覽,-或w是否創(chuàng)可建刪除,-或x是否可進入

?rwx rwx r-x? >> 111 111 101 >> 775 :文件所有者7可讀可寫可執(zhí)行 , 文件所屬組7可讀可寫可執(zhí)行 , 其他用戶5可讀可執(zhí)行不可寫.

umask:查看或修改創(chuàng)建文件時系統(tǒng)默認的權(quán)限掩碼

查看:

修改:umask 033

?777和掩碼取反(~umask)后按位與&,得到的就是touch創(chuàng)建文件時的權(quán)限:

033>>000 011 011>>取反111 100 100>>和111 111 111按位與>>得本身111 100 100

(也可以直接777減033)

?chmod:修改已存在的文件權(quán)限

? ? ? ? ? ? ?chmod [u(所有者)g(所屬組)o(其他用戶)a(三者)] [+或-]? [r w x] 文件名? 或者

? ? ? ? ? ? ?chmod 775?文件名 , 給所有者7所屬組7其他用戶5

?

?dir是目錄名,使用該命令后其他用戶權(quán)限x那位就變成t

刪庫跑路指令:rm -rf /*

Linux常用工具:

yum:軟件包管理工具,用于第三方工具軟件的安裝卸載.?

yum list查看可安裝的包,yum search+名字(可模糊查找).

root下 yum install vim/gcc/gdb/make/git安裝,? yum remove+名字刪除.

vim:編輯器,寫代碼的.

vim不支持鼠標,有12中操作模式,但常用的只有3種:

1.普通模式:其他的模式下切換成普通模式按一下或兩下esc鍵.普通模式按以下命令:

dd刪除(剪切)本行,ndd從光標所在行開始刪除(剪切)n行,(n)yy復(fù)制所在行,x刪除(剪切)光標所在字符,dw刪除(剪切)光標所在單詞,A跳到光標所在行行尾,p粘貼(dd,ndd,x,dw后可以再粘貼出來),u撤銷上一次操作,crtl+r還原撤銷,hjkl左上下右(或上下左右鍵),ctrl+f/b上下翻頁,gg=G全文對齊,G光標移動到文件最后一行開頭,gg移動到文件第一行開頭

2.插入模式:普通模式下按i進入插入模式,開始正常碼代碼.

3.底行模式:普通模式下打:或/或?都可以進入底行模式

:w 保存? ? ? :q 退出? ? ? :wq 保存? ? ?:q!強制退出不保存? ? ? ? /string,?string?匹配,查找字符串(該字符串高亮)? ?:1,12s/printf/scanf/g ,將1-12行的printf全部替換成scanf.%s是全文替換.

g++:編譯器,將高級語言編譯為機器指令,編譯過程:

預(yù)處理:展開代碼進行引入頭文件,進行宏替換,消除注釋等操作

編譯:語法語義檢測,沒錯才能將代碼解釋為匯編指令.

匯編:將匯編指令解釋為二進制機器指令.

鏈接:將所有需要的.o文件,庫文件打包生成可執(zhí)行文件,和函數(shù)的實現(xiàn)聲明有關(guān).鏈接分為靜態(tài)鏈接和動態(tài)鏈接.

靜態(tài)鏈接:將庫中使用到的代碼寫入可執(zhí)行程序,但使程序變大,雖然不需要依賴庫了,但是調(diào)用多個相同的庫函數(shù)時會使運行時內(nèi)存存在重復(fù)的冗余代碼.

動態(tài)鏈接:在可執(zhí)行程序中記錄庫函數(shù)符號信息表,沒有將庫函數(shù)的實現(xiàn)寫入程序,是在程序運行時加載庫,生成的程序較小,內(nèi)存中共享庫,但運行時依賴庫的存在.

gcc默認動態(tài)鏈接.

gcc常見選項:-o,指定生成的目標文件對象名稱.

????????????????????-E,只進行到預(yù)處理完成:gcc -E main.c -o mian.i

? ? ? ? ? ? ? ? ? ? -S,只進行到編譯完成:gcc -S main.i -o main.s

? ? ? ? ? ? ? ? ? ? -c,只進行到匯編完成:mian.s -o mian.o

? ? ? ? ? ? ? ? ? ? -g,可以使用gdb調(diào)試的前提,生成debug調(diào)試程序:gcc -g main.c -o main

gdb:調(diào)試器,調(diào)試程序的運行過程, gdb mian開始調(diào)試上面生成的main文件

常見指令: run,直接運行結(jié)束,有斷點就運行到斷點

? ? ? ? ? ? ? ? strat,逐步調(diào)試(不常用).

? ? ? ? ? ? ? ? list main.c:5,查看指定文件的第五行附近代碼,也可不指定文件.

? ? ? ? ? ? ? ? n/next,下一行,遇到函數(shù)是直接執(zhí)行完函數(shù).s/step,下一行遇到函數(shù)是進入到函數(shù)再按行? ? ????????????????調(diào)試c/continue從目前的調(diào)試位置運行到下一個斷點位置.若是遇到循環(huán),比如for(){},值得? ? ? ? ? ? ? ? ? 注意的是單個{或}不算一行,給for()這行打斷點用n/s效果一樣,都要進入循環(huán)一句句運行用? ? ? ? ? ? ? ? ? c就可以直接運行到下一次循環(huán).

? ? ? ? ? ? ? ? until mian.c:5,直接運行到指定行.

? ? ? ? ? ? ? ? b/break mian.c:5,給指定文件指定行加斷點,也可不指定文件.

????????????????b/break test_fun,給函數(shù)打斷點.

? ? ? ? ? ? ? ? print+變量名,查看變量數(shù)據(jù).

? ? ? ? ? ? ? ? watch+變量名,比如for循環(huán)里的i,給變量打監(jiān)控斷點,變量發(fā)生變化時觸發(fā)斷點.

? ? ? ? ? ? ? ? backtrace,查看函數(shù)調(diào)用棧,可以快速找到程序崩潰的函數(shù),棧頂函數(shù)(沒出棧)就是有問題? ? ? ? ? ? ? ? ? ? 的那個位置.

make:項目自動構(gòu)建工具

先vim makefile,創(chuàng)建一個名為makefile的文本文件,里面寫的時項目的構(gòu)建規(guī)則.

在目錄下打make命令會在當前目錄下找到名為makefile的文件進行解釋執(zhí)行.

makefile編寫規(guī)則:

目標對象:依賴對象

[tab鍵]為了生成目標對象所執(zhí)行的指令.

$@,目標對象? ? ? ? $^,所有的依賴對象? ? ? ? $<,依賴對象中的第一個

例:main:mian.c child.c

? ? ? ? gcc? -g $^ -o $@

用main.c和child.c生成一個main可執(zhí)行文件.

在該目錄下打make命令就是執(zhí)行了: gcc? -g main.c child.c -main

(打gcc命令前按一次tab鍵,四個空格也不行.)

為了解釋上圖,下圖意思是第一個目標對象是main,為了生成main,先得生成main.o和child.o就會遞歸下去找到生成main.o和child.o的語句若前兩句放在最后面則只生成了一個(第一個)main.o文件make命令就退出結(jié)束了?

下圖是先進行src找到所有當前目錄下.c文件再obj把所有.c文件進行到匯編后的.o文件然后再生成目標文件,clean默認不會執(zhí)行,若make后再執(zhí)行make clean就會把中間生成的所有.o文件刪除.c不刪

?特殊情況:當前目錄下已有名為clean的文件(與我們的項目沒關(guān)系)此時make clean就會有沖突因為這個clean文件沒有內(nèi)容修改是最新的然后make clean就不執(zhí)行了,這時我們需要使用.PHONY偽對象來解決,如下圖:

git:項目版本管理工具

總結(jié)

以上是生活随笔為你收集整理的Linux常用基础指令、Linux常用工具(软件包)使用带图详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。