zoukankan      html  css  js  c++  java
  • linux常用命令

    git 命令:
    git log
    -2 --name-status


    docker 命令:
    1. docker logs : 
    docker logs --tail=200 -f container_name  2>&1 | grep see4what
    一直输出docker logs。并且用grep进行截取。

    docker logs --since=2018-01-09T00:29:00.000Z container_name > 2.txt

    2. 批量对container操作:
    docker ps -a | grep redis | awk '{print $1}' | xargs docker start
    docker ps -a | grep redis | awk '{print $1}' | xargs docker kill -f

    docker ps -a| perl -ne '@cols = split /\s{2,}/, $_; printf "%-20s %20s %50s\n", $cols[3], $cols[4], $cols[-1]'

    3. 新的docker支持这样批量操作container:
    docker rm -f -v $(docker ps -a -q)  # 批量强制删除全部container并且移除关联的volume


    VIM使用:
    命令模式下:
    yy复制一行,dd删除一行,x删除当前字符,p粘贴。
    u撤销,ctrl+r重做。
    $移动到行尾,0是移动到行首.
    G跳到最后一行,1G跳到第一行.
    o是换行。

    v模式下:
    上下方向键选中多行,然后shift+<或>来左移或右移。


    解压缩:
    $ tar zxvf log4cplus-1.0.4-rc10.tar.gz (-C 指定解压目录。如果是*.tar.bz2, 参数是jxvf, 如果是*.tar.xz,参数是xvf)
    $ unzip -q xxx.zip (-d 制定解压目录)
    压缩目录:
    $ tar zcvf xx.tar.gz ~/xx/


    改变文件夹的权限:
    sudo chown -R xiaou:root  ./dir # -R表示递归 xiaou为当前用户名.root为组.(如果只修改group,可以不写冒号前面的user名.)
    sudo chmod g+rwx ./dir   # 这个命令是dir目录的所有组成员添加rwx权限.

    禁止其他用户访问这个目录:
    比如只允许root访问:
    - chown -R root:root ./dir
    - chmod o-rwx ./dir


    查找文件的绝对路径:
    $ which halt
    $ type halt
    $ whereis halt

    find是搜素查找文件的:
    find -name "*.h" #递归查找.

    搜索全部目录,但过滤某目录:
    find / -path "/mnt/c" -prune -o -name '*easy_install*'

    群删:
     find . -name "*~" -exec rm '{}' \; 


    建立软链接:
    ln -s 源路径 目的
    硬链接就是没有-s
    $ ln -s /usr/bin/nautilus op
    如果当前目录不是目标目录,请用绝对路径。


    man命令查函数
    man number name
    eg:$ man 2 bind


    查找与“libuuid”关键字关联的库: 
    apt-cache search libuuid 
    然后选择合适的,用sudo apt-get install xxx来安装库,如:

     sudo apt-get install uuid-dev


    mount挂载windows盘符:
    $ sudo mkdir /media/E
    $ sudo mount /dev/sda6 /media/E
    mount前可以用sudo gparted来查看盘符信息。
    卸载:
    $ sudo umount /media/E

    ps:我linux常常不能自动挂载我的ntfs文件格式的U盘: 
    $ sudo mount -t ntfs /dev/sdb1 /media/U


    打开一个新终端,并且保持当前路径:
    $ gnome-terminal
    如果是mint13:
    $ mate-terminal


    查看筛选进程状态:
    ps -o pid,ppid,tty,stat,args,wchan && ps -A -o pid,ppid,tty,stat,args,wchan | grep apn
    后加管道指向 | wc -l 可以看数量 ~

    查看网络筛选9000端口的状态:
    netstat -apn | grep 9000
    查看tcp 9000:
    netstat -apn | grep ${port0} | awk '/^tcp/ {print NF,$NF}'
    Mac下查看端口进程: lsof -i :8080

    杀死用到某端口的全部进程:
    fuser -s -k -9 -n tcp 9000

    通过程序名(假设程序名是provider)来查看占用物理内存(方法1:利用ps格式化输出rss):
    echo $(ps -A -o pid,args,rss | grep provider | grep -v 'grep' | head -1 | awk '{print $3}')KB
    方法2(利用cat /proc/[pid]/status):
    cat /proc/$(ps -A | grep provider | grep -v 'grep' | head -1 | awk '{print $1}')/status | grep VmRSS | awk '{print $2$3}'

    通过进程名杀次某进程(慎用,没提示的):
    ps aux | grep provider | awk '{print $2}' | xargs sudo kill -9


    多网卡时:

    增加静态路由(重启网卡后静态路由会消失):
    sudo route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0  //设置访问10.***的包都从eth0口转发.
    sudo route add -net 172.0.0.0 netmask 255.0.0.0 dev eth0
    sudo route del -net 10.0.0.0 netmask 255.0.0.0
    查看路由表.
    route 或 route -n
    设置默认网关:
    sudo route add default gw 10.66.80.1 //设置10.66.80.1为默认网关.
    sudo route del default //删除默认网关


    ssh:
    $ ssh -p 12300 root@10.0.0.1
    上传文件:
    $ scp -P 12300 '/xxx/src.tar.gz' root@10.0.0.1:'~/dest/'
    上传目录 :
    scp  -r /tmp/local_dir username@servername:remote_dir


    rsync比scp更好:

    rsync -avP -e 'ssh -p22' --exclude '*.log' xiaou@192.168.0.250:'/etc/*20190506*' ~/tmp


    查看文本的某几行:
    sed -n '2p' test.txt #读第二行
    sed -n '1, 3p' test.txt #读1到3行
    tail -n +10000  1.log > 2.log #把1.log里的从1万行开始到结束的数据导入到2.log
    head -n +50000 2.log > 3.log #把2.log里的从开始到第5万行的数据导入到3.log


    mongo导出json数据到文件, 并且取出掉_id字段:
    mongo localhost:27017/test --eval "db['myCollectionXX'].find({'XX':'OO'}, { _id:0 }).forEach(function (doc){print(JSON.stringify(doc)+',');})" > xx.js


    把stderr和stdout的输出都重定向到文本:

    ./my_test &> 1.txt  & 


    grep查找带空格的字符串, 用单引号把字符串引起来并且开头加上斜杠

    $ ps aux | grep TCPKeepAlive | grep  '\--color=auto TCP'
    xiaou  27234  0.0  0.0  10448  2024 pts/3    S+   08:17   0:00 grep --color=auto TCPKeepAlive


    看看最近输入的命令:

    history | grep 'docker pull'


    拷贝:

    cp -rpavd src dst 

    备注:-d :若来源文件为连结文件的属性(link file),则复制连结文档属性而非档案本身;

               -p :连同档案的属性一起复制过去,而非使用预设属性;  (属性包括文件IO属性和创建的时间等)

     


    linux下程序挂了看是什么原因:
    dmesg -T | grep cmd



    查看公网IP:curl members.3322.org/dyndns/getip


    把大文件分割成若干小文件:
    wc -l all.txt # 先看看总共有多少行
    split -l 317857 all.txt -d -a 4 Split_ # 按每个小文件317857行来分割。分割后的文件名前缀是Split_,后面是4位数字。如Split_0006
    ls | grep Split_ | xargs -n1 -i{} mv {} {}.txt # 把切割后的这些文件添加上扩展名.txt

    o(╯□╰)o

  • 相关阅读:
    第十二周 张文小组学习情况总结
    第五章
    第四章
    第三章
    软工实训--学习回顾2
    软工实训-- 学习回顾1
    构建之法——读书笔记(9)
    构建之法——读书笔记(8)
    构建之法——读书笔记(7)
    第13周张文小组学习情况总结
  • 原文地址:https://www.cnblogs.com/xiaouisme/p/2512022.html
Copyright © 2011-2022 走看看