本次記錄以下命令如mkdir, rmdir, tree, dirname,basename, cat, tac, more, less, tail, head, touch, file, cp, mv, rm, wc, cut, sort, uniq的使用格式、常用選項及它們有哪些使用實例等。
1. mkdir 創建新目錄命令
創建新目錄命令格式:mkdir [OPTION]... /PATH/TO/SOMEWHERE
-p 遞歸創建目標目錄包含上層目錄
[root@www ~]# mkdir -p /test/test1
-v 顯示創建過程
[root@www ~]# mkdir -pv /lab/lab1
mkdir: created directory `/lab'
mkdir: created directory `/lab/lab1'
2. rmdir刪除目錄命令
目錄需要一層一層地刪除纔行,而且被刪除的目錄裏面必定不能存在其他的目錄或文件,即注意指定目錄必須爲空。
刪除目錄命令格式:rmdir [OPTION]... /PATH/TO/SOMEWHERE
OPTION:
-p 遞歸刪除目標目錄包含上層目錄
[root@www ~]# rmdir -p /test/test1
3. tree樹狀目錄顯示命令
以樹形方式顯示目錄結構。
樹狀目錄顯示命令格式:tree [OPTION]...[DIR]
-d 顯示當前目錄名稱而非內容
[root@www ~]# tree -d
.
`-- Desktop
1 directory
-L level 顯示第幾個層級目錄名和文件
[root@www var]# tree –L 1
.
|-- account
|-- cache
|-- crash
|-- cvs
|-- db
|-- empty
|-- games
|-- gdm
|-- lib
|-- local
|-- lock
|-- log
|-- mail -> spool/mail
|-- nis
|-- opt
|-- preserve
|-- racoon
|-- run
|-- spool
|-- tmp
`-- yp
21 directories, 0 files
4. dirname截取給定路徑的目錄部分命令
從給定的包含絕對路徑的文件名中去除文件名(非目錄部分),然後返回剩下的路徑(目錄部分)。
截取給定路徑的目錄部分命令格式:dirname FILENAME
[root@www ~]# dirname /etc/fstab
/etc
5. basename用於顯示目錄或文件的基本名稱命令
用於去掉文件名的目錄和後綴。
用於顯示目錄或文件的基本名稱命令格式:basename FILENAME
[root@www ~]# basename /etc/fstab
fstab
-
文本文件查看相關命令
6. cat正向查看文件內容命令
此命令只能查看文件內容爲普通文本的文件。
正向查看文件內容命令格式:cat [OPTION]...[FILE]... OPTION:
[root@www ~]# cat –n /etc/issue
1 CentOS release 6.6 (Final)
2 Kernel \r on an \m
3
-b 顯示行號,僅針對非空白行
[root@www ~]# cat –b /etc/issue
1 CentOS release 6.6 (Final)
2 Kernel \r on an \m
-A 列出所有內容(包含特殊字符)如斷行符$、^I等
[root@www ~]# cat –A /etc/issue
CentOS release 6.6 (Final)$
Kernel \r on an \m$
$
7. tac反向查看文件內容命令
此命令也只能查看文件內容爲普通文本的文件。
[root@www ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.6 (Final)
8. more翻屏查看命令
此命令翻到尾部無法再向前翻。
翻屏查看命令格式:more [OPTION]...[FILE]...
OPTION:
-d 顯示翻頁有操作提示信息
[root@www ~]# more -d /etc/man.config
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
--More--(32%)[Press space to continue, 'q' to quit.]
常用按鍵:
空格鍵:代表向下翻一頁
Enter:代表向下滾動一行
b:代表往回翻頁
q:代表立刻離開more
9. less翻屏查看命令
翻屏查看命令格式:less [OPTION]...[FILE]...
OPTION:
-e當文件顯示結束後,自動離開
-m顯示類似more命令的百分比
[root@www ~]# less -m /etc/man.config
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
/etc/man.config 32%
-N 顯示每行的行號
[root@www ~]# less -N /etc/man.config
1 #
2 # Generated automatically from man.conf.in by the
3 # configure script.
4 #
5 # man.conf from man-1.6f
6 #
常用按鍵:
空格鍵:代表向下翻一頁
Enter:代表向下滾動一行
b:代表往回翻頁
q:代表立刻離開more
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
文本搜索:
/KEYWORD: 正向搜索
?KEYWORD: 反向搜索
n: 與命令方向相同的下一個
N:與命令方向相反的前一個
10. head數據選取命令
此命令是取出文件內容前面幾行條目。默認只顯示10行。
數據選取命令格式:head [OPTION]...[FILE]...
OPTION:
-n # 數字,代表顯示幾行的意思
[root@www ~]# head -n 3 /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
11. tail數據選取命令
此命令是取出文件內容後面幾行條目。默認只顯示10行。
數據選取命令格式:tail [OPTION]...[FILE]...
OPTION:
-n # 數字,代表顯示幾行的意思
[root@www ~]# tail -n 3 /etc/man.config
# Otherwise the database will be updated.
#
#MAKEWHATISDBUPDATES n
-f 跟蹤新追加信息,而不用退出
[root@www abc]# echo how old are you? >> tt
[root@www abc]# tail -f tt
pwd=Print Working Directory
mkdir=
cat=Concatenat
dddddde
how old are you?
12. touch時間戳管理或創建新文件命令
更新時間戳至當前時間。每個文件都有三個時間戳:
atime: 文件最近一次被訪問的時間;
mtime: 文件最近一次被“修改”的時間;
ctime:文件最近一次被“改變”的時間;
文件數據有文件元數據(屬性數據)和數據之分。當文件狀態更改了,如文件名變更、改變權限等後,則ctime時間會變,而atime和mtime時間不變。
當對文件內容數據進行編輯時,則mtime時間變動,接着ctime也變動
當對文件進行訪問時,則atime時間變動,同樣ctime也變動
當文件的屬性發生變化時,則ctime時間變動,但atime及mtime未必變動
時間戳管理或創建新文件命令格式:touch [OPTION]... FILE...
OPTION:
-a 只更新atime
File: `tt'
Access: 2015-08-26 13:31:05.638901911 +0800
Modify: 2015-08-26 13:30:51.537900897 +0800
Change: 2015-08-26 13:30:51.537900897 +0800
[root@www ~]# touch -a tt
Access: 2015-08-28 07:50:11.000800946 +0800
Modify: 2015-08-26 13:30:51.537900897 +0800
Change: 2015-08-28 07:50:11.000800946 +0800
-m 只更新mtime
File: `tt'
Access: 2015-08-28 07:50:11.000800946 +0800
Modify: 2015-08-26 13:30:51.537900897 +0800
Change: 2015-08-28 07:50:11.000800946 +0800
[root@www ~]# touch -m tt
Access: 2015-08-28 07:50:11.000800946 +0800
Modify: 2015-08-28 08:49:51.725799067 +0800
Change: 2015-08-28 08:49:51.725799067 +0800
-c 不創建空文件
一般來說,如果FILE不存在,則默認會創建一個空文件。
13. file查看文件類型命令
如果想知道某個文件的基本數據,如ASCII或者data文件,或者是binary等。
[root@www ~]# file install.log
install.log: UTF-8 Unicode text
-
文件管理相關命令
15. cp複製命令
用於複製文件或目錄操作。
複製命令格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
OPTION:
-r 遞歸複製
-v 顯示運行過程
[root@www ~]# cp -rv /345 /tmp
`/345' -> `/tmp/345'
`/345/123' -> `/tmp/345/123'
`/345/678' -> `/tmp/345/678'
`/345/678/789' -> `/tmp/345/678/789'
`/345/678/789/tt' -> `/tmp/345/678/789/tt'
-p 連同文件的屬性一起復制
[root@www ~]# cp -pv install.log /tmp/345
[root@www ~]# ll install.log;ll /tmp/345/install.log
-rw-r--r--. 1 root root 63202 Aug 4 15:54 install.log
-rw-r--r--. 1 root root 63202 Aug 4 15:54 /tmp/345/install.log
-f 強制覆蓋,但如果有-i參數時,此參數無效
[root@www ~]# \cp -f tt /abc
[root@www ~]# ll tt /abc/tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 28 11:16 /abc/tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 tt
-a 遞歸複製,並且保留文件的時間、權限、屬主等屬性
[root@www ~]#\cp -av tt /abc/tt
[root@www ~]# ll tt /abc/tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 /abc/tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 tt
-s 複製成符號鏈接文件(symbolic link),即“快捷方式”
[root@www abc]# cp -sv tt slink-tt
`tt' -> `slink-tt'
[root@www abc]# ll
total 4
lrwxrwxrwx. 1 root root 2 Aug 28 13:27 slink-tt -> tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 tt
-d 複製連接文件的屬性而非連接文件本身
[root@www abc]# cp -dv slink-tt alink-tt
`slink-tt' -> `alink-tt'
[root@www abc]# ll
total 4
lrwxrwxrwx. 1 root root 2 Aug 28 13:41 alink-tt -> tt
lrwxrwxrwx. 1 root root 2 Aug 28 13:27 slink-tt -> tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 tt
15. rm移除文件或目錄命令
移除文件或目錄命令格式:rm [OPTION]...[FILE]...
OPTION:
-f 強制執行
[root@www 789]# rm -f tt
-r 遞歸刪除指定目錄與文件
[root@www ~]# rm -rf /345
16. mv移動文件與目錄或更名命令
移除文件與目錄或更名命令格式:
mv [OPTION]...[FILE]...
mv [OPTION]... SOURCE... DIRECTORY
OPTION:
-f 強制執行
[root@www abc]# mv –f tt /lab
[root@www abc]# ll /lab/tt
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 /lab/tt
更改文件名
[root@www lab]# mv tt 1t
[root@www lab]# ll 1t
-rwxr-xr-x. 1 Allen Allen 108 Aug 27 17:31 1t
移動多個文件
[root@www tmp]# mv fstab.out functions /lab
17. wc文件內容統計命令
統計給定文件的字節數、字數、行數,並將統計結果顯示輸出。如果沒有給出文件名,則從標準輸入讀取。
文件內容統計命令格式:wc [OPTION]... FILE...
OPTION:
-l 統計行數
-w 統計字數。一個字被定義爲由空白、跳格或換行字符分隔的字符串。
-m 統計字符數。這個標誌不能與-c標誌一起使用
-c 統計字節數
[root@www lab]# cat tt
i am ok
abc
2 4 12 tt' 2是行數,4是單詞數,12是字節數
[root@www lab]# wc -l tt
2 tt'
[root@www lab]# wc -w tt
4 tt
[root@www lab]# wc -c tt
12 tt
[root@www lab]# wc -m tt
12 tt
18. cut選取文件內容命令
從一個文本文件或者文本流中提取文本列。選取信息通常是針對“行”來進行分析的,並不是整篇信息分析。
從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段寫至標準輸出。如果不指定文件名,它將讀取標準輸入。
選取文件內容命令格式:cut [OPTION]... FILE...
OPTION:
-d 指定分隔符,默認爲製表符
-f 指定顯示哪個區域
範圍-n表示從第1~n個字段,範圍n-表示從n個字段到行尾,n-m表示從第n~m個字段。
[root@www lab]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@www lab]# echo $PATH | cut –d: -f4,5
/sbin:/bin
[root@www lab]# who
root tty2 2015-08-17 10:10
root pts/0 2015-08-29 11:08 (172.16.10.100)
root pts/1 2015-08-29 14:06 (172.16.10.100)
[root@www lab]# who | cut –d’‘ –f6
tty2
pts/0
pts/1
-c 以字符爲單位進行分隔
範圍-n表示從第1~n個字符,範圍n-表示從n個字符到最後字符,n-m表示從第n~m個字符。
[root@www lab]# cat labtest.txt
111 222 333 444 555 666
111 222 333 444 555 666
aaa bbb ccc ddd eee fff
aaa bbb ccc ddd eee fff
-----------------------
[root@www lab]# cat labtest.txt |cut -c3,23
16
16
af
af
--
-s 僅打印包含分隔符的行,如果沒有此選項,則打印不包含分隔符的行
[root@www lab]# cat labtest.txt |cut –s –d’‘ –f6-10
666
666
fff
fff
19. sort文件內容排序命令
對指定文件中的行排序,並將結果標準輸出。如果有多個文件,那麼它會將這些文件連接起來,並當作一個文件進行排序。
文件內容排序命令格式:sort [OPTION]... FILE...
OPTION:
-r 按逆序排序
[root@www lab]# cat labtest.txt
111 222 333 444 555 666
111 222 333 444 555 666
aaa bbb ccc ddd eee fff
aaa bbb ccc ddd eee fff
-----------------------
[root@www lab]# sort -r labtest.txt
aaa bbb ccc ddd eee fff
aaa bbb ccc ddd eee fff
111 222 333 444 555 666
111 222 333 444 555 666
-----------------------
-u 重複僅出現一次
[root@www lab]# cat labtest.txt |sort -u
-----------------------
111 222 333 444 555 666
aaa bbb ccc ddd eee fff
-t 指定分隔符
-k 以那個區間(field)來進行排序
[root@www lab]# cat list.txt
Tom Winstrom:94201:1
Janet Dempsey:94111:20
Alice MacLeod:94114:12
David Mack:94114:23
Toni Barnett:95020:8
Jack Cooper:94072:0
Richard MacDonald:95510:3
[root@www lab]# cat list.txt|sort -t: -k 2
Jack Cooper:94072:0
Janet Dempsey:94111:20
Alice MacLeod:94114:12
David Mack:94114:23
Tom Winstrom:94201:1
Toni Barnett:95020:8
Richard MacDonald:95510:3
-n 表示以數值大小排序
[root@www lab]# cat list.txt|sort -t: -k 3 -n
Jack Cooper:94072:0
Tom Winstrom:94201:1
Richard MacDonald:95510:3
Toni Barnett:95020:8
Alice MacLeod:94114:12
Janet Dempsey:94111:20
David Mack:94114:23
[root@www lab]# cat list.txt|sort -t: -k 3 -n|cut -d: -f3
0
1
3
8
12
20
23
20. uniq顯示文件內容唯一行命令
去除排序過的文件中連續的重複行,只保留一行,因此uniq經常和sort合用。
文件內容排序命令格式:uniq [OPTION]... FILE...
OPTION:
[root@www lab]# sort labtest.txt |uniq -c
1 -----------------------
2 111 222 333 444 555 666
2 aaa bbb ccc ddd eee fff
[root@www lab]# sort labtest.txt |uniq -d
111 222 333 444 555 666
aaa bbb ccc ddd eee fff
-u 只顯示沒有連續重複過的行
[root@www lab]# sort labtest.txt |uniq -u
-----------------------