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