本次记录以下命令如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

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