美文网首页
shell命令学习

shell命令学习

作者: 小眼睛的露鹿酱 | 来源:发表于2019-07-16 22:41 被阅读0次
    linux命令

    1. 线上帮助

    man : man command 可以进入man page 如果想退出 直接敲“q”, 如果想检索关键字, 可以在最下面输入“/word”向下查询。  “?word”是向上查询, 点击n来跳到下一个
    info: 是类似于man的网页式显示
    help: 只能用于内部命令,不能用于外部命令
    

    2. 目录操作

    ls: ls是list的意思  ls -al 就是显示所有文件名以及相关属性。更改属性: chgrp chown chmod(改变文件权限)
    chmod:  chmod xyz filename。 xyz(ower, group, others)分别是是rwx(421)的和 有三个 
    假设 chmod 777 filename。那就是每个人不管是不是ower 是不是一个group都可以读写执行
    tree: 跟目录。cd /。
    pwd: 显示当前目录 print working directory
    mkdir:新建文件夹
    rmdir: 删除一个空的目录, 如果不明使用 rm -r filename
    cd:   切换目录 注意搭配 cd .. (返回上一层) cd ~ (回到自己的主文件)   cd / (回到根目录)   cd -(回到刚才的目录)  cd ../mail (相对路径去某个地方)
    

    3. 文件操作

    touch: 修改文件时间或创建新文件
               
    cp: 除了复制,还能创建快捷方式, 对比两文件的新旧来赋予更新, 复制整个目录等
        cp [option] 源文件 目标文件 
        常用的有 -i(若目标文件存在, 覆盖的时候会提示询问再进行; -r)
        cp -l 创建一个硬连接。
        cp -s 是软连接 就是创建快捷方式
        cp -u 是比较目标文件与原文件有差异时, 进行复制, 备份时用这个比较好
    
    mv: 移动文件, 重名命, 
           mv [command] 原文件 目标文件
           -f: 强制 如果目标文件存在, 直接覆盖
           -i:  若存在, 会询问覆盖
           -u: 如果已经存在, 如果source是最新的, 那直接更新
        当目标文件是一个新文件的时候, 就会重命名;  rename其实也会用于重命名
    
    rename
    rm: 移除文件; rm [command] file
          -f: force 忽略不存在的文件 不会有提示信息
          -i: 删除时会进行询问; 默认使用的
          -r: 递归删除, 目录删除; 若不想删除, 可以安Ctrl+C来结束删除
           若果确认 不想提示删除, 使用 \rm -r file
         
    in: 
    find:
    
    

    4. 文件查看处理

    cat: 由第一行显示内容
           cat -n file   显示行号
           tac: 倒写文件
    more:   more file 一页一页显示; q 直接离开
                /word 搜索
                :f 立即显示文件名以及目前显示的行数
    less:  一页一页翻动, 可以上下翻动;
            /word: 检索 搭配n/N使用next one
            ?word: 向上检索。搭配n/N 使用
    head:  取出前面几行。head -n number。  
               head -n +100 file。  从100行开始列出n行信息
               head -n  20 file   从最后20行开始列出
    tail: 取出后面几行   tail -n number
    cut: cut string -d ':' -f 4   将string中以:分割 取第4列数据
    paste: 
    sort: sort [参数] file
            -f 忽略大小写排序
            -b 拂掠空格部分
            -M  以月份的名字进行排序
            -n  以纯数字进行排序
            -r  反响排序
            -u  uniq 相同的数据 仅出现一行
            -t   使用分隔符 默认是Tab
            -k   以哪个区间来排序
           cat file |  sort -t ':' -k 3     文件file使用: 进行分割 第三列作为排序的列
    uniq:  排序完成 去掉重复的数据
            uniq  [-ic]
            -i: 或略大小写
            -c: 进行计数
    wc:   wc [-lwm]。 默认就是全输出
            -l: 行数
           -w: 多少字
           -m: 多少字符
            cat file | wc
    icon:  
    dos2unix
    file: Linux file命令用于辨识文件类型; 
           -v  显示版本信息;
           -z:   尝试去解读压缩文件的内容
    diff:  用于比较文件差异
           -b: 不检查空白行
           -i: 不检查大小写
           -w: 忽略空格
    tree: 以树状图列出目录内容
    chattr: 改变文件属性
    lsattr: 显示文件属性
    rev: 
    vimdiff
    
    

    5. 文件打包压缩

    gzip: 应用最广的压缩命令, 压缩后的文件名为*.gz; 压缩完, 原文件就会被替换, 不存在了
            gzip [command] filename
            -v: 显示压缩比例
            -t: 查看压缩后有无错误
            -c: 将压缩数据输出到屏幕上,可通过数据重定向来处理, 配合>使用
            
    tar: 
          》压缩  tar -jcv -f filename.tar.bz2 filename(要被压缩的文件或目录)
          》查询  tar -jtv -f filename.tar.bz2        
          〉解压缩  tar -jxv  -f filename.tar.bz2 -C filername(想要解压缩的目录)
    unzip
    

    7. 搜索命令

    find: Linux find命令用来在指定目录下查找文件
            find . -name "*.c"   查看当前目录以及子目录中以.c结尾的文件
            find . -type f          查看当前目录以及子目录中file类型的文件
            find . -ctime -20    寻找近20天更新的文件
            find / -type f -size 0 -exec ls -l {} \     寻找file类型的文件 大小为0, 并将完整路径列出
    which:   which指令会在环境变量$PATH设置的目录里查找符合条件的文件
    whereis: 指令只能用于查找二进制文件、源代码文件和man手册页
    locate: 只需要输入 locate your_file_name 即可查找指定文件; ocate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 
    
    

    19. 管道 pip |

    管道仅仅会处理stanard output, 并不会处理有error 的输出
    管道命令必须能够接受来自前一个命令的数据成为standard input继续处理才行  ls cp mv等不会接受stdin的数据
    

    20. 三剑客

    grep: 分析一行信息, 如果当中有我们需要的, 就把它拿出来
              grep [-acinv] [--color=auto] ‘查找字符串’ filename
              -a: 将binary文件以text文件的方式查找数据
              -c: 计算找到‘目标字符串’ 的次数
              -i: 忽略大小写
              -n: 顺便输出行号
              -v: 反向选择
              --color=auto  高亮
    
    
    sed: 管道命令, 可以分析stadard input; sed可以将数据进行替换 删除新增 选取特定等的功能.
         sed [-nefr] [动作]
                -n: 只有经过sed特殊处理的才会被列出来;默认是来自stdin的所有数据都被列出来
                -e: 直接在命令模式上进行sed的动作编辑
                -f: 直接将sed的动作写在一个文件中.
                -r: sed的动作支持的是扩展型的正则表达式
                -i: 直接修改读取的文件内容,而不是由屏幕输出
          ***动作***:  [n1][,n2] function
                n1 n2 为第几行到第几行;  function 包含以下参数
                     a: 新增
                     c: 替换
                     d:删除
                      i: 插入
                     p:打印
                     s:替换
    
    举例:  n1 filename | sed '2a drink tea!'    
              n1 finename | sed '2,5d'
    
    
    
    awk: 好用的数据处理工具
             awk ‘条件类型1 动作1’ 条件类型2 动作2 ....‘ filename
             awk ’{print $1 "\t" $2}‘
             awk 还有三个内置变量:  NF(列数)。NR(第几行)。FS(目前分隔符) 
    
    
    1. 查看电脑上有哪些shell
    cat /etc/shells
    
    1. 使用type能查看出某个命令到底属于shell内部的还是外部的


    2. 命令行的执行
      如果命令太长可以考虑使用反斜杠/来跳到下一行继续, 注意反斜杠/后面不能有空格 否则表示转义空格

    3. 显示变量内容echo

       echo $path
    
    图片.png
    1. 查看哪些环境变量用env


    2. 查看所有环境变量的内容


    相关文章

      网友评论

          本文标题:shell命令学习

          本文链接:https://www.haomeiwen.com/subject/ijotlctx.html