Linux學習:Linux基礎命令集(2)

本次記錄以下命令如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

OPTION:

-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]

OPTION:

-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:

-n 顯示行號,連同空白行

[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

[root@www lab]# wc tt

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:

-c 顯示每行重複的次數

[root@www lab]# sort labtest.txt |uniq -c

1 -----------------------

2 111 222 333 444 555 666

2 aaa bbb ccc ddd eee fff

-d 只顯示重複過的行

[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

-----------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章