Linux 显示文件内容命令

1.echo

#显示你要输出的结果,创建新文件,向文件中写入内容,给输出的结果添加颜色

选项:
-n      #不显示换行符
-e      #支持特殊字符
案例:
#显示特殊字符

[root@qls ~]# echo  hello world
hello world
[root@qls ~]# echo -e  "hello\nworld"           #\n换行符
hello
world
[root@qls ~]# echo -e  "hello\tworld"           #\t  tab键
hello   world

#打印变量
[root@qls ~]# echo $PS1
\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\$
[root@qls ~]# echo $USER
root

#创建新文件,并写入内容到文件中           
[root@qls ~]# echo  hello world  > test.txt         #   >   标准输出重定向,覆盖源文件内容
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 12 Dec  2 18:24 test.txt

[root@qls ~]# cat test.txt 
123
[root@qls ~]# echo  456 >>  test.txt                # >>   标准输出追加重定向,将内容追加到文件的底部
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 8 Dec  2 18:28 test.txt
[root@qls ~]# cat test.txt 
123
456

[root@qls ~]# echo  $USER       #打印变量
root
[root@qls ~]# echo  '$USER'     #强引用,所见即所得
$USER
[root@qls ~]# echo  "$USER"     #弱引用,所见即所得,会解析变量
root
[root@qls ~]# echo {1..5}       #所见即所得,支持通配符,会解析变量
1 2 3 4 5
[root@qls ~]# echo '{1..5}'
{1..5}
[root@qls ~]# echo "{1..5}"
{1..5}
[root@qls ~]# alias name=hostname
[root@qls ~]# 
[root@qls ~]# name
qls
[root@qls ~]# alias name=hostname -I        #不加引号,如果定义的值出现空格,不会看做是一个整体
-bash: alias: -I: not found
[root@qls ~]# alias name='hostname -I'
[root@qls ~]# name
10.0.0.100 


单双引号及不加引号的区别

不加引号:   #所见即所得,支持通配符,会解析变量,如果定义的值出现空格,不会看做是一个整体

单引号:    #强引用,所见即所得

双引号:    #弱引用,所见即所得,会解析变量

反引号:    #``  会优先执行反引号里面的命令,将命令的输出结果交给外面的命令,``里面必须是命令, === $()

[root@qls ~]# echo  `hostname`
qls
[root@qls ~]# echo $(hostname)
qls

echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"

[root@oldboy ~]#  echo -e "     好湿\n江山风景美如画;\n本想吟诗赞天下。\n奈何自己没文化;\n一句卧槽浪好大。"
     好湿
江山风景美如画;
本想吟诗赞天下。
奈何自己没文化;
一句卧槽浪好大。

2.cat

#查看文件内容,合并多个文件,创建新文件及编辑文件

选项:
-n      #给查看结果添加行号
-A      #给查看结果行尾巴添加一个标识符
案例:
[root@oldboy ~]# cat  test.txt 
123
456
[root@oldboy ~]# cat -n  test.txt
     1  123
     2  456
[root@oldboy ~]# cat -A test.txt
123$
456$
[root@oldboy ~]# echo  '123456 '  >>test.txt
[root@oldboy ~]# cat test.txt
123
456
123456 
[root@oldboy ~]# cat -A  test.txt 
123$
456$
123456 $

#合并多个文件

[root@oldboy ~]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@oldboy ~]# cat test.txt 
123
456
123456 
[root@oldboy ~]# cat hosts  test.txt 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
123
456
123456 
[root@oldboy ~]# cat hosts  test.txt  >test.log
[root@oldboy ~]# cat test.log 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
123
456
123456 

#创建一个文件及编辑文件
[root@oldboy ~]# cat >file.txt<<EOF
> oldboy
> 123456
> olfgirl
> EOF
[root@oldboy ~]# cat file.txt 
oldboy
123456
olfgirl
[root@oldboy ~]# cat >>file.txt<<eof
> test
> eof
[root@oldboy ~]# cat file.txt 
oldboy
123456
olfgirl
test

