linux相关命令——二

1    linux相关命令

1.1    Split

split可以将一个大文件拆分成指定大小的多个文件,拆分速度快,拆分一个1G大小的文件花费不到1S的时间。

每3行拆分成一个文件,拆分后的文件名以name开头,以数字作为后缀后缀长度为1,例如split -l 3 test -d -a 1 name

按字节进行拆分,例如每三个字节拆分成一个文件,默认不加单位就是字节,也可以带单位比如KB,MB等,例如:split -b 3 test -d -a 1 new

 

 

 

1.2    vi编辑二进制文件

打开文件后使用如下命令转换成xxd

echo -n"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" >test.bin

跟上 -n 选项否则会被自动加上一个换行。

#vim -b test.bin

 :%!xxd

 转成二进制,可以进行编辑。

用下面的命令把它转换回来:

:%!xxd -r

参考:http://www.cnblogs.com/killkill/archive/2010/06/23/1763785.html

 

1.3    sed实现换行符号替换

sed ":a;N;s/\n//g;ta" a.txt

 

 

1.4    脚本创建一个连续的文件

for i in `seq 0 112`; do echo -e "a";done |sed ':a;N;s/\n//g;ta' >test

 

回车,代码:CR ASCII码:\r ,十六进制,0x0d,回车的作用只是移动光标至该行的.

换行,代码:LF ASCII码:\n ,十六进制,0x0a,换行至下一行行首起始位置

 

1.5    文件系统时间戳

一般来说,Linux会给文件记录了三个时间,changetime, modify time和access time。

                           用noatimemount的话,文件系统在程序访问对应的文件或者文件夹时,不会更新对应的access time。

                           可以通过stat来查看文件的三个时间。

1.6    查看根目录中哪个文件占满

使用du -sh * 查看根目录下每个文件夹的大小

 

1.7    ubuntu允许root登陆

对sshd进行配置

$ vi /etc/ssh/sshd_config

找到PermitRootLogin no一行,改为PermitRootLogin yes

重启 openssh server

$ sudo service ssh restart

 

 

 

 

 

 

 

 

2    网络UDP发送程序

 

2.1    client:

/*client.c*/  

#include <stdio.h>  

#include <sys/types.h>  

#include <sys/socket.h>  

#include <netinet/in.h>  

#include <string.h>  

#include <arpa/inet.h>  

#define MAXBUF 256  

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

{  

    int s = 0;  

    int n = 0;  

    int reuse = 1;  

    int port = 1987;  

    struct sockaddr_in srv;  

    char buf[MAXBUF] = {0};  

    /*解析参*/  

    if (argc != 2)  

    {  

        printf("Usage:%s ServerIP\n", argv[0]);  

        return -1;  

    }  

  

    bzero(&srv, sizeof(srv));  

    srv.sin_family = PF_INET;  

    srv.sin_addr.s_addr = inet_addr(argv[1]);  

    srv.sin_port = htons(port);  

    /* UDP */  

    s = socket(AF_INET, SOCK_DGRAM, 0);  

    if(s<0){  

        perror("socket");  

        return -1;  

    }  

  

    while(1){  

        memset(buf, 0, MAXBUF);  

        /*取用户输入到buf*/  

        fgets(buf, MAXBUF, stdin);  

  

        /* s 向服务器发送*/  

        if ((n = sendto(s, buf, strlen(buf), 0, (struct sockaddr *) &srv, sizeof(struct sockaddr))) < 0)  

        {  

            perror("sendto");  

            return -1;  

        }else{  

            printf("send to %s(port=%d) len %d:%s\n", argv[1], port, n, buf);  

        }  

    }  

}  

 

 

 

2.2    server.c

/*server.c*/  

#include <stdio.h>  

#include <sys/types.h>  

#include <sys/socket.h>  

#include <netinet/in.h>  

#include <string.h>  

#include <arpa/inet.h>  

  

#define MAXBUF 256  

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

{  

    int s = 0;  

    int n = 0;  

    int reuse = 1;  

    int cli_len = sizeof(struct sockaddr);  

    int port = 1987;  

    char buf[MAXBUF] = {0};  

    struct sockaddr_in addr, cli;  

  

    /*初始化本地听端口信息*/  

    bzero(&addr, sizeof(addr));  

    addr.sin_family = PF_INET;  

    addr.sin_addr.s_addr = INADDR_ANY;  

    addr.sin_port = htons(port);  

  

    /*UDP*/  

    s = socket(AF_INET, SOCK_DGRAM, 0);  

    if (s<0)  

    {  

        perror("socket");  

        return -1;  

    }  

  

    /*端口复用*/  

    setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));  

  

    /*定指定端口*/  

    if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0)  

    {  

        perror("bind");  

        return -1;  

    }  

  

    while(1){  

        memset(buf, 0, MAXBUF);  

        /*从套s*/  

        n = recvfrom(s, buf, MAXBUF, 0, (struct sockaddr *)&cli, &cli_len);  

        if(n<0){  

            perror("recvfrom");  

            return -1;  

        }else{  

            printf("receive msg from %s(port=%d) len %d: %s\n",inet_ntoa(cli.sin_addr), port, n, buf);  

        }  

    }  

      

    return 0;  

}  

 

 

3    ubuntu设置本地镜像源

挂载镜像到/mnt中

本地源变成镜像:

# apt-cdrom -m -d /mnt add

 

 

4    Unbuntu安装docker

apt-get install docker

apt-get install docker.io

下载hello-world来进行测试

# docker pull hello-world

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值