资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

linux命令行打印耗时,linux 打印时间

linux怎么返回输入命令的状态

主要要看此时在做什么。

创新互联坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。10余年网站建设经验创新互联是成都老牌网站营销服务商,为您提供成都网站建设、做网站、网站设计、html5、网站制作、品牌网站建设、微信小程序开发服务,给众多知名企业提供过好品质的建站服务。

1、如果是在执行很耗时的命令, 可以先Ctrl-Z, 然后bg使其用background模式运行.。这时就可以回到命令状态。

2、如果在命令行下使用gedit, 关闭程序窗口(一般先保存文件),就自动退到命令行界面。

如果在命令行下使用vim,先按下ESC退出编辑模式,然后输入:wq 保存并退出或者q退出或者q!强制退出,从而回到命令行界面。

3、如果是其他的状态可以尝试Ctrl+Alt+F1~F6。

关于Linux:

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

以下是linux命令行,打印出一行代码,如何在Windows中cmd窗口中实现,谢谢大神们了,请求回答

打开cmd然后输入下面代码

set "name=张三"

echo my name is %name%,hah

如何使用linux命令行测试网速

安装speedtest-cli

speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行。它基于Speedtest.net的基础架构来测量网络的上/下行速率。安装speedtest-cli很简单——只需要下载其Python脚本文件。

$ wget

$ chmod a+rx speedtest_cli.py

$ sudo mv speedtest_cli.py /usr/local/bin/speedtest-cli

$ sudo chown root:root /usr/local/bin/speedtest-cli

使用speedtest-cli测试网速

使用speedtest-cli命令也很简单,它不需要任何参数即可工作。

$ speedtest-cli

输入这个命令后,它会自动发现离你最近的Speedtest.net服务器(地理距离),然后打印出测试的网络上/下行速率。

如果你愿意分享测试结果,你可以使用参数“–share”。它将会把你的测试结果上传到Speedtest.net服务器并以图形的方式分享给其他人。

下面是一幅由speedtest-cli自动生成并上传到Speedtest.net的测试结果:

如果你对目前所有可用的Speedtest.net服务器感兴趣,你可以使用参数“–list”。它会打印出所有的Speedtest.net服务器(按照离你的地理距离由近及远排序)。

在上面的列表中,每个服务器的前面都有一个与其对应的ID。如果想使用指定的服务器来测试你的网速,你只需要在speedtest-cli命令后指定其ID即可。例如,如果想使用在Washington DC的服务器,你只需要指定相对应的服务器ID(如935)。

linuxcp命令并显示拷贝时间

在Linux系统里面用到 cp命令复制不能显示文件拷贝的进度,也不能计算还有多长时间文件可以 拷贝结束,现在写一个程序可以显示文件拷贝的进度。

思路:当前目录下面有一个1G大小的bigfile文件

当我在命令行下面输入ls -lh bigfile,我会得到这个文件的详细信息,当然也可以看到文件的大小。

ls -lh bigfile

-rw-rw-r-- 1 nii nii 1000M 7月 13 19:41 bigfile

我们可以用popen函数,把执行之后的结果”-rw-rw-r– 1 nii nii 1000M 7月 13 19:41 bigfil”这串字符串接收下来,我们可以提取出来表示文件大小的那段字符串,比如这个我们可以提取”1000”在用atoi函数,把字符串转换为int型数值1000(不了解popen函数和atoi函数的请自行学习),就可以获得文件大小。

例如我的文件名字叫mycp.c,我执行gcc -o mycp mycp.c生成一个mycp的可执行文件。

接下来我在命令行上输入./mycp bigfile destbigfile把当前目录下面的bigfile文件拷贝为destbigfile,这时我产生一个子进程,子进程负责调用系统的cp命令拷贝,父进程每隔一秒钟,去获取destbigfile、bigfile 文件的大小,就可以知道拷贝的进度,当然也可以获得拷贝的时间,就可以计算出来离拷贝结束还有多长时间。

下面是代码的实现:

#include

#include

#include

#include

#include

#include

