常用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. EF是啥?【What is Entity Framework?】(EF基础系列2)

    EF产生的背景: 编写ADO.NET访问数据的代码,是沉闷而枯燥的,所以微软提供了一个对象关系映射框架(我们称之为EF),通过EF可以自动帮助我们的程序自动生成相关数据库. Writing and m ...

  2. 发布 Rafy 源码到 GitHub

      最近项目组开始使用 Git 来作为源码管理.我今天就顺便把 Rafy 的源码也迁移到了 github 上,方便大家使用.这是项目的地址:https://github.com/zgynhqf/raf ...

  3. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  4. sealed、new、virtual、abstract与override 趣解

    1. sealed——“断子绝孙” 密封类不能被继承.密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于 方法或属性时,sealed修饰符必须始终与override一起使用. ...

  5. ASP.NET Core开发-如何配置Kestrel 网址Urls

    ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置. 今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls. ...

  6. roleManager与角色管理授权

    总览地址 https://msdn.microsoft.com/zh-cn/library/9ab2fxh0.aspx 其中基本概述是第一篇:了解角色管理 来自 <https://msdn.mi ...

  7. HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法

    [问题] 用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response: resp = (Http ...

  8. 为input输入框添加圆角并去除阴影

    <input type="text" name="bianhao" value="" placeholder="请输入商品编 ...

  9. nodejs:连接数据库SqlServer,mssql模块

    现在的数据库越来越多,如mgdb,我比较常用的是mysql,但有一天做项目需要连接SqlServer,就去找了个方法.找了很多无非就mssql模块和node-sqlserver模块,但node-sql ...

  10. Java动态代理全面分析

    代理模式 解说:给某一个对象提供一个代理,并由代理对象控制对原对象的引用: 代理模式需要以下几个角色: 1  主题:规定代理类和真实对象共同对外暴露的接口: 2  代理类:专门代理真实对象的类: 3 ...