Linux常用命令

复习一下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 命令


    Linux常用命令_第1张图片
    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常用命令)