美文网首页
Linux常用命令

Linux常用命令

作者: ffusheng | 来源:发表于2017-06-02 00:46 被阅读0次

    复习一下Liunx常用命令。

    文件部分

    ls命令
    ````
      -rw-r--r--  1   root  root  5661  Sep 4 18:25  text.txt
      [1]        [2]  [3]   [4]   [5]   [6]          [7]
    ````
    
    • [1] 对应文件权限:
    • [-]表示文件。
    • [d]表示目录。
    • [l]表示连接文件。
    • [b]表示设备文件里的块设备。
    • [c]表示设备文件里的字符设备。
    • [s]表示套接字文件。
    • [p]表示管道文件。
    • 接下来3组[rwx],第一组表示文件所有者的权限,第二组表示同用 户组的权限,第3组表示其他非本用户的权限。
    • [2] 表示连接此文件的数量
    • [3] 表示文件所有者的账号
    • [4] 表示文件所属用户组的账号
    • [5] 表示文件容量大小,默认为B
    • [6]表示文件创建时间或者最近修改时间
    • [7]表示文件名
    cd,pwd命令

    .: 代表此层目录
    ..: 代表父目录
    -: 代表上一个工作目录
    ~: 代表目前用户主目目录

    • 切换工作目录:
      cd [相对路径或者绝对路径]
      
    • 显示目录路径
      pwd : 显示当前目录的绝对路径
      
    mkdir,rmdir命令
    • 创建目录
    mkdir -[mp] 目录名称
    -m  配置权限,默认(umask)  例:mkdir -m 711 dir
    -p  递归创建,默认情况下目录必须一层一层创建
    
    • 删除空目录
      rmdir -[p] 目录名称
      -p 递归删除
      
    chgrp,chown,chmod命令。
    • 修改文件的所有者:
      chown [-R] 账号名称 文件或目录
      
    • 修改文件的用户组
      chgrp [-R] dirname/filename [-R] 递归修改
      
    • 修改文件权限
      R: 4 W:2 R:1
      • 数字修改方式
      chmod +x 文件或目录    x:xyz之和                                                              
      
    • 符号修改方式
      chmod   u|g|o|a  +(加入)   r|w|x     文件或目录
      chmod   u|g|o|a  -(减去)   r|w|x     文件或目录
      chmod   u|g|o|a  x(设置)   r|w|x     文件或目录
      u: user    g: group   o: other   a: all  
    
    目录与文件权限的意义
    • 权限对普通文件的意义:
      • r:读取文件的内容
      • w : 编辑,修改文件内容
      • x : 可以执行。
    • 权限对目录文件的意义
      目录的主要内容是记录文件名列表
      • r : 查询文件名数据
      • w : 更改目录文件内容的。意思是可以删除目录内文件和新增文件。与x权限配合才可以。
      • x:代表用户能否进入该目录使之成为工作目录。如果你不具有x权限,那么你不能切换到该目录下,也就无法执行与该目录有关的任何命令。
        比如有个目录test: rw-。但mkdir test/tes2等命令会失败,尽管你有w权限。
    which,whereis,find命令
    • which命令:寻找可执行文件
        例:which ls          根据path环变量的路径寻找
      
    • whereis命令:寻找特定文件:二进制,帮助文件
    ````
      whereis [-bmsu] 文件名或目录   
    ````
    
    • locate命令
        locate -i 文件名和目录  -i 忽略大小写
        locate 和whereis 都是从数据库中查找,更新数据库updatedb.
      
    • find命令
        find [path]  [option]  [action] 
        option:-atime,-ctime,-mtime
            find -mtime -n。n天以内包括(n)修改过的文件。
            find -mtime n。n天之前的一天之内修改过的文件。
            find -mtime +n。n天之前(不包含n)修改过的文件。
        option:-uid,-gid,-user ,-nouser,-nogroup
            find / -user admin 查找根目录下数以admin的文件
            ......
        option:-name,-size,-type,-perm
            find -name xx  找到名为xx的文件
            find -size  [+|-]50[c|k]    找到大小在50
            find -perm 
      
    zip命令
      • .z compress程序压缩文件
      • .gz gzip程序压缩的文件
      • .bz2 bzip2程序压缩的文件
      • .tar tar程序打包的数据,没有压缩过
      • .tar.gz tar打包,经过gzip的压缩
      • .tar.bz2 tar打包,经过bzip2压缩
    • gzip

        gzip  [-cdtv]  filename     c 显示数据,v显示压缩比·
        gzip filename            压缩文件 
        gzip -# filename         #压缩等级1-9,6合适
      
        gzip -d filename         解压文件
      
    • bzip2

        bzip2 [-cdkzv#]  filename
        bzip2 filename       压缩文件
        bzip2 -k filename    保留源文件压缩
        bzip2 -# filename    #压缩等级 
      
        bzip2 -d filename 解压
      
    tar命令
    • 压缩打包

        tar [-j|-z]  [cv]  [-f 新文件名]  filename
        -j和-z    选择bzip2压缩还是gzip压缩
        -c         新建打包文件
        -v         打包过程中间将处理的文件显示出来
        
        tar  -jcv  -f  txt.tar.bz2  txt
        tar  -zcv  -f  txt.tar.gz  txt
      
    • 解压解包

      tar  [-j|-z]  [xv]  [-f 新建文件名]  [-C 目录]
      -j和-z    选择bzip2解压还是gzip解压
      -x          解打包        
      -v         打包过程中间将处理的文件显示出来、
      
      tar  -jxv  -f txt.tar.bz2 -C .
    
    
    • 查看
      tar -jtv -f txt.tar.bz2
    

    用户部分

    su命令
      su - user  // 注意-号加不加的区别
      su - -c 命令  // 执行该命令后回复原身份 
    
    w,who,last,lastlog命令
      w/who: 列出目前已经登录的用户
      lastlog:  列出每个账号最近登录的时间
      last:  从系统开始到目前登录用户情况
    

    系统资源部分

    ps命令
    • ps -l : 仅仅查看自己bash相关的进程

      F  S  UID   PID    PPID   C  PRI  NI  ADDR  SZ  WCHAN    TTY     TIME     CMD
      4  S  500   3639   3637   0  75   0    -   1287  WAIT   PTS/1   00:00:00  bash
      4  R  500   3700   3639   0  77   0    -   1101   -     pts/1   00:00:00  ps
      
      • F:代表进程标志,说明进程权限
      • S : 代表进程的状态,主要有:
        • R:正在运行
        • S:睡眠
        • D:D,不可被唤醒的睡眠,等待I/O
        • T:停止状态
        • Z:僵尸进程
    • UID:用户ID

    • PID:进程ID

    • PPID:父进程ID

    • PRI和NI
      PRI表示进程优先级,有内核动态调整,用户无权干涉。NI值用户可以调整。ROOT调整范围-20 ~ 19,一般用户0 ~ 19,值越小,越有可能被优先执行。

    • SZ:代表用掉多少内存

    • WCHAN:表示进程目前是否正在运行中。-表示在运行

    • TTY:登陆者终端位置

    • TIME:用掉的CPU时间

    • CMD:触发此进程的命令

    • ps aux:查看系统所有进程
      ps aux 结果如图:

      USER  PID    %CPU  %MEM  VSZ  RSS  TTY  STAT  START  TIME COMMAND
      root  13639  0.0   0.2   2064 616  pts/1 Ss  11:44  0:00  -bash   
      ......
      
      • USER:用户名
      • PID:
      • %CPU:用掉的CPU资源百分比
      • %MEM:该进程占用的物理内存百分比
      • VSZ:使用掉的虚拟内存量
      • RSS:占用的固定内存量
      • TTY:属于哪个终端机
      • STAT:目前状态
      • START:触发启动时间
      • TIME:实际使用CPU时间
      • COMMAND: 触发进程的命令
    • pstree 进程树

      • pstree -up up表示同时列出所属账号和PID
    top命令
    • top 命令


      1.jpg
      • 第一行显示的信息分别为:
        • 目前的时间
        • 开机到目前的时间
        • 已经登录的系统用户数
        • 系统在1,5,15分钟的平均工作负载
      • 第二行显示的信息:
        • 目前进程总数,以及各状态的进程数量
      • 第三行CPU的整体负载
        • %us
        • %sy
        • %ni
        • %id
        • %wa
        • %hi
        • %si
        • %st
      • 第四行物理内存使用量
      • 第五行虚拟内存使用量,交换分区
    • 在top执行过程中:可以输入以下命令:

      • P 按照CPU使用排序
      • M按照内存资源使用排序
      • N按照PID使用排序
    • top -d 5 界面更新的秒数

    • top -b -n 2 > text 可以将结果写入文件

    netstat命令
    netstat -[atunlp]
    
    -a:列出目前系统上所有的连接,监听,socket
    -t:列出tcp网络数据包数据
    -u:列出udp网络数据包数据
    -n:不列出进程的服务名称,以端口号来显示
    -l:列出目前正在监听的网络
    -p:列出网络服务的PID
    
    free命令
    free  [-b-k-m-g]  [-t]
    
    -b,-k,-m,-g  控制显示格式:b(byte),-k(kb),-m(mb),- g(gb)
    -t  输出结果显示物理与虚拟内存总量
    
    uname命令
    uname 
    
    -a:所有系统相关信息
    -s:系统内核
    -r:内核版本
    -p:CPU类型
     ......
    

    软件管理部分

    rpm命令
    rpm -ivh xx   安装软件
    rpm -e xx     卸载软件
    rpm -qa       列出所有已安装的软件
    rpm -qi xx    列出该软件的详细信息
    rpm -ql xx    列出该软件所有的文件与目录
    rpm -qf xx    找出该文件与哪个被安装的软件有关
    rpm -qc xx    列出该软件所有设置文件
    
    yum命令
    yum install xx      安装
    yum remove xx       卸载
    yum update xx       升级
    yum info xx         查询
    yum search xx       搜索 
    

    vim部分

      h,j,k,l:  左,上,下,右移动光标
      0:  移动到这一行行首
      $:  移动到这一行末尾
    
      H:  移动到屏幕最上方那一行第一个字符
      L:  移动到屏幕最下方那一行第一个字符
      G:  移动文件最后一行
      gg: 移动文件第一行
      N[ENTER]:光标向下移动n行
      
      dd:  删除
      yy:  复制光标所在行
      p:   粘贴
      u:   撤销
    
      :r filename    在当前文件内打开另一个文件
      :w filename    当前文件另存为
    
      :sp filename  纵向分屏打开
      :vp filename  横向分屏打开
      :qa 关闭多个文件
      :/word    查找word
      :1,$s/word1/word2/g 从第一行到最后一行将word1替换为word2
    

    shell部分

    alias命令
      alias lm='ls -al'    设置命令别名
      unalias lm           取消
    
    type命令
    数据流重定向
      -标准输入,   代码为0,使用< 和 <<
      -标准输出,   代码为1,使用> 和 >>
      -标准错误输出,代码为2,使用2>和2>>
    
    命令执行判断
    • cmd1;cmd2
        sync; sync; shutdown -f           
      
    • cmd1 && cmd2
      -- 若cmd1执行正确则执行cmd2
      -- 若cmd1执行错误则不执行cmd2
      查看txt文件是否存在,存在就新建txt2。
      ls txt && touch txt2
      
    • cmd1 || cmd2
      -- 若cmd1执行正确则不执行cmd2
      -- 若cmd1执行错误则执行cmd2
      查看txt文件是否存在,不存在就新建txt。
      ls txt && touch txt
      
    • cmd && cmd1 || cmd2
      --cmd 执行成功则执行cmd1,执行失败则执行cmd2
      查看txt是否存在,存在输出exit,不存在输出no exit
      test -f txt && echo 'exit' || echo 'no exit'
      
    shell变量
    • 基础

        name="admin"
        echo '$name'      输出:$name
        echo "$name"      输出:admin
        unset name        取消变量
      
    • 环境变量

        env  查看环境变量
        set  查看所有变量(环境变量与自定义变量)
      
    • 变量声明

        declare -[aixr]  variable
        -i 声明定义为整数类型 例子:declare -i sum=10+20
        -r 将变量设置成readonly类型。不能修改,也不能重设
        -a 将变量定位数组类型
      
    shell脚本
    • shell脚本执行方式
      • sh shellscript.sh和./shellscript.sh都是在使用一个新的bash环境(子进程)来执行脚本内的内容。
      • source shellscript.sh是在原父进程执行脚本内容。
    • shell 脚本默认变量
      • $# 表示参数个数
      • $@ 表示$1,$2,$3......
    • 常见判断式
    判断式 意义
    test -e filename 判断文件名是否存在
    test -f filename 判断文件名是否存在且为文件
    test -d filename 判断文件名是否存在且为目录
    ...b c S p L... 判断文件名是否存在且为块设备,字符设备,Socket文件,管道文件,连接文件
    test -r filename 检测该文件名是否存在且具有读权限
    test -w filename 检测该文件名是否存在且具有写权限
    test -x filename 检测该文件名是否存在且具有执行权限
    test n1 -eq n2 2个数相等
    test n1 -ne n2 2个数不等
    test n1 -gt n2 n1大于n2
    test n1 -ge n2 n1大于等于n2
    test n1 -lt n2 n1小于n2
    test n1 -le n2 n1小于等于n2
    test str1 = str2 字符串str1是否等于字符串str2
    test str1 != str2 字符串str1是否不等于str2
    test -z str 判断字符串str是否为空串
    -a 2个条件同时成立 test -r file -a test -x file
    -o 任何一个条件成立
    反向
    • 利用判断符号[]

        [ -f filename ] 判断文件名是否存在且为文件
        [ ${var} == "Y" -o ${var} == "y" ] 判断用户选项
      
    • if--else

        if [条件判断式]; then
            ......
        else
            ......
        fi
      
    • if--elif--else

       if [条件判断式一]; then
           ......
       elif [条件判断式一]; then
           ......
       else
           ......
       fi
    
    • case esac

        case $变量名称 in
              "第一个变量内容")
                 ......
                 ;;        # 有2个分号
              "第二个变量内容")
                 ......
                 ;;        # 有2个分号
              ......
        esac       
      
    • for do done循环

        // 固定循环
        for var in con1, con2, con3
        do 
            ......
        done
      
        // 数值处理
        for i in $(seq 1 100)
        do
            ......
        done
      
        for ((i=1; i <=100; i++))
        do
            ......
        done
      
    • while do done循环

        while [条件判断式]
        do
            ......
        done
      
    • until do done循环

        until [条件判断式]
        do
            ......
        done
      
    • 函数

        // shell script的执行方式是由上而下,由左而右。
        function name() {
            ......
        }
      

    相关文章

      网友评论

          本文标题:Linux常用命令

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