linux echo指令学习



linux echo指令学习
 
功能说明:显示文字。
 
语 法:echo [-ne][字符串] 或 echo [--help][--version]
  www.2cto.com  
补充说明:echo默认会将结果字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
 
参 数:
-n 不要在最后自动换行
 
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
 
\a 发出警告声;
 
\b 删除前一个字符;
 
\c 最后不加上换行符号;
 
\f 换行但光标仍旧停留在原来的位置;
 
\n 换行且光标移至行首;
  www.2cto.com  
\r 光标移至行首,但不换行;
 
\t 插入tab;
 
\v 与\f相同;
 
\\ 插入\字符;
 
\nnn 插入nnn(八进制)所代表的ASCII字符;
 
--help 显示帮助
 
--version 显示版本信息
 
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"
  www.2cto.com  
或者
 
#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控制码的说明
  www.2cto.com  
\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 显示光标
  www.2cto.com  
Linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。 
该命令的一般格式为: echo [ -n ] 字符串 
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。
 
ECHO命令是大家都熟悉的DOS批处理命令的一条子命令,但它的一些功能和用法也许你并不是全都知道,不信你瞧:
 
1. 作为控制批处理命令在执行时是否显示命令行自身的开关 格式:ECHO [ON|OFF] 如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”。
 
2. 显示当前ECHO设置状态 格式:ECHO
 
3. 输出提示信息格式:ECHO信息内容上述是ECHO命令常见的三种用法,也是大家熟悉和会用的,但作为DOS命令淘金者你还应该知道下面的技巧:
  www.2cto.com  
4. 关闭DOS命令提示符 在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出现。
 
5. 输出空行,即相当于输入一个回车格式:ECHO.值得注意的是命令行中的“.”要紧跟在ECHO后面中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;”/[/]+等任一符号替代。在下面的例子中ECHO.输出的回车,经DOS管道转向作为TIME命令的输入,即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态: C:〉ECHO.|TIME ECHO命令输出空行的另一个应用实例是:将ECHO.加在自动批处理文件中,使原本在屏幕下方显示的提示画面,出现在屏幕上方。
 
6. 答复命令中的提问格式:ECHO答复语|命令文件名上述格式可以用于简化一些需要人机对话的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,它是通过DOS管道命令把ECHO命令输出的预置答复语作为人机对话命令的输入。下面的例子就相当于在调用的命令出现人机对话时输入“Y”回车: C:〉ECHO Y|CHKDSK/F C:〉ECHO Y|DEL A :*.*
 
7. 建立新文件或增加文件内容 格式:ECHO 文件内容>文件名 ECHO 文件内容>>文件名 例如:C:〉ECHO @ECHO OFF〉AUTOEXEC.BAT建立自动批处理文件 C:〉ECHO C:/CPAV/BOOTSAFE〉〉AUTOEXEC.BAT向自动批处理文件中追加内容 C:TYPE AUTOEXEC.BAT显示该自动批处理文件 @ECHO OFF C:/CPAV/BOOTSAFE
 
8. 向打印机输出打印内容或打印控制码 格式:ECHO 打印机控制码>PRN ECHO 打印内容>PRN 下面的例子是向M-1724打印机输入打印控制码。<Alt>156是按住Alt键在小键盘键入156,类似情况依此类推: C:〉ECHO 〈Alt〉+156〈Alt〉+42〈Alt〉+116〉PRN(输入下划线命令FS*t) C:〉ECHO 〈Alt〉+155@〉PRN(输入初始化命令ESC@) C:〉ECHO.〉PRN(换行)
  www.2cto.com  
9. 使喇叭鸣响 C:〉ECHO ^G “^G”是用Ctrl+G或Alt+007输入,输入多个^G可以产生多声鸣响。使用方法是直接将其加入批处理文件中或做成批处理文件调用。
 
10.执行ESC控制序列修改屏幕和键盘设置我们知道DOS的设备驱动程序ANSI.SYS提供了一套用来修改屏幕和键盘设置的ESC控制序列。如执行下述内容的批处理程序可以把功能键F12定义为DOS命令“DIR/W”,并把屏幕颜色修改为白色字符蓝色背景。 @ECHO”←[0;134;”DIR/W”;13p @ECHO”←[1;37;44m (注:批处理文件中“←”字符的输入方法是在编辑状态下按Alt中小键盘上的27)
-------------------------------------------------------------------------------------------------------------------------------------------
初识Shell socket
 
#include<netdb.h>
 
#include<sys/socket.h>
 
#include<errno.h>
  www.2cto.com  
#include<stdio.h>
 
#include<unistd.h>
 
#define ECHO_PORT 8080
 
#define MAX_CLIENT_NUM 10
 
int main()
 
{
 
int socketfd;
 
socketfd = socket (AF_INET, SOCK_STREAM, 0);
 
//aga:create server socket for listening
 
if ( socketfd == -1)
 
{
 
printf("errno=%d",errno);
 
exit(1);
 
}
 
else
 
{
 
printf("socket create successfully");
  www.2cto.com  
}
 
struct sockaddr_in sa;
 
bzero(&sa, sizeof(sa));
 
sa.sin_family = AF_INET;
 
sa.sin_port = htons(ECHO_PORT);
 
sa.sin_addr.s_addr = htons(INADDR_ANY);
 
//aga: set socket port and address
 
bzero(&(sa.sin_zero),8);
 
if( bind( socketfd, (struct sockaddr *)&sa, sizeof(sa) )!=0)
 
//aga: bind socket with socket address
 
{
 
printf("bind failed");
 
printf("errno=%d",errno);
  www.2cto.com  
}
 
else
 
{
 
printf("bind successfully");
 
}
 
//aga: after successfully binding, begin to listen!
 
if(listen(socketfd,MAX_CLIENT_NUM)!=0)
 
{
 
printf("listen error");
 
exit(1);
  www.2cto.com  
}
 
else
 
{
 
printf("listen successfully");
 
}
 
int clientfd;
 
struct sockaddr_in clientAdd;
 
//aga: client socket address
 
char buff[101];
  www.2cto.com  
socklen_t len = sizeof(clientAdd);
 
int closing=0;
 
while( closing == 0 && ( clientfd= accept( socketfd,(struct sockaddr*)&clientAdd,&len))>0)
 
//aga: listening socket waits for accepting client connection
 
{
 
send(clientfd,"connect successfully!",21,0);
 
int n;
 
while( (n=recv( clientfd,buff,100,0))>0)
 
//aga: after connection established, server begins to recvive msg
  www.2cto.com  
{
 
printf("number of receive bytes = %d ",n);
 
write ( STDOUT_FILENO, buff, n);
 
send( clientfd,buff,n,0);
 
buff[n]=' ';
 
if( strcmp(buff,"quit")==0)
 
{
 
break;
 
}
 
else if( strcmp(buff, "close")==0)
 
{
 
closing =1;
 
printf("server is closing ");
  www.2cto.com  
break;
 
}
 
}
 
close(clientfd);
 
}
 
close(socketfd);
 
return 0;
 
}
 

相关内容

    暂无相关文章