Linux運(yùn)維人員必會(huì)的120個(gè)命令
創(chuàng)新互聯(lián)建站從2013年開(kāi)始,先為云霄等服務(wù)建站,云霄等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為云霄企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
來(lái)自《跟老男孩學(xué)Linux運(yùn)維:核心系統(tǒng)命令實(shí)戰(zhàn)》一書(shū)
前言
第1章 Linux命令行簡(jiǎn)介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關(guān)機(jī):
shutdown -h now
halt
init 0
第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當(dāng)前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹(shù)形結(jié)構(gòu)顯示目錄下的內(nèi)容 / 18
2.4mkdir:創(chuàng)建目錄 / 22
2.5touch:創(chuàng)建空文件或改變文件的時(shí)間戳屬性 / 27
2.6ls:顯示目錄下的內(nèi)容及相關(guān)屬性信息 / 30
2.7cp:復(fù)制文件或目錄 / 39
2.8mv:移動(dòng)或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號(hào)鏈接文件的內(nèi)容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標(biāo)準(zhǔn)輸入轉(zhuǎn)換成命令行參數(shù) / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴(kuò)展屬性 / 73
2.19lsattr:查看文件擴(kuò)展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計(jì)算和校驗(yàn)文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄權(quán)限 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設(shè)置權(quán)限掩碼 / 86
2.26老男孩從新手成為技術(shù)大牛的心法 / 90
第3章 文件過(guò)濾及內(nèi)容編輯處理命令 / 91
3.1cat:合并文件或查看文件內(nèi)容 / 91
3.2tac:反向顯示文件內(nèi)容 / 103
3.3more:分頁(yè)顯示文件內(nèi)容 / 104
3.4less:分頁(yè)顯示文件內(nèi)容 / 107
3.5head:顯示文件內(nèi)容頭部 / 109
3.6tail:顯示文件內(nèi)容尾部 / 111
3.7tailf:跟蹤日志文件 / 114
3.8cut:從文本中提取一段文字并輸出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個(gè)文件的相同字段合并 / 127
3.13uniq:去除重復(fù)行 / 129
3.14wc:統(tǒng)計(jì)文件的行數(shù)、單詞數(shù)或字節(jié)數(shù) / 131
3.15iconv:轉(zhuǎn)換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉(zhuǎn)換成UNIX格式 / 134
3.17diff:比較兩個(gè)文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內(nèi)容 / 139
3.20tr:替換或刪除字符 / 140
3.21od:按不同進(jìn)制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運(yùn)維的多個(gè)好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過(guò)濾工具 / 153
4.2sed:字符流編輯器 / 159
4.3awk基礎(chǔ)入門(mén) / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統(tǒng)信息 / 176
5.2hostname:顯示或設(shè)置系統(tǒng)的主機(jī)名 / 178
5.3dmesg:系統(tǒng)啟動(dòng)異常診斷 / 179
5.4stat:顯示文件或文件系統(tǒng)狀態(tài) / 181
5.5du:統(tǒng)計(jì)磁盤(pán)空間使用情況 / 183
5.6date:顯示與設(shè)置系統(tǒng)時(shí)間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監(jiān)視命令執(zhí)行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關(guān)文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate數(shù)據(jù)庫(kù) / 199
5.13老男孩逆襲思想:新手在工作中如何問(wèn)問(wèn)題不會(huì)被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠(yuǎn)程文件復(fù)制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問(wèn) / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創(chuàng)建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創(chuàng)建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個(gè)用戶身份執(zhí)行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當(dāng)前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁盤(pán)與文件系統(tǒng)管理命令 / 257
8.1fdisk:磁盤(pán)分區(qū)工具 / 257
8.2partprobe:更新內(nèi)核的硬盤(pán)分區(qū)表信息 / 265
8.3tune2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)參數(shù) / 266
8.4parted:磁盤(pán)分區(qū)工具 / 268
8.5mkfs:創(chuàng)建Linux文件系統(tǒng) / 272
8.6dumpe2fs:導(dǎo)出ext2/ext3/ext4文件系統(tǒng)信息 / 274
8.7resize2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)大小 / 275
8.8fsck:檢查并修復(fù)Linux文件系統(tǒng) / 278
8.9dd:轉(zhuǎn)換或復(fù)制文件 / 281
8.10mount:掛載文件系統(tǒng) / 284
8.11umount:卸載文件系統(tǒng) / 288
8.12df:報(bào)告文件系統(tǒng)磁盤(pán)空間的使用情況 / 289
8.13mkswap:創(chuàng)建交換分區(qū) / 293
8.14swapon:激活交換分區(qū) / 294
8.15swapoff:關(guān)閉交換分區(qū) / 295
8.16sync:刷新文件系統(tǒng)緩沖區(qū) / 296
第9章 Linux進(jìn)程管理命令 / 298
9.1ps:查看進(jìn)程 / 298
9.2pstree:顯示進(jìn)程狀態(tài)樹(shù) / 305
9.3pgrep:查找匹配條件的進(jìn)程 / 306
9.4kill:終止進(jìn)程 / 307
9.5killall:通過(guò)進(jìn)程名終止進(jìn)程 / 310
9.6pkill:通過(guò)進(jìn)程名終止進(jìn)程 / 311
9.7top:實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況 / 313
9.8nice:調(diào)整程序運(yùn)行時(shí)的優(yōu)先級(jí) / 320
9.9renice:調(diào)整運(yùn)行中的進(jìn)程的優(yōu)先級(jí) / 323
9.10nohup:用戶退出系統(tǒng)進(jìn)程繼續(xù)工作 / 324
9.11strace:跟蹤進(jìn)程的系統(tǒng)調(diào)用 / 325
9.12ltrace:跟蹤進(jìn)程調(diào)用庫(kù)函數(shù) / 332
9.13runlevel:輸出當(dāng)前運(yùn)行級(jí)別 / 334
9.14init:初始化Linux進(jìn)程 / 335
9.15service:管理系統(tǒng)服務(wù) / 335
第10章 Linux網(wǎng)絡(luò)管理命令 / 338
10.1ifconfig:配置或顯示網(wǎng)絡(luò)接口信息 / 338
10.2ifup:激活網(wǎng)絡(luò)接口 / 343
ifup eth0
10.3ifdown:禁用網(wǎng)絡(luò)接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個(gè)網(wǎng)絡(luò),所有網(wǎng)卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統(tǒng)的arp緩存 / 350
10.6ip:網(wǎng)絡(luò)配置工具 / 351
10.7netstat:查看網(wǎng)絡(luò)狀態(tài) / 358
10.8ss:查看網(wǎng)絡(luò)狀態(tài) / 362
10.9ping:測(cè)試主機(jī)之間網(wǎng)絡(luò)的連通性 / 363
10.10traceroute:追蹤數(shù)據(jù)傳輸路由狀況 / 366
10.11arping:發(fā)送arp請(qǐng)求 / 367
10.12telnet:遠(yuǎn)程登錄主機(jī) / 369
10.13nc:多功能網(wǎng)絡(luò)工具 / 370
10.14ssh:安全地遠(yuǎn)程登錄主機(jī) / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊(duì)列 / 379
10.17mail:發(fā)送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網(wǎng)絡(luò)探測(cè)工具和安全/端口掃描器 / 394
10.22tcpdump:監(jiān)聽(tīng)網(wǎng)絡(luò)流量 / 398
第11章 Linux系統(tǒng)管理命令 / 407
11.1lsof:查看進(jìn)程打開(kāi)的文件 / 407
11.2uptime:顯示系統(tǒng)的運(yùn)行時(shí)間及負(fù)載 / 411
11.3free:查看系統(tǒng)內(nèi)存信息 / 411
11.4iftop:動(dòng)態(tài)顯示網(wǎng)絡(luò)接口流量信息 / 413
11.5vmstat:虛擬內(nèi)存統(tǒng)計(jì) / 415
11.6mpstat:CPU信息統(tǒng)計(jì) / 419
11.7iostat:I/O信息統(tǒng)計(jì) / 420
11.8iotop:動(dòng)態(tài)顯示磁盤(pán)I/O統(tǒng)計(jì)信息 / 423
11.9sar:收集系統(tǒng)信息 / 425
11.10chkconfig:管理開(kāi)機(jī)服務(wù) / 430
11.11ntsysv:管理開(kāi)機(jī)服務(wù) / 433
11.12 setup:系統(tǒng)管理工具 / 434
11.13ethtool:查詢網(wǎng)卡參數(shù) / 436
11.14mii-tool:管理網(wǎng)絡(luò)接口的狀態(tài) / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動(dòng)化RPM包管理工具 / 446
top命令
第12章 Linux系統(tǒng)常用內(nèi)置命令 / 450
12.1Linux內(nèi)置命令概述 / 450
12.2Linux內(nèi)置命令簡(jiǎn)介 / 450
12.3Linux常用內(nèi)置命令實(shí)例 / 452
模式:
當(dāng)打開(kāi)終端,第一行所見(jiàn)的就叫命令行提示符。我的是這樣的:
命令行提示符,顧名思義就是提示在其后面輸入命令。在你輸入新的一行命令前,這個(gè)命令提示符都會(huì)出現(xiàn)。分別解析一下上邊代表什么意思:
oscar 這是當(dāng)前用戶的名字。Linux是一個(gè)多用戶的操作系統(tǒng),Windows也可以。不過(guò)Linux的多用戶管理更方便。我們一般建議每個(gè)使用Linux系統(tǒng)的用戶都創(chuàng)建一個(gè)屬于自己的賬戶,便于隱私管理。
@ 這個(gè)符號(hào)我們應(yīng)該不陌生,我們的電子郵件一般都是 name@domain.com 這樣的不是嗎。這個(gè)@就表示英語(yǔ)里的at,是“在...里面,落戶在...的,在其中”的意思。@前面是用戶名,后面是所在的域。
oscar-laptop 這是當(dāng)前電腦/操作系統(tǒng)的名字。上面說(shuō)了在@后面的是一個(gè)域,所以 oscar@oscar-laptop 就表示oscar-laptop這臺(tái)電腦的oscar這個(gè)用戶。oscar-laptop這個(gè)名稱在安裝此Linux系統(tǒng)時(shí)可以任意指定。
: 這是分隔符,沒(méi)有什么特別的涵義。
~ 這是當(dāng)前所在目錄的名字,會(huì)隨著用戶進(jìn)入不同目錄而改變。~表示當(dāng)前用戶的家目錄,有點(diǎn)類似Windows系統(tǒng)的“我的文檔”這個(gè)目錄。
$ 指示你所具有的權(quán)限的字符。在Linux系統(tǒng)中有兩種可能:
因此, oscar@oscar-laptop:~$ 的意思就是:
你目前是以oscar這個(gè)用戶登錄;你的電腦名稱為oscar-laptop;你目前位于 ~ 目錄下,就是你的用戶家目錄。你是普通用戶,擁有有限的權(quán)限。
參數(shù)里可以包含多個(gè)參數(shù),由空格隔開(kāi),也可以包含數(shù)字,字母,等等??梢哉f(shuō),參數(shù)沒(méi)有固定的格式,但是一般來(lái)說(shuō)還是遵循一定的規(guī)范的。
如果我們要一次加好幾個(gè)短參數(shù),可以用空格隔開(kāi),例如:
多個(gè)短參數(shù)也可以合并在一起,例如上面的命令等價(jià)于:
請(qǐng)注意:參數(shù)的字母的大小寫(xiě)是有區(qū)別的,大寫(xiě)的T和小寫(xiě)的t通常表示不同意思。
如果有多個(gè)長(zhǎng)參數(shù),是不能像多個(gè)短參數(shù)那樣合并寫(xiě)的。而是只能以空格隔開(kāi),例如:
當(dāng)然我們也可以組合使用短參數(shù)和長(zhǎng)參數(shù),例如:
有時(shí)候,同一個(gè)意義的參數(shù)有短參數(shù)和長(zhǎng)參數(shù)兩種形式,效果是一樣的,可以任選哪一種。
有一些參數(shù)你還需要給它賦一個(gè)值才行。而且短參數(shù)和長(zhǎng)參數(shù)的賦值的方式不盡相同。
例如,短參數(shù)賦值,通常是這樣的:
表示把10賦值給p參數(shù)。
如果是長(zhǎng)參數(shù),則一般是這樣賦值:
長(zhǎng)參數(shù)的方式更加容易理解,但是不如短參數(shù)那么簡(jiǎn)潔。
正如我們說(shuō)過(guò)的,參數(shù)的形式?jīng)]有絕對(duì)的準(zhǔn)則。我們上面給出的規(guī)則是一般的,有些命令的參數(shù)格式可能是我們沒(méi)怎么見(jiàn)過(guò)的。
有些參數(shù)就不一樣,而且取決于命令。例如對(duì)于 ls 這個(gè)命令,假如后面帶了一個(gè)參數(shù),這個(gè)參數(shù)是一個(gè)目錄的路徑名的話,那么就會(huì)列出此目錄下的文件。
兩種類型的文件
簡(jiǎn)單起見(jiàn),我們把Linux下的文件分為兩大類:
在一個(gè)文件系統(tǒng)中,我們總有一個(gè)被稱為根目錄的東西,這個(gè)根目錄里包含了所有其他目錄和文件。Linux中有且只有一個(gè)根目錄,就是
是的,就是用一個(gè)斜杠表示。沒(méi)有比根目錄再高一階的目錄了,因?yàn)闆](méi)有目錄包含根目錄,根目錄就是Linux最頂層的目錄。
Linux系統(tǒng)安裝后,包含了很多的文件和目錄(雖然其實(shí)都是文件),我們很容易迷失在“茫茫文?!敝?。
當(dāng)然我們不可能一下子列出Linux中的所有文件,那不現(xiàn)實(shí)。但是我們可以向你展示如何在Linux的目錄樹(shù)中來(lái)回穿梭,你可以知道此刻你位于哪個(gè)目錄下。就好比能看懂Linux這個(gè)很大的“地圖”。
pwd 是英語(yǔ)Print Working Directory的縮寫(xiě),表示“打印當(dāng)前工作目錄”。
which 命令:獲取命令的可執(zhí)行文件的位置,which命令用于顯示一個(gè)命令的對(duì)應(yīng)的可執(zhí)行程序的位置??赡苈?tīng)起來(lái)有點(diǎn)拗口。
在Linux下,每一條命令其實(shí)對(duì)應(yīng)了一個(gè)可執(zhí)行程序。我們?cè)诮K端中輸入命令,再按回車的時(shí)候,其實(shí)就是執(zhí)行了對(duì)應(yīng)的那個(gè)程序。比如說(shuō),pwd命令對(duì)應(yīng)的pwd程序就是存在于Linux中的。
which命令接受一個(gè)參數(shù),也就是你想要知道其可執(zhí)行程序位于哪里的那個(gè)命令。
我們來(lái)測(cè)試一下,就拿pwd命令來(lái)測(cè)試好了:
得到:
因此,pwd命令對(duì)應(yīng)的pwd這個(gè)可執(zhí)行程序位于/bin目錄中。
我們也可以注意到Linux中的可執(zhí)行程序和Windows中不太一樣,在Windows中可執(zhí)行程序一般以.exe結(jié)尾,而Linux中一般是沒(méi)有后綴名的。
Linux中的可執(zhí)行程序也不是都位于相同目錄的。我們可以來(lái)測(cè)試一下which命令本身對(duì)應(yīng)的可執(zhí)行程序位于哪里:
我們可以看到,which命令對(duì)應(yīng)的可執(zhí)行程序which并不位于/bin中,而是在/usr/bin中。
Ubuntu的終端默認(rèn)是有顏色標(biāo)注的,一般來(lái)說(shuō):
如果在你的終端里沒(méi)有標(biāo)明顏色,那么你可以加上參數(shù) --color=auto 來(lái)開(kāi)啟顏色標(biāo)注。如下:
如果你不需要顏色標(biāo)注,那么可以用 --color=none 來(lái)關(guān)閉顏色標(biāo)注。如下:
當(dāng)然,為了避免每次都輸入這么一串額外的參數(shù),其實(shí)我們可以在一個(gè)配置文件里修改,使得永久顯示顏色或不顯示顏色。
在Linux,以點(diǎn)( . )開(kāi)頭的文件是隱藏文件,不過(guò)這里不包括開(kāi)頭的兩個(gè) . 和 .. ,這兩個(gè)的含義如下:
- . (一個(gè)點(diǎn))表示當(dāng)前目錄。在當(dāng)前情況下,就是 /home/oscar 。
- .. (兩個(gè)點(diǎn))表示上一級(jí)目錄。因?yàn)楫?dāng)前目錄是/home/oscar,所以上一級(jí)目錄就是 /home 。
我們有一個(gè)大寫(xiě)的參數(shù) -A,它的作用和小寫(xiě)的-a幾乎一樣,唯一不同就是-A不列出 . 和 .. 這兩個(gè)文件。
-l 這個(gè)參數(shù)算是ls命令最常用的了。加上-l參數(shù)使得ls命令列出一個(gè)顯示文件和目錄的詳細(xì)信息的列表。
當(dāng)我們僅用ls -l時(shí),列出的文件詳細(xì)信息中,文件的大小是以字節(jié)為單位的。有時(shí)這不是太直觀。我們可以再加一個(gè)參數(shù)-h,h是humain readable的縮寫(xiě),表示“適合人類閱讀的”。所以我們的命令變成了:
t是time的縮寫(xiě)。
du命令也是很有用的,因?yàn)樗梢宰屛覀冎牢募湍夸浰嫉目臻g大小。
雖然ls -l命令也可以顯示文件和目錄的大小,但是du命令統(tǒng)計(jì)的才是真正的文件大小。du命令會(huì)深入遍歷每個(gè)目錄的子目錄,把所有文件的大小都做一個(gè)統(tǒng)計(jì)。
du是英語(yǔ)disk usage的縮寫(xiě),表示“磁盤(pán)使用/占用”。
我們的du命令也可以使用參數(shù)。
cat命令和less命令:顯示文件內(nèi)容,這兩個(gè)命令只能顯示文件內(nèi)容,并不能對(duì)文件內(nèi)容進(jìn)行修改。
一次性顯示文件的所有內(nèi)容,如果你想要在顯示的文件內(nèi)容上加上行號(hào),那么你可以加上 -n 這個(gè)參數(shù)。
分頁(yè)顯示文件內(nèi)容
head命令和tail命令:顯示文件的開(kāi)頭和結(jié)尾。
顯示文件開(kāi)頭,默認(rèn)情況下,head會(huì)顯示文件的頭10行。我們也可以指定顯示的行數(shù),用 -n 這個(gè)參數(shù):
就會(huì)顯示文件的頭5行。
顯示文件結(jié)尾。默認(rèn)情況下,tail會(huì)顯示文件的尾10行。
我們也可以指定顯示的行數(shù),用 -n 這個(gè)參數(shù):
就會(huì)顯示文件的尾5行。
tail命令還可以配合 -f 參數(shù)來(lái)實(shí)時(shí)追蹤文件的更新:
這樣,就會(huì)檢查文件是否有追加內(nèi)容,如果有,就顯示新增內(nèi)容。
默認(rèn)地,tail -f會(huì)每過(guò)1秒檢查一下文件是否有新內(nèi)容。你也可以指定間隔檢查的秒數(shù),用 -s 參數(shù):
可以用快捷鍵 Ctrl + c 來(lái)終止tail -f 命令。
touch命令和mkdir命令:創(chuàng)建文件和目錄
創(chuàng)建一個(gè)空白文件。事實(shí)上,Linux沒(méi)有一個(gè)命令是專門(mén)用來(lái)創(chuàng)建一個(gè)空白文件的。touch命令其實(shí)一開(kāi)始的設(shè)計(jì)初衷是修改文件的時(shí)間戳,就是可以修改文件的創(chuàng)建時(shí)間或修改時(shí)間,讓電腦以為文件是在那個(gè)時(shí)候被修改或創(chuàng)建的。但是touch命令如果后面跟著的文件名是不存在的,那么它就會(huì)新建一個(gè)。
事實(shí)上,我們可以用touch命令同時(shí)創(chuàng)建多個(gè)文件:
如果我所要?jiǎng)?chuàng)建的文件的名字里有空格怎么辦呢?
很簡(jiǎn)單,加上雙引號(hào):
創(chuàng)建一個(gè)目錄。
mkdir也可以同時(shí)創(chuàng)建好幾個(gè)目錄:
如果我所要?jiǎng)?chuàng)建的目錄的名字里有空格怎么辦呢?
很簡(jiǎn)單,加上雙引號(hào):
我們還可以用 -p 參數(shù)來(lái)遞歸創(chuàng)建目錄結(jié)構(gòu)。
比如:
cp命令和mv命令:拷貝文件和移動(dòng)文件
拷貝文件或目錄
cp是英語(yǔ)copy的縮寫(xiě),表示“拷貝”。所以,顧名思義,此命令用于拷貝。cp命令不僅可以拷貝單個(gè)文件,還可以拷貝多個(gè)文件,也可以拷貝目錄。
復(fù)制文件到另一個(gè)目錄只需要把cp命令的第二個(gè)參數(shù)換成目錄名。
拷貝目錄
要拷貝目錄,只要在cp命令之后加上-R參數(shù)(注意是大寫(xiě)的R)??截惖臅r(shí)候,目錄中的所有內(nèi)容(子目錄和文件)都會(huì)被拷貝。
使用通配符*
*號(hào)(星號(hào))是很常用的正則表達(dá)式的符號(hào),被稱為“通配符”,
所以如果我們用如下命令:
那么就會(huì)把當(dāng)前目錄下所有txt文件拷貝到folder這個(gè)子目錄當(dāng)中。
又如:
那么就會(huì)把當(dāng)前目錄下凡是以ha開(kāi)頭的文件都拷貝到folder目錄中。
移動(dòng)文件
mv是英語(yǔ)move的縮寫(xiě),表示“移動(dòng)”。mv命令有兩個(gè)功能:
用mv命令來(lái)移動(dòng)目錄很簡(jiǎn)單,不需要額外的參數(shù),就跟移動(dòng)文件一樣:
當(dāng)然,我們也可以使用通配符。
除了移動(dòng)文件,mv命令還可以用于重命名文件。
事實(shí)上,Linux中沒(méi)有一個(gè)專門(mén)的命令用于重命名文件。之所以mv命令可以重命名文件,其實(shí)還是歸因于它的機(jī)制:移動(dòng)文件。經(jīng)過(guò)mv移動(dòng)之后,原始文件變成了新的名字的文件,文件內(nèi)容是不變的,這不就相當(dāng)于重命名了嗎?
以上命令會(huì)將new_file重命名為renamed_file。
刪除文件和目錄
rm命令可以刪除一個(gè)文件,多個(gè)文件,目錄,甚至你的整個(gè)Linux系統(tǒng)(如果你愿意的話)。
以上命令刪除當(dāng)前目錄下的new_file_copy這個(gè)文件。
我們也可以同時(shí)刪除多個(gè)文件,只要用空格隔開(kāi)每個(gè)文件即可。例如:
保險(xiǎn)起見(jiàn),用rm命令刪除文件時(shí),可以加上 -i 參數(shù),這樣對(duì)于每一個(gè)要?jiǎng)h除的文件,終端都會(huì)詢問(wèn)我們是否確定刪除。i是英語(yǔ)inform的縮寫(xiě),表示“告知,通知”。
有兩種回答:
y:是英語(yǔ)yes的縮寫(xiě),表示“是”。那么回車確認(rèn)后,文件就刪除了。
n:是英語(yǔ)no的縮寫(xiě),表示“否”。那么回車確認(rèn)后,文件不會(huì)刪除。
如果在rm命令后加上-f參數(shù),那么終端不會(huì)詢問(wèn)用戶是否確定刪除文件,不論如何,文件會(huì)立刻被強(qiáng)制刪除。
f是英語(yǔ)force的縮寫(xiě)。
以上命令會(huì)強(qiáng)制刪除file文件。
r是英語(yǔ)recursive的縮寫(xiě),表示“遞歸的”。所以使用-r參數(shù),可以使rm命令刪除目錄,并且遞歸刪除其包含的子目錄和文件。
這個(gè)命令也挺危險(xiǎn)的,用得不好可能你的子目錄和文件都沒(méi)了。
以上命令會(huì)刪除one這個(gè)目錄,包括其子目錄和文件。
其實(shí),也存在一個(gè)命令
看著和 rm -r 挺像的。但是這個(gè)命令有個(gè)局限性:只能刪除空的目錄。
創(chuàng)建鏈接
事實(shí)上,Linux下有兩種鏈接類型:
為了區(qū)分這兩種鏈接類型的不同,我們首先來(lái)談一談如Linux這樣的操作系統(tǒng)中文件在硬盤(pán)上的存放。
文件在硬盤(pán)上存儲(chǔ)時(shí),大致來(lái)說(shuō)(請(qǐng)注意我用了“大致來(lái)說(shuō)”),每個(gè)文件有兩部分:
文件名的列表是儲(chǔ)存在硬盤(pán)的其他地方的,和文件內(nèi)容分開(kāi)存放,這樣方便Linux管理。
注意:為什么我上面要用“大致說(shuō)來(lái)”呢?因?yàn)榇颂幬覀兒?jiǎn)化了描述,其實(shí)每個(gè)文件有三部分:
我們這里簡(jiǎn)化地將文件分為兩部分:文件名和文件內(nèi)容。因?yàn)槲覀儾幌氚咽虑閺?fù)雜化,我們想要理解兩種鏈接類型的區(qū)別,暫時(shí)只要知道這些就夠了。
每個(gè)文件的文件內(nèi)容被分配到一個(gè)標(biāo)示號(hào)碼,就是inode。因此每個(gè)文件名都綁定到它的文件內(nèi)容(用inode標(biāo)識(shí))。原理如下圖:
下面我們學(xué)習(xí)如何創(chuàng)建硬鏈接和軟連接。
比之軟鏈接,硬鏈接的使用幾率小很多。但是我們還是要學(xué)習(xí)一下,畢竟可能會(huì)用到。
硬鏈接的原理:使鏈接的兩個(gè)文件共享同樣的文件內(nèi)容,也就是同樣的inode。
所以一旦文件1和文件2之間有了硬鏈接,那么你修改文件1或文件2,其實(shí)修改的是相同的一塊內(nèi)容。只不過(guò)我們可以用兩個(gè)文件名來(lái)取到文件內(nèi)容。
硬鏈接有一個(gè)缺陷:只能創(chuàng)建指向文件的硬鏈接,不能創(chuàng)建指向目錄的硬鏈接。但是軟鏈接可以指向文件或目錄。當(dāng)然了,事實(shí)上,通過(guò)一些參數(shù)的修改,也可以創(chuàng)建指向目錄的硬鏈接,但是比較復(fù)雜,這里不再詳述。所以對(duì)于目錄的鏈接,我們一般都是用軟鏈接。
硬鏈接原理圖:
要?jiǎng)?chuàng)建硬鏈接,直接用ln命令,不加任何參數(shù):
我們可以用ls -i命令查看一下(-i參數(shù)可以顯示文件的inode)。對(duì)于硬鏈接來(lái)說(shuō),刪除任意一方的文件,共同指向的文件內(nèi)容并不會(huì)從硬盤(pán)上被刪除。
我們用ls -l命令查看文件信息的時(shí)候,第二列的那個(gè)2,其實(shí)是表示擁有相同inode號(hào)的文件數(shù)。不難理解,因?yàn)樗鼈冎赶蛳嗤奈募?nèi)容,所以共享一個(gè)inode。
這個(gè)第二列的數(shù)字,一般來(lái)說(shuō)對(duì)于普通文件,都是1,因?yàn)椴煌募node不同嘛。對(duì)于目錄來(lái)說(shuō),這第二列的數(shù)字標(biāo)明目錄內(nèi)所含文件數(shù)目。
其實(shí),軟鏈接才是真正像我們?cè)赪indows下的快捷方式的,其原理很相似。
創(chuàng)建硬鏈接是ln不帶任何參數(shù),但是要?jiǎng)?chuàng)建軟鏈接需要加上-s參數(shù)。s是symbolic(符號(hào)的)的縮寫(xiě)。
file2指向的不再是file1的文件內(nèi)容(和硬鏈接不同),而是指向file1的文件名。
軟鏈接原理圖:
用ls -l命令查看一下,會(huì)發(fā)現(xiàn)形式和之前的硬鏈接不一樣噢,file2的信息是這樣的: file2-file1,表示file2指向file1。
而且file2前面的權(quán)限那里的第一個(gè)字母變成了l,表示link(鏈接)。之前硬鏈接的時(shí)候是沒(méi)有l(wèi)的,硬鏈接外表看起來(lái)就和普通文件類似。
我們用ls -l命令查看文件信息的時(shí)候,第二列的那個(gè)1,表示擁有相同inode號(hào)的文件數(shù)。不難理解,因?yàn)閒ile2指向file1,它們并沒(méi)有指向同一塊文件內(nèi)容,所以它們的inode號(hào)不相同。
軟鏈接的特點(diǎn):
1.grep -Ei XXX
-E? ? 使用多字符匹配
-i? ? 忽略大小寫(xiě)
2.fdisk -l |grep Disk
通過(guò)fdisk -l 查看機(jī)器所掛硬盤(pán)個(gè)數(shù)及分區(qū)情況
3.mkfs.ext4 /dev/sdb
把第二塊硬盤(pán)整個(gè)格式化成ext4文件系統(tǒng)!同時(shí)會(huì)覆蓋掉原來(lái)到分區(qū)表!
4.blkid /dev/sdb
blkid主要用來(lái)對(duì)系統(tǒng)的塊設(shè)備(包括交換分區(qū))所使用的文件系統(tǒng)類型、LABEL、UUID等信息進(jìn)行查詢。要使用這個(gè)命令必須安裝e2fsprogs軟件包
5. vim /etc/fstab
某些時(shí)候當(dāng)Linux系統(tǒng)下劃分了新的分區(qū)后,需要將這些分區(qū)設(shè)置為開(kāi)機(jī)自動(dòng)掛載,否則,Linux是無(wú)法使用新建的分區(qū)的。 /etc/fstab 文件負(fù)責(zé)配置Linux開(kāi)機(jī)時(shí)自動(dòng)掛載的分區(qū)。
Windows的文件結(jié)構(gòu)是多個(gè)并列的樹(shù)狀結(jié)構(gòu),最頂部的是不同的磁盤(pán)(分區(qū)),如:C,D,E,F(xiàn)等。Linux的文件結(jié)構(gòu)是單個(gè)的樹(shù)狀結(jié)構(gòu)。最頂部的為根目錄,即/。在根目錄下,分為多個(gè)子目錄,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr和/var等。
磁盤(pán)Linux分區(qū)都必須掛載到目錄樹(shù)中的某個(gè)具體的目錄上才能進(jìn)行讀寫(xiě)操作,而fstab正是負(fù)責(zé)這一配置。顯然,根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個(gè)磁盤(pán)分區(qū)。上面還提到,Linux分區(qū)交換也需要獨(dú)立使用一個(gè)分區(qū),因此,安裝一個(gè)Linux至少需要兩個(gè)分區(qū)。(事實(shí)上,只使用一個(gè)分區(qū)安裝Linux也是可能的,而且,如果電腦的物理內(nèi)存足夠大,交換分區(qū)并不是必須的)
第一列可以是實(shí)際分區(qū)名,也可以是實(shí)際分區(qū)的卷標(biāo)(Lable)。
第二列是掛載點(diǎn)。
第三列為此分區(qū)的文件系統(tǒng)類型。
第四列是掛載的選項(xiàng),用于設(shè)置掛載的參數(shù)。
常見(jiàn)參數(shù)如下:
auto: 系統(tǒng)自動(dòng)掛載,fstab默認(rèn)就是這個(gè)選項(xiàng)
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 開(kāi)機(jī)不自動(dòng)掛載
nouser 只有超級(jí)用戶可以掛載
ro 按只讀權(quán)限掛載
rw 按可讀可寫(xiě)權(quán)限掛載
user 任何用戶都可以掛載
請(qǐng)注意光驅(qū)和軟驅(qū)只有在裝有介質(zhì)時(shí)才可以進(jìn)行掛載,因此它是noauto
第五列是dump備份設(shè)置。
當(dāng)其值設(shè)置為1時(shí),將允許dump備份程序備份;設(shè)置為0時(shí),忽略備份操作;
第六列是fsck磁盤(pán)檢查設(shè)置。
其值是一個(gè)順序。當(dāng)其值為0時(shí),永遠(yuǎn)不檢查
而 / 根目錄分區(qū)永遠(yuǎn)都為1。其它分區(qū)從2開(kāi)始,數(shù)字越小越先檢查,如果兩個(gè)分區(qū)的數(shù)字相同,則同時(shí)檢查。
6. ip addr 查看ip地址
service network restart重啟網(wǎng)卡
cd /etc/sysconfig/network-scripts/? 進(jìn)入網(wǎng)卡配置目錄
7. systemctl 用來(lái)管理linux系統(tǒng)和服務(wù)
查看系統(tǒng)狀態(tài)
#systemctl status
馬上激活單元
# systemctl start 單元
馬上停止單元
# systemctl stop 單元
重新啟動(dòng)單元
# systemctl restart 單元
又一次載入配置
# systemctl reload 單元
輸出單元執(zhí)行狀態(tài)
$ systemctl status 單元
檢查單元是否配置為自己主動(dòng)啟動(dòng)
$ systemctl is-enabled 單元
開(kāi)機(jī)自己主動(dòng)激活單元
# systemctl enable 單元
取消開(kāi)機(jī)自己主動(dòng)激活單元
# systemctl disable 單元
8.ps aux|grep xxx 顯示所有進(jìn)程和其狀態(tài)。
a 顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序。
u 以用戶為主的格式來(lái)顯示程序狀況
x 顯示所有程序,不以終端機(jī)來(lái)區(qū)分。
文章名稱:linux的目錄樹(shù)命令,Linux用命令創(chuàng)建目錄樹(shù)
分享路徑:http://muchs.cn/article22/hcgccc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、服務(wù)器托管、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)