#include

/** 得到文件的详细信息 */

int getFileMsg(char* pchCmd,char *pchMsg);

int main(int argc,char* argv[])

{

char szSrcFileMsg[150] = {0};

char szSrcFileSizeMsg[10] = {0};

int nSrcFileSize = 0;

char szSDestFileMsg[150] = {0};

char szDestFileSizeMsg[10] = {0};

int nDestFileSize = 0;

int pid = 0;

/** shell执行的命令 ,在创建文件的时候使用*/

char szExcueCommand[150] = {0};

float fRate = 0;

int nUsedTime = 0;

float nLastTime = 0;

/** 入参必须是三个 */

if (1 == argc)

{

printf("please input the src and des file\n");

return -1;

}

/** 产生子进程 */

pid = fork();

/** 如果是子进程,负责执行复制命令 */

if (0 == pid)

{

sprintf(szExcueCommand,"%s %s %s","cp",argv[1],argv[2]);

printf("%s\n",szExcueCommand);

system(szExcueCommand);

return 0;

}

/** 父进程负责把正在复制的原文件和复制的目标文件的大小计算出来,就可以知道复制的进度,计算频率为1秒一次 */

else

{

/** 获得原文件的大小 */

if (-1 == getFileMsg(argv[1],szSrcFileMsg))

{

printf("get sorce file message failed \n");

return -1;

}

/** 把原文件大小的信息取出来 */

strncpy(szSrcFileSizeMsg,szSrcFileMsg+21,4);

szSrcFileSizeMsg[5] = '\0';

nSrcFileSize = atoi(szSrcFileSizeMsg);

while(1)

{

sleep(1);

nUsedTime ++;

/** 获得目标文件的大小 */

if (-1 == getFileMsg(argv[2],szSDestFileMsg))

{

printf("get dest file message failed \n");

return -1;

}

/** 把原文件大小的信息取出来 */

strncpy(szDestFileSizeMsg,szSDestFileMsg+21,4);

szDestFileSizeMsg[5] = '\0';

nDestFileSize = atoi(szDestFileSizeMsg);

/*** 计算复制的进度 */

fRate = (nDestFileSize * 100) / nSrcFileSize ;

/** 计算剩下的时间 */

nLastTime = ((100 - fRate) * nUsedTime) / fRate;

/** 打印进度条 */

printf("已复制 %.2f %% 还需要 %.1f 秒\n",fRate,nLastTime);

/** 复制完成之后,退出循环 */

if (nSrcFileSize == nDestFileSize)

{

printf("复制完成,耗时 %d 秒\n",nUsedTime);

break;

}

}

}

return 0;

}

/** 得到文件的详细信息 */

int getFileMsg(char* pchCmd,char *pchMsg)

{

FILE *fstream=NULL;

char szBuff[BUFSIZ] = {0};

char szExcueCommand[150] = {"ls -lh"};

sprintf(szExcueCommand,"%s %s",szExcueCommand,pchCmd);

if (NULL==(fstream=popen(szExcueCommand,"r")))

{

perror("execute command failed: ");

return -1;

}

/** 得到命令的结果 */

if (NULL == fgets(szBuff, sizeof(szBuff), fstream))

{

pclose(fstream);

return -1;

}

pclose(fstream);

strcpy(pchMsg,szBuff);

return 0;

}

Linux下执行结果为:

./mycp bigfile destbigfile

cp bigfile destbigfile

已复制 3.00 % 还需要 32.3 秒

已复制 5.00 % 还需要 38.0 秒

已复制 8.00 % 还需要 34.5 秒

已复制 10.00 % 还需要 36.0 秒

已复制 12.00 % 还需要 36.7 秒

已复制 13.00 % 还需要 40.2 秒

已复制 14.00 % 还需要 43.0 秒

已复制 17.00 % 还需要 39.1 秒

已复制 20.00 % 还需要 36.0 秒

已复制 21.00 % 还需要 37.6 秒

已复制 24.00 % 还需要 34.8 秒

已复制 24.00 % 还需要 38.0 秒

