• linux一些基本常识(四)


    tail -f时时监控

    一开启内存最小位u原则,尽量优化代码

    grep -v "" /etc/passwd 这样行不行

    怎么清除last

    nice调整进程运行级别

    pkill是匹配关键字来杀死进程的
    ------------------------------------------------------------------------------
    文本的操作基础:
        cat    --文本的简单查看命令,只能查看最后一屏的信息
        cat -n    /<path>/file    --显示行号

        more    --分页查看文本内容
        less    --分页查看,比more灵活
            /关键字    可以实现搜索的功能,按n配置下一个,N配置上一个
        head    --局部查看命令,查看文本的头部
            head /etc/passwd    --10行
            head -3 /etc/passwd    --头3行
        tail    --局部查看命令,查看文本的尾部
            tail /etc/passwd    --末10行
            tail -3 /etc/passwd    --末3行
            tail -f /var/log/message    --可以看到最新的更新内容 (动态查看)
            

    =============文件内容搜索===================
        grep
            #grep root /etc/passwd        --在passwd过滤root关键字
            #grep -i root /etc/passwd        --忽略大小写
            #grep -n -i root /etc/passwd    --忽略大小写并输入行号
            #grep -v root /etc/passwd        -v除了root这个关键字
            # grep -v '^$' /etc/passwd        ^$ 空行
            # grep '^root' /etc/passwd        ^root以root开头
            # grep 'bash$' /etc/passwd        bash$以bash结尾
            # head /tmp/passwd | grep -v '^$'
            # grep  -Rl    "size_t"    /usr/include/   查找/usr/include哪些文件中含有size_t 关键字
    # less /tmp/passwd | grep -v '^$' | grep -i -n root
     1194  cat  /tmp/passwd | grep -i -n '^root'
     1195  cat  /tmp/passwd | grep -i -n 'bash$'
    # cat /etc/vsftpd/vsftpd.conf  | grep -v '^#' | grep -v '^$'

    ===============================
    linux信息搜集命令:
        uname    
            uname -r    内核版本
            uname -n    主机名    hostname
            uname -a    所有信息
    # cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 7.2 (Maipo)

        
    ==================================    
        free
            free -m        内存和交换分区的使用情况
     total       used       free     shared    buffers     cached
    Mem:          1992       1953         39          0         98       1414
    -/+ buffers/qcache:        440       1552
    Swap:         2271          0       2271

    tobal 内存总数 used 已经使用的内存数 free 空闲的内存数
    shared 当前已经废弃不用 buffers 缓存内存数 cached 缓存内存数
        
        #watch -n 1 -d free   动态观察内存情况
        

        了解/proc目录
        cat /proc/cpuinfo         CPU信息
        cat /proc/meminfo        内存信息
        cat /proc/swaps            交换分区    
        cat /proc/version        版本
        cat /proc/scsi ide   scsi 设备信息  ide设备信息  
        cat /proc/net         网络状态与配置文件
        cat /proc/sys        核心配置参数  (除了这个文件,其他的是只读)
        cat /proc/<PID> 以进程PID命名的目录,每个进程的信息分别放在该目录下文件中
         cat /proc/sys/net/ipv4/icmp_echo_ignore_all       0关闭  1开启
     -------------------------------------------------------------------------------------------------------
        df 查看挂载情况
            df -h    显示已经挂载的分区,以M为单位显容量    
            df -Th    显示已经挂载的分区和分区对应的文件系统
            df -i        显示已经挂载的分区和文件节点数
        du  查看文件实际占用磁盘空间大小
            du -csh    /dir
            du -chs /dir/filename    统计文件或者目录占用的磁盘空间情况

        
        w who whomai id finger
        w    --显示在线用户
        write   king  向在线的用户king发送消息
        who    --显示在线用户
        whoami    --查询当前用户是谁
        id    --查询当前用户的uid gid和辅助组
        id username    --查询指定用户的uid gid和辅助组
        last lastlog ac
            last    --显示最新登录系统的用户,及在线时间情况
            lastlog            --报告所有用户最近有无登录服务器
            lastlog -u username    --报告指的用户
            ac -p        --报告所有用户的在线时长
            ac -p -d    --按照日期来统计用户的在线时长



    进程管理:
    ps
    pstree
    top 系统监视工具
    pgrep
    pkill
    kill
    killall
    nice
    renice

    ps -aux  查看进程关系
    -a 显示其他用户启动的进程
    -u 启动这个进程的用户和它启动的时间
    -x 查看系统中属于自己的进程
    -f 显示进程的父子关系

    我们常用的是 ps -aux
    =================================
            USER    --启动进程用户身份
            PID     --进程号
            %CPU    --CPU的利用率
            %MEM    --内存的利用率
            VSZ     --预分分配的虚拟内存
            RSS     --真实分配的内存
            TTY     --在哪个终端启用的进程
           STAT    --当前进程的状态
                    D:不可中断的睡眠
                    R:运行当中的进程
                    S:可中断的睡眠
                    T:停止或被追踪   
                    Z:僵尸进程 <子进程结束 父亲进程未回收子进程资源 则变成僵尸进程>  
                    d:死掉的进程    
              <:高优先级别的进程
                    n/N:低优先级别的进程
                    s:是一个进程组,代表还有子进程
              +:前台进程
            START   --进程启动时间
            TIME    --进程运行了多长时间
            COMMAND --用什么命令启动的进程




    共享内存hhr用于进程间通信的

    面对大量io读取瓶紧,我们该怎么解决?

    ----------------------------------------------------------------------------------------

    kill    根据进程ID,给进程发信号
           查看Linux下信号定义 man 7 signal
        kill PID    发进程发正常关闭信号 (默认发的是15信号)
        kill -15 PID    向进程发正常关闭信号    
        kill -9 PID    向进程发强制退出信号
        kill -1 | -HUP  --让进程重启,并重新加载配置文件
        
        
    killall --根据完整的程序名字关闭进程
        killall -9 bash  
        killall -9  httpd
        killall -1 bash

    nice  优先级 -20到19  (-20最高 19最低)
     nice -20 /bin/bash     --启动某个程序时指定进程的优先级别
    renice
    # renice -20  -p 8054    --更改已经启动的程序的进程优先级别   top   输入



    bash的特殊符号:
    < << > >> &> | * ? $
        标准输入         (键盘) stdin           0  
        标准正确输出    (屏幕)stdout          1
        标准错误输出    (屏幕)stderr        2
        
    # ll /dev/std*
    lrwxrwxrwx. 1 root root 15  5月  2 2012 /dev/stderr -> /proc/self/fd/2
    lrwxrwxrwx. 1 root root 15  5月  2 2012 /dev/stdin -> /proc/self/fd/0
    lrwxrwxrwx. 1 root root 15  5月  2 2012 /dev/stdout -> /proc/self/fd/1

    ls > /tmp/aaa
    ls /tttt
    ls /tttt > tmp/aaa  ----  ls /tttt 2> /tmp/aaa

    # ls -l /dev/std*
    lrwxrwxrwx. 1 root root 15 Aug  3 09:34 /dev/stderr -> /proc/self/fd/2
    lrwxrwxrwx. 1 root root 15 Aug  3 09:34 /dev/stdin -> /proc/self/fd/0
    lrwxrwxrwx. 1 root root 15 Aug  3 09:34 /dev/stdout -> /proc/self/fd/1

        <<    --输入追加重定向
    # cat > a2.txt <<END      ||  EOT
    > gfdsjkgfdjgkldf
    > fdsfdsfds
    > fdsfdsf
    > END      ||  EOT
        >    --输出覆盖重定向
        >>    --输出追加重定向
        2>    --错误覆盖输出重定向
        2>>    --错误追加输出重定向
        &>    --输出正确/错误覆盖重定向
        &>> --输出正确/错误追加重定向

    #vim scanf.c
      int main(void)
      {
          int a ,b;
        printf("input a and b:");
        scanf("%d %d",&a,&b);
        printf("a:%d b:%d ",a,b);
        return 0;
      }
    #gcc  scanf.c

    #cat  txt
         100 500
    标准输入重定向
    #./a.out  <  ./txt
    --------------------------------------------------    
    cat /root/a2.txt /root &> a.txt        --将正确和错误一起覆盖重定向至a.txt
    cat /root/a2.txt /root  &>> a.txt         --将正确和错误一起追加重定向至a.txt
    find / -name kk &> /tmp/findfile          --将正确和错误一起覆盖重定向至/tmp/findfile
    find / -name kk &>> /tmp/findfile


    # cat /root/a2.txt /root/ > /tmp/1.txt 2> /tmp/2.txt
    # cat /root/a2.txt /root/ >> /tmp/1.txt 2>> /tmp/2.txt


    |    管道

        cat /etc/passwd |grep root |grep ^root
        cat /etc/passwd | grep nologin$
            --把passwd输出结果通过管道交给第二个命令去处理,往后的以此类推

    通配符:
    *    --匹配一个或者任意多个字符,也就是*代表所有
    ?    --匹配一个字符
    $    --引用变量
    ls /etc/*.conf
    [root@instructor ~]# ls /etc/?conf
    echo $PATH


    软链接ln要用绝对路径来作,保证数据链接的正确,以防软链接移到别处了就出现各种问题。
    ln -s 软链接
    ln -d 应链接

    真正删除一个文件要满足2个条件(硬链接数为0,引用技术为0,就是有多少个进程引用这个)

    因链接要主义的:不能对目录作应链接,因为硬链接,系统有一个遍历循环 ls -R避免形成一个循环遍历。

    因链接也不允许跨分区(因为不能保证inode号唯一)实时备份的好工具

  • 相关阅读:
    未能加载文件或程序集"xxx"或它的一个依赖项。试图加载格式不正确的程序。
    js实现拖动div,兼容IE、FireFox,暂不兼容Chrome
    WPF 像CSS一样使用 Font Awesome 图标字体
    面向接口、面向对象、面向方面的区别
    ionic 编译 gradle下载。
    ionic 不是外部命令 不是内部命令
    Ionic 编译找不到index.html
    分区表
    安装.net framwork3.5
    MSDTC不可用解决办法
  • 原文地址:https://www.cnblogs.com/xingyunfashi/p/7657508.html
Copyright © 2020-2023  润新知