linux 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要變換顏色的時候,要使用參數-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的echo命令, 在shell編程中極爲常用, 在終端下打印變量value的時候也是常常用到的, 因此有必要了解下echo的用法
echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
該命令的一般格式爲: echo [ -n ] 字符串
其中選項n表示輸出文字後不換行;字符串能加引號,也能不加引號。

ECHO命令是大家都熟悉的DOS批處理命令的一條子命令,但它的一些功能和用法也許你並不是全都知道,不信你瞧:

1. 作爲控制批處理命令在執行時是否顯示命令行自身的開關 格式:ECHO [ON|OFF] 如果想關閉“ECHO OFF”命令行自身的顯示,則需要在該命令行前加上“@”。

2. 顯示當前ECHO設置狀態 格式:ECHO

3. 輸出提示信息格式:ECHO信息內容上述是ECHO命令常見的三種用法,也是大家熟悉和會用的,但作爲DOS命令淘金者你還應該知道下面的技巧:

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(換行)

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>

#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");

}

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);

}

else

{

printf("bind successfully");

}

//aga: after successfully binding, begin to listen!

if(listen(socketfd,MAX_CLIENT_NUM)!=0)

{

printf("listen error");

exit(1);

}

else

{

printf("listen successfully");

}

int clientfd;

struct sockaddr_in clientAdd;

//aga: client socket address

char buff[101];

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

{

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 ");

break;

}

}

close(clientfd);

}

close(socketfd);

return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章