日期: 2015年08月23日
【目录管理类命令】
mkdir、rmdir、tree、dirname、basename
<<========================================【mkdir】========================================>>
mkdir命令
功能:
创建目录
格式:
mkdir[OPTION]... DIRECTORY...
常用选项:
-p: 先创建父目录;
-v: 显示详细信息;
实例:
[root@CentOS-6~]# mkdir -pv /tmp/{a/,b/}{d,e,f}_g
mkdir:created directory `/tmp/a‘
mkdir:created directory `/tmp/a/d_g‘
mkdir:created directory `/tmp/a/e_g‘
mkdir:created directory `/tmp/a/f_g‘
mkdir:created directory `/tmp/b‘
mkdir:created directory `/tmp/b/d_g‘
mkdir:created directory `/tmp/b/e_g‘
mkdir:created directory `/tmp/b/f_g‘
<<========================================【rmdir】========================================>>
rmdir命令
功能:
删除空目录(此命令只能用来删除空目录,太鸡肋了一般不用)
格式:
rmdir[OPTION]... DIRECTORY...
常用选项:
-p: 先创建父目录;
-v: 显示详细信息;
<<========================================【tree】========================================>>
tree命令
功能:
以树状的方式列出指定目录下的子目录或文件
格式:
tree[OPTION]...[DIR]
常用选项:
-d 只显示层级中的目录类型文件
-L level:只显示几个层级
实例:
[root@CentOS-6~]# tree /tmp/
/tmp/
├── a
│ ├── d_g
│ ├── e_g
│ └── f_g
└── b
├── d_g
├── e_g
└── f_g
[root@CentOS-6~]# tree /tmp/ -L 1
/tmp/
├── a
└── b
<<==================================【dirname/basename】==================================>>
dirname命令
功能:
获取路径的目录名
basename命令
功能:
获取路径的基名
实例:
[root@CentOS-6~]#
[root@CentOS-6~]# dirname /etc/sysconfig/networ-scripts
/etc/sysconfig //这个是路径的目录名
[root@CentOS-6~]# basename /etc/sysconfig/networ-scripts
networ-scripts //这个是路径的基名
[root@CentOS-6~]#
【文件管理类命令】
cp、mv、rm
<<========================================【cp】========================================>>
cp命令
功能:
复制文件或目录到指定位置
格式:
cp [OPTION]... [-T] SOURCE DEST
如果复制的是文件,目标路径下并没有与该文件同名的文件,则成功复制
如果复制的是文件,而目标路径下已有与源文件同名的文件,则直接覆盖目标文件
cp [OPTION]... SOURCE... DIRECTORY
如果同时复制多个文件,则目标一定得是个目录
cp [OPTION]... -t DIRECTORY SOURCE...
同时复制多个目录或文件到一个目标路径时,使用-t 选项,
表示先指定目标路径,后面跟多个源目录,使用空格分隔
常用选项:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,
并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-b:覆盖已存在的文件目标前将目标文件备份;
-l:对源文件建立硬连接,而非复制文件;(创建硬链接)
-s:对源文件建立符号连接,而非复制文件;(创建软链接)
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-u:只会在源文件的更改时间较目标文件更新时或是同名的目标文件并不存在时,才复制文件;
-v:详细显示命令执行的操作。
实例:
//使用命令行展开复制多个文件到123目录
[root@CentOS-6tmp]# cp /tmp{1,2,3,4,5}.txt/tmp/123
[root@CentOS-6tmp]# ll /tmp/123
total0
-rw-r--r--.1 root root 0 Aug 25 02:00 1.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 2.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 3.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 4.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 5.txt
//复制多个目录和文件到123目录,先使用-t选项指定目标路径,因为复制的是目录,所以需要加-r选项
此时该目录下已有与4.txt5.txt 同名的文件,所以提示是否覆盖
[root@CentOS-6tmp]# cp -r -t /tmp/123 /tmp/abc/tmp/efg /tmp/4.txt /tmp/5.txt
cp:overwrite `/tmp/123/4.txt‘? y
cp:overwrite `/tmp/123/5.txt‘? y
[root@CentOS-6tmp]# ll
total12
drwxr-xr-x.4 root root 4096 Aug 25 02:13 123
-rw-r--r--.1 root root 0 Aug 25 01:56 1.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 2.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 3.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 4.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 5.txt
drwxr-xr-x.2 root root 4096 Aug 25 01:56 abc
drwxr-xr-x.2 root root 4096 Aug 25 01:56 efg
[root@CentOS-6tmp]#
<<========================================【mv】========================================>>
mv命令
功能:
用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。
格式:
mv [OPTION]... [-T] SOURCE DEST
如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
如果目标路径下有已有与源文件同名的文件,则会覆盖目标文件
如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。
mv [OPTION]... SOURCE... DIRECTORY
同时移动多个文件到目标时,则目标一定得是个目录
mv [OPTION]... -t DIRECTORY SOURCE...
同时移动多个目录或文件到目标路径时,使用-t 选项,
表示先指定目标路径,后面跟多个源目录,使用空格分隔
常用选项:
-b:当目标文件存在时,覆盖前,为其创建一个备份
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖;
★mv命令与cp命令的选项大同小异,mv命令默认对目录递归移动所以不需要加-r选项,
实例:
//列出/tmp/123目录下的文件
[root@CentOS-6tmp]# ll 123
total 8
-rw-r--r--.1 root root 0 Aug 25 02:00 1.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 2.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 3.txt
-rw-r--r--. 1 root root 0 Aug 25 01:57 4.txt
-rw-r--r--. 1 root root 0 Aug 25 01:57 5.txt
drwxr-xr-x. 2 root root 4096 Aug 25 01:56 abc
drwxr-xr-x. 2 root root 4096 Aug 25 01:56 efg
//列出/tmp/333目录下的文件
[root@CentOS-6tmp]# ll 333
total8
-rw-r--r--. 1 root root 0 Aug 25 02:49 4.txt
-rw-r--r--. 1 root root 0 Aug 25 02:49 5.txt
drwxr-xr-x. 2 root root 4096 Aug 25 02:49 abc
drwxr-xr-x. 2 root root 4096 Aug 25 02:49 efg
//在/tmp/333目录下已有多个与源文件同名的文件,所以移动是会提示是否覆盖
[root@CentOS-6tmp]# mv 123/* /tmp/333
mv:overwrite `/tmp/333/4.txt‘? y
mv:overwrite `/tmp/333/5.txt‘? y
mv: overwrite`/tmp/333/abc‘? y
mv:overwrite `/tmp/333/efg‘? y
[root@CentOS-6tmp]#
//列出/tmp/333目录下的文件,此处可见,1.txt 2.txt 3.txt 已移动到该目录,
并覆盖了之前已存在的目录或文件
[root@CentOS-6tmp]# ll 333
total 8
-rw-r--r--.1 root root 0 Aug 25 02:00 1.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 2.txt
-rw-r--r--.1 root root 0 Aug 25 02:00 3.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 4.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 5.txt
drwxr-xr-x.2 root root 4096 Aug 25 01:56 abc
drwxr-xr-x.2 root root 4096 Aug 25 01:56 efg
实例2:
//列出/tmp目录下的所有文件
[root@CentOS-6tmp]# ll
total16
drwxr-xr-x.2 root root 4096 Aug 25 02:55 123
-rw-r--r--.1 root root 0 Aug 25 01:56 1.txt
drwxr-xr-x.4 root root 4096 Aug 25 02:55 333
-rw-r--r--.1 root root 0 Aug 25 01:57 4.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 5.txt
drwxr-xr-x.2 root root 4096 Aug 25 01:56 abc
drwxr-xr-x.2 root root 4096 Aug 25 01:56 efg
//此时123目录为空
[root@CentOS-6tmp]# ll 123
total0
//移动多个目录或文件到指定目录时,先用-t选项指定目标路径,后面跟源目录或文件
[root@CentOS-6tmp]# mv -t /tmp/123 /tmp/1.txt 4.txt 5.txt /tmp/abc /tmp/efg /tmp/333
[root@CentOS-6tmp]# ll
total4
drwxr-xr-x.5 root root 4096 Aug 25 03:04 123
//已将/tmp目录下所有文件移动到123目录下
[root@CentOS-6tmp]# ll 123
total12
-rw-r--r--.1 root root 0 Aug 25 01:56 1.txt
drwxr-xr-x.4 root root 4096 Aug 25 02:55 333
-rw-r--r--.1 root root 0 Aug 25 01:57 4.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 5.txt
drwxr-xr-x.2 root root 4096 Aug 25 01:56 abc
drwxr-xr-x.2 root root 4096 Aug 25 01:56 efg
[root@CentOS-6tmp]#
//在源文件跟目标文件处于同一目录的情况下,则对文件进行更名
[root@CentOS-6tmp]# ll
total4
drwxr-xr-x.5 root root 4096 Aug 25 03:04 123
[root@CentOS-6tmp]# mv /tmp/123 /tmp/aaa
[root@CentOS-6tmp]#
[root@CentOS-6tmp]# ll
total4
drwxr-xr-x.5 root root 4096 Aug 25 03:04 aaa
[root@CentOS-6tmp]#
[root@CentOS-6tmp]# ll /tmp/aaa
total12
-rw-r--r--.1 root root 0 Aug 25 01:56 1.txt
drwxr-xr-x.4 root root 4096 Aug 25 02:55 333
-rw-r--r--.1 root root 0 Aug 25 01:57 4.txt
-rw-r--r--.1 root root 0 Aug 25 01:57 5.txt
drwxr-xr-x.2 root root 4096 Aug 25 01:56 abc
drwxr-xr-x.2 root root 4096 Aug 25 01:56 efg
[root@CentOS-6tmp]#
<<========================================【rm】========================================>>
rm命令
功能:
删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。
对于链接文件,只是删除链接文件,而原有文件保持不变。
格式:
rm[OPTION]... FILE...
常用选项:
-d:删除链接文件,源文件不会被删除,但是会改变源文件的inode的links数值;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
--no-preserve-root: 对根目录进行递归操作;
-v:显示指令的详细执行过程。
实例:
//创建文件的硬链接,并删除它,使用stat命令查看文件的inode信息中links数值的变化
[root@CentOS-6tmp]# cp -l /tmp/aaa/1.txt /tmp/yao.txt
[root@CentOS-6tmp]# ll
total4
drwxr-xr-x.5 root root 4096 Aug 25 03:04 aaa
-rw-r--r--.2 root root 0 Aug 25 01:56 yao.txt
[root@CentOS-6tmp]# stat /tmp/aaa/1.txt
File: `/tmp/aaa/1.txt‘
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device:fd00h/64768d Inode: 267339 Links: 2
Access:(0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access:2015-08-25 02:00:31.930005144 +0800
Modify:2015-08-25 01:56:58.166004222 +0800
Change:2015-08-25 03:42:18.026999083 +0800
[root@CentOS-6tmp]# rm -d /tmp/yao.txt
rm:remove regular empty file `/tmp/yao.txt‘? y
[root@CentOS-6tmp]# stat /tmp/aaa/1.txt
File: `/tmp/aaa/1.txt‘
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device:fd00h/64768d Inode: 267339 Links: 1
Access:(0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access:2015-08-25 02:00:31.930005144 +0800
Modify:2015-08-25 01:56:58.166004222 +0800
Change:2015-08-25 03:42:55.053997806 +0800
[root@CentOS-6tmp]#
实例2:
//当前/tmp目录下有文件、目录、软链接等
[root@CentOS-6tmp]# ll
total4
drwxr-xr-x.5 root root 4096 Aug 25 03:04 aaa
lrwxrwxrwx.1 root root 8 Aug 25 03:57 yao ->/tmp/aaa
lrwxrwxrwx.1 root root 14 Aug 25 03:57 yao.txt-> /tmp/aaa/1.txt
//使用-r选项对目录进行递归删除,-f选项强制删除
[root@CentOS-6tmp]# rm -rf /tmp/*
[root@CentOS-6tmp]#
[root@CentOS-6tmp]# ll
total0
[root@CentOS-6tmp]#
★关于对文件或目录创建链接
对文件创建硬链接:cp-l /PATH/TO/Source_FILE /PATH/TO/Destnation_FILE
对文件创建软链接:cp-S /PATH/TO/Source_FILE /PATH/TO/Destnation_FILE
对目录创建软链接:ln-s /PATH/TO/Source_DIR /PATH/TO/Destnation_DIR
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。
所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
【文件查看类命令】
cat、more、less、head、tail
<<========================================【cat】========================================>>
cat命令
功能:
连接文件并打印到标准输出设备上,cat经常用来显示文件的内容
格式:
cat [OPTION]... [FILE]...
常用选项:
-n或--number:由1开始按顺序输出所有行号
-b或--number-nonblank:和-n相似,只不过对于空白行不编号
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行
-E或--show-ends 显示结束符$
-T或--show-tabs 显示TAB键,以 ^I 标记出来
-A或--show-all 显示不可打印符,等同 -vET
实例:
[root@CentOS-6tmp]# cat -nA /etc/fstab
1 $
2 #$
3 # /etc/fstab$
4 # Created by anacondaon Thu Aug 20 03:43:01 2015$
5 #$
6 # Accessiblefilesystems, by reference, are maintained under ‘/dev/disk‘$
7 # See man pagesfstab(5), findfs(8), mount(8) and/or blkid(8) for more info$
8 #$
9 /dev/mapper/vg_yao-lv_root/ ext4 defaults 1 1$
10 UUID=a0720dd6-a3df-4f67-8f0a-0ee11abdc9a3/boot ext4 defaults 1 2$
11 /dev/mapper/vg_yao-lv_swapswap swap defaults 0 0$
12 tmpfs /dev/shm tmpfs defaults 0 0$
13 devpts /dev/pts devpts gid=5,mode=620 0 0$
14 sysfs /sys sysfs defaults 0 0$
15 proc /proc proc defaults 0 0$
[root@CentOS-6tmp]#
★还有个tac命令,就是与cat相反,把文件内容倒序显示
<<========================================【more】========================================>>
more命令
功能:
以全屏幕的方式按页显示文本文件的内容,默认到达文件尾部后自动退出
翻屏方式:
按Space键:向下翻一屏
按b键:向上翻一屏
按Enter键:向下翻一行
常用选项:
-Number FILE 指定每屏显示的行号
+Number FILE 指定数字的的行号开始显示
-s FILE 将多个空行压缩成一行显示
-d 显示翻页有退出提示
<<========================================【less】========================================>>
less命令
功能:
作用与more十分相似,不同的地方就是使用less浏览文档,到达文件尾部的时候默认不退出,按q键退出。
翻屏方式:
按Space键:向下翻一屏
按b键: 向上翻一屏
按Enter键:向下翻一行
按k键: 向上翻一行
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
定位行:
gg:回到第一行
G:到末行
Number G 定位到第xx行
常用选项:
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
文本搜索:
/keyword: 向文件尾部搜索;
?keyword:向文件首部搜索;
n: 搜索下一个匹配的KEYWORD
N: 搜索上一个匹配的KEYWORD
<<========================================【head】========================================>>
head命令
功能:
用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
格式:
head[OPTION]... FILE
常用选项:
-n Number: 指定显示前N行
-c Number: 显示前N个字符
-v: 显示文件名的头信息
实例:
//加-n 选项,只显示指定文件的前5行内容
[root@CentOS-6~]# head -n 5 /etc/rc.d/rc.sysinit
#!/bin/bash
#
#/etc/rc.d/rc.sysinit - run once at boot time
#
#Taken in part from Miquel van Smoorenburg‘s bcheckrc.
[root@CentOS-6~]#
//加了-v 选项,显示文件名的头信息
[root@CentOS-6~]# head -vn 5 /etc/rc.d/rc.sysinit
==> /etc/rc.d/rc.sysinit <==
#!/bin/bash
#
#/etc/rc.d/rc.sysinit - run once at boot time
#
#Taken in part from Miquel van Smoorenburg‘s bcheckrc.
[root@CentOS-6~]#
<<========================================【tail】========================================>>
tail命令
功能:
用于输出文件中的尾部内容,默认在屏幕上显示指定文件的末尾10行。
格式:
tail[OPTION]... FILE
常用选项:
-n: 指定显示后N行
-f follow,跟踪一个文件新追加的内容(常用于监控日志的变化)
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令
-s<秒数>或--sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数(默认是1秒)
【文本处理类命令】
wc、cut、sort、uniq
<<========================================【wc】========================================>>
wc命令
功能:
统计文件的行数、单词数和字符数(word count)
格式:
wc [OPTION]... [FILE]...
常用选项:
-l:统计文件的行数
-w:统计文件的单词数
-c:统计文件的字符数
实例:
//wc命令不加选项则默认统计全部信息,分别为:行数 单词数 字符数
[root@CentOS-6~]# wc /etc/fstab
15 78 775 /etc/fstab
[root@CentOS-6~]# wc -l /etc/fstab
15/etc/fstab
[root@CentOS-6~]#
[root@CentOS-6~]# wc -w /etc/fstab
78 /etc/fstab
[root@CentOS-6~]#
[root@CentOS-6~]# wc -c /etc/fstab
775/etc/fstab
[root@CentOS-6~]#
<<========================================【cut】========================================>>
cut命令
功能:
显示行中的指定部分,删除文件中指定字段。
格式:
cutOPTION... [FILE]...
常用选项:
-d:指定字段的分隔符,默认的字段分隔符为“TAB”
-f:显示指定字段的内容;
实例:
//以冒号作为分隔符,对/etc/passwd文件进行分隔,-f 1 取出分割后的第一列数据,就是用户名。
[root@CentOS-6~]# cut -d: -f 1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
uucp
operator
<<========================================【sort】========================================>>
sort命令
功能:
对文件进行排序,并将排序结果标准输出
格式:
sort[OPTION]... [FILE]...
常用选项:
-n:依照数值的大小排序;
-r:以相反的顺序来排序;
-f: 排序时忽略字符大小写;
-t: 指定分隔符
-k: 指定分隔后进行比较字段
-u: 重复的行,只显示一次;
实例:
//加-t选项,指定以冒号作为分隔符,加-k选项对分隔后的第3列,加-t选项以数值大小排序。
[root@CentOS-6~]# sort -t":" -k3 -n/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
<<========================================【uniq】========================================>>
uniq命令
功能:
用于报告或忽略文件中的重复行,一般与sort命令结合使用。(默认)
格式:
uniq[OPTION]... [INPUT [OUTPUT]]
常用选项:
-c:显示每行重复的次数
-d:仅显示重复过的行
-u:仅显示不重复的行
实例:
//以下是为了测试uniq命令创建的文件内容
[root@CentOS-6tmp]# cat /tmp/test_uniq
what‘sthis?
thisis a book.
thisis a book.
what‘sthat?
thatis a book.
thatis a book.
what‘sthis?
thisis a pencil.
thisis a pencil.
what‘sthat?
thatis a pen.
thatis a pen.
//使用-c选项列出每行重复的次数
[root@CentOS-6tmp]# uniq -c /tmp/test_uniq
1 what‘s this?
2 this is a book.
1 what‘s that?
2 that is a book.
1 what‘s this?
2 this is a pencil.
1 what‘s that?
2 that is a pen.
1
//使用-d选项只显示重复的行
[root@CentOS-6tmp]# uniq -d /tmp/test_uniq
thisis a book.
thatis a book.
thisis a pencil.
thatis a pen.
[root@CentOS-6tmp]#
//使用-u选项只显示没有重复的行
[root@CentOS-6tmp]# uniq -u /tmp/test_uniq
what‘sthis?
what‘sthat?
what‘sthis?
what‘sthat?
原文地址:http://yao3800.blog.51cto.com/1522113/1688112