linux

命令:

在虛擬中斷輸入命令,shell會解析輸入的命令,搜索環(huán)境變量:路徑,找到了輸入的命令,運行這個程序

History:歷史輸入命令

快捷鍵:

刪除光標(biāo)前所有的字符:ctrl+u

刪除光標(biāo)后所有的字符:ctrl+k

移動到最頭部:ctrl+a

移動到最尾部:ctrl+e

Tab:按一次:補全命令和目錄名

? ? ? ? ? ? ? 按兩次:列出此單詞開頭的命令和目錄

目錄結(jié)構(gòu):linux目錄結(jié)構(gòu)為樹

/ :根目錄

. :當(dāng)前目錄

.. :? 當(dāng)前目錄的上級目錄

Sudo:管理員權(quán)限

Tree: 查看目錄結(jié)構(gòu),需要安裝 sudo apt-get install tree :使用apt-get 安裝 tree

Ls:查看文件或目錄

-a:顯示所有文件

隱藏文件:文件或目錄名前邊有一個點

-l:詳細(xì)信息、-lh 帶單位的詳細(xì)信息

例如:-rwxrw-r-- 1 zhaofei zhaofei 3231145 11月 23 23:08 vimplus.tar.gz

第一個字符:文件的類型

7種:

普通文件:-

目錄:d

符號鏈接: l

管道: p

套接字:s :socket

字符設(shè)備: c

鍵盤、鼠標(biāo)

塊設(shè)備: b

U盤、硬盤

Rwx? :文件所有者權(quán)限

Rw-? :文件所屬組用戶

R--? :其他人

1:硬鏈接計數(shù)

Zhaofei: 文件所有者

Zhaofei:文件所屬組的名字

3231145 :文件大小

如果是目錄,大小為4k

11月 23 23:08 :日期

vimplus.tar.gz :文件名

Cd ~ :進入家目錄

Mkdir:創(chuàng)建目錄

Mkdir 目錄名

-p:創(chuàng)建多級目錄

Touch:創(chuàng)建文件

Touch 文件名:如果不存在,創(chuàng)建文件

如果存在,更新文件的時間

Rmdir: 只能刪除空目錄

Rm :刪除文件或目錄

Rm 目錄名 -ri

-r:用遞歸的方式處理

-i:刪除的時候提示

Rm 文件名 -i

Cp : 拷貝? cp a b? 把a的內(nèi)容拷貝到 b,如果b不存在,創(chuàng)建b 再拷貝

拷貝目錄要 -r 遞歸拷貝

Cp dir(存在)? dir1(存在) -r

將dir1目錄整個拷貝到dir目錄中,包括dir目錄

Cp dir(存在)? dir1(不存在) -r

創(chuàng)建 dir1

只將dir中的內(nèi)容拷貝到dir1中,不包括dir目錄

Mv: 改名或者移動文件

Mv file(存在)? file1(存在)

file會覆蓋file1,file會被刪除

改名:

Mv file(存在)? file1(不存在)? file為文件

Mv dir(存在)? dir1(不存在) dir為目錄

移動:

Mv file(文件)? dir(存在目錄)

Mv dir(目錄存在)? dir1(目錄存在)

查看文件內(nèi)容:

Cat

Cat filename : 將文件的內(nèi)容打印到終端

More

More filename : 另開辟一塊緩存打開文件內(nèi)容

Pwd:顯示當(dāng)前所在目錄

$:當(dāng)前用戶為普通用戶

#:當(dāng)前用戶為超級用戶

~:用戶的家目錄 <==> /home/zhaofei

根目錄下常見目錄:

/boot:開機啟動項

/bin: binary,二進制文件,可執(zhí)行程序,shell命令

/dev:device,設(shè)備,linux下一切皆文件,將硬盤、顯卡、顯示器抽象成文件

/lib:linux運行的時候需要加載的動態(tài)庫

/mnt:手動的掛在目錄

/media:外設(shè)的自動掛在目錄

/root:linux的超級用戶的家目錄

/usr:unix system resource 系統(tǒng)資源目錄:頭文件、游戲

/usr/local:用戶安裝的程序

/etc:存放配置文件

