• linux一些稍微高级的命令


    cut 命令:提取文件中指定的字段(列)、字符内容。单词的默认分隔符为空格。
    cut [选项]... [文件]...
    选项:
    -b  按照字节切
    -c  按照字符切
    -d  指定分割符
    -f   指定以分割符分割的哪个字段
    head  -5  /etc/passwd  >  /tmp/pass   将passwd文件中的前5行覆盖写入/tmp/pass文件中
    cat    /tmp/pass    显示/tmp/pass的全文内容
    cut  -d :  -f  6  /tmp/pass   显示/tmp/pass文件中以:分隔的第6列的内容,家目录内容
    cut  -d :  -f  1,7 /tmp/pass   显示/tmp/passwd文件中的第1列(用户名)和第7列(shell解释器)的内容
    cut  -d :  -f  1,4-7 /tmp/pass   取1 4 5 6 7列
    cut  -d :  -f  -3 /tmp/pass  取第1列至第3列
    cut  -d :  -f  3- /tmp/pass  取第3列至最后一列
    cut  -c  1-3  /tmp/pass     取每行的前3个字符
     
    sort  排序(升序、降序)
    -n, --numeric-sort      根据数值比较,默认是按单个字符来比较
    -r, --reverse      逆序输出排序结果
    -t    指定分割符
    -k   排序键(即排序的列字段)
    -u   去掉重复行
     
    准备阶段:用cat命令创建一个a.txt文件。
    说明:以下是用cat命令将EOF...EOF之间的内容覆盖写入(>)到a.txt文件中
    cat   > a.txt <<EOF
    root:1:0:bin
    bin:2:200:bash
    jim:10:300:bash
    tom:102:10:bash
    EOF
     
    查看a.txt文件内容:cat   a.txt
    sort  a.txt      //默认顺序排序(按第1列排升序) 
    bin:2:200:bash
    jim:10:300:bash
    root:1:0:bin
    tom:102:10:bash
     
    sort -r a.txt   //逆序输出排序结果(按第1列排降序)
    tom:102:10:bash
    root:1:0:bin
    jim:10:300:bash
    bin:2:200:bash
     
    sort -t : -k 2 a.txt    //按:分割开的以第2部分的第一个字符排序
    tom:102:10:bash
    jim:10:300:bash
    root:1:0:bin
    bin:2:200:bash
     
    sort -t : -k 2 -n a.txt   //按:分割开的以第2列的数值大小排序(用得最多)
    root:1:0:bin
    bin:2:200:bash
    jim:10:300:bash
    tom:102:10:bash
     
    sort -t : -k 1.2  a.txt    按:分割开的以第1列的第2个字符排序
    bin:2:200:bash
    jim:10:300:bash
    root:1:0:bin
    tom:102:10:bash
     
    将/etc/passwd 文件中第3列按数值大小排降序
    sort -n -r -t : -k 3 /etc/passwd
     
    # echo "bin:2:200:bash"  >> a.txt   将echo命令后的文本追加到a.txt文件中
     
    # cat a.txt    显示a.txt全文内容
    root:1:0:bin
    bin:2:200:bash
    jim:10:300:bash
    tom:102:10:bash
    bin:2:200:bash
     
    # sort  a.txt   将a.txt排序输出
    bin:2:200:bash
    bin:2:200:bash
    jim:10:300:bash
    root:1:0:bin
    tom:102:10:bash
     
    # sort -u a.txt   去掉重复行
    bin:2:200:bash
    jim:10:300:bash
    root:1:0:bin
    tom:102:10:bash
     
    1.查看/etc/passwd文件的前2行内容。然后取出本系统中所有的用户名、uid、用户的shell信息将结果保存在/tmp/users.txt文件中?最后用cat查看users.txt文件。
    head   -2  /etc/passwd    查看前2行
    cut  -d :  -f  1,3,7  /etc/passwd  > /tmp/users.txt
    cat   /tmp/users.txt  
    说明:-d  指定分隔符,-f 指定字段(即列)
     
    2.统计系统中有多少个用户?
    whatis   wc    显示命令功能简介
    wc   /etc/passwd   统计passwd文件中的行数、单词数、字符数
    wc   -l    /etc/passwd   统计行数,即用户数量(每行一个用户账号)
    说明:wc是统计单词数量、行数、字符数。-l 是统计行数,-c是统计字符数,-w显示单词计数
     
    3.显示/根目录下的文名件名列表,然后统计根目录下的文件数量?
    ls  /    显示根目录下的文件名列表
    ls  / | wc -l    将ls  /命令结果用wc  -l进行统计
    说明:|是管道符,作用是将左边命令的结果传给右边的命令继续处理。
     
    4.统计系统现在有多少个进程?
    ps -elf | wc -l
     
    wc  统计行数 单词数 字节数
    wc   /etc/passwd
     
    -l   统计行数
    wc -l a.txt
     
    -c  统计字节数
    wc  -c   /etc/passwd
     
    -w 统计单词数
    wc  -w   /etc/passwd
     
    -m 统计字符数
    wc  -m   /etc/passwd
     
    统计/bin目录下有多少个命令
    ls /bin | wc -l
     
    uniq   合并连续重复的行
    -u  只显示没有连续重复的行
    -c  统计连续重复行的次数
    -d  只显示连续重复行一次,哪一行连续重复了就显示哪行
    -i   忽略大小写
     
    # cat  > a.txt <<EOF
    jim tom root
    aa bb cc
    aa bb cc
    jim 
    aa bb cc
    tom
    tom abc
    tom
    tom abc
    EOF
     
    # uniq -c a.txt     统计连续出现的次数
          1 jim tom root
          2 aa bb cc
          1 jim 
          1 aa bb cc
          1 tom
          1 tom abc
          1 tom
          1 tom abc
     
    #  sort a.txt|uniq -c     请跟上一条命令的结果对比
     
    # uniq  a.txt     对a.txt文件中连续重复的行只显示一次
    jim tom root
    aa bb cc
    jim 
    aa bb cc
    tom
    tom abc
    tom
    tom abc
     
    # uniq -u a.txt     不显示连续重复的行
    jim tom root
    jim 
    aa bb cc
    tom
    tom abc
    tom
    tom abc
     
    # uniq -d a.txt   仅显示连续出现的内容一次
    aa bb cc
     
    显示连续重复、未重复的内容,都只显示一次
    sort  a.txt | uniq
     
    sort a.txt | uniq  -c   同上,并统计次数,结果如下
          3 aa bb cc
          1 jim
          1 jim tom root
          2 tom
          2 tom abc
     
    显示没有重复的行
    sort a.txt | uniq -u
    jim 
    jim tom root
     
    diff 文件差异的对比
    diff   文件1   文件2
     
    准备要比较差异的文件:
    head  -3  /etc/passwd   >  /tmp/pas3
    head  -5  /etc/passwd   >  /tmp/pas5
    vimdiff比较两个文件的差异,不同涂红色
    cd  /tmp    切换到/tmp目录
    vimdiff   pas3  pas5     说明:  用:q退出
    注:在vimdiff中可以按i键进入vim的编辑模式修改文件内容。按Esc键退出编辑模式,用:wq保存并退出vim编辑器。(用ctrl+w+w在窗口之间切换)
          
    安装patch软件:rpm  -ivh  /dvd/Packages/patch-2.7.1-8.el7.x86_64.rpm
    yum   install   -y   patch
     
    patch 打补丁
    用法:patch    原文件   补丁文件
     
    实例:35.patch和53.patch补丁文件是diff命令练习生成的。
    cd   /tmp
    patch  pas3   35.patch    给pas3文件打补丁,提示如下
    patching  file  pas3
     
    cat  -n  pas3    读pas3文件并显示行号,发现文件中多了2行内容
     
    patch  pas3   53.patch    给pas3文件打补丁,提示如下
    cat  pas3   发现文件中少了2行内容
     
    whatis 查看命令的描述信息
    例:whatis    whatis
           whatis    pwd
           whatis    useradd
           whatis    which
           whatis   whereis
           
    which   查看二进制命令的绝对路径、别名
    # which  ls
    alias ls='ls --color=auto'
    /usr/bin/ls
     
    alias  查看或定义命令别名(即快捷键)
    alias  查看现有的命令别名
    alias   h3='head  -3'     临时定义head  -3命令的别名为h3
    h3   /etc/passwd    用h3命令别名查看/etc/passwd文件内容
    unalias   h3     取消h3别名
    注:命令别名可以写到/etc/bashrc、/etc/profile、/etc/rc.d/rc.local等环境配置文件。
     
    whereis   根据关键字搜索binary二进制(即命令)、源文件、man手册
     
    stat命令:查看文件的状态信息(即详细属性),包括文件的路径、大小、访问时间(atime)、修改时间(mtime)、属性修改时间(ctime)、索引号(inode)等属性。
     
    实例:
    stat  /etc/passwd
    Access  (最近访问atime)文件最后一次被访问的时间(cat、head查看文件内容)
    Modify  (最近更改mtime)文件最后一次被修改内容的时间(用vim修改文件内容)
    Change  (最近改动ctime)文件最后一次被修改过属性的时间(chmod、chown改文件权限、属性)
     
    updatedb  //手动更新查找数据库
    说明:安装新软件,创建的新文件,必须updatedb后,才能用locate命令查到。
     
    ------------------------------------
    locate 搜索  
    命令格式:locate  关键字
    特点:
        a.可以模糊匹配
        b.快速查找
        c.基于数据库 
    说明:必须安装mlocate软件才能使用locate命令。  
    实例:locate   hosts.allow    查找tcpwraper防火墙白名单文件
              locate   ifcfg-e    查找网卡配置文件及其相关的文件
     
    使用通配符需要把通配符的内容用引号引起来
    "*.conf" 
     
    scp命令:
    功能:用于远程发送、下载文件。
    用法:scp   -rv   源    目标
    发文件给对方:scp    /etc/hosts    root@192.168.8.12:/opt/
    从对方电脑下载文件:scp   root@192.168.8.12:/etc/hosts   /tmp/
    注:root@192.168.8.12中的root是对方电脑的用户账号,@后面是ip地址。
     
    find语法:
        find  路径 选项  动作
        find  查询的路径  查询的条件 条件相关的参数 动作
        路径
            不指定路径 默认查找当前目录的文件  在查找的时候是递归查找(目录及其子目录下查找) 
        动作
              对find找到的文件执行指定的操作,可以是复制、删除等     
        选项(蓝字为常用选项)
         选项的作用:定义以名称、类型、大小、时间、权限、用户、组等各种条件来查找。
             -name  文件名     //按文件名查找,实例如下
                    find  /etc  -name  host*    在/etc目录下查找名称以host开头的所有文件
                    find  /  -name  *.conf      在/根目录下查找名称以.conf结尾的所有文件                
             -iname 文件名      //按文件名查找 不区分大小写
                      find  /etc  -iname  HOST*                       
             -size 大小[cwbkMG]    //按文件大小查找
                       +3G  大于3G的文件
                       -3G   小于3G的文件
                        3G   等于3G的文件
                     find / -size +3G   //在根目录下查找文件大于3G的文件
                     find  /boot  -size  +10M   //在/boot目录下查找文件大于10M的文件   
                  
                     多条件查找  逻辑表达式
                     expr1 -and  expr2   逻辑与    -and == -a
                     expr1 -or   expr2     逻辑或    -or == -o
                     !expr              取反
                     -not expr        不是
                     
                      文件大小大于3G且小于4G的文件
                      find / -size +3G -a  -size -4G                   
                      
             -amin  访问时间     //min 分钟
             -atime 访问时间     //time  天数
             -cmin  改动时间
             -ctime 改动时间
             -mmin  修改时间
             -mtime  修改时间
             
               find / -atime 2 
               n       2   在2天之前的“一天之内”被访问过的文件
               +n    +2 列出2天之前被访问过的文件
               -n      -2  列出2天之内被访问过的文件         
             -perm
                    find / -perm -4000   查找文件权限设置了suid的文件
                    find / -perm -2000   查找文件权限设置了sgid的文件
                    find / -perm 0755    查找权限等于0755的文件                
             -type  根据文件类型查找
                  d  目录(即文件夹)
                  f   普通文件,即word文档、txt文本文档、jpg图片、mp3音乐、avi视频。find   /etc   -type  f
                  b  块设备文件,即硬盘、u盘、硬盘分区,例:find   /dev  -type   b
                  c  字符设备文件,即终端tty,例:find   /dev  -type   c
                  p  管道文件
                  l   符号链接(也称软链接),即快捷方式,例:find   /   -type   l
                  s   套接字,ip+port。例:find   /   -type   s
     
                  find /etc  -type  d    在/etc目录下查找类型为d目录的文件          
                  find / -type c -a -user root   在/根目录下查找类型为c且属主为root的文件
                  
             -gid  用户的gid     //文件的所属组
             -group  用户组名   //文件的所属组
             -uid  用户的uid     //文件的所有者
             -user  用户的名字  //文件的所有者
             -inum  inode号      //查找指定inode号是多少的文件,inode是文件的索引号,显示索引号ls   -li   /etc/hosts   
                    find /   -uid  1000    在根目录下查找uid(属主)为1000的文件
                    find / -inum  16777341
                    
    动作:对查找到的文件做额外的操作(可以cp复制、mv移动、rm删除、ls  -l等)
              [-exec | -ok  要操作的命令  {}  ;]   //非交互式  或  交互式
              [ | xargs  -i 动作 ]       //非交互式的  -i支持使用{}
    解释:{}代表用find命令找到的文件,;是动作的结束符号
              -exec  操作时无提示
              -ok      操作是有提示
     
    要操作的命令
            ls -l {} ;
            cp -rv {} /tmp/  ;
                    
    例:find    /etc    -name   host*   -exec   ls  -ld  {}  ;    在/etc目录下查找host*文件,将找到的文件用ls  -ld查看属性
           find    /etc    -name   host*   -exec   cp  -rv  {}   /tmp/   ;      将找到的文件复制到/tmp目录中
     
    例:仅在/etc目录下查找类型为d(即目录)的文件,不在其子目录中查找。
    find  /etc  -maxdepth  1  -type  d     注:-maxdepth指定最大查找深度
     
    tr  替换字符    被替换的字符与替换的字符数必须是相等的
    用法:tr   旧字符   新字符
     
    # cat  > a.txt  <<EOF
    root:1:0:bin
    bin:2:200:bash
    jim:10:300:bash
    tom:102:10:bash
    bin:2:200:bash
    EOF
     
    # cat a.txt | tr  20   89    将cat  a.txt结果中的20替换成89。  
    root:1:9:bin
    bin:8:899:bash
    jim:19:399:bash
    tom:198:19:bash
    bin:8:899:bash
     
    # cat a.txt | tr "a-z" "A-Z"    在替换的时候是一一对应的替换
    ROOT:1:0:BIN
    BIN:2:200:BASH
    JIM:10:300:BASH
    TOM:102:10:BASH
    BIN:2:200:BASH
     
    # cat a.txt | tr  0-4   5-9  
    root:6:5:bin
    bin:7:755:bash
    jim:65:855:bash
    tom:657:65:bash
    bin:7:755:bash
     
         换行符
    # cat a.txt | tr " "  "+"     将换行符换成+号
    root:1:0:bin+bin:2:200:bash+jim:10:300:bash+tom:102:10:bash+bin:2:200:bash+
     
    # cat a.txt | tr -s "o0"  把连续重复的字符替换成一个字符
    rot:1:0:bin
    bin:2:20:bash
    jim:10:30:bash
    tom:102:10:bash
    bin:2:20:bash
     
    # cat a.txt | tr -s " "  去掉空白行
     
    tar包管理:
    作用:实现将文件或目录进行打包压缩、解包解压缩。
    windows的压缩软件:WinRaR、好压haozip、360压缩等
     
    为何要压缩?
    1、节省空间
    2、方便在网络上传输
     
    打包压缩:tar   -czvf    包名.tar.gz    要打包的文件
    例:tar -czvf etc.tar.gz  /etc
          du  -hs   /etc   etc.tar.gz    统计文件大小(disk use)
    解释:
    tar后面的-c是打包(create),z是采用gzip压缩,v显示过程,f是指定包文件名。
    du后的-h是显示容量单位,-s是sum统计总大小(通常用于目录)
     
    解包解压缩:tar  -xvf   包名.tar.gz   -C   解压到的目录
    例:tar  -xvf   etc.tar.gz   -C   /opt/
          ls   /opt     显示/opt目录中的文件名列表
          rm   -rfv   /opt/etc    强制删除/opt目录下的etc目录  
    解释:tar后面的-x是解包解压。
             rm是删除文件,-r是递归删除目录,-f强制(即不提示yes/no),-v显示过程。
     
    tar:可以实现打包并压缩,解包解压缩这两种功能。
    查看帮助:tar  --help | more
     
    tar打包并压缩:tar   -czvf    etc.tar.gz    /etc
    说明:-c是打包    -z是用gzip压缩   -v显示过程    -f是指定压缩包文件包    -j是用bzip2压缩
     
    tar解包解压缩:tar   -xzvf    etc.tar.gz   -C   /tmp/
    说明:-x是解包     -C是指定解压到的目录
     
    查看tar包中的文件列表:tar   -tf  etc.tar.gz
     
    往tar包中添加新文件、删除文件:
    tar   -cvf   host.tar    /etc/host*      打包
    tar  -tf  host.tar    查看tar包中的文件列表
    tar  -rvf  host.tar  /etc/passwd  /etc/group   往tar包中追加passwd、group文件
    tar  -vf  host.tar  --delete   etc/host*    从tar包中删除host*文件
  • 相关阅读:
    快速排序
    常见的正则表达式验证(更新中)
    中介者模式
    RadioButtonList控件如何取得选中的值
    职责链模式
    设计模式之GOF23建造者模式
    设计模式之GOF23工厂模式02
    设计模式GOF23之工厂模式01
    多线程测试时的辅助类--CountDownLatch
    设计模式GOF23之单例模式
  • 原文地址:https://www.cnblogs.com/onetwo/p/9065047.html
Copyright © 2020-2023  润新知