常用linux打印命令

日常使用中或shell脚本中linux终端打印命令有echo和printf。


 echo命令

功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
               -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
   \a 发出警告声;
   \b 删除前一个字符;
   \c 最后不加上换行符号;
   \f 换行但光标仍旧停留在原来的位置;
   \n 换行且光标移至行首;
   \r 光标移至行首,但不换行;
   \t 插入tab;
   \v 与\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
该命令的一般格式为: echo [ -n ] 字符串
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

echo要变换颜色的时候,要使用参数-e

格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"

例如:

echo -e "\033[41;36m something here \033[0m"

其中41的位置代表底色, 36的位置是代表字的颜色

那些ascii code 是对颜色调用的始末.

\033[ ; m …… \033[0m

让字体变为红色并且不停的闪烁

#echo -e "\033[31m \33[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"

或者

#echo -e "\033[31m \033[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"

字背景颜色范围:40----49

40:黑

41:深红

42:绿

43:黄色

44:蓝色

45:紫色

46:深绿

47:白色

字颜色:30-----------39

30:黑

31:红

32:绿

33:黄

34:蓝色

35:紫色

36:深绿

37:白色

===============================================ANSI控制码的说明

\33[0m 关闭所有属性

\33[1m 设置高亮度

\33[4m 下划线

\33[5m 闪烁

\33[7m 反显

\33[8m 消隐

\33[30m -- \33[37m 设置前景色

\33[40m -- \33[47m 设置背景色

\33[nA 光标上移n行

\33[nB 光标下移n行

\33[nC 光标右移n行

\33[nD 光标左移n行

\33[y;xH设置光标位置

\33[2J 清屏

\33[K 清除从光标到行尾的内容

\33[s 保存光标位置

\33[u 恢复光标位置

\33[?25l 隐藏光标

\33[?25h 显示光标

或参考这篇博客,也写的不错:

Linux的shell中echo改变输出显示样式 - 生活费 - 博客园
http://www.cnblogs.com/276815076/archive/2011/05/11/2043367.html


printf命令

Linux提供一个功能更强大,更灵活的打印命令printf。printf和C语言的使用方式类似。和echo不一样,它不会在最后自动加上换行,需要写入命令中。例如printf "Hello, world/n"。printf的命令格式如下:

printf format-string [arguments]

  例子为:printf "%s, %s/n" hello world。如果格式需要的参数比后面给出的多,超出的部分为0或者null。格式如下。

%c:ASCII字符,如果参数给出字符串,则打印第一个字符 
%d:10进制整数 
%i:同%d 
%e:浮点格式([-]d.精度[+-]dd) 
%E:浮点格式([-]d.精度E[+-]dd) 
%f:浮点格式([-]ddd.precision) 
%g:%e或者%f的转换,如果后尾为0,则删除它们 
%G:%E或者%f的转换,如果后尾为0,则删除它们 
%o:8进制 
%s:字符串 
%u:非零正整数 
%x:十六进制 
%X:非零正数,16进制,使用A-F表示10-15 
%%:表示字符"%"

  如果需要限定输出的宽度,格式为%flags width.precision format-specifier,width是整数,右边对齐,如果需要左边对齐,在前面加“-”,例如"%-20s"表示从左边开始对齐,宽度为20,如果字符串长度少于20,通过空格补齐。precision在浮点值中提供四舍五入。例如%5.6G,长度为5,精度为6。精度是可选的。长度和精度的值可以参数中指定,例如printf "%*.*G/n" 5 6 $myvalue。长度指显示中占的字符长度,与字符长度的同义。如果长度比实际的少,例如实际字符长度更大或者所要求的精度更大,则显示按实际长度。

%d, %I, %o, %u, %x, %X:在里面使用精度,表示最小显示的数字。如果显示的数字比需求少,则补充0。缺省值为1. 
%e, %E:在里面使用精度,表示最小显示的数字。如果显示的数字比需求少,在小数点后面补充0。缺省值为10.精度度为0经隐藏小数点。 
%f:在这里的精度,表示小数点后面的数字的数目。 
%g, %G:这里的精度,表示最大的有效数字的数目。 
%s:这里的精度,表示最大的字符数目。

  在前面,介绍了”-“作为左对齐,下面介绍这些特殊符号

-:左对齐 
space:正数前面加空格,负数前面加符号,例如12.12,|% f|,显示| 12.120000|,注意前面留了一个空格。例如-12.12,|% f|,显示|-12.120000| 
+:对于数码给予正负号。 
#:给出另一种格式:

  • %o以8进制显示整数,而%#o则在前面加上零,表明是八进制,例如12,显示014
  • %x或者%X以16进制的方式显示整数,而%#x或者%#X,在16进制的整数前面加上0x或者0X来表示,例如12,显示0XC
  • %#e,%#E, %#f,将只以十进制显示
  • %#g,%#G,将不删除最后无关的补齐0,例如12.1200,将全部显示,而不是12.12。

0:对于数目,不使用空格,而使用0来作为补齐。

  介绍两个特别的字符显示格式%b和%q。

%b:表示解析字符串的特殊的字符,包括/n等等。例如printf "%s/n" 'hello/nworld',显示hello/nworld,要将/n作为换行符,则需要用printf "%b/n" 'hello/nworld' 。

%q:printf "%q/n" "greetings to the world"显示为greetings/ to/ the/ world,可以作为shell的输入。

写在后面的小笔记:

有时候想在shell代码中写个提示,即打印一个命令的执行结果,例如打印“系统中oracle的进程个数是:135个”这句话:

[aaa@cc_svr ~]$ echo “系统中oracle的进程个数是:$(ps -ef|wc -l)个”
“系统中oracle的进程个数是:135个”
[aaa@cc_svr ~]$ echo "系统中oracle的进程个数是:`ps -ef|wc -l` 个"
系统中oracle的进程个数是:135 个
[aaa@cc_svr ~]$ echo -n "系统中oracle的进程个数是:";echo -n `ps -ef|wc -l`;echo "个";
系统中oracle的进程个数是:135个
[aaa@cc_svr ~]$

在echo中的命令替换部分加上双“`”(~键)号,即可执行语句里面的命令部分。

借助echo -n不换行,将换行的输入连成一句话,也可以使用printf变量输出。

Linux终端打印命令使用介绍的更多相关文章

  1. Linux中systemctl命令详细介绍

    Linux Systemctl是一个系统管理守护进程.工具和库的集合,用于取代System V.service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器.通过Syst ...

  2. linux下top命令详细介绍

    linux下top命令详细介绍 top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu.内存的使用)占用状况,top命令的执行结果是一个动态显 ...

  3. Linux培训教程 linux中nl命令使用介绍

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...

  4. Linux下VI命令详细介绍

       vi 是"Visual Interface" 的简称,它在Linux 上的地位就仿佛Edit 程序在DOS上一样.它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且 ...

  5. linux终端自定义命令的别名

    alias : 给某个命令定义别名. 如:alias gpush='Git push origin HEAD:refs/for/master'这样在终端中,只需要输入 gpush 就ok了.但是只是这 ...

  6. Linux 终端 Bash 常用快捷键介绍及经验

    1. 最重要的自动补全 命令 解释 Tab 自动补全 不用多说,自动补全可以节省大量时间 2. 编辑跳转 命令 解释 Ctrl + A 跳转到当前行首 Ctrl + E 跳转到当前行末 Alt + F ...

  7. linux终端常用命令

    常用的信息显示命令 命令#pwd 用于在屏幕上输出当前的工作目录. 命令#stat 用于显示指定文件的相关信息. 命令#uname -a 用于显示操作系统信息. 命令#hostname 用于显示当前本 ...

  8. Linux终端常用命令(一)

    基本操作 展示全部的环境变量 export 搜索可执行文件.源文件 whereis ls 在环境变量中搜索可执行文件,并打印完整路径 which ls 展示用户命令,系统调用.库函数等 whatis ...

  9. linux中ip命令使用介绍

    ifconfig是CentOS 5.6系统中经典的配置网络的命令,但是到了CentOS 7的时候,命令就变成了ip了,我们也要学习,我们也要与时俱进.跟随高手一起学习 查看链路 ip link sho ...

随机推荐

  1. 利用Swashbuckle生成Web API Help Pages

    利用Swashbuckle生成Web API Help Pages 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: ...

  2. 1.什么是Code First(EF Code First 系列)

    EF4.1中开始支持Code First .这种方式在领域设计模式中非常有用.使用Code First模式,你可以专注于领域设计,根据需要,为你一个领域的对象创建类集合,而不是首先来设计数据库,然后来 ...

  3. 谈I/O模型

    一个IO操作涉及两个系统对象: 调用这个IO的用户Process/Thread 系统内核 - System Kernel 一个具体的Read操作包括两个阶段: 内核等待数据准备就绪:Waiting f ...

  4. Hibernate-chapter two

    又见面啦!!!经过上一章的学习,我们大概对Hibernate框架有所了解.接下来进入我们的第二阶段——实战! ======准备数据库====== 这里使用MySQL作为示范. 创建一个名为Hibern ...

  5. (Spring4 json入门)Spring4+SpringMVC+页面数据发送与接收(json格式)

    jar包(Maven仓库): Spring4 jar包(Maven仓库): 在测试过程中我查看了网上的一些教程,但是那些教程都是在Spring3环境下的,Spring3和Spring4解析json需要 ...

  6. CSS制作凹环特效

    就是在地面上打凿出凹的圆环效果,利用linear-gradient线性渐变增强内环质感,再用伪类after元素设置中心圆凸块的位置以及大小与跟内环之间的阴影度,然后设置内环的颜色就行了:第四个环上面的 ...

  7. 一次部署HTTPS的相关事件引发的思考

    前言: 上周五快要下班的时候,突然收到通知客户希望了解一下部署HTTPS的流程,这种事情谁听了都会有几分诧异的.因为这件事虽然和工作有一定的相关度,但平时不会走这个方向,实际上也较少接触.此外,客户手 ...

  8. RSA算法及其在iOS中的使用

    因为项目中需要传输用户密码,为了安全需要用RSA加密,所以就学习了下RSA加密在iOS中的应用. 关于RSA的历史及原理,下面的两篇文章讲的很清楚了:  http://www.ruanyifeng.c ...

  9. Android Studio添加aar

    1.把aar复制到项目中的 libs 里面 2.在module 里面的build.gradle 的根目录添加 repositories{ flatDir { dirs 'libs' } } 3.在mo ...

  10. React Native常用组件Image使用

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...