/etc/passwd:用戶

/etc/group:用戶組

/opt:安裝第三方應(yīng)用程序

/home:linux操作系統(tǒng)所有用戶的家目錄(宿主目錄)

/tmp:存放臨時文件,重啟電腦時會清空

軟硬鏈接:ln

軟鏈接 :快捷方式:大小為路徑的字符數(shù)量

Ln - s 文件名(使用絕對路徑)? 快捷方式的名字

硬鏈接:為文件起個別名,不占用空間。每個文件都有索引節(jié)點號 inode,inode指向 磁盤中的數(shù)據(jù)塊,為文件創(chuàng)建一個硬鏈接,兩個文件名指向的索引節(jié)點號是同 一個,指向同一塊內(nèi)存

1.創(chuàng)建一個新文件:硬鏈接計數(shù)為1

2.給文件創(chuàng)建了硬鏈接:硬鏈接計數(shù)為2

3.刪除一個硬鏈接:硬鏈接計數(shù)為1

4.再刪除硬鏈接計數(shù)對應(yīng)的文件:0

Filename? ==> 索引節(jié)點號 inode? ==>? 磁盤的數(shù)據(jù)塊

Ln 文件名? 硬鏈接的名字

用戶權(quán)限、用戶和用戶組:

1.chmod : 修改文件或目錄權(quán)限

文字設(shè)定法:

Chmod who [+|-|=] mode 文件名?

Who:

U :user,文件所有者

G :group ,文件所屬組

O: other ,其他人

A: all,以上所有人(默認(rèn)值)

+|-|= := 覆蓋

Mode:

R:讀

W:寫

X:執(zhí)行

-:沒有任何權(quán)限

練習(xí):chmod uo-rw file.c :去掉文件所有者和其他人讀寫權(quán)限 ? chmod u+r,g-x file.c? 文件所有者加讀,同組用戶減執(zhí)行

數(shù)字設(shè)定法:

Chomd [+|-|=] mode 文件名

Mode:八進制的數(shù) 0777: 0表示八進制

第一個數(shù)字表示文件所有者的權(quán)限

第二個數(shù)字表示用戶用戶的權(quán)限

第三個數(shù)字表示其他人的權(quán)限

R : 4

W: 2

X:? 1

-:? 0

例如:0750

0:八進制

7:rwx :文件所有者的權(quán)限

5:r-x :同組用戶的權(quán)限

0:? ---:其他人的權(quán)限不修改

2.chown : 修改文件所有者或所屬組

Chown? 新的所有者 文件名

Chown 新的所有者:新的所屬組 文件名

3.chgrp : 修改文件所屬組

文件查找和檢索:

1.根據(jù)文件屬性查找? find

文件名:

Find 查找的目錄名 -name? “查找的文件名”

Find . -name “*”? :查找當(dāng)前目錄下所有文件

文件類型:

Find 查找目錄 -type 文件類型

Find . -type f? 查找當(dāng)前目錄下的普通文件

普通文件:在這用f 表示

目錄:d

符號鏈接:l

文件大?。?/p>

Find 查找目錄 -size 10M? 查找等于10M的文件

+: 大于

-:小于

單位:

K:小寫

M:大寫

當(dāng)前目錄下查找大于10k小于100k

Find . -size +10k -size -100K

按日期:

創(chuàng)建日期 :-ctime -n/+n

-n: n天以內(nèi)

+n : n天以外

Find . -ctime -1? 查找當(dāng)前目錄1天以內(nèi)創(chuàng)建的

修改日期:-mtime -n/+n

訪問日期:-atime -n/+n

按深度:

-maxdepth n? 最深查找到第n層

-mindepth n? 搜索n層以上

高級查找:

例:查找指定目錄,并列出該目錄中文件詳細(xì)信息

Find ./ -type d -exec ls -l {} \;

Find ./ -type d -ok ls -l {} \;

ok比 exec安全些

Find ./ -type d | xargs ls-l(shell 命令)

| :管道

2.根據(jù)文件內(nèi)容查找 : grep

Grep -r(有子目錄時加 -r )? “查找的內(nèi)容” 搜索的路徑 -n(顯示查到的字符串在第幾行)

