cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件。
$ cat filename
2.从键盘创建一个文件。
$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat file1 file2 > file
cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。
范例:
把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt
B. Unix命令cat
这个命令可不是“猫”的意思,而是catenate的缩写。顾名思义,是把东西串起来。
比如:cat file1 file2
就是把文件file1和file2连在一起,然后输出到屏幕上。注意,输出到屏幕上是cat的自定义目的。如果要改变它的输出方向,就必须使用 Unix操作系统系统的输出重定向符">",">"输出重定向符。稍微高级一点的dos用户都知道这个符号。在Unix操作系统里的用法同 Dos的区别不是很大。但比较不同的地方是,Unix操作系统系统将任何的一个外设都认同为一个文件。
所以如果你要将输出重定向到打印机之类的地方,只要写上代表打印机的设备文件名。前一章里我们曾讲过终端机器名,它也是一个文件。
比方我的设备机器 是ttya,而小李的设备机器是ttyb,他想让我把当前目录的内容给他看。那么用这条命令就可以了ls -a-u-F >ttyb。这充分利用了Unix操作系统系统多用户的设计思想。
同样的使用ls -a-u-F>file1就是将当前Unix操作系统目录列表输出到file1中。
又比如:cat file1 file2>file3
就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成 file1+file2 file3
当你用'>'来输出重定向的时候,Unix操作系统马上打开一个空文件来准备存放'>'之前那个文件命令的输出结果。
比如:
cat file1 file2>file3
系统先将file3的内容清空。所以:cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1里的 内容清空了。所以你得到一个错误提示。如果要追加文件内容请使用以下命令:cat file2>>file1,">>"表示追加,而不是先清空file1中的内容。
Unix常用命令cat命令格式参数
命令:cat
使用权限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3
C. 常用命令—Is,cat,mv,touch的使用
Is是List的缩写,表示显示文件目录列表。(只显示非隐藏文件的文件名)
1.1 Is命令语法
参数:
-a:--all的缩写,显示所有文件,包括隐藏文件(以 . 开头的文件)
-L:列出长数据串,显示文件的大小,时间等数据信息。
ls -la:表示显示文件包括的所有信息。
2.1,只查看文件内容:
2.4,利用cat清空文件内容
2.5,利用cat向文件写入内容,并覆盖以前的内容。
步鄹:先查看文件没有内容,向文件写入内容,然后又写入新内容覆盖。
2.6,cat中特殊符号的处理
如果要把特殊符号正常输入到文件里,应在符号前加 \。如\$表转义。
Ls与cat的区别 :都有查看功能,但ls是吧文件里的文件列出来,cat是查看文件里面的内容而不是吧文件的目录列出来。
mv是move的缩写,表示重命名或者移动文件。
命令格式:mv 源文件 目标文件
就是把a.txt的文件名改为A
表示创建文件
命令格式: touch 1.txt
使用地址: explainshell.com
我们经常写各种命令,但是有些命令不明白什么意思,那么你可以使用这个网站工具来查看命令是如何工作的,这样可以避免不必要的错误出现。
例如:ls -la
cat解释:
mv:
D. linux中cat命令的使用方法
linux中cat命令的使用方法linux
cat命令在linux系统中算是比较常用的命令.cat主要有三大功能:
www.shiwu.com
1.一次显示整个文件。$
cat
filename2.从键盘创建一个文件。$
cat
>
filename只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件。$cat
file1
file2
>
filecat具体命令格式为
:
cat
[-AbeEnstTuv]
[--help]
[--version]
fileName说明:把档案串连接后传到基本输出(屏幕或加
>
fileName
到另一个档案)参数:-n
或
–number
由
1
开始对所有输出的行数编号-b
或
–number-nonblank
和
-n
相似,只不过对于空白行不编号-s
或
–squeeze-blank
当遇到有连续两行以上的空白行,就代换为一行的空白行-v
或
–show-nonprinting
www.shiwu.com
范例:cat
-n
linuxfile1
>
linuxfile2
把
linuxfile1
的档案内容加上行号后输入
linuxfile2
这个档案里cat
-b
linuxfile1
linuxfile2
>>
linuxfile3
把
linuxfile1
和
linuxfile2
的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3
里。范例:把
linuxfile1
的档案内容加上行号后输入
linuxfile2
这个档案里cat
-n
linuxfile1
>
linuxfile2把
linuxfile1
和
linuxfile2
的档案内容加上行号(空白行不加)之后将内容附加到
linuxfile3
里。cat
-b
linuxfile1
linuxfile2
>>
linuxfile3cat
/dev/null
>
/etc/test.txt
此为清空/etc/test.txt档案内容本文来自于时光漂流瓶
E. cat命令的13个用法
cat (全称 concatenate) 命令是 Linux/类 Unix 操作系统中最常用的命令之一。cat 命令允许我们创建单个或多个文件、查看文件内容、连接文件和重定向终端或文件中的输出。
在本文中,我们将了解如何方便地使用 cat 命令及其在 Linux 中的示例。
Cat命令的一般语法
下面的例子将显示 /etc/passwd 文件。
在下面的示例中,它将显示 rumenz 和 rumenz1 终端中的文件。
我们将创建一个名为 rumenz2 使用以下命令创建文件。
等待用户输入,键入所需文本,然后按 CTRL+D (按住 Ctrl key 并输入d) 退出。正文将写在rumenz2文件。你可以使用以下命令查看文件的内容cat 命令。
如果有大量的内容,屏幕滚动起来非常快,我们可以使用参数more和less
随着 -n 选项你可以看到一个文件的行号 song.txt 在输出端。
在下面,你可以看到 -e 选项 $ 显示在行尾,也显示在空格中 $ 如果段落之间有任何差距。此选项可用于将多行压缩为一行。
在下面的输出中,我们可以看到TAB空间被' ^I '字符填充。
在下面的例子中,我们有三个文件 rumenz, rumenz1, 和 rumenz2,并能够查看这些文件的内容,如上所示。我们需要将每个文件分开;。
我们可以将文件的标准输出重定向到一个新文件中,否则现有文件中带有 >(大于)符号。仔细,现有的内容rumenz1 将被内容覆盖 rumenz 文件。
在现有文件中附加 >>(双大于)符号。这里的内容rumenz 文件将附加在文件的末尾 rumenz1 文件。
当你将重定向与标准输入一起使用时<(小于符号),它使用文件名 rumenz2 作为命令的输入和输出将显示在终端中。
这将创建一个名为 rumenz3 并且所有输出都将重定向到新创建的文件中。
这将创建一个文件 rumenz4 和输出 cat 命令通过管道进行排序,结果将被重定向到新创建的文件。
F. Linux如何清空文件中的内容
完全清空文件,不留任何东西,也不加任何东西:
cat /dev/null > filename
下面这个命令有个小问题是,它会在文件中写入一个空行“\n":
echo “” >filename
G. cat是dos中的命令吗
是linux中的命令.
cat命令的作用是即可以在文件后面追加文件,也可以在屏幕上打出文件内容,相当于DOS下的命令:COPY file1+file2与type命令.
H. Linux命令操作之cat与cut
本篇主题:详细学习介绍cat和cut命令
cat 是一个 文本文件****查看 和 连接 工具
语法结构:
$ cat [选项] [文件]
参数选项:
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳 字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开
Cat主要有以下2大功能:
1、一次显示(查看)整个文件,cat后面直接接文件名。
$ cat filename
比如以下,查看profile文件, -n参数是显示 行
[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加 $ 符号;
cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;
[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl /etc/profile
cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;
[root@localhost ~]# cat /etc/fstab /etc/profile
cat 对于内容极大的文件来说,可以通过管道 | 传送到more 工具,然后一页一页的查看;
[root@localhost ~]# cat /etc/fstab /etc/profile | more
2、cat 的创建、连接文件功能实例;
cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;
[root@localhost ~]# cat > linuxcat.txt << EOF 注:创建linuxcat.txt文件;
如下图所示:
cat 还有向已存在的文件追加内容的功能;
[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxcat.txt文件追加内容;
(注:这里发现被我写错了, EOF 写成了 OEF ,输出的时候要对应输出,咱不去究其原因)
cat 连接多个文件的内容并且输出到一个新文件中;
命令是:
[root@localhost ~]# cat name1 name2 name3 > name4
注意: 其原理是把三个文件的内容连接起来,然后创建name4文件,并且把几个文件的内容同时写入name4中。 特别值得一提的是,如果您输入到一个已经存在的name4文件,会把name4内容清空。(****见文末例子****)
实例: 假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;[root@localhost ~]# cat sir01.txt
123456
i am testing
[root@localhost ~]# cat sir02.txt
56789
BeiNan Tested
[root@localhost ~]# cat sir03.txt
09876
linuxsir.org testing
我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt**> **sir04.txt
[root@localhost ~]# **more **sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中
[root@localhost ~]# cat sir00.txt
linuxsir.org forever
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt**>> **sir00.txt
[root@localhost ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
警告:我们要知道****>****意思是创建,****>>****是追加。千万不要弄混了。造成失误可不是闹着玩的;
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
语法结构:
cut [-bn] [file] 或
cut [-c] [file] 或
cut [-df] [file]
选项参数:
-b :以 字节 为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以 字符 为单位进行分割。
-d : 自定义分隔符 ,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
使用说明:
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
上一篇中也说到cut的使用。
值得注意的是 '-' 表示的是一个区间, ‘,’ 表示的是单个字符
例子二: 以 ‘:’ 为分隔符,截取PATH环境变量第五个位置的字符
先来看看PATH变量存的内容是什么
[2013012974@teach shell]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/2013012974/bin
截取的结果:
从上面的例子中可以看出,以':'为分隔符,第五个位置是/usr/local/sbin
好了现在清晰了,****Cat**** 和****Cut****你学到了没有?学到了分享一下啊!
I. 关于LINUX CAT命令
楼上的 f1.c清空的原理讲的正确 但是
$ cat < f1.c >> f1.c
会造成死循环 ,瞬间会造成巨大的文件 , 不要误导人了 呵呵
lz 要想明白这个 一定要了解<的到底是干什么的
对于你的命令 cat < f1.c > f1.c 表示
cat 命令以 f1.c 文件作为 stdin,同时以 f1.c 文件作为 stdout
一般的 ,linux中的文件都有一个标记叫做EOF ,End of File ,此标记表示为文本结束符 ,这样一来 f1.c的文件尾部就是EOF , 执行最后一步的重定向时 就将EOF重定向到了 f1.c ,这样 直接将一个EOF重定向到文件的时候表示将文件清空
其实你的命令等效于
$ cat << EOF > f1.c
>EOF
对于stdin来讲 它是忠实的呈现来源的各个字节的
这个例子没什么实用价值 也就是让人了解 < >的功能以及特点, 逻辑上来讲 从一个文件读入在重新输出到文件本身有什么意思呢.
J. linux系统 cat命令 输出重定向 清空
cat命令会检测这种 输入文件 和 输出文件 是同一个文件的错误!
这个命令可以分为两步
cat打开输入文件a.txt,发现输出文件也是a.txt. 于是就什么都不做, 打开a.txt 文件,然后关闭a.txt文件,也就是cat不输出a.txt文件内容到屏幕(STDOUT_FILENO)。
cat a.txt > a.txt 就相当于 > a.txt,我们也可以直接使用 > a.txt 达到清空文件的效果。
cat a.txt > a.txt 相当于 > a.txt 。#直接清空文件
更具体的,看源码去吧。开源的,have a good time!