精华内容
下载资源
问答
  • 当我们希望在终端中的某一行显示进度或者显示动态的时间,这个时候我们就需要刷新终端屏幕了,即是在同一个位置显示不同的内容。当然这里是个简单的应用,以后可以更复杂。  下面这段代码,可以在一行中每隔一秒...

    转载自http://blog.csdn.net/xiaowall/article/details/8299985

    当我们希望在终端中的某一行显示进度或者显示动态的时间,这个时候我们就需要刷新终端屏幕了,即是在同一个位置显示不同的内容。当然这里是个简单的应用,以后可以更复杂。

           下面这段代码,可以在一行中每隔一秒显示以下数字。

    1. #include <stdio.h>  
    2. #include <unistd.h>  
    3.   
    4. int main(void)  
    5. {  
    6.     int i = 0;  
    7.     while(1){  
    8.         printf("%d\n", i);  
    9.         printf("\033[1A"); //先回到上一行  
    10.         printf("\033[K");  //清除该行  
    11.         i++;  
    12.         sleep(1);  
    13.     }  
    14.     return 0;  

    以下简单的说明:
                  \e[ 或 \033[ 是 CSI,用来操作屏幕的。
                  \e[K 表示从光标当前位置起删除到 EOL (行尾)
                  \e[NX 表示将光标往X方向移动N,X = A(上) / B(下) / C(左) / D(右),\e[1A 就是把光标向上移动1行

          这样就可以实现简单的刷新终端的功能了。当然在windows下有graphics.h头文件,在linux下有curses.h 来操作终端屏幕。以后学习了。
    展开全文
  • linux终端快捷键

    千次阅读 2019-03-10 19:26:19
    Linux命令行编辑快捷键 调用历史命令: history 显示命令历史列表 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !-n:p - 打印上一条命令(不执行) !?string? 执行含有string字符串的最新命令 ls ...

    Linux命令行编辑快捷键

    调用历史命令:

    Ctrl+r: 开始增量历史命令搜索,可以按照关键字查自己用过哪些命令,输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令
    Ctrl+s 与Ctrl+r类似,只是正向检索
    history 显示命令历史列表
    !num 执行命令历史列表的第num条命令
    !! 执行上一条命令
     !-n:p - 打印上一条命令(不执行)
    !?string? 执行含有string字符串的最新命令
    ls !$ 执行命令ls,并以上一条命令的参数为其参数
    ↑(Ctrl+p) 显示上一条命令
    ↓(Ctrl+n) 显示下一条命令
    
    Alt+< 历史列表第一项
    Alt+> 历史列表最后一项
    

    移动:

    Alt+f 光标向后移动一个单词
    Alt+b 光标向前移动一个单词
    Ctrl+a 移动到当前行的开头
    Ctrl+e 移动到当前行的结尾
    Esc+b 移动到当前单词的开头
    Esc+f 移动到当前单词的结尾
    Ctrl+f 光标向后移动一个字符,相当与<-
    Ctrl+b 光标向前移动一个字符,相当与->
    

    复制粘贴

      在终端下:
              复制命令:Ctrl + Shift + C  组合键.    
              粘贴命令:Ctrl + Shift + V  组合键.
              或:      Ctrl + Insert
                       Shift + Insert
    

    剪切

    Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)
    Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身)
    Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符)
    Alt+d 剪切光标之后的词
    

    删除

    Ctrl+l 清屏
    Ctrl + W 清除光标之前一个单词
    Ctrl + K - 清除光标到行尾的字符
    Ctrl+U: 删除光标前面的部分
    Ctrl+y 粘贴刚才所删除的字符
    Ctrl+d 删除光标所在处字符
    Ctrl+h 删除光标所在处前一个字符
    Esc+w 删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符)
    

    转换

    Ctrl+t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符
    Alt+t 交换当前与以前单词的位置
    Alt+u 把当前词转化为大写
    Alt+l 把当前词转化为小写
    Alt+c 把当前词汇变成首字符大写
    Ctrl+v 插入特殊字符,如Ctrl+v+Tab加入Tab字符键
    Esc+t 颠倒光标所在处及其相邻单词的位置
    Ctrl+(x u) 按住Ctrl的同时再先后按x和u,撤销刚才的操作
    

    其他

    [Ctrl] + [d] = 从 shell 提示中注销(并关闭)。使用该快捷键,你就不必键入 exit 或 logout 
    Ctrl+c 终止当前正在运行的程序
    [Ctrl] + [l] = 清除终端。该快捷操作与在命令行键入 clear 作用相同
    Ctrl+s 停止向屏幕输出,挂起当前shell
    Ctrl+q 重新激活向屏幕输出,重新启用挂起的shell
    Ctrl-Z: 暂停程序
    
    [Ctrl] + [Alt] + [Fn] = 切换屏幕。 [Ctrl] + [Alt] + 功能键之一会显示一个新屏幕。根据默认设置,从 [F1] 到 [F6] 是 shell 提示屏幕, [F7] 是图形化屏幕。
    

    [Ctrl] + [Alt] + [Backspace] = 杀死你当前的 X 会话。杀死图形化桌面会话,把你返回到登录屏幕。如果正常退出步骤不起作用,你可以使用这种方法。
    [Ctrl] + [Alt] + [Delete] = 关机和重新引导 Red Hat Linux。关闭你当前的会话然后重新引导 OS。只有在正常关机步骤不起作用时才使用这种方法。

    [Alt] + [Tab] = 在图形化桌面环境中切换任务。如果你同时打开了不止一个应用程序,你可以使用 [Alt] + [Tab] 来在打开的任务和应用程序间切换。

    [鼠标中间键] = 粘贴突出显示的文本。使用鼠标左键来突出显示文本。把光标指向你想粘贴文本的地方。点击鼠标中间键来粘贴它。在两键鼠标系统中,如果你把鼠标配置成模拟第三键,你可以同时点击鼠标的左右两键来执行粘贴。
    [Tab] =命令行自动补全。使用 shell 提示时可使用这一命令。键入命令或文件名的前几个字符,然后按 [Tab] 键,它会自动补全命令或显示匹配你键入字符的所有命令。
    [向上] 和 [向下] 箭头 = 显示命令历史。当你使用 shell 提示时,按 [向上] 或 [向下] 箭头来前后查看你在当前目录下键入的命令历史。当你看到你想使用的命令时,按 [Enter] 键。
    clear = 清除 shell 提示屏幕。在命令行下键入它会清除所有这个 shell 提示屏幕中显示的数据。
    exit = 注销。在 shell 提示中键入它会注销当前的用户或根用户帐号。
    history = 显示命令历史。在 shell 提示中键入它来显示你所键入的被编号的前 1000 个命令。要显示较短的命令历史,键入 history f之后,空一格,在键入一个数字。例如: history 20 。
    reset = 刷新 shell 提示屏幕。如果字符不清晰或乱码的话,在 shell 提示下键入这个命令会刷新屏幕。

    #Left-click-and-drag mouse: 选择并且拷贝到剪贴板。
    #Click middle mouse button: 使用剪贴板的内容粘贴。
    #Meta-key (Emacs terminology) 传统的是使用 Left-Alt-key

    展开全文
  • linux终端 随笔

    千次阅读 2016-12-14 11:52:45
    初步接触伪终端编程,根据公司一个产品,自己手写了一个示例程序,非常不完善,仅仅是一个随笔,学习下伪终端。 作为一个服务端程序,类似于代理,可记录用户行为。 #include #include #include #include ...
    初步接触伪终端编程,根据公司一个产品,自己手写了一个示例程序,非常不完善,仅仅是一个随笔,学习下伪终端。
    作为一个服务端程序,类似于代理,可记录用户行为。
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <linux/limits.h>
    #include <pty.h>
    
    void do_trans( int pty);
    
    int main(int argc, char *argv[])
    {
        int pty, slave;
        char pty_name[PATH_MAX];
        int ret;
        pid_t child;
    
        ret = openpty(&pty, &slave, pty_name, NULL, NULL);
        if (ret == -1)
        {
            perror("openpty");
            exit(EXIT_FAILURE);
        }
    
        child = fork();
        if (child == -1)
        {
            perror("fork");
            exit(EXIT_FAILURE);
        }
        else if(child == 0)
        {
            close(pty);
            login_tty(slave);
            //execl("/bin/bash", "/bin/bash", NULL);
            execl("/bin/bash", "/bin/bash", "-c", "ssh wcg@192.168.0.162",NULL);
            printf("child bash over !\n");
        }
        close(slave);
    
        do_trans(pty);
        exit(EXIT_SUCCESS);
    }
    
    
    
    void do_trans(int pty)
    {
        char buffer[800] = {0};
        int ret;
    
        //write(pty, "w/n", 2);     //象征性的输入不标准的数据,作为查看交互是否成功
        //while(ret = read(pty, buffer, sizeof(buffer)-1))
    
            printf("\n");
    
            ret = read(pty, buffer, sizeof(buffer)-1);
            if (ret > 0)
            {
                    buffer[ret-1] = 0;   //read是读不到字符串结束符的,需要自己添加,否则printf会出错
                    printf(">>%s<<",buffer);//打印出结果
                    fflush(stdout);
            }
    
        do{
            printf("] ");
            fflush(stdout);
            gets(buffer);
            write(pty, buffer, strlen(buffer));
            //printf("recv ret[%d]\n", ret);
            write(pty, "\n", 1);
            ret = read(pty, buffer, sizeof(buffer)-1);
            if (ret <= 0)
            {
                break;
            }
            buffer[ret-1] = 0;   //read是读不到字符串结束符的,需要自己添加,否则printf会出错
            printf(">>%s<<",buffer);//打印出结果
            fflush(stdout);//这步很重要,std中经常有数据滞留在存储区中需要此函数刷新
        }while(ret > 0);
    
        printf("do_trans over! \n");
        return;
    }
    

    展开全文
  • Linux系统里查询DNS使用如下命令 dig baidu.com @114.114.114.114 或者使用系统默认的DNS服务器查询 nslookup baidu.com 下文中的方法不一定全管用,但你总能找到管用的一个 1.network-manager and networking ...

    前言

    在Linux系统里查询DNS使用如下命令

    dig baidu.com @114.114.114.114
    

    或者使用系统默认的DNS服务器查询

    nslookup baidu.com
    

    下文中的方法不一定全管用,但你总能找到管用的一个

    1.network-manager and networking

    在一些Linux操作系统里,如ubuntu的特定版本,DNS是由network-manager这个系统服务管理的。
    在这些系统里,需要运行命令:

    sudo service network-manager restart
    

    在其他系统中可以使用命令:

    sudo service networking restart
    

    2.ubuntu

    在Ubuntu12.04中可以尝试如下命令:

    sudo kill -HUP $(pgrep dnsmasq)
    

    在Ubuntu 16.04和debian 9中,你可以使用如下命令刷新DNS

    sudo systemd-resolve --statistics
    

    在Ubuntu17.04和更高版本上,使用如下命令:

    sudo systemd-resolve --flush-caches
    

    3 /etc/resolv.conf

    /etc/resolv.conf这个文件里存放的是DNS服务器的地址,直接修改这个文件只能暂时改变默认DNS的地址,重启后恢复设置。
    你可以直接修改这个文件用来临时使用:

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 8.8.8.8
    

    修改完成后重新ping或者nslookup就会从新的DNS服务器那里得到IP地址
    永久修改的方法见:How do I add a DNS server via resolv.conf?

    4.nscd

    nscd是一个很好用的DNS缓存服务,使用如下命令安装:

    apt install nscd  #debian ubuntu
    

    如果你的Linux系统安装了nscd ,那么可以使用如下命令刷新DNS:

    sudo /etc/init.d/nscd restart
    

    参考资料:
    How do I clear the DNS cache?
    Flush DNS Cache in Ubuntu

    展开全文
  • linux终端清屏命令

    2020-07-25 10:34:04
    windows CMD终端的清屏命令是cls Linux终端中的清屏命令有: 1.clear ...这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。 ...
  • linux shell 终端快捷键

    千次阅读 2012-08-16 22:27:06
    本文讲述了Linux命令行编辑快捷键的方法,希望对您有所帮助。 Linux命令行编辑快捷键: history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第...
  • linux终端快捷键

    2012-09-28 09:55:18
    linux终端快捷键 常用:   复制为ctrl-shift-c 粘贴为ctrl-shift-v tab=补全 ctrl+a=开始位置 ctrl+e=最后位置 ctrl+k=删除此处至末尾所有内容 ctrl+u= 删除此处至开始所有内容 Ctrl-L -刷新屏幕 Ctrl...
  • Linux 终端快捷键

    千次阅读 2012-09-23 15:54:09
    Linux 终端快捷键 ■常用: 复制为Ctrll-shift-c 粘贴为Ctrl-shift-v tab:补全 Ctrl+a:开始位置 Ctrl+e:最后位置 Ctrl+k:删除此处至末尾所有内容 Ctrl+u: 删除此处至开始所有内容 Ctrl + f:向前跳转...
  • Linux终端tty设备驱动

    千次阅读 2012-06-26 10:27:57
    Linux终端tty设备驱动 在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。 14.1节阐述了终端设备的概念及分类,14.2节给出了Linux...
  • 彻底理解Linux的各种终端类型以及概念

    万次阅读 多人点赞 2017-12-10 20:21:39
    这篇文章的动机有两个,上周同事问我关于Linux终端的问题,我简要解答后发现有些概念确实自己也说不清楚,然而这些概念我曾经是弄清楚了的,但也只是曾经。  大概六七年前,我是懂这些东西的,当时做了一些记录: ...
  • linux 终端命令

    千次阅读 2014-10-03 15:43:11
    inux必学的60个命令 ...要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。
  • linux终端音乐播放器

    千次阅读 2015-05-04 21:49:46
    简介 这次其实是经历一些面试之后决定要从windows的训练下脱离出来,去linux下试试手了。但是对linux下的编程工具只知道VI,没办法,可视化界面我想现在暂时是做不出了。还有,我coding都喜欢听着歌曲,这样不容易...
  • linux命令行终端的翻屏滚屏

    万次阅读 2015-07-20 23:20:54
    linux命令行终端的翻屏滚屏more/less/head/tail  (2012-03-16 10:56:57) 转载▼ 标签:  杂谈 分类: Linux笔记 屏幕翻页快捷键   shift+PgUp 向前翻看,一般翻13页左右。 ...
  • Linux终端设备驱动

    千次阅读 2010-04-25 20:27:00
    文章来源:http://blog.chinaunix.net/u3/94284/showart_1981110.html在Linux系统中,终端设备非常重要,没有终端设备,系统将...14.1终端设备 在Linux系统中,终端是一种字符型设备,它有多种类型,通常使用tty来简称
  • linux 终端快捷键

    千次阅读 2011-07-06 15:21:01
    Windows过来的初学者常遇到的问题,在Vi里写完...其实应该用Ctrl+Q来接触锁定,Ctrl+S在Linux下是锁定屏幕显示的意思和ScreenLock键是一个效果,不信你试试按下ScrLk或者Fn+ScrLk 我的下篇文章就有 linux 快捷键 使用
  • linux字符终端浏览器--Lynx

    千次阅读 2013-11-01 21:08:07
    Lynx 可以运行在很多种 操作系统下,如VMS, UNIX, Windows 95, Windows NT等,当然也包括Linux。 由于没有漂亮的图形界面,所以 Lynx 占用资源极少,而且速度很快。另外 Lynx 还是唯一能在字符终端下运行的 WWW ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,302
精华内容 15,320
关键字:

linux刷新终端

linux 订阅