例如:搜索家目錄中帶 hello 字符串的文件

Grep -r “hello” ~

3.總結(jié):

(1)Find 搜索的路徑 參數(shù) 搜索的內(nèi)容

(2)Grep 搜索的內(nèi)容 參數(shù) 搜索的路徑

壓縮包管理:

1.linux 下常見壓縮格式

.gz? 是用gzip壓縮出來的

.bz2? 用bzip2壓縮出來的

2.常用壓縮命令

Tar : 打包

參數(shù):

C: 創(chuàng)建壓縮文件

X: 釋放壓縮文件

V: 打印提示信息(可不寫)

F: 指定壓縮包的名字

Z: 使用gzip壓縮文件? --xxx.tar.gz

J: 使用bzip2的方式壓縮文件 --xxx.tar.bz2

壓縮:

Tar 參數(shù) 壓縮包的名字 要壓縮的東西

例如:用 gz 的方式將文件 file1 目錄 dir1壓縮到一起

Tar zcvf test.tar.gz file1 dir1

解壓:

Tar zxvf test.tar.gz

Tar zxvf test.tar.gz -C 目錄? :解壓到指定目錄

Rar:

Rar 需要安裝

Sudo apt-get install rar

壓縮:

Rar a 壓縮包名(不需要指定后綴) 要壓縮的東西

壓縮目錄要加 -r 進行遞歸壓縮

解壓:

Rar x 壓縮包的名字 目錄

Zip/unzip:

壓縮:

Zip 參數(shù) 壓縮包名 要壓縮的東西

參數(shù):如果有目錄: -r

解壓:

Unzip 壓縮包的名字 -d 解壓目錄

3.總結(jié):

壓縮:

Tar/rar 參數(shù) 壓縮包名 原材料

解壓縮:

Tar/rar 參數(shù) 壓縮包名 參數(shù) 解壓路徑

rar解壓到指定目錄時不需要參數(shù)

軟件的安裝和卸載:

1.在線安裝:? ubuntu環(huán)境下

安裝:管理員權(quán)限 sudo apt-get(apt) install 安裝包的名字

卸載:sudo apt-get(apt) remove 軟件的名字

軟件列表的更新:sudo apt-get(apt) update? ? :更新了軟件列表下的軟件

清空緩存的安裝包 :sudo apt-get(apt) clean? ? ? :/var/cache/apt/archives

2.軟件包安裝(Ubuntu下? .deb格式)

安裝:sudo dpkg -i xxx.deb? -i:install

卸載:sudo dpkg -r 軟件的名字? -r : remove

Vim相關(guān):vim是vi的擴展

Gui:用戶圖形接口

1.vim需要自己安裝

Shell敲命令:vimtutor : vim向?qū)?/p>

2.vim是三種工作模式

1.命令模式

2.編輯模式

3.末行模式


3.vim命令模式下的相關(guān)操作

(1)保存退出:ZZ(不會創(chuàng)建新文件)

(2)代碼格式化:gg=G

(3)光標(biāo)的移動

HJKL:左下上右

光標(biāo)移動到行首:0 (零)

....................行尾:$

光標(biāo)移動到文件頭部:gg

....................文件尾部:G

跳轉(zhuǎn)到第200行:200G

4.刪除命令 : 刪除其實是剪貼

(1)刪除字符

光標(biāo)前的字符:X

光標(biāo)后的字符:x

(2)刪除光標(biāo)前字符串:d0

(3)刪除光標(biāo)后字符串:d$? <==> D

(4)刪除光標(biāo)所在行:dd

(5)從光標(biāo)所在行向下刪除3行:3dd

(6)刪除光標(biāo)所在行及下面所有內(nèi)容:dG? :按了d以后,將光標(biāo)移動到尾部

(7)刪除.......................上面.................: dgg? :按了d以后,將光標(biāo)移動到頭部

5.撤銷和反撤銷

撤銷:u

反撤銷:ctrl+r

6.復(fù)制和粘貼

復(fù)制:

1行:yy

n行:nyy

粘貼:

p(小寫):粘貼到光標(biāo)的下邊一行

P(大寫):..............上邊一行

7.可視模式:v