3.tac

#倒顺显示文件内容,即查看结果的首行为文件的最后一行

案例:
[root@oldboy ~]# cat file.txt 
oldboy
123456
oldgirl
test
[root@oldboy ~]# tac file.txt 
test
oldgirl
123456
oldboy

4.more

#分页显示文件内容,文件显示完成自动退出

选项:
-n      #n表示数字,指定一页显示多少行
+n      #指定从多少行开始显示
[root@oldboy lianxi]# more -10 services 
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
--More--(0%)

    内部命令(分页显示过程中使用)

        空格/f        #向下翻页
        b             #向上翻页
        回车键         #向下翻一行
        =             #显示当前光标所在的行数
        /             #搜索,不会高亮显示
            n           #向下查找
        q             #退出
        h             #帮助信息

5.less

#分页显示文件内容,文件显示完成不退出,需手动退出

选项:
-i      #分页显示搜索时,不区分大小写
-N      #给分页显示的内容,添加行号

内部命令(分页显示过程中使用)
    空格/f        #向下翻页
    b           #向上翻页
    回车          #向下翻一行
    =           #显示当前光标所在位置的行数
    eg: eg: services lines 1-25/11176 byte 1116/670293 0%  (press RETURN)
    /           #搜索内容,高亮显示
            n       #向下搜索
            N       #向上搜索
    q           #退出

6.head

#显示文件头部信息,默认显示前十行

选项:
-n      #取消默认显示,指定显示的行数
-c      3指定显示文件的前几个字符(不显示换行符)
案例:
[root@oldboy ~]# head  services 
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
[root@oldboy ~]# head  -n 1 services 
# /etc/services:
[root@oldboy ~]# head -1 services 
# /etc/services:
[root@oldboy ~]# head -2 services 
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $

[root@oldboy ~]# head -c 5 services             #显示文件的前5个字符
# /et[root@oldboy ~]# 

7.tail

#显示文件尾部信息,默认显示后十行

选项:
-n      #取消默认输出,指定显示多少行,后面跟数字
-c      #显示文件最后几个字符
-f      #实时查看文件内容
-F      #实时查看文件内容,当文件不存在时,会一直尝试读取
案例:
[root@oldboy ~]# tail  services
3gpp-cbsp       48049/tcp               # 3GPP Cell Broadcast Service Protocol
isnetserv       48128/tcp               # Image Systems Network Services
isnetserv       48128/udp               # Image Systems Network Services
blp5            48129/tcp               # Bloomberg locator
blp5            48129/udp               # Bloomberg locator
com-bardac-dw   48556/tcp               # com-bardac-dw
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker
[root@oldboy ~]# tail  -n 1 services 
matahari        49000/tcp               # Matahari Broker
[root@oldboy ~]# tail  -1   services 
matahari        49000/tcp               # Matahari Broker
[root@oldboy ~]# cat -n services  | tail -1  
 11176  matahari        49000/tcp               # Matahari Broker

|       #管道,将管道前面的命令的输出结果交给管道后面的命令进行处理

[root@oldboy ~]# tail -c5  services         #显示最后5个字符,
oker                #最后有一个换行符


[root@oldboy ~]# tail  -f  test.log         #实时的查看文件的更新
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
123
456
123456 



123

[root@oldboy ~]# tail  -20f  /var/log/messages      #指定从最后的20行内容开始显示

[root@oldboy ~]# tail  -F  file.log     #会实时的查看文件内容的更新,文件不存在时,会一直尝试读取,直到文件存在或者手动退出

tail: cannot open ‘file.log’ for reading: No such file or directory
tail: ‘file.log’ has appeared;  following end of new file
123
^C

8.tailf

#实时查看文件内容,默认显示后十行,当文件未更新时,不会读取磁盘,减少I/O读写

选项:
-n      #取消默认显示,指定显示行数
案例:
[root@oldboy ~]# tailf  /var/log/messages       

[root@oldboy ~]# tailf -20   /var/log/messages
点赞

发表回复