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