• linux 部分常用命令


    1.Linux 删除除了某个文件之外的所有文件

    [root@localhost abc]# ls |grep -v 'a' |xargs rm -f

    其中rm -f  !(a) 最为方便。如果保留a和b,可以运行rm -f !(a|b)来实现。

    “-bash: !: event not found ” 可以通过运行shopt -s extgolb来解决。如下:
    [root@localhost /]# mkdir abc
    [root@localhost /]# cd abc
    [root@localhost abc]# touch a b c
    [root@localhost abc]# ls
    a  b  c
    [root@localhost abc]# rm -f !(a)
    -bash: !: event not found
    [root@localhost abc]# shopt -s extglob
    [root@localhost abc]# rm -f !(a)
    [root@localhost abc]# ls
    a

    2.命令的信息返回在屏幕上,同时保存在文件who.info中

    $ who | tee who.info

    3.显示当前目录下文件+目录占用空间前10,排序要用k参数,如果用h会带上单位,排序时会有问题,比如 10k 和1M 排序就不对了

    SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
    KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。

    du –skc *|sort –rn |head -10
    pc-csesb01-aiosb% du --help

    4.一次创建多层级多个目录

    mkdir -p /apps/temp{1,2,3,4}/temp

    5.查看当前主机版本,位数

    uname -a
    cat /proc/version
    cat /etc/issue
    lsb_release -a

    6.重复执行同一命令50次

    seq 50|xargs -i cmd

    7.Linux 删除指定时间前的文件

    -amin n  查找系统中最后N分钟访问的文件
    -atime n  查找系统中最后n*24小时访问的文件
    -cmin n  查找系统中最后N分钟被改变文件状态的文件
    -ctime n  查找系统中最后n*24小时被改变文件状态的文件
    -mmin n  查找系统中最后N分钟被改变文件数据的文件
    -mtime n  查找系统中最后n*24小时被改变文件数据的文件

    显示20分钟前的文件
    find /home/prestat/bills/test -type f -mmin +20 -exec ls -l {} ;
    
    删除20分钟前的文件
    find /home/prestat/bills/test -type f -mmin +20 -exec rm {} ;
    
    显示20天前的文件
    find /home/prestat/bills/test -type f -mtime +20 -exec ls -l {} ;
    
    删除20天前的文件
    find /home/prestat/bills/test -type f -mtime +20 -exec rm {} ;

    8.将/home/Blinux /html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip

    zip –q –r   html.zip /home/Blinux /html

    linux中往zip档里添加文件 newfile

    zip -u ttt.zip newfile

    9.tar使用

    打包不包含.log后缀的 并且更新日期为2013-7-7开始之后的时间的文件,包含7月7的

    tar --exclude=*.log -N '2013/07/07' -cvf test3.tar *

    追加用“-r"选项,取出用“-x”选项:

    如:有一个包 file.tar.bz2 ,需要把file2.txt添加进去,就用命令:
    tar -rvf file.tar.bz2 file2.txt
    取出file2.txt则用:
    tar -xvf file.tar.bz2 file2.txt
    tar -xvf file.tar.bz2 ,后面不跟文件名,就会解压整个file.tar.bz2包。

      .tar.gz
      解压:tar -zxvf FileName.tar.gz
      压缩:tar -zcvf FileName.tar.gz DirName

    10.alias使用

    时间方面 :
    % : 印出 %
    %n : 下一行
    %t : 跳格
    %H : 小时(00-23)
    %I : 小时(01-12)
    %k : 小时(0-23)
    %l : 小时(1-12)
    %M : 分钟(00-59)
    %p : 显示本地 AM 或 PM
    %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
    %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
    %S : 秒(00-60)
    %T : 直接显示时间 (24 小时制)
    %X : 相当于 %H:%M:%S
    %Z : 显示时区
    日期方面 :
    %a : 星期几 (Sun-Sat)
    %A : 星期几 (Sunday-Saturday)
    %b : 月份 (Jan-Dec)
    %B : 月份 (January-December)
    %c : 直接显示日期与时间
    %d : 日 (01-31)
    %D : 直接显示日期 (mm/dd/yy)
    %h : 同 %b
    %j : 一年中的第几天 (001-366)
    %m : 月份 (01-12)
    %U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)
    %w : 一周中的第几天 (0-6)
    %W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)
    %x : 直接显示日期 (mm/dd/yy)
    %y : 年份的最后两位数字 (00.99)
    %Y : 完整年份 (0000-9999)

    BSH
    alias cdesb='cd /home/was/task-ai/app/opp'
    alias cdd='cd $OLDPWD'
    alias cdesb='cd /home/was/task-ai/app/opp'
    alias cd...="cd $OLDPWD"

      alias sqlplus='rlwrap sqlplus'
      alias rman='rlwrap rman'

    
    
    CSH , 这里`date +%Y%m%d`表示执行命令,加在拼接一个文件名 alias elog tail
    -f /home/aiesb1/app/oppf/log/opp_esb-`date +%Y%m%d`.log alias cdr cd $HOME/release cd... 返回cd的上一个目录

    11.cp 命令参数不覆盖

    shell>awk 'BEGIN { cmd="cp -i a1 a2"; print "n" |cmd; }'

    12.查看文件内某时间段内的部分,用于日志很多,且日志开头会打印时间的场景,使用awk

    # cat bbs.ttlsa.com.access.log | awk '$4 >="[21/Jul/2014:14:37:50" && $4 <="[21/Jul/2014:14:38:00"'

    13.grep使用

    从文件内容查找匹配指定字符串的行: 
    $ grep "被查找的字符串" 文件名 
    从文件内容查找与正则表达式匹配的行: 
    $ grep –e “正则表达式” 文件名 
    查找时不区分大小写: 
    $ grep –i "被查找的字符串" 文件名 
    查找匹配的行数: 
    $ grep -c "被查找的字符串" 文件名 
    从文件内容查找不匹配指定字符串的行: 
    $ grep –v "被查找的字符串" 文件名 
    从根目录开始查找所有扩展名为.txt的文本文件,并找出包含"phpzixue.cn"的行 
    find . -type f -name "*.txt" | xargs grep "phpzixue.cn" 

    14.查找包含start*.sh 不包含 opf  _all 的文件并打印出来

    find ./ -name "start*.sh" ! -name "*opf*" ! -name "*_all*" -print

    15.取某个行区间的数据

    sed -n '138438,239766p' 20141205.log  test1205.log

    16.top交互命令

    在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。
    h 显示帮助画面,给出一些简短的命令总结说明
    k 终止一个进程。
    i 忽略闲置和僵死进程。这是一个开关式命令。
    q 退出程序
    r 重新安排一个进程的优先级别
    S 切换到累计模式
    s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s
    f或者F 从当前显示中添加或者删除项目
    o或者O 改变显示项目的顺序
    l 切换显示平均负载和启动时间信息
    m 切换显示内存信息
    t 切换显示进程和CPU状态信息
    c 切换显示命令名称和完整命令行
    M 根据驻留内存大小进行排序
    P 根据CPU使用百分比大小进行排序
    T 根据时间/累计时间进行排序
    W 将当前设置写入~/.toprc文件中

    其他:

    Linux crontab 命令格式与详细例子
    *  *  *  *  *  command
    分 时  日  月  周  命令

    JAVA:

    Seconds
    Minutes
    Hours
    Day-of-Month
    Month
    Day-of-Week
    Year (可选字段)
    '*'字符表示指定字段的所有可能值,比如Day-Of-Week字段的*表示每天。

    下面是一些示例:
    创建一个每五分钟激活一次的触发器:
    java 代码
    "0 0/5 * * * ?"

    创建一个触发器在当前分钟的第10秒后,每五分钟执行一次,比如上午10:00:10 am,上午10:05:10:
    java 代码
    "10 0/5 * * * ?"

    创建一个触发器,在每个星期三和星期五的10:30, 11:30, 12:30, 和13:30执行。
    java 代码
    "0 30 10-13 ? * WED,FRI"

    创建一个触发器,在每个月的第5天和第20天的上午8点到10点执行,每隔半小时执行一次,注意上午10:00不会执行:
    java 代码
    "0 0/30 8-9 5,20 * ?"

  • 相关阅读:
    springboot项目下载文件功能中-切面-导致的下载文件失败的bug
    解决laydate动态设置初始值的问题
    简易MySQL存储过程
    css选择器(第n个类选择器)的坑
    session过期情况下ajax请求不会触发重新登录的问题
    session过期情况下ajax请求不会触发重新登录的问题
    springboot配置多数据源mongodb
    css平移动画的实现
    springboot中使用JOIN实现关联表查询
    解决springboot项目中@Value注解参数值为null的问题
  • 原文地址:https://www.cnblogs.com/blogabc/p/4521718.html
Copyright © 2020-2023  润新知