Linux運(yùn)維人員必會(huì)的120個(gè)命令
創(chuàng)新互聯(lián)主營(yíng)東光網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App制作,東光h5微信小程序定制開(kāi)發(fā)搭建,東光網(wǎng)站營(yíng)銷推廣歡迎東光等地區(qū)企業(yè)咨詢
來(lái)自《跟老男孩學(xué)Linux運(yùn)維:核心系統(tǒng)命令實(shí)戰(zhàn)》一書
前言
第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ǔ)入門 / 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ì)磁盤空間使用情況 / 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磁盤與文件系統(tǒng)管理命令 / 257
8.1fdisk:磁盤分區(qū)工具 / 257
8.2partprobe:更新內(nèi)核的硬盤分區(qū)表信息 / 265
8.3tune2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)參數(shù) / 266
8.4parted:磁盤分區(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)磁盤空間的使用情況 / 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)顯示磁盤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
1. uuto命令
uuto命令可將文件傳送到遠(yuǎn)端的UUCP主機(jī),并在完成工作后,以郵件通知遠(yuǎn)端主機(jī)上的用戶。
語(yǔ)法:
uuto [文件][目的]
參數(shù):
文件:需要執(zhí)行傳送的文件
目的:指定目標(biāo)文件或路徑
實(shí)例
uuto./test1 localhost/www #將文件test1傳送至遠(yuǎn)程UUCP主機(jī)localhost的www目錄
2. uupick命令
uupick命令是用來(lái)處理傳送進(jìn)來(lái)的文件。
語(yǔ)法:
uupick [-v][-I配置文件][-s主機(jī)][-x層級(jí)][--help]
參數(shù):
-I配置文件或--config配置文件:指定配置文件。
-s主機(jī)或--system主機(jī):處理由指定主機(jī)傳送過(guò)來(lái)的文件。
-v或—version:顯示版本信息。
--help:顯示幫助。
實(shí)例:
uupick-s localhost傳送由主機(jī)localhost傳送過(guò)來(lái)的文件
3. tftp命令
tftp命令用于傳輸文件,tftp是簡(jiǎn)單的文字模式ftp程序,它所使用的指令和FTP類似。
語(yǔ)法:
tftp(選項(xiàng))(參數(shù))
選項(xiàng):
-c:指定與tftp服務(wù)器連接成功后,立即要執(zhí)行的指令;
-m:指定文件傳輸模式。可以是ASCII或者Binary;
-v:顯示指令詳細(xì)執(zhí)行過(guò)程;
-V:顯示指令版本信息。
參數(shù):
主機(jī):指定tftp要聯(lián)機(jī)的tftp服務(wù)器的ip地址或主機(jī)名
實(shí)例:
tftp -g -r test 192.168.0.1 從IP地址為192.168.0.1遠(yuǎn)程主機(jī)上下載test文件
Linux 文件命令精通指南
作者:Sheryl Calish
為剛接觸 Linux 文件命令的初學(xué)者提供的速成教程
雖然 GUI 桌面(如 KDE 和 GNOME)能夠幫助用戶利用 Linux 特性,而無(wú)需關(guān)于命令行接口的功能知識(shí),但還是經(jīng)常會(huì)需要更多的功能和靈活性。而且,基本熟悉這些命令對(duì)于在 shell 腳本中正確地使某些功能自動(dòng)化仍然是必需的。
這篇文章是關(guān)于 Linux 文件命令的一個(gè)“速成教程”,它是為那些剛接觸這個(gè)操作系統(tǒng)或者只是需要補(bǔ)充這方面知識(shí)的用戶提供的。它包含了對(duì)一些更有用的命令的一個(gè)簡(jiǎn)明的概述以及關(guān)于它們的最強(qiáng)大的應(yīng)用的指導(dǎo)。下面包含的信息 — 結(jié)合一些實(shí)驗(yàn) — 將使您能夠容易地掌握這些基本的命令。(注意:當(dāng)涉及到一個(gè)與 Oracle 集群文件系統(tǒng) (OCFS) 結(jié)合的內(nèi)核時(shí),這些命令中的某些命令的行為可能會(huì)稍微有所不同。在此情況下,Oracle 提供了一個(gè) OCFS 工具集,該工具集可以為文件命令應(yīng)用提供一個(gè)更好的選擇。)
注意,這里包含的所有示例都在 SUSE Linux 8.0 Professional 上進(jìn)行了測(cè)試。雖然沒(méi)有理由相信它們?cè)谄渌南到y(tǒng)上將不能工作,但如果出現(xiàn)問(wèn)題,您應(yīng)當(dāng)查看您的文檔,以了解可能的變化。
背景概念
在深入研究規(guī)范之前,讓我們回顧一些基礎(chǔ)知識(shí)。
文件和命令
在 Linux/UNIX 操作系統(tǒng)中,所有事物都被當(dāng)作文件來(lái)處理:硬件設(shè)備(包括鍵盤和終端)、目錄、命令本身,當(dāng)然還有文件。這個(gè)奇怪的慣例實(shí)際上是 Linux/UNIX 的能力和靈活性的基礎(chǔ)。
大多數(shù)(幾乎是全部)的命令形式如下:
command [option] [source file(s)] [target file]
獲取幫助
最有用的命令之一是那些提供幫助的命令(特別是對(duì)那些學(xué)習(xí) Linux 的人而言)。Linux 中的兩個(gè)重要的信息來(lái)源是聯(lián)機(jī)參考手冊(cè),或 man 頁(yè)面和 whatis 工具。您可以用 whatis 命令來(lái)訪問(wèn)一個(gè)不熟悉的命令的 man 頁(yè)面。
$ whatis echo
要了解關(guān)于這個(gè)命令的更多信息,可以使用:
$ man echo
如果您不知道某個(gè)特殊任務(wù)所需的命令,您可以用 man -k (也稱為 apropos)和一個(gè)主題來(lái)生成可能的命令。例如:
$ man -k files
一個(gè)很有用但常常被忽視的命令可以提供關(guān)于使用 man 本身的信息:
$ man man
您可以用 SPACEBAR 來(lái)瀏覽任意的 man 頁(yè)面;UP ARROW 將向上翻滾文件。.要退出,則輸入 q,!,或 CTRL-Z。
用戶類別
記得那句名言“所有動(dòng)物一例平等但有些動(dòng)物比其他動(dòng)物更加平等”嗎?在 Linux 世界中,根用戶掌管一切。
根用戶可以以另一個(gè)用戶名 su (源自 "superuser")登錄。要執(zhí)行諸如添加一個(gè)新用戶、打印機(jī)或文件系統(tǒng)之類的任務(wù),必須作為根用戶登錄或者用 su 命令和根用戶密碼切換到超級(jí)用戶。系統(tǒng)文件(包括控制初始化過(guò)程的系統(tǒng)文件)歸根用戶所有。雖然可能允許普通用戶對(duì)它們進(jìn)行讀操作,但出于系統(tǒng)安全性的原因,編輯的權(quán)利將留給根用戶。
BASH shell
雖然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默認(rèn) shell。它結(jié)合了與它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。
BASH 內(nèi)置的命令 history 默認(rèn)記錄最后輸入的 500 條命令??梢酝ㄟ^(guò)在命令提示符下輸入 history 來(lái)查看它們。要檢索某個(gè)特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在歷史列表中輸入它的編號(hào),并在編號(hào)前面加上 "!",例如:
$ !49
您還可以通過(guò)一條命令在歷史列表中離位置最靠前的項(xiàng)目的距離來(lái)執(zhí)行該命令:如果在歷史列表中有 53 個(gè)事件,$ !-3 將執(zhí)行事件號(hào) 51。
像 UNIX/Linux 世界的其它 shell 一樣,BASH 使用了特殊的環(huán)境變量來(lái)方便系統(tǒng)管理。例如:
HOME,用戶主目錄
PATH,Linux 用來(lái)搜索您輸入的命令的可執(zhí)行鏡像的搜索路徑
HISTSIZE,系統(tǒng)保存的歷史事件的數(shù)量
除了這些保留的關(guān)鍵字之外,您還可以定義您自己的環(huán)境變量。例如,Oracle 使用 ORACLE_HOME (還有其它一些變量),要使 Oracle 安裝成功完成,必須在您的環(huán)境中設(shè)置這些變量。
可以在提示符下臨時(shí)設(shè)置變量:
$HISTSIZE=100
或者,在 /etc/profile (需要根用戶權(quán)限)中進(jìn)行系統(tǒng)范圍的永久設(shè)置,或在 .profile 中進(jìn)行局部永久設(shè)置。
可以通過(guò) echo 命令,并用一個(gè) $ 符號(hào)來(lái)訪問(wèn)一個(gè)環(huán)境變量的值,進(jìn)而查看該值。
$ echo $HOME
/home/bluher
可以用 env 命令來(lái)查看當(dāng)前所有的環(huán)境變量。
正則表達(dá)式和通配符
許多 Linux 命令使用通配符 * 和 ? 來(lái)匹配任意數(shù)量的字符或分別匹配任意的單個(gè)字符;正則模式匹配表達(dá)式利用一個(gè)句點(diǎn) (.) 來(lái)匹配除“換行符”之外的任意單個(gè)字符。這兩種情況下都使用方括號(hào) ([ ]) 來(lái)匹配除“*”號(hào)之外的字符組。不過(guò),* 號(hào)在各種情況下有類似但不同的意義:雖然它在 shell 中將匹配一個(gè)或更多的字符,但在正則表達(dá)式中,它匹配上述字符的零個(gè)或更多的實(shí)例。一些命令(如 egrep 和 awk)使用了一組更廣泛的特殊字符來(lái)進(jìn)行模式匹配。
文件處理命令
剖析一個(gè)文件列表
ls 命令用來(lái)查看用戶有執(zhí)行權(quán)限的任意目錄中的文件列表,該命令有許多有趣的選項(xiàng)。例如:
$ ls -liah *
22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile
19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out
925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh
上面的列表顯示 8 列:
第 1 列指示文件的 inode,因?yàn)槲覀兪褂昧?-i 選項(xiàng)。剩下的列通過(guò) -l 選項(xiàng)來(lái)進(jìn)行正常顯示。
第 2 列顯示文件類型和文件訪問(wèn)權(quán)限。
第3 列顯示鏈接數(shù),包括目錄。
第 4 和第 5 列顯示文件的所有者和組所有者。這里,所有者 "bluher" 屬于組 "users"。
第 6 列顯示文件大?。▎挝粸樗@示的單位,而不是默認(rèn)的字節(jié)數(shù),因?yàn)槲覀兪褂昧?-h 選項(xiàng)。
第 7 列顯示日期(它看起來(lái)像是三列),包括月、日和年,以及當(dāng)天的時(shí)間。
第 8 列顯示文件名。在選項(xiàng)列表中使用 -a 將使列表中包含隱藏文件(如 .profile)的列表。
處理文件
可以移動(dòng) (mv)、復(fù)制 (cp) 或刪除 (rm) 文件和目錄。明智地使用 -i 選項(xiàng),以獲得確認(rèn)通常是個(gè)不錯(cuò)的主意。
$ cp -i ls.out ls2.out
cpverwrite `ls2.out'?
mv 命令允許使用 -b 選項(xiàng),這將在移動(dòng)文件之前作一個(gè)備份拷貝。rm 和 cp 接受功能強(qiáng)大但卻危險(xiǎn)的 -r 選項(xiàng),它將在一個(gè)目錄和它的文件上遞歸執(zhí)行。
$ rm -ir Test
rm:descend into directory `Test'? y
可以用 mkdir 來(lái)創(chuàng)建目錄,用 rmdir 來(lái)刪除目錄。不過(guò),因?yàn)椴荒苡?rmdir 來(lái)刪除包含文件的目錄,所以使用 rm 加 -r 選項(xiàng)通常要更方便些。
出于安全的原因,所有的文件都有所有權(quán)和保護(hù)。文件訪問(wèn)權(quán)限(或文件模式)包含之前提到的相同的 10 個(gè)字符:
第一個(gè)字符指示文件類型。最常見(jiàn)的是 - 代表文件,d 代表目錄,而 l 代表鏈接。
接下來(lái)的 9 個(gè)字符是三種用戶類別的訪問(wèn)權(quán)限:文件所有者(字符 2-4),用戶組 (5-7) 和其它 (8-10),其中 r 表示讀權(quán)限,w 表示寫權(quán)限,x 指示一個(gè)文件上的執(zhí)行權(quán)限。破折號(hào) - 如果出現(xiàn)在這九個(gè)位置的任意一個(gè),則指示這個(gè)操作對(duì)該類別的用戶禁止。
可以使用 chmod 命令通過(guò)字符符號(hào)或二進(jìn)制掩碼來(lái)設(shè)置訪問(wèn)權(quán)限。要使用二進(jìn)制掩碼,必須將三個(gè)權(quán)限組的字符表示轉(zhuǎn)換成二進(jìn)制格式,然后轉(zhuǎn)換成八進(jìn)制格式:
用戶類別: 所有者 用戶組 其它
字符表示: rwx r-x r--
二進(jìn)制表示: 111 101 100
八進(jìn)制表示: 7 5 4
將寫權(quán)限賦予用戶組,您可以使用:
chmod g+w test.sh or chmod 774 test.sh
用 umask 命令,在 /etc/init.dev 文件中進(jìn)行系統(tǒng)范圍內(nèi)的、或在 .profile 文件中進(jìn)行的本地的文件權(quán)限默認(rèn)設(shè)置。這個(gè)命令指示用 777 減去這個(gè)數(shù)字來(lái)獲取默認(rèn)的權(quán)限:
$ umask 022
這將為用戶創(chuàng)建的所有新文件生成一個(gè)默認(rèn)的文件權(quán)限 755。
可以用 chown 來(lái)修改文件的所有權(quán):
$ chown bluher ls.out
這里,bluher 是新的文件所有者。類似地,組成員資格將按以下方式修改:
$ chgrp devgrp ls.out
這里,devgrp 是新的用戶組。
ls 不提供哪些文件是文本的,哪些文件是二進(jìn)制的的信息。要了解這個(gè)信息,您可以使用 file * 命令。
重命名文件
賦予一個(gè)文件多個(gè)名字的兩種流行的方法是利用鏈接和 alias 命令。Alias 可以用來(lái)為一個(gè)更長(zhǎng)的命令重新起一個(gè)更方便的名字:
$ alias ll='ls -l'
$ ll
注意單引號(hào)的使用,這使得 BASH 將該項(xiàng)目傳遞給別名,而不是自己估計(jì)它。別名還可用作較長(zhǎng)的路徑名的縮寫:
$ alias jdev9i=/jdev9i/jdev/bin/jdev
關(guān)于 alias 和它的反命令 unalias 的更多信息,請(qǐng)查看 BASH 的 man 頁(yè)面的 "SHELL BUILTIN COMMANDS" 子部分。在最后一個(gè)例子中,定義了一個(gè)環(huán)境變量來(lái)實(shí)現(xiàn)相同的結(jié)果。
$ export JDEV_HOME=/jdev9i/jdev/bin/jdev
$ echo $JDEV_HOME
/jdev9i/jdev/bin/jdev
$ $JDEV_HOME
鏈接允許幾個(gè)文件名引用單個(gè)源文件,格式如下:
ln [-s] fileyouwanttolinkto newname
單獨(dú)的 ln 命令創(chuàng)建到文件的一個(gè)硬鏈接,而使用 -s 選項(xiàng)來(lái)創(chuàng)建一個(gè)符號(hào)鏈接。簡(jiǎn)而言之,一個(gè)硬鏈接幾乎不能和原始的文件區(qū)分開(kāi)(除了這兩個(gè)文件的 inode 將相同之外)。符號(hào)鏈接較容易區(qū)分,因?yàn)樗鼈兂霈F(xiàn)在一個(gè)長(zhǎng)的文件列表中,并用 -; 來(lái)指示源文件,l 指示文件類型。
查看和查找文件
文件過(guò)濾器
用來(lái)讀取文件內(nèi)容和在文件內(nèi)容上執(zhí)行操作的命令有時(shí)被稱為 1濾器。sed 和 awk 命令是兩個(gè)濾波器的例子,因?yàn)樵谝郧暗?OTN 文章中有它們?cè)敿?xì)的討論,在這里將略過(guò)。
諸如 cat、 more 和 less 之類的命令讓您能夠從命令行查看一個(gè)文本文件的內(nèi)容,而無(wú)需調(diào)用編輯器。Cat 是 "concatenate" 的縮寫,它將默認(rèn)地在標(biāo)準(zhǔn)輸出(顯示屏)上顯示文件內(nèi)容。和 cat 一起提供的最有趣的選項(xiàng)之一是 -n 選項(xiàng),它用編號(hào)的輸出行來(lái)顯示文件內(nèi)容。
$ cat -n test.out
1 This is a test.
因?yàn)?cat 一次性輸出文件中的所有行,所以您可能更喜歡用 more 和 less,因?yàn)樗鼈兌家淮屋敵鲆黄恋奈募?nèi)容。Less 是 more 的一個(gè)增強(qiáng)的版本,它允許用來(lái)自 vi 文本編輯器的關(guān)鍵命令來(lái)增強(qiáng)文件查看。例如,d 向前翻滾、b 向后翻滾 N 行(如果 N 是在 d 或 b 之前指定的)。為 N 輸入的值成為隨后的 d 命令的默認(rèn)值。man 頁(yè)面實(shí)用工具使用 less 來(lái)顯示使用說(shuō)明的內(nèi)容。
重定向和管道
重定向允許將命令輸出重定向到文件中,而不是標(biāo)準(zhǔn)輸出,或者類似地,也可重定向輸入。重定向的標(biāo)準(zhǔn)符號(hào) ; 創(chuàng)建一個(gè)新的文件。;; 符號(hào)將輸出添加到一個(gè)現(xiàn)有的文件中:
$ more test2.out
Another test.
$ cat test.out ;; test2.out
$ cat test2.out
Another test.
This is a test.
到文件的標(biāo)準(zhǔn)輸入可以用 符號(hào)來(lái)重定向:
$ cat test2.out
錯(cuò)誤消息用 2; 和 2;; 來(lái)重定向和添加,格式如下:
$ command 2; name_of_error_file
要避免無(wú)意地覆蓋一個(gè)現(xiàn)有的文件,使用 BASH 內(nèi)置的命令集:
$ set -o noclobber
可以在命令和輸出文件之間用 ;! 符號(hào)來(lái)重載這個(gè)特性。要關(guān)閉這個(gè)特性,用 +o 代替 -o。
重定向在一個(gè)命令和文件之間、或文件和文件之間工作。重定向語(yǔ)句的一項(xiàng)必須是一個(gè)文件。
管道使用 |符號(hào),并且在命令之間工作。例如,您可以用以下方式將一個(gè)命令的輸出直接發(fā)送到打印機(jī)上:
$ ls -l * | lpr
可以用以下方式快速地找到歷史列表中的一個(gè)命令:
$ history | grep cat
更多的濾波器
Grep、fgrep 和 egrep 都顯示匹配一種模式的行。所有這三個(gè)命令都在文件中搜索指定的模式,如果您想不起來(lái)一個(gè)所需文件的名稱,這將非常有用?;靖袷绞牵?/p>
grep [options] PATTERN [FILE...]
$ grep -r 'Subject' nsmail
CTRL-Z 將終止上述或其它任何命令。
grep 的最有用的選項(xiàng)可能是 -s。如果您以除根用戶之外的任何身份搜索系統(tǒng)文件,那么對(duì)于每一個(gè)您沒(méi)有訪問(wèn)權(quán)限的文件,都將產(chǎn)生錯(cuò)誤消息。這個(gè)命令禁止那些消息。
Fgrep(也以 grep -F 調(diào)用)只查找固定的字符串,而不是 grep 接收的正則表達(dá)式。而 egrep 接收包含更大范圍的特殊字符(如 “|”,它指示條件 OR 運(yùn)算符)的模式。
$ egrep 'Subject|mailto' *
查找文件
find 命令的 GNU 版本非常強(qiáng)大、靈活并且比 UNIX 系統(tǒng)上存在的經(jīng)典版本更具包容性。它對(duì)于涉及到目錄結(jié)構(gòu)的任務(wù)非常有用,包括在文件上查找和執(zhí)行命令。find 命令的基本格式是:
$ find startdirectory options matchcriteria [actionoptions]
如果您知道文件的名稱、或者甚至名稱的一部分,但不知道它所處的目錄,您可以這么做:
$ find .-name 'test*'
./test
./jdevhome/mywork/EmpWS/EmpBC4J/test
與經(jīng)典的 UNIX 系統(tǒng)不同,在 Linux 中不需要在末尾添加 -print 操作,因?yàn)槿绻麤](méi)有指定其它的操作選項(xiàng),就將假定執(zhí)行這個(gè)操作。在目錄起始位置上的一個(gè)點(diǎn) ( . ) 將使 find 在您的工作目錄中開(kāi)始搜索。兩個(gè)點(diǎn), ..,在父目錄中開(kāi)始搜索。您可以在任意目錄下開(kāi)始搜索。
注意,您可以使用通配符作為搜索準(zhǔn)則的一部分(只要用單引號(hào)將整個(gè)項(xiàng)目括起來(lái))。
$ find .-name 'test*' -print
./test.out
./test2.out
顯示擁有 .out 擴(kuò)展名的一系列文件:
$ find /home -name '*.out'
不過(guò)記住,除非您是作為超級(jí)用戶運(yùn)行這個(gè)命令,否則您將可能得到許多的 "ermission denied" 錯(cuò)誤消息。
最強(qiáng)大的搜索工具之一是和 grep 一起使用的 -exec 操作:
$ find .-name '*.html' -exec grep 'mailto:foo@yahoo.com' {} \;
.,查找一個(gè) html 文件,*.html,并在當(dāng)前文件上執(zhí)行 (-exec) grep 命令,{}。當(dāng)使用 -exec 操作時(shí),需要一個(gè)分號(hào) ;,這是用來(lái)在使用 find 命令時(shí)執(zhí)行其它一些操作。需要反斜線 \ 和引號(hào)來(lái)確保這些項(xiàng)目通過(guò) BASH,以使它們由命令而不是 shell 來(lái)進(jìn)行解釋。
1、首先從服務(wù)端copy文件到本地。比如服務(wù)器的home下有一個(gè)文件是a.txt,那么命令是:scp root@192.168.2.208:/home/a.txt /home,
2、此時(shí)會(huì)要你輸入root的密碼。輸入后即可把a(bǔ).txt 拷貝到你當(dāng)前電腦的home下了。
3、同理,將文件從本地拷貝到服務(wù)器:
scp /home/a.txt root@192.168.2.208:~,此時(shí)輸入密碼即可。
4、然后以上說(shuō)的都是拷貝文件的,那么拷貝含有子目錄的文件夾,加入-r參數(shù)即可,如:
怎樣通過(guò)命令行給linux傳輸文件,方法如下
一、從服務(wù)器下載文件到本機(jī)
1、修改文件所屬
由于只能下載文件所屬為自己的文件,所以要做修改文件所屬的操作。
chown hudelei /opt/logs/tomcat/app/tomcat_stk_nm/stk-time.log
2、下載到本機(jī)
scp hi@10.10.30.10:/opt/logs/tomcat/app/tomcat_stk_nm/stk-time.log /Users/hvvi/Desktop
3、輸入密碼
二、上傳文件夾到服務(wù)器
1、scp -r /Users/hddvvi/Desktop/load hi@10.10.30.10:/opt/logs/tomcat/app/tomcat_stk_nm/
注意:加上 -r,否則會(huì)報(bào)錯(cuò):not a regular file
2、輸入密碼3、文件移動(dòng)上上層 mv filename.java 。。/
注:本文使用的是mac本機(jī)和linux服務(wù)器。