zoukankan      html  css  js  c++  java
  • Linux命令集合

    批量改名文件

    for var in `ls *.bak`;do mv -f "$var" `echo "$var"|sed 's/....$//'`;done     //将去除文件名字后面的 .bak
    for var in `ls *.bak`;do mv -f "$var" `echo "$var"|sed 's/...$/xxx/'`;done  //将文件名字最后的三个字符改为 xxx

     查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;

    find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles ;
    find /etc -size +1M >> /tmp/etc.largefiles

    删除类型不是目录,而且没有属主的文件;

    find / -not -type d -a -nouser -exec rm -f {} ;
    find / -not -type d -a -nouser | xargs -i rm -f {}

     使用scp命令复制另外一台的文件到当前目录下面

    scp -rp root@192.168.137.16:/root/.   ./      #注意/root/. root后面的 . 要加上,它复制的是这个目录下面的所有文件包含隐藏文件,否则不成功

     复制目录排除目录里面的某个文件夹或者文件,注意:--exclude后面必须是相对路径,使用绝对路径不行

    rsync -av --exclude yum.log --exclude ks-script-rTogPV /tmp/ /tmp-li/

     ssh的免密登陆,说明:很多公司是禁止root直接登陆的,因此设置了root的免密登陆,会提示权限拒绝,

    免密登陆的原理就是:将a服务器生成的后缀为.pub的文件内容复制到 b服务器的家目录下面的.ssh下面的 authorized_keys文件里面,并且权限为600,a就可以免密访问b服务器

    ssh-keygen -t rsa  #一路回车
    ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.137.3 #这个是单向的
    ssh-copy-id -i /root/.ssh/id_rsa.pub cdp@192.168.137.3 #设置一个从root无密码使用cdp用户登陆到其他服务器,其他服务器上面的cdp 要执行 ssh-keygen -t rsa

     远程使用sudo方式不切换root,执行root的命令

    sudo -i -u root -- sh -c  "ls;echo "------------";whoami"
    sudo -i -u root -- sh -c "cp /home/li/*.jar /tmp/jenkins-linshi/ ;bash /tmp/jenkins-linshi/test.sh"

     sshpass远程登陆并带入密码,执行命令,-p后面接密码,特殊符号要使用

    /usr/local/sshpass/bin/sshpass -p cbi@123!@# ssh  -p 22222 cbi@10.122.1.1 "ps -ef|grep $1|grep -v grep"   #注意密码:cbi@123!@#

     链接一个文件到一个目录:使用软链接

    ln  -s  目录   文件
    例如:
    
    [root@mylinux test]# ln -s muli hhh
    [root@mylinux test]# ll
    总用量 12
    lrwxrwxrwx  1 root root  4 11月 23 10:47 hhh -> muli
    drwxr-xr-x  2 root root 19 11月 23 10:46 muli
    
    [root@mylinux test]# ll hhh
    lrwxrwxrwx 1 root root 4 11月 23 10:47 hhh -> muli
    [root@mylinux test]# ls hhh
    1.txt

     linux系统上面通过其他代理主机下载东西

    使用网络下载时的代理,指定搭建的代理服务器
        export http_proxy=http://ip:3128 && export https_proxy=https://ip:3128 && export ftp_proxy=ftp://ip:3128 

     tree命令排除某些文件或者目录

    tree -I '201401|201404' 目录 排除某些名字是201401或者201404的目录或者文件

    date设置时间的命令

    date 月日小时分钟年.秒

    find命令排除某个目录

    find / -path "/data" -prune -o -name "*.log" -print

    linux备份30天之前的文件

      1  find ./ -ctime +30 >bak.txt    -->将文件帅选出来
      2  tar -T bak.txt zcpf beifen.tar.gz

    ————————————————————sh-----------------

    sh -n  检查语法错误,但不执行
    sh -x  进入跟踪方式,显示所执行的每一条命令的执行结果

     linux如何注释一大段

    if false;then
    ....
    ....
    .....
    fi

     linu语法比较大小

    if [ 1207713600 -gt 1207810800 ];then echo "a>b";else echo "a<b";fi
    
    if [[ 1207713600 > 1207810800 ]];then echo "a>b";else echo "a<b";fi
    
    下面是错误写法:
    if [ 1207713600 > 1207810800 ];then echo "a>b";else echo "a<b";fi

    找出两个文件中相同的行

    grep -Ff a.txt b.txt      或者 awk 'FNR==NR{a[$0]=1;next}(a[$0]==1)' a.txt b.txt

     找出文件不同的行,例如下面找出文件test3文件里面的行不在test1文件的行内容

    grep -vFf t1.txt t3.txt  #没有输出则t3的内容都在t1文件里面  或者  awk 'FNR==NR{a[$0]=1;next}(a[$0]!=1)' t1.txt t3.txt

    在远程执行命令,并在本地回显

    ssh root@ip  'bash -x -s' </data/sh/auto_deploy_script.sh

     删除文件或者目录,只留下想要的文件或者目录

    只留下 3.txt 7.txt m1 m4 其他统统删除
    [root@localhost test]# touch {1,2,3,4,5,6,7}.txt [root@localhost test]# ls 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt [root@localhost test]# mkdir m{1,2,3,4} [root@localhost test]# ls 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt m1 m2 m3 m4 [root@localhost test]# ls m1 [root@localhost test]# rm -rf `ls | egrep -v '(3.txt|7.txt|m1|m4)'` [root@localhost test]# ls 3.txt 7.txt m1 m4

     Linux查看时区

    [root@localhost backup]# timedatectl
          Local time: 三 2019-08-28 01:10:43 CST
      Universal time: 二 2019-08-27 17:10:43 UTC
            RTC time: 二 2019-08-27 17:10:43
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: yes
    NTP synchronized: no
     RTC in local TZ: no
          DST active: n/a
    [root@localhost backup]# timedatectl|grep "Time zone"
           Time zone: Asia/Shanghai (CST, +0800)
    [root@localhost backup]# cat /etc/redhat-release 
    CentOS Linux release 7.6.1810 (Core) 
    [root@localhost backup]# 

    [root@localhost backup]# date +"%Z %z"
    CST +0800

     mvn -P tst的解释:mvn clean package -P tst -Dversion=201907

    mvn编译的时候往往会有-P选项,它是根据配置文件pom.xml来的
    -P 环境变量
    例如:pom.xml下面部分profiles里面的内容
            <profile>
                <id>tst</id>
                <properties>
                    <profileActive>tst</profileActive>
                </properties>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <profile>
                <id>prd</id>
                <properties>
                    <profileActive>prd</profileActive>
                </properties>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
            </profile>

     将以空格隔开的字符串各字段进行排序

    echo $union|sed 's/ /
    /g'|sort

     linux查看磁盘是否是ssd盘

    lsscsi  #命令回车后查看第四栏,ssd的就是ssd
    
    [abc@hhh config]# lsblk -d -o name,rota
    NAME ROTA
    sdc     1
    sdb     1
    sdd     1
    sdf     1
    sdh     1
    sdi     1
    sdg     1
    sde     1
    sda     1
    sdj     1
    sdk     1
    sdl     1
    sdm     1
    sdn     1
    sdo     1
    sdp     1
    sdq     1
    sdr     1
    
    上面结果为1的就是机械盘,为0 为固态,rota表示可以旋转

     ntpdate同步问题:

        记centos7使用ntpdate同步时间出现的问题
            24 Apr 09:41:56 ntpdate[2873]: no server suitable for synchronization found
            当时的解决方法:
                先ntpdate -d cn.pool.ntp.org
                后ntpdate cn.pool.ntp.org

    iptraf-ng

    yum -y install iptraf-ng

    iptraf是一个基于ncurses开发的IP局域网监控工具,它可以实时地监视网卡流量,可以生成各种网络统计数据,

    包括TCP信息、UDP统计、ICMP和OSPF信息、以太网负载信息、节点统计、IP校验和错误和其它一些信息。

     nload:查看网卡的进出流量

    yum  -y install  nload

    nload ens33 #查看指定的网卡

  • 相关阅读:
    2008年6月6日今天终于调回公司本部啦,记录历史的一天。
    动易安全开发手册
    今天开机后发现有些图标变了样(图标变灰色),可是功能都能用
    用CFile类简单读写文件
    【转】动态链接库的静态链接导致程序的DLL劫持漏洞借助QQ程序xGraphic32.dll描述
    失败的人只有一种,就是在抵达成功之前放弃的人
    ListControl
    [转贴]仅通过崩溃地址找出源代码的出错行
    tinyxml文档
    得到程序当前UAC的执行权限,高 中 低
  • 原文地址:https://www.cnblogs.com/mmyy-blog/p/9575787.html
Copyright © 2011-2022 走看看