已复制 27.00 % 还需要 35.1 秒

已复制 32.00 % 还需要 29.8 秒

已复制 33.00 % 还需要 30.5 秒

已复制 35.00 % 还需要 29.7 秒

已复制 38.00 % 还需要 27.7 秒

已复制 41.00 % 还需要 25.9 秒

已复制 42.00 % 还需要 26.2 秒

已复制 43.00 % 还需要 26.5 秒

已复制 44.00 % 还需要 26.7 秒

已复制 48.00 % 还需要 23.8 秒

已复制 50.00 % 还需要 23.0 秒

已复制 52.00 % 还需要 22.2 秒

已复制 53.00 % 还需要 22.2 秒

已复制 53.00 % 还需要 23.1 秒

已复制 57.00 % 还需要 20.4 秒

已复制 59.00 % 还需要 19.5 秒

已复制 61.00 % 还需要 18.5 秒

已复制 63.00 % 还需要 17.6 秒

已复制 63.00 % 还需要 18.2 秒

已复制 66.00 % 还需要 16.5 秒

已复制 69.00 % 还需要 14.8 秒

已复制 70.00 % 还需要 14.6 秒

已复制 72.00 % 还需要 13.6 秒

已复制 73.00 % 还需要 13.3 秒

已复制 75.00 % 还需要 12.3 秒

已复制 78.00 % 还需要 10.7 秒

已复制 79.00 % 还需要 10.4 秒

已复制 82.00 % 还需要 8.8 秒

已复制 83.00 % 还需要 8.4 秒

已复制 84.00 % 还需要 8.0 秒

已复制 87.00 % 还需要 6.4 秒

已复制 90.00 % 还需要 4.9 秒

已复制 91.00 % 还需要 4.5 秒

已复制 93.00 % 还需要 3.5 秒

已复制 93.00 % 还需要 3.5 秒

已复制 96.00 % 还需要 2.0 秒

已复制 99.00 % 还需要 0.5 秒

已复制 100.00 % 还需要 0.0 秒

复制完成,耗时 50 秒

linux终端下输入history -c后,重开仍然有命令记录???

解决方法

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

2、在linux命令行下输入shell指令:history。

3、最后,按下回车键执行shell指令,此时会看到所有使用过的命令都被逆序打印了出来。

注意事项:

语法:"命令 文件zd" ,这是将文件作为命令输入。"命令 文件" ,这是将文件作为命令输出。比如说:mail -s "test" linux@163.com aa ,就是将文件aa作为信件的内容主题为test给收信人发去。

Linux它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正回式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

Linux命令行操作之sed

sed命令行格式:sed [options] 'command' file(s)

options常用选项:

-n或--quiet或——silent:仅显示script处理后的结果;

-e:以选项中的指定的script来处理输入的文本文件;

-f:以选项中指定的script文件来处理输入的文本文件;

-r∶sed 的动作支援的是延伸型正规表示法的语法;

-i∶直接修改读取的档案内容,而不是由萤幕输出;

-h或--help:显示帮助;

-V或--version:显示版本信息。

Command常用命令:

a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);

c:取代,c 的后面可以接字符串,这些字符串可以取代 n1.n2 之间的行;

d:删除,d 后面通常不接任何字符串;

i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);

p:列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作;

s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用。

实例说明:

新增操作:a命令

sed '/^bird/a\test' file将test追加到 以bird开头的行后面

删除操作:d命令

sed '/^$/d' file #删除空白行;

sed '2d' file #删除第二行;

sed '2.$d' file #删除第2行到最后一行;

sed '$d' file #删除最后一行;

sed '/^bird/'d file #删除所有开头是bird的行;

插入操作:i命令

sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird

替换文本中的字符串:s命令

sed 's/bird/birds/' file #将文本中的bird替换成birds;

sed -i 's/ bird / birds /g' file #将file文件中每一行的第一个bird替换为birds;


本文名称:linux命令行打印耗时,linux 打印时间
分享网址:http://cdkjz.cn/article/hohcho.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220