(1)移動光標(biāo):hjkl

(2)復(fù)制:y

(3)刪除:d

(4)粘貼:

①P(小寫):粘貼到光標(biāo)的后邊

②P(大寫):粘貼到光標(biāo)的前邊

8.替換操作:

(1)替換一個,光標(biāo)蓋住的字符: r

(2)替換多個,從光標(biāo)蓋住的這個往后替換:R

9.查找

(1)/xxx

(2)?xxx

1)用n查看下一個關(guān)鍵字的位置,N查看上一個關(guān)鍵字的位置

(3)將光標(biāo)移動到某個單詞下,按# 會將所選單詞都顯示出來,nN切換

10.查看man文檔

章節(jié)號+K(大寫)

11.命令模式切換到文本編輯模式

(1)a:從光標(biāo)的后面開始插入字符。A:從行尾插入

(2)i:從光標(biāo)的前面開始插入字符。I:從行首插入

(3)o(小寫):在光標(biāo)所在下面創(chuàng)建一行進行插入。O:在光標(biāo)所在上面創(chuàng)建一行進行插入

(4)s(小寫):刪除光標(biāo)蓋住的字符。S:刪除光標(biāo)所在行

(5)從編輯模式切換回命令模式:esc

12.Vim末行模式下相關(guān)操作:

(1)從命令模式 -> 末行模式

1)鍵盤輸入冒號(:)

(2)末行模式下的命令:

①輸入行號,實現(xiàn)行跳轉(zhuǎn)

②保存不退出:w

③退出:q

④退出不保存:q!

⑤保存退出:wq == x (會創(chuàng)建新文件)

(2)末行模式 -> 命令模式:兩次esc

(3)替換:

①替換光標(biāo)所在行的字符串:

1):s/old/new/gc? ? old:要被替換的字符串,new:要替換的字符串

a.參數(shù)g:替換當(dāng)前行所有的old ,如果不加,只替換第一個

b.參數(shù)c:替換時提示,是否確認(rèn)替換

②替換一個范圍

1):x,ys/old/new/gc? ? ? x,y是一個范圍(行數(shù))

③替換當(dāng)前文檔所有的

1):%s/old/new/gc

(4)分屏:水平分屏還是垂直分屏是根據(jù)分隔線

①當(dāng)前文件分屏

1)水平:sp

2)垂直:vsp

②兩個屏幕顯示不同的文件

1)水平:sp 文件名

2)垂直:? vsp 文件名

③屏幕的關(guān)閉

1)關(guān)閉所有:qall

2)保存關(guān)閉所有:wqall

3)保存所有:wall

④屏幕的切換

1)Ctrl+w+w

⑤打開的時候分屏

1)水平:vim -on 文件名 文件名

2)垂直:vim -On 文件名 文件名

a.n可以省略,表示分屏的個數(shù)

(5)末行模式下執(zhí)行shell命令

①:!+shell命令

13.Vim配置文件

(1)用戶級別

①~/.vimrc

(2)系統(tǒng)級別

①/etc/vim/vimrc

gcc相關(guān):

1.gcc工作流程

(1)預(yù)處理?

①調(diào)用預(yù)處理器 (cpp)

②參數(shù):-E

③宏替換

④頭文件展開

⑤注釋去掉

⑥Xxx.c? ->? xxx.i(還是c文件)

(2)編譯(時間最長)?

①調(diào)用編譯器(gcc)

②參數(shù):-S

③Xxx.i -> xxx.s(匯編文件)

(3)匯編

①調(diào)用匯編器(as)

②參數(shù): -c (小寫)

③Xxx.s? -> xxx.o(二進制文件)

(4)鏈接(沒有參數(shù))

①調(diào)用鏈接器 (Ld)

②Xxx.o -> xxx(可執(zhí)行程序)

③gcc? xxx.c? -o? app? 直接生成一個名為app的可執(zhí)行程序

1)-o : 指定生成的名字

2.gcc 常用參數(shù)

(1)-v / -version :版本

(2)-I(大寫i):編譯的時候指定頭文件路徑

(3)-c:將匯編文件生成二進制文件(.o)

(4)-o:指定生成文件的名字

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容