Linux 系统中的一个用于查看文件内容的命令。
它可以将一个或多个文件的内容输出到终端,也可以用于文件的合并操作.
参数:
-n:显示行号。
-b:显示非空行号。
-s:合并空白行。
-E:在每行结尾添加 $ 符号。
-T:将制表符显示为 ^I。
-v:显示不可打印字符。
例子:
cat -nsv data_test.c ##查看单个文件的内容,打印行号;
cat file1.txt file2.txt ##查看多个文件
cat file1.txt file2.txt > file3.txt ##将多个文件的内容合并到一个文件中
注:cat 命令不支持搜索、滚动、翻页等操作,如果需要进行这些操作,可以使用 less 命令。
---tac: 反序输出文件内容.从最后一行开始显示,可以看出 tac 是 cat 的反向显示。
参数:
-b:把间隔字符放在前面
-r:视间隔字符为普通字符
-s: 以字符串作为行分隔符
例子:
cat test.txt; ##正常顺序显示;
tac test.txt; ##反向顺序显示;
tac a.txt b.txt > c.txt; ##文件合并;
---less: 是一个用于查看文本文件内容的实用工具。
它以交互方式显示文件内容,允许用户在文件中上下滚动,搜索文本,以及执行其他操作。
参数:
-N:显示行号。
-i:忽略搜索时的大小写。
-F:在只有一个文件时,不进行分页。
-S:禁止换行显示长行。
-R:显示彩色输出。
-q:禁止显示提示信息。
+<行号>:从指定的行号开始查看文件。
常用的按键包括:
--空格键:向下翻一页。
--Enter键:向下翻一行。
--b键:向上翻一页。
--q键:退出less命令。
--/键:进行搜索操作。
例子:
less file.txt ##打开名为file.txt的文件,并使用less命令进行查看。
less -N file.txt ##以行号的形式显示文件内容,并打开名为file.txt的文件
less -i file.txt ##在搜索时忽略大小写,并打开名为file.txt的文件
less -F file1.txt file2.txt ##命令将同时打开名为file1.txt和file2.txt,并在只有一个文件时不进行分页
less -S file.txt ##禁止换行显示长行,并打开名为file.txt的文件
less -R file.txt ##该命令将以彩色输出的形式显示文件内容,并打开名为file.txt的文件
less +10 file.txt ##打开名为file.txt的文件,并跳转到第10行的位置开始显示
less -NR +30 nm_test.c
---more: 一页一页的显示文件内容,方便使用者逐页阅读
参数:
+n:从笫n行开始显示
-n: 定义一页(一次)大小为n行
+/pattern: 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c: 从顶部清屏,然后显示
-d: 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l: 忽略Ctrl+l(换页)字符
-p: 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s: 把连续的多个空行显示为一行
-u: 把文件内容中的下画线去掉
例子:
more +10 file.txt ##从file.txt的第10行开始显示;
more -10 file.txt ##显示file.txt文件,每屏显示10行;
more +/hello file.txt ##从第一次出现hello单词的位置显示;
ls -l | more -5 ##分屏显示ls 结果,每屏限制为5行;
---vim:文本查看和编辑工具,功能十分强大。具体用法见另一篇文章介绍。
---echo:以用于向标准输出或文件写入一行或多行文本。
.应用比较广泛,功能如下:
1)打印文本,只需要在字符串的引号内写上要输出的文本即可;
2)变量的输出,只需要在引号内使用$符号加上变量名即可;
3)转义字符,可以使用转义字符来输出特殊字符;
4)输出到文件,可以将输出内容重定向到文件中;
5)输出格式控制,用于控制输出的格式。
.参数:
-n:不自动换行,输出字符串后不跟随回车符。
-e:允许输出字符串中的转义字符,如“\n”表示换行符、“\t”表示制表符等
.例子:
echo "Hello world" ##输出一般字符串
name="Linux" ##输出变量值
echo "The operating system is $name"
echo "This is a test" > test.txt ##向文件写入文本
echo -e "line1\nline2\nline3" ##输出多行文本
---head: Linux 系统中的一个用于显示文件开头部分的命令。
它可以显示文件的前几行,默认显示前 10 行,也可以根据需求指定显示的行数。
参数:
-n: 指定要显示的行数。例如,-n 20表示显示前20行。
-c: 指定要显示的字节数。例如,-c 100表示显示前100个字节。
-q: 不显示文件名头部信息。
-v : 总是显示文件名头部信息
例子:
head file.txt ##显示文件的前 10 行
head -n 50 file.txt ##显示文件的前 50 行
head -c 100 file.txt ##显示文件的前100个字节
head file1.txt file2.txt ##显示多个文件的开头部分
cat file.txt | head ##显示前10行内容
head -q file.txt ##静默模式,只显示文件内容而不显示文件名
head -v file.txt ##显示file.txt文件名的头部信息
---tail: 用于查看文件的末尾内容,默认情况下显示文件的后10行。
参数:
-n: 指定要显示的行数。例如,-n 20表示显示后20行。
-c: 指定要显示的字节数。例如,-c 100表示显示最后100个字节。
-q: 不显示文件名尾部信息。
-v: 总是显示文件名尾部信息。
-f: 该选项用于监视文件变化,在文件内容增长时自动显示新增的内容,常用于查看日志文件。
-F: 类似于-f选项,但在文件被切换或重命名时,tail会尝试重新打开文件
例子:
tail file.txt ##显示文件的后10行
tail -n 20 file.txt ##显示文件的后20行
tail -c 100 file.txt ##显示文件的最后100个字节
tail file1.txt file2.txt ##显示多个文件的尾部内容
cat file.txt | tail ##通过管道传递数据并显示尾部内容
tail -f -n 20 file.txt | grep "ERROR" ##监视文件中出错的内容,实时更新后面20行内容;
---history:主要功能是用于显示与管理历史记录。
linux系统默认会记录用户所执行过的所有命令,可以使用history命令查阅它们。
参数:
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件【/root/.bash_history】;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中【/root/.bash_history】;
n:打印最近的n条历史命令
!+字母:调出最近使用一次以此字母开头的命令
!!: 表示最近使用的一次操作的命令
!+数字:表示调出历史记录的几条命令
!-数字:调出最近的几条命令
说明:因为history默认只能保留1000条历史记录的数量,所以若要增加数量到2000,可以通过修改变量$HISTSIZE [root@localhost ~]# echo $HISTSIZE
1000
[root@localhost ~]# export HISTSIZE=2000
[root@localhost ~]# echo $HISTSIZE
2000
例子:
history ##查看最近所有的操作命令;
history 10 ##查看最近10条命令
!! ##使用最近一次使用的命令
!cp ##使用最近一次cp的命令操作;
history -c ##清空历史记录中保存的命令;
---wc:命令常用于计算文件的行数、字数和字节数,日常操作以及脚本编程中经常使用到
参数:
-l: 显示行数;
-w: 显示字数;
-m: 显示字符数;
-c: 显示字节数;
-L: 显示最长行的长度;
-r:可以递归地统计目录中的所有文件
例子:
wc filename.txt ##统计文件中的行数、字数和字节数
wc file1 file2 file3 ##统计多个文件的总行数、字数和字节数
wc -l filename ##统计文件中的行数
wc -w filename ##统计文件中的字数
wc -c filename ##统计文件中的字节数
wc -l -r dir ##递归统计目录中的文件中所有的行数;
---cut: 用于从文件或标准输入中提取字段并输出到标准输出
参数:
-b:仅显示行中指定直接范围的内容;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
-n:与“-b”选项连用,不分割多字节字符;
--complement:补足被选择的字节、字符或字段;
--out-delimiter= 字段分隔符:指定输出内容是的字段分割符;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
例子:
cut -d ":" -f 1 /etc/passwd ##提取passwd文件中的用户名字段;
cut -d ":" -f 1,2 /etc/passwd ##取passwd文件中的第1,2字段
cut -c1-2 /etc/passwd ##取passwd文件中的第1,2个字节
##使用cut提取本地网卡地址
ifconfig eth0 |grep -w inet |cut -d ' ' -f 10
###查看系统本地的用户有多少个
cut -d ":" -f 1 /etc/passwd |wc -l
---sort: sort 命令用于将文本文件内容加以排序。
sort 可针对文本文件的内容,以行为单位来排序
参数:
-b: 忽略每行前面开始出的空格字符。
-c: 检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1
-C: 检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-d: 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f: 排序时,将小写字母视为大写字母。
-i: 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m: 将几个排序好的文件进行合并。
-M: 将前面3个字母依照月份的缩写进行排序。
-n: 依照数值的大小排序。
-u: 意味着是唯一的(unique),输出的结果是去完重了的。
-o: <输出文件> 将排序后的结果存入指定的文件。
-r: 以相反的顺序来排序。
-t: <分隔字符> 指定排序时所用的栏位分隔字符。
例子:
sort -u seq.txt ##输出行中去除重复行
sort -n number.txt ##将数字按字符来排序,1-2-10-11-20
sort -n -r number.txt >number1.txt ##r表示降序,n表示按数字进行排序,20-11-10-2-1
sort -n -r number.txt -o number.txt ##-o表示输出到一个指定文件中;
sort -t ' ' -k1.2 testsort.txt ##从公司英文名称的第二个字母开始进行排序
sort -n -k2 -k3 -u testsort.txt ###这里设置了两层排序优先级的情况下,使用-u就没有删除任何行
---uniq: 删除文件中的重复行。
uniq 命令读取由 InFile 参数指定的标准输入或文件。该命令首先比较相邻的行,
然后除去第二行和该行的后续副本。
参数:
-c:在每列旁边显示该行重复出现的次数。
-d:仅显示重复出现的行列。
-D:打印所有重复行
-f:忽略比较指定的栏位。
-i:比较时忽略大小写差异
-s<字符位置>或=<字符位置>: 忽略比较指定的字符。
-u:仅显示出一次的行列。
-z:以0字节结束行,而不是换行
-w<字符位置>或=<字符位置>: 指定要比较的字符。
例子:
uniq file1 file2 ##要删除文件file1中 的重复行并将其保存到一个名为 file2 的文件中
cat t.log|cut -d '/' -f 3|sort|uniq -c|sort -nr ##经常与sort结合在一起使用,进行排序去掉重复行;
---split:可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
命令格式: split [操作大文件的参数] [大文件] [输出文件的可选参数] [输出文件名]
参数:
-b:值为每一输出档案的大小,单位为 byte。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。
-l:值为每一输出档的行数大小。
-a:指定后缀长度(默认为2)
例子:
split -b 10k data.txt ##分割成大小为10KB的小文件
split -b 10k data.txt -d -a 3 ##使用数字作为后缀,分割文件名为3个字节长度x001;
split -l 100 data.txt ##每100行切割成一个小文件
split -l 100 date.file -d -a 3 temp ##按行来分割,分割文件名为temp开始的3位数字编号,如:temp001
---seq: 一个序列的缩写,主要用来输出序列化的东西。
用法:
--用法:seq [选项]... 尾数
或:seq [选项]... 首数 尾数
或:seq [选项]... 首数 增量 尾数
以指定增量从首数开始打印数字到尾数
参数:
-f: 使用printf 样式的浮点格式
-s: 使用指定字符串分隔数字(默认使用:\n)
-w: 在列前添加0 使得宽度相同【自动补位】
--help 显示此帮助信息并退出
--version 显示版本信息并退出
例子:
seq -s '#' 5 ##指定分隔符为#,横着输出,默认换行输出;
==》1#2#3#4#5
seq -s ' ' 1 2 10 ##以空格作为分格,且输出单数。 【起始】【增量】【结尾】
==》1 3 5 7 9
seq -w 1 10 ##默认补位操作,在列前添加0,使宽度相同;
seq -w -s " " 90 110 ##等宽输出 90 到 110 之间的连续整数
---stat: 命令用于显示指定文件或文件系统的文件状态信息,
包括文件的类型、权限、大小、所属用户和组、访问时间、修改时间、创建时间等详细信息。
它可以用于检查文件的状态以及了解文件的属性
参数:
-c:指定输出格式;
-f:显示文件系统状态而非文件状态;
-t:使用简短格式输出
说明:Linux下的三个时间:
--Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。
--Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
--Change Time:简写为ctime,表示文件的属性状态时间,当文件的属性状态被修改时,更新这个时间。
例子:
stat -c %y filename:显示指定文件的最后访问时间
stat -c %z filename:显示指定文件的最后一次修改时间
stat -c %A filename:显示指定文件的权限
stat -c %n filename:显示指定文件的文件名
stat -c %U filename:显示指定文件的所有者
stat -c %G filename:显示指定文件的所有者组名
stat -c %s filename:显示指定文件的大小
stat -c %t filename:显示指定文件的类型
stat -f /etc/hosts ##显示指定文件所在文件系统的详细信息,包括文件系统的名称、挂载点、文件系统类型、文件系统大小、可用空间等。
stat /etc/hosts
##显示指定文件的三种时间信息;
---man: 用于显示 Linux 操作系统中的手册页(manual page)。
它提供了对 Linux 操作系统中各种命令、函数、库等的详细说明
参数:
-f:显示命令或函数的简短描述。
-k:使用关键字搜索所有与该关键字相关的手册页。
-S:指定手册页的搜索路径。
-a:显示所有与命令或函数相关的手册页。
-w:显示命令或函数的手册页文件路径。
-C:指定手册页的格式。
-l:显示所有手册页的列表。
-p:显示函数的原型。
-s:显示指定节的手册页。
-u:显示未压缩的手册页。
-h:显示帮助信息
-M:指定手册页的源路径。
例子:
man stat ##查看命令的使用说明
man -k keyword ##在所有手册页中搜索关键字
man -a command ##显示所有与命令或函数相关的手册页
man -w command ##显示命令或函数的手册页文件路径
man -p function ##显示函数的原型
man 2 open ##显示指定节的手册页
man -u command ##显示未压缩的手册页
man -M /usr/share/man command ##指定手册页的源路径
---paste: 可用于合并文件的行和列;
参数:
-d: 自定义间隔符,默认为tab
-s:串行处理,非并行
例子:
paste test1.conf test2.conf > test.conf ##将两个文件,按照行合并,并输出到新文件;
##将两个文件按照行合并,同时指定间隔符
paste -d= test1.conf test2.conf > test.conf
#将两个文件串行合并
paste -s test1.conf test2.conf > test.conf