精华内容
下载资源
问答
  • C语言实现简易Linux终端版本聊天室

    千次阅读 2019-09-26 16:28:46
    简易Linux终端聊天室 必备Linux命令和C语言基础 http://www.makeru.com.cn/video/1876.html?s=69821 今天我们来实现一个简单的小项目,在这个项目中,我们将实现一个终端版的简易Linux聊天室。 实现的效果:服务器...

    简易Linux终端聊天室
    必备Linux命令和C语言基础
    http://www.makeru.com.cn/video/1876.html?s=69821在这里插入图片描述

    今天我们来实现一个简单的小项目,在这个项目中,我们将实现一个终端版的简易Linux聊天室。  
    
    实现的效果:服务器启动,监测客户端连接的个数,监测每个客户端的IP地址以及端口号,当每个客户端发送消息时,服务器上会有线程专门将每个客户端发送的信息记录在界面上,就类似平时使用QQ群聊一样。我们来看看这个简易的Linux聊天室如何来实现吧。如图4-5-12所示。
    

    1、实现一个基本的服务器和客户端的步骤

    一、创建服务器的流程

    (1)调用socket函数创建一个套接口,并返回描述符。

    (2)调用bind函数使服务器进程与一个端口号绑定。

    (3)调用listen设置客户端如队列的大小。

    (4)调用accept接收一个连接,如果接入队列不为空的话。并且相应返回一个已连接的套接口描述符。

    (5)调用send和recv用来在已连接的套接口间进行发送和接收数据。

    二、创建客户端流程

    (1)调用socket函数创建一个套接口,并返回描述符。

    (2)调用connect向服务器发送连接请求,返回一个已连接的套接口。

    (3)调用send和recv在已连接的套接口间发送和接收数据。

    1.1服务器将要完成的工作

    (1)获取套接字

    (2)设置端口复用

    (3)绑定连接的IP还有端口号

    (4)监听

    (5)创建一条线程用于显示客户端连接信息,具体连接的人数,顺便将客户连接的IP以及端口号打印出来。

    (6)开始接收

    (7)创建一条线程用于将客户端直接收发的信息分发到客户端处进行显示。

    下面具体看看服务器代码的实现 server.c

    1#include <stdio.h>
      2#include <unistd.h>
      3#include <sys/socket.h>
      4#include <netinet/in.h>
      5#include <netinet/ip.h>
      6#include <string.h>
      7#include <pthread.h>
      8#include <sys/time.h>
      9//设置客户端最大的个数为40个
     10#define   MAXCONNECTION        40
     11#define   msleep(x)     (usleep(x*1000))
     12struct  Data
     13{
     14    int  live ;   //0  无人用   1有人用
     15    int  sockfd ; 
     16    struct in_addr in ; 
     17    unsigned short  port ; 
     18};
     19
     20struct Data array[MAXCONNECTION] = {0} ; 
     21void *do_thread_showconnect(void *arg);
     22void *do_thread_clientopt(void *arg);
     23int main(void)
     24{
     25    int sockfd ; 
     26    //1.获取套接字
     27    sockfd =  socket(AF_INET ,  SOCK_STREAM , 0);
     28    if(sockfd < 0)
     29    {
     30        perror("get socket fail");
     31        return -1 ; 
     32    }
     33    //2.设置端口复用
     34    int  on  = 4 ;  
     35    setsockopt(sockfd , SOL_SOCKET , SO_REUSEADDR , &on , sizeof(int));
     36    //3.绑定IP与端口
     37    struct  sockaddr_in  addr ; 
     38    addr.sin_family = AF_INET ; 
     39    addr.sin_port = htons(10086);
     40    //设置为INADDR_ANY,表示监听所有的。
     41    addr.sin_addr.s_addr = INADDR_ANY ; 
     42    int ret ; 
     43    ret = bind(sockfd , (struct sockaddr *)&addr , sizeof(struct sockaddr_in)) ; 
     44    if(ret < 0)
     45    {
     46        perror("bind error");
     47        return  -2 ; 
     48    }
     49    //4.监听
     50    listen(sockfd , 30);
     51    int  peersockfd ; 
     52    struct  sockaddr_in  peeraddr ; 
     53    socklen_t   len =   sizeof(struct sockaddr_in) ;    
     54    struct Data tmp ; 
     55    char *message = "too more connction , connect fail" ; 
     56    int i ; 
     57    pthread_t tid ; 
     58    //创建一条线程用于显示已连接的客户端的个数
     59    pthread_create(&tid , NULL , do_thread_showconnect , NULL);
     60    pthread_detach(tid);
     61
     62    while(1)
     63    {
     64        peersockfd = accept(sockfd , (struct sockaddr *)&peeraddr , &len);
     65        if(peersockfd < 0)
     66        {
     67            perror("accept fail");
     68            return  -3 ; 
     69        }
     70        tmp.sockfd = peersockfd ;   
     71        tmp.in = peeraddr.sin_addr ;
     72        tmp.port = ntohs(peeraddr.sin_port);    
     73        tmp.live = 1 ; 
     74
     75        for(i = 0 ; i < MAXCONNECTION ; i++)
     76        {
     77            if(array[i].live == 0)
     78            {
     79                array[i] = tmp ; 
     80                break;
     81            }
     82        }
     83        //判断是否连接个数已满
     84        if(i == MAXCONNECTION)
     85        {
     86            write(peersockfd , message , strlen(message));
     87            close(peersockfd);
     88            continue ; 
     89        }
     90        //创建一条线程用于显示客户端之间互相发送的即时信息
     91        pthread_create(&tid , NULL , do_thread_clientopt , (void *)i);
     92        pthread_detach(tid);
     93    }
     94
     95
     96    return 0 ; 
     97}
     98
     99//线程执行函数,用于显示已连接的客户端的个数。
    100void *do_thread_showconnect(void *arg)
    101{
    102    int  i , count = 0; 
    103    while(1)    
    104    {
    105        system("clear");
    106        printf("客户端连接信息:  连接人数:%d\n" , count);
    107        count = 0 ; 
    108        for(i = 0 ; i < MAXCONNECTION ; i++)
    109        {
    110            if(array[i].live == 1)
    111            {
    112                count++ ; 
    113                printf("IP:%s   port:%d \n" , inet_ntoa(array[i].in) , array[i].port);
    114            }
    115        }
    116        msleep(100);
    117    }
    118}
    119//线程执行函数,用于显示客户端之间互相发送的即时信息
    120void *do_thread_clientopt(void *arg)
    121{
    122    //转发信息
    123    int num = (int)arg ;
    124    char buffer[12240] = {0};
    125    char tmp[10240] = {0}; 
    126    int ret ; 
    127    struct  timeval  tv ; 
    128    struct  timezone tz ; 
    129    struct  tm *tt ; 
    130    int i ; 
    131
    132    while(1)
    133    {
    134        ret = read(array[num].sockfd , tmp , 1024);
    135        if(ret <= 0)
    136            break;
    137        tmp[ret] = '\0'  ;
    138        gettimeofday(&tv , &tz);
    139        tt = localtime(&tv.tv_sec);
    140        sprintf(buffer , "%s @ %d:%d:%d :\n%s" ,inet_ntoa(array[num].in) , tt->tm_hour , tt->tm_min , tt->tm_sec , tmp);
    141
    142        for(i = 0 ; i < MAXCONNECTION ; i++)
    143        {
    144            if(array[i].live == 1)
    145            {
    146                write(array[i].sockfd , buffer , strlen(buffer));
    147            }
    148        }
    149    }
    150    close(array[num].sockfd);
    151    array[num].live = 0 ; 
    152
    153}
        
    
    服务端的工作已经设置完毕,显示就开始设置客户端吧,客户端就可以把它想象成我们的QQ群聊,只要每个人一发信息,那么整个群都可以看得到。
    

    1.2客户端将要完成的工作

    (1)连接对应的服务器,必须指定服务器的ip地址

    (2)创建一条线程,用于读取从服务器转发过来的消息

    (3)客户端可以自由的输入,通过服务器,发送给其它的客户端,让它们也可以看得到。

    下面具体看看客户端代码的实现 client.c

    
    ```c
     1#include <stdio.h>
     2#include <sys/socket.h>
     3#include <netinet/in.h>
     4#include <netinet/ip.h>
     5#include <pthread.h>
     6void *do_thread(void * arg);
     7int main(void)
     8{
     9    int sd ;    
    10
    11    sd = socket(AF_INET ,  SOCK_STREAM ,  0);
    12    if(sd < 0)
    13    {
    14        perror("get socket  fail");
    15        return -1 ;
    16    }
    17    //1.连接对应的服务器
    18    //connect
    19    struct sockaddr_in   addr ; 
    20    addr.sin_family = AF_INET ; 
    21    addr.sin_port = htons(10086);
    22    addr.sin_addr.s_addr  =  inet_addr("10.126.72.56");
    23
    24    int ret ; 
    25    ret = connect(sd , (struct sockaddr *)&addr , sizeof(struct sockaddr_in));
    26    if(ret != 0)
    27    {
    28        perror("connect fail");
    29        return -3 ; 
    30    }
    31    printf("connect success ... \n");
    32    pthread_t tid ; 
    33    //创建一条线程用于接收从服务器端收到的数据
    34    pthread_create(&tid , NULL , do_thread , (void *)sd);
    35    pthread_detach(tid);
    36
    37    char buffer[1024] = {0}; 
    38
    39    while(1)
    40    {
    41        //阻塞从标准输出读取信息到buffer
    42        ret = read(0 , buffer , 1024);  
    43        if(ret > 1024)
    44            continue ; 
    45        //按下回车后将buffer中的内容写到文件描述符
    46        //通过服务器转发给其它正在连接的客户端
    47        write(sd, buffer , ret);
    48    }
    49
    50    return 0 ; 
    51}
    52void *do_thread(void * arg)
    53{
    54    int sd = (int)arg;
    55    int ret ; 
    56    char buffer[1024] = {0};
    57    while(1)
    58    {
    59        //从服务器读取数据并显示在客户端上
    60        ret = read(sd , buffer , 1024);
    61        if(ret <= 0)
    62            break;
    63        buffer[ret] = '\0' ; 
    64        printf("recv:%s" , buffer);
    65    }
    66}
    
    
    源码编写完毕,接下来测试一下这个简单聊天室的功能:编译过程省略,注意,该程序在32位操作系统上运行,且要加上线程库才可以编译成功。分别编译server.c和client.c
    
    1gcc server.c  -o  server  -m32  -lpthread
    2gcc client.c  -o  client  -m32  -lpthread
    
    
    下面先运行服务器,执行./server如图4-5-13所示。
    
    ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9TWWljZUpLNzhDSTlQTjlyaWM1cU5SaWNpY2NROUNHaWJmQUdtUUpoS2lhV1luaWJOY3IzT0hJSzh3czFkdlpaVzU2bHY1WGxzenppYnNQTFlpYzczYXJoWDBVSUlMUS82NDA?x-oss-process=image/format,png)
    
    
    下面启动不同IP的客户端,找多一台电脑即可测试。在我方47服务器上执行客户端./client,如图4-5-14所示。客户端连接成功了!  
    
    ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9TWWljZUpLNzhDSTlQTjlyaWM1cU5SaWNpY2NROUNHaWJmQUdtYzRzR0NWb1JmN1hDYVVJaWN4a1JvNzJZdVJpYjNvcXQzdUZtOEt0WTltRjIxUk9TQnpLNW15WmcvNjQw?x-oss-process=image/format,png)
    
    
    接下来看看服务器上有什么变化,如图4-5-15所示。
    
    ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9TWWljZUpLNzhDSTlQTjlyaWM1cU5SaWNpY2NROUNHaWJmQUdtY1FQQllaSGMxRDVqWThKZzNuRWdPRGliNDlzOFAzUjhjT05YV1dJWlBEVWg1NGZ0UWdRZkxwUS82NDA?x-oss-process=image/format,png)
    
    
     在我方56服务器上执行客户端./client,如图4-5-16所示。
    
    
    ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9TWWljZUpLNzhDSTlQTjlyaWM1cU5SaWNpY2NROUNHaWJmQUdtb0M5c1JzNnppYmhwakgzUGZ5aWF6YmUzcTdGSFV6bGJ6RDMxNGU3WTBuVGFTNURFaWNTRmppY01MUS82NDA?x-oss-process=image/format,png)
    
    接下来看看服务器上有什么变化,如图4-5-17所示。
    
    
    
    ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9TWWljZUpLNzhDSTlQTjlyaWM1cU5SaWNpY2NROUNHaWJmQUdtYnVpYlp6Mm9mSk9LMjJMdHJna0xpY2ZPb3RpYXdobVZRSVVyZnNKRlZPTVdpY2F3am5lWW9zZmVjdy82NDA?x-oss-process=image/format,png)
    
        在47服务器上的客户端发送一条消息给56服务器上的客户端,同样的在56服务器上的客户端也发送一条信息给47的服务器上的客户端,观察变化,如图4-5-18所示。
    
    ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9TWWljZUpLNzhDSTlQTjlyaWM1cU5SaWNpY2NROUNHaWJmQUdtMlhPRmZZdkF0MXNiRW1kUGhKMkcwRGliSWdBVzBRQkRTcWliNWsxWDdHbzVpYm1kaWNMRWliRmVUQlEvNjQw?x-oss-process=image/format,png)
    
    
    
        在这里我们看到,56服务器上的客户端发送hello world的消息给47服务器上的客户端,47服务器上的客户端也收到了helloworld消息,同样的,47服务器上的客户端给56服务器上的客户端发送I am 47 server的消息,56服务器上的客户端也收到了I am 47 server的消息。这个简易版本的Linux聊天室就算完成了,接下来,请读者发挥自己的想象力,结合VT100控制码,写出一个更漂亮的终端版聊天工具吧。
    
    
    VT100控制码表
    
    ```c
     1具体格式有两种,
     2•  一种数字形式,
     3\033[<数字>m .
     4如 \033[40m ,表示让后面字符输出用背景黑色输出 \033[0m 表示取消前面的设置。
     5•  另一种是控制字符形式。
     6\033[K 清除从光标到行尾的内容
     7\033[nC 光标右移 n 行
     8输出时, 也可以用 ^[来代替.
     9VT100  控制码
    10VT100 控制码归类如下。
    11\033[0m 关闭所有属性 
    12\033[1m 设置高亮度 
    13\033[4m 下划线 
    14\033[5m 闪烁 
    15\033[7m 反显 
    16\033[8m 消隐 
    17\033[30m -- \033[37m 设置前景色 
    18\033[40m -- \033[47m 设置背景色 
    19\033[nA 光标上移 n 行 
    20\033[nB 光标下移 n 行 
    21\033[nC 光标右移 n 行 
    22\033[nD 光标左移 n 行 
    23\033[y;xH 设置光标位置 
    24\033[2J 清屏 
    25\033[K 清除从光标到行尾的内容 
    26\033[s 保存光标位置 
    27\033[u 恢复光标位置 
    28\033[?25l 隐藏光标 
    29\033[?25h 显示光标
    30VT100   关于颜色的说明:
    31VT100 的颜色输出分为,注意要同时输出前景的字符颜色和背景颜色。
    32字背景颜色范围:40----49 
    3340:黑 
    3441:深红 
    3542:绿 
    3643:黄色 
    3744:蓝色 
    3845:紫色 
    3946:深绿 
    4047:白色 
    41字颜色:30-----------39 
    4230:黑 
    4331:红 
    4432:绿 
    4533:黄 
    4634:蓝色 
    4735:紫色 
    4836:深绿 
    4937:白色
    50这样输出一个字符串比较完整如下
    51echo "\033[字背景颜色;字体颜色 m 字符串\033[0m"
    52例:
    53echo "\033[41;36m something here \033[0m"
    
    1例如:
    2C语言编程里可以这么用
    3设置光标位置 x=1 y=2
    4printf("\033[%d;%dH\033[43m \033[0m" ,1, 2);
    

    在这里插入图片描述

    展开全文
  • linux终端终端命令 现在是12月,如果您还没有找到能激发您幻想的技术问世日历 ,那么也许这可以解决问题。 从现在到24,每天,我们都会为您带来一个不同的Linux命令行玩具。 你问什么是命令行玩具? 它可以是游戏或...

    linux终端终端命令

    现在是12月,如果您还没有找到能激发您幻想的技术问世日历 ,那么也许这可以解决问题。 从现在到24,每天,我们都会为您带来一个不同的Linux命令行玩具。 你问什么是命令行玩具? 它可以是游戏或任何简单的转移,为您的终端带来一点幸福。

    今天的玩具,就是运气 ,是一个古老的玩具。 它的版本可以追溯到1980年代,当时它已包含在Unix中。 我在Fedora中安装的版本已获得BSD许可,并且通过以下内容进行了抓取。

     $  sudo dnf install fortune-mod 
    

    您的分配可能不同。 在某些情况下,您可能需要与财富本身分开安装财富(尝试在包管理器中搜索“财富*”)。 您也可以在GitHub上查看源代码。 然后,只要运气就可以赚到一笔。

    $ fortune
    "Time is an illusion.  Lunchtime doubly so."
    -- Ford Prefect, _Hitchhiker's Guide to the Galaxy_

    那么,为什么您需要在终端机上发财呢? 当然是为了好玩。 也许您想将它们添加到系统中的当天消息中?

    就个人而言,当我使用终端来解析文本(尤其是使用正则表达式)时,我喜欢将fortune命令用作内置的伪数据,并希望简单地尝试一下。

    例如,假设我正在用tr命令测试转换,以将字母e替换为数字3。

    $ fortune | tr 'eE' '3'
    Unix 3xpr3ss:
    All pass3ng3r bring a pi3c3 of th3 a3roplan3 and a box of tools with th3m to
    th3 airport. Th3y gath3r on th3 tarmac, arguing constantly about what kind
    of plan3 th3y want to build and how to put it tog3th3r. 3v3ntually, th3
    pass3ng3rs split into groups and build s3v3ral diff3r3nt aircraft, but giv3
    th3m all th3 sam3 nam3. Som3 pass3ng3rs actually r3ach th3ir d3stinations.
    All pass3ng3rs b3li3v3 th3y got th3r3.

    那么,您的发行量会带来什么财富呢? / usr / share / games / fortune目录中查找所有内容。 这是我的一些最爱。

    Never laugh at live dragons.
                    -- Bilbo Baggins [J.R.R. Tolkien, "The Hobbit"]
    I dunno, I dream in Perl sometimes...
                 -- Larry Wall in  <8538@jpl-devvax.JPL.NASA.GOV>
    I have an existential map.  It has "You are here" written all over it.
                    -- Steven Wright

    寻找更多财富 当然,您始终可以查看手册页以了解有关选项的更多信息,或了解更多有关Wikipedia上命令历史的信息。

    您是否有最喜欢的命令行玩具,您认为我应该对此进行介绍? 该系列的日历大部分已填写完毕,但我还剩下一些地方。 在下面的评论中让我知道,我将对其进行检查。 如果有空间,我将尝试包括在内。 如果没有,但是我收到了一些不错的意见,最后我将对荣誉提名进行汇总。

    查看昨天的玩具, 通过Linux终端驱动机车 ,明天再回来看看!

    翻译自: https://opensource.com/article/18/12/linux-toy-fortune

    linux终端终端命令

    展开全文
  • Ubuntu终端查看系统版本主要命令:① cat /proc/version② uname -m/-a③ cat /etc/issue④ lsb_release -a1.ubuntu查看版本号a.打开终端(terminal),快捷键为(Ctrl+Alt+t)b.输入 cat /proc/version显示如下:Linux ...

    Ubuntu终端查看系统版本

    主要命令:①  cat  /proc/version

    ②  uname  -m/-a

    ③  cat  /etc/issue

    ④  lsb_release  -a

    1.ubuntu查看版本号

    a.打开终端(terminal),快捷键为(Ctrl+Alt+t)

    b.输入  cat  /proc/version

    显示如下:

    c219f3a9dc81

    Linux version 5.3.0-28-generic

    //Linux版本号

    gcc version 7.4.0

    //gcc编译器版本号

    Ubuntu 7.4.0-1ubuntu~18.04.1

    //系统版本号

    #30~18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020

    //系统供电硬件时间,UTC世界标准时间

    2.查看系统内核信息

    a.输入  uname -m

    显示如下:

    c219f3a9dc81

    5.3.0-28-generic

    //ubuntu内核版本

    x86_64

    //64位

    3.查看ubuntu当前版本号

    输入  cat  /etc/issue

    显示如下:

    c219f3a9dc81

    4.查看ubuntu当前版本详细信息

    a.输入  lsb_release  -a

    显示如下:

    c219f3a9dc81

    Distributor ID:Ubuntu

    //类别是Ubuntu

    Description:Ubuntu  18.04.3  LTS

    //18年3月发布的稳定版本,LTS(long time support)长期支持

    Release:  18.04

    //发行日期或发行版本号

    Codename:  bionic

    //代号名称

    全文结束

    展开全文
  • linux终端模拟器

    2020-03-24 19:19:19
    linux终端模拟器 linux系统提供xterm,gnome-terminal,kconsole等终端,他们都是终端模拟器;这些终端模拟器与shell连接,提供可执行shell编程的gui,大部分linux发行版本都提供xterm,kxrtv等终端模拟器; ...

    linux终端模拟器


    linux系统提供xterm,gnome-terminal,kconsole等终端,他们都是终端模拟器;这些终端模拟器与shell连接,提供可执行shell编程的gui,大部分linux发行版本都提供xterm,kxrtv等终端模拟器;

    展开全文
  • Linux终端常用命令

    2018-09-08 19:31:44
    提供Linux系统的常用终端命令,包括Linux不同系统版本下的命令区别。
  • Linux通过终端查询CUDA和CUDNN版本查看CUDA版本查看CUDNN版本 查看CUDA版本 cat /usr/local/cuda/version.txt 查看CUDNN版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  • linux终端 pac设置 有些是新的,有些是旧的经典。 希望您喜欢。 今天的玩具MyMan是经典街机游戏《 吃豆人》的有趣克隆。... MyMan不是Linux终端上唯一的Pac-Man克隆版本,但我选择包含它,因为1)我...
  • 常用Linux终端命令

    2018-12-13 21:05:16
    01. 学习 Linux 终端命令的原因 Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等 在职场中,大量的 服务器维护工作 都是...Linux 发行版本的...
  • Linux终端窗口

    千次阅读 2013-11-15 15:37:03
    早期的系统并没有限制Linux系统具备的图形化管理界面,而只是命令终端模式来实现人机交互。后来由于Linux用户的增加,为了方便用户操作,才设计开发出图形化界面。...在原来的Linux系统版本中,一般在桌面有终端窗口
  • Linux终端命令笔记

    2020-08-24 15:25:46
    Linux终端命令笔记安装gpu版本tensorflow卸载tensorflowAnaconda虚拟环境管理 安装gpu版本tensorflow sudo pip install tensorflow-gpu==1.2 卸载tensorflow sudo pip uninstall tensorflow-gpu Anaconda虚拟环境...
  • 拓实n95驱动程序,原版驱动 内含 LINUX 系统,MAC 系统,Windows系统 三个系统下的驱动程序
  • John给了组里Mac Mini的账号,后面确实要开始用Mac工作了,先把NCL配置好,使用过程中发现了一些和Linux终端不同的地方,配置过程记录在这里:1.登录终端后默认载入环境变量的位置不同:Mac为.bash_profile,Linux为...
  • 快速查看Linux系统版本

    万次阅读 2019-01-25 14:51:48
    终端输入命令:lsb_release -a
  • linux 终端命令

    千次阅读 2014-10-03 15:43:11
    inux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限...不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。
  • TerminatorTerminator是一款跨平台的终端工具,使用的是GPL许可证,提供...跟Guake一样,Terminator可以安装到绝大多数的各种Linux版本中。你可以将它的主窗口分成任意多的小块。它的安装方式是:apt-get install t...
  • # lsb_release -a
  • linux 遍历 周末我们一直在玩游戏,这很有趣,所以让我们今天再来看一个游戏,Snake! 蛇是老歌,但好吃。 它的版本似乎永远存在。 我记得玩过的第一个版本是1990年代与QBasic打包在一起的Nibbles ,这对我理解...
  • zookeeper linux终端安装

    2019-03-13 17:04:26
    Jdk:1.7以上版本 Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。 终端安装步骤: 第一步:安装jdk 第二步:把zookeeper的压缩包上传到linux系统。 第三步:解压缩压缩包 tar -zxvf zookeeper-...
  • 1. Terminator Terminator是一款跨平台的终端工具,使用的是GPL许可证,提供了...跟Guake一样,Terminator可以安装到绝大多数的各种Linux版本中。你可以将它的主窗口分成任意多的小块。它的安装方式是: apt-get ...
  • 从数据采集板上接收数据帧,进行判断,然后接收,并且显示在表格上,以及显示在坐标轴上。同时支持通过串口下传数据。备注:由于是按照具体的数据帧设计的,不同数据帧测试时候会不准确,得作出相应的修改。
  • linux终端配色方案

    2017-07-22 21:04:00
    1,本文是基于centos7系统的终端设置来讲解的,不过其他版本linux系统应该大同小异。 2,打开终端,‘Edit'-->'Profile Preference'-->'colos'-->去掉‘Use colors from system theme'前面的勾 3,编辑...
  • 一、查看Linux系统版本信息 1、查看Linux内核版本命令 a、第一种 cat /proc/version b、第二种 uname -a 2、查看Linux系统版本的命令 a、第一种 lsb_release -a b、...
  • ss linux终端配置

    2017-11-27 12:25:00
    最近ss莫名宕机,懒得重新安装了,就安装了一个非gui版本,安装非gui版本还有一个优点就是在远程服务器的时候可以用proxychains进行终端代理,非常友好实用。下面简单的说一下如何进行终端ss 参考了这个网址...
  • Linux终端 用户与主机交互,必然用到的设备; 查看当前的终端设备命令:tty [root@CentOS6CHS-01 dev]# tty --help 用法:tty [选项]... 显示出连接到当前标准输入的终端设备文件名。 -s, --silent, --quiet 什么...
  • 修改linux命令行Python版本 进入 /usr/bin目录, 删除python软件链接对应的Python文件,重新建立指向新Python版本的软链接。具体如下: [root@Master bin]# cd /usr/bin [root@Master bin]# rm -rf /usr/bin/python ...
  • linux内核版本查询

    2021-03-12 16:19:51
    微信设置水滴昵称,个性中带点萌 ... 第三种:在Linux终端输入 unmae -a 即可查看linux的内核版本号 运行效果如下图:   微信设置水滴昵称,个性中带点萌 以上就是良许教程网为各位朋友分享的Linux相关知识。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,056
精华内容 2,822
关键字:

linux终端版本

linux 订阅