美文网首页
Linux入门知识

Linux入门知识

作者: KyoDante | 来源:发表于2022-07-02 20:54 被阅读0次

    基础:

    • Linux是什么
    • Linux用户、文件、目录管理
    • VIM编辑器
    • Linux文件系统管理
      进阶:
    • Linux网络管理
    • Linux进程管理
    • Linux系统监控

    查看操作系统:

    • cat /proc/version
      查看系统时间:
    • date
      查看IO、系统内存
    • cat /proc/cpuinfo 查看cpu详细信息
    • free -m 查看内存使用情况
    • top 监控视图
    • lostat 输出CPU和磁盘I/O相关的统计信息
      查看网络端口状态
    • netstat -anp | grep 18008 查看18008端口状态
      进入某个目录
    • cd /opt/oss 进入根目录下opt目录下的oss目录
      查找某个具体的文件
    • find . -name "test*" 当前目录下,查询名为test开头的文件
    • find / -name "test*" 在根目录下,查询名为test开头的文件
      修改文件权限和修改文件名
    • chown ossuser:ossgroup test.jar 修改单个
    • chown -R ossuser:ossgroup test/ 递归修改test目录下面的文件
    • mv 重命名和移动
    • cp 拷贝
      从一个环境上copy包到当前环境的具体目录
    • scp test.jar root@10.10.10.10:/tmp/test 把当前目录的test.jar复制到10.10.10.10环境上的/tmp/test目录下
      搜索进程、杀死某个进程:
    • ps -ef | grep test 查看包含test的进程,其中ps可以继续查看更多用法
    • kill -9 pid 强制杀死进程

    VIM:主要是熟悉一些常用的操作。

    额外的命令:

    • 前言:
    1. 扫描本地ip地址: ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | sed 's/addr://g'
    2. 扫描端口号被哪个进程占用: netstat -anp | awk '{print $4, $7}' | grep 31006 | sed -n '1p' | awk '{print $2}' | awk -F'/''{print $1}' | xargs ps -lfp | sed -n '2p' | awk '{print $17}'
    3. 获取某个进程的堆栈: ps -elf | grep -v grep | grep necomm_agent | awk '{print $4}' | xargs gstack > yp.txt
    4. 批量重命名网元license备份的文件名:for i in `ls`; do mv -f $i `echo $i | sed 's/^[a-zA-Z0-9].*_[a-zA-Z0-9].*_\([0-9]\{8\}\)\(_\)|([0-9]\{6\}\)\(\.txt\)$/Lic_Esn_\1\2\3/'`;done
    5. 统计某个文件夹下的文件占用的字节数:ls -l | awk 'BEGIN {size=0;} {size = size + $5;} END{print "[end]size is ", size/1024,1024, "M"}'
    • 何时需要xargs?

      • 有些命令本身不支持管道,这时候要加xargs,本身支持管道命令有限如 cut grep sort uniq wc tee join split等。比如例子:echo "/opt" | ls -l 其中,ls 本身不支持管道,所以对于前面管道输出的内容会忽略,不会输出/opt目录下的内容;而 echo "/opt" | xargs ls -l 加上xargs,执行的结果就是输出/opt下目录的内容
      • 命令虽然支持管道,但是加不加xargs意义不同。比如:在某个目录下查找某个abc字符串:find ./ | grep "abc" 这个命令不会在目录下文件查找,而是把find出来的内容查找,相当于在一群文件名中查找是否包含abc文件名。而 find ./ xargs grep "abc" 这个命令则是把find出来的东西当作参数传递给管道后的内容,相当于find出来的文件内容中查找是否包含字符串abc。
    • 正则表达式:
      POSIX正则表达式分为基本正则表达式(BRE)和扩展表达式(ERE)。目前很多UNIX工具程序沿用某一种正则表达式形式来强化本身的功能。常用的包括:1)grep和egrep;2)sed;3)awk;4)more/less;5)vi

    比如:

    • grep 'a\{3\}' test.txt 查找包含3个a的行,
    • grep '^aa' test.txt 查找以aa开头的行,
    • grep '^$' test.txt 查找空行
    • 后向引用:用\(\)包裹子表达式,然后用\digit来引用, 比如:

    • grep `\(why\).*\1` test.txt 匹配why..why

    • grep `\(ab\)\(cd\)[def]*\2\1` test.txt 匹配abcddcdab

    • grep:主打“查找”,常用的选项:

      • -v 过滤指定字符串内容的行
      • -i 不区分大小写
      • -n 顺便打印出行号
      • -c 计算出符合行的次数
      • -E 默认grep只支持基本的正则表达式,加上-E支持扩展的正则表达式,grep -E和egrep意义一样,扩展的正则有'+', '?', '|', '()'

    常用的命令:

    • ps -elf | grep -v grep | grep "necomm_agent" 如果不加grep -v grep则输出2条内容。

    • grep -i 'abc' test.txt 忽略大小写,找出test.txt包含abc的行

    • grep -v '^&' test.txt > testnew.txt 过滤test.txt的空行

    • sed:主打“编辑”,工作原理:从文件或管道中读取一行,放在模式空间(sed内部的一个临时缓存)中,进行处理,处理完输出一行;再读取一行,再处理一行。

      1. 增(a追加文本到指定行后,i插入文本到指定行前)
      • 单行增加:
        sed '2a abc' test.txt
        sed '2i abc' test.txt
      • 增加多行
      sed '2a abc\ 
      cde' test.txt 
      

    执行指定的地址范围:

    • sed可以对单行或多行进行处理,如果在sed命令前面不指定地址范围,那么默认会匹配所有行。
      /abc/,/fff/{sed-commands} 对匹配abc的行到匹配fff的行操作


      1. 删除指定的行
        sed '/aaa/d' test.txt


      2. 用新行取代旧行
        sed '2c abc' test.txt
        文本替换:
        sed 's/abc/bcdd/g' test.txt g表示全局替换,如果不加g,则替换每行第一个匹配的字符串
        sed 's/^/abc /' test.txt 在test.txt每行前插入abc
        sed -i '/aaa/s/abc/bcd/g' test.txt 加上-i代表修改了文件test.txt
        替换部分有几个特殊的元字符,分别是:
        &: 被pattern匹配的内容
        \num: 被pattern匹配的第num个分组(正则表达式的概念,\(...\)括起来的部分成为分组)
        sed '/d/s/ab/&jj/' test.txt 将匹配d内容的行中的ab替换为abjj
        echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'

      3. 查:

      • p输出指定内容,默认会输出2次匹配的结果,用n取消默认输出
        按行查询
        sed -n '2p' test.txt
        按字符串查询
        sed -n '/abc/p' test.txt
        混合查询
        sed -n '2,/abc/p' test.txt
      1. 多命令编辑:
        sed -e '1,5d' -e 's/test/check/' test.txt
    • awk:主打“分割处理“:文件逐行输入,空格默认分割,切片后再分析

    awk

    不是很懂这些进阶的命令,仍需要更多理解和学习。

    相关文章

      网友评论

          本文标题:Linux入门知识

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