博客园 首页 联系 订阅 管理

一、在linux中有5中常见的进程状态,分别为R(运行)、S(中断)、D(不可中断)、Z(僵死)、T(停止)
  R(运行):runing 进程正在运行或在运行队列中等待。
  S(中断):sleep 进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
  D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
  Z(僵死):zombie 进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
  T(停止):进程收到停止信号后停止运行。

二、查看进程总数
  ps -aux | wc -l

三、top命令:命令用于动态地监视进程活动与系统负载等信息
  第一行:top - 11:32:00 up 2 days, 1:52, 2 users, load average: 0.00, 0.01, 0.05
    解释: 11:32:00 => 系统时间;
    up 2 days, 1:52 => 已近开机时间
    2 users => 登录终端的数量
    load average: 0.00, 0.01, 0.05 => 系统负载。三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低
  第二行:Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie
    101 total => 进程总数
    1 running => 运行中的进程数
    100 sleeping => 睡眠中的进程数
    0 stopped => 停止的进程数
    0 zombie => 僵死的进程数
  第三行:%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
    0.0 us => 用户占用资源的百分比
    0.0 sy => 系统内核占用资源百分比
    100.0 id => 空闲的资源百分比。例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲
  第四行:KiB Mem : 995896 total, 74924 free, 147356 used, 773616 buff/cache
    995896 total => 物理内存总量
    74924 free => 内存空闲量
    147356 used => 内存使用量
    773616 buff/cache => 作为内核缓存的内存量

四、查看某个服务的进程号 pidof
  pidof 服务名 例如:pidof sshd

五、杀死进程号 kill & killall
  kill 进程号
  如果某个服务有很多进程号,即一个大的服务,使用killall 服务名
  killall sshd => systemctl stop sshd (二者相同)

六、ifconfig
  ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  inet 192.168.195.128 netmask 255.255.255.0 broadcast 192.168.195.255
  inet6 fe80::20c:29ff:fe43:1f8e prefixlen 64 scopeid 0x20<link>
  ether 00:0c:29:43:1f:8e txqueuelen 1000 (Ethernet)
  RX packets 675455 bytes 831116726 (792.6 MiB)
  RX errors 0 dropped 0 overruns 0 frame 0
  TX packets 370129 bytes 44844258 (42.7 MiB)
  TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

  ens33:网卡名称
  inet 192.168.195.128 :网卡ip地址
  netmask 255.255.255.0 :子网掩码
  ether 00:0c:29:43:1f:8e :网卡mac地址,物理地址
  RX packets 675455 bytes 831116726 (792.6 MiB) :(RX) 收取数据包的大小 792.6MiB
  TX packets 370129 bytes 44844258 (42.7 MiB) : (TX) 发送数据包的大小 42.7MiB

七、uname命令,查看系统内核与系统版本信息 uname -a
  Linux bogon 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    Linux : 平台名称
    bogon :主机名称
    3.10.0-957.el7.x86_64 :内核版本号
    #1 SMP Thu Nov 8 23:39:32 UTC 2018 :系统打包时间,制作该系统的时间

八、查看系统内存使用情况:free 命令,没有参数的话,是以KB为单位
  free -h 显示内存的单位,查看方便
  free -m 显示的数字以M为单位

九、查看当前登入主机的用户终端信息。who
  登陆的用户名 终端设备 登陆到系统的时间(ip地址)
  root pts/0 2019-07-24 10:28 (106.38.102.154)
  root pts/1 2019-07-29 09:04 (106.38.102.154)
  root pts/2 2019-07-29 11:12 (106.38.102.154)
  root pts/3 2019-07-29 11:35 (106.38.102.154)

十、查看系统所有的登录记录  last

十一、查看系统的所有执行过的命令 history
  清空当前用户在本机上执行的linux命令历史记录信息。history -c

十二、文本文件编辑命令
  cat 查看小文件 cat -n 文件名称 => 显示行数
  more 查看大文件,按enter进行往下浏览
  head -n 10 文件名 => 查看文件前10行
  tail -n 10 文件名 => 查看文件后10行
  tail -f 文件名 => 监控该文件

十三、管道符 |
  命令A | 命令B => 将命令A的输出内容,作为命令B的输入,供命令B的使用

十四、替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”
  cat a.txt | tr [a-z] [A-Z] => 将a.txt中的内容全部转为大写字母,并输出到屏幕上,原始的a.txt文本不变

十五、统计指定文本的行数,字数,字节数。 格式为“wc [参数] 文本”
  参数: -l => 只显示行数; -w => 只显示单词数; -c => 只显示字节数

十六、查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”
  File: ‘webpack.mix.js’
  Size: 549 Blocks: 8 IO Block: 4096 regular file
  Device: fd01h/64769d Inode: 413137 Links: 1
  Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
  Access: 2019-03-20 10:06:19.950229017 +0800
  Modify: 2019-03-19 09:45:15.670097906 +0800
  Change: 2019-03-19 09:45:15.670097906 +0800
  Birth: -

  Access: 2019-03-20 10:06:19.950229017 +0800 => 最后访问文件的时间
  Modify: 2019-03-19 09:45:15.670097906 +0800 => 最后修改文件内容的时间
  Change: 2019-03-19 09:45:15.670097906 +0800 => 最后修改文件属性的时间(修改文件权限,所属者,文件名称)

十七、按 ‘列’ 提取文本字符,格式为 “cut [参数] 文本“
  cut -d : -f 1 文本文件
    解释:以:为分隔符,提取分割之后的第一列内容

十八、比较多个文本文件的差异,格式为“diff [参数] 文件”。
  diff --brief a.txt b.txt 返回的简介结果,相同与不同
  diff -c a.txt b.txt 返回的是比较内容的详细不同

十九、创建空白文件或者设置文件的时间,格式为“touch [选项] [文件]”。
  -a 仅修改“读取时间”(atime)
  -m 仅修改“修改时间”(mtime)
  -d 同时修改atime与mtime

二十、创建空白的目录,格式为“mkdir [选项] 目录”。除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录
  mkdir abc; mkdir -p a/b/c/d/e

二十一、复制文件或目录,格式为“cp [选项] 源文件 目标文件”。
  如果目标文件是目录,则会把源文件复制到该目录中;
  如果目标文件也是普通文件,则会询问是否要覆盖它;
  如果目标文件不存在,则执行正常的复制操作。

  -r 递归持续复制(用于目录)

二十二、rm 删除
  rm 文件名 会被询问是否确定删除
  rm -f 文件名 不会被询问
  rm -rf 目录文件,级联删除目录文件及文件夹

二十三、dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。

  dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。
  当然如果愿意的话,还可以在复制过程中转换其中的数据。Linux系统中有一个名为/dev/zero的设备文件,每次在课堂上解释它时都充满哲学理论的色彩。
  因为这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。

  参数 作用
  if 输入的文件名称
  of 输出的文件名称
  bs 设置每个“块”的大小
  count 设置要复制“块”的个数
  例如我们可以用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。在理解了这个命令后,以后就能随意创建任意大小的文件了:

  [root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M
  1+0 records in
  1+0 records out
  587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s

  dd命令的功能也绝不仅限于复制文件这么简单。
  如果您想把光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像:
  [root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
  7311360+0 records in
  7311360+0 records out
  3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
  考虑到有些读者会纠结bs块大小与count块个数的关系,下面举一个吃货的例子进行解释。
  假设小明的饭量(即需求)是一个固定的值,用来盛饭的勺子的大小即bs块大小,而用勺子盛饭的次数即count块个数。
  小明要想吃饱(满足需求),则需要在勺子大小(bs块大小)与用勺子盛饭的次数(count块个数)之间进行平衡。勺子越大,用勺子盛饭的次数就越少。
  由上可见,bs与count都是用来指定容量的大小,只要能满足需求,可随意组合搭配方式。

二十四、tar命令用于对文件进行打包压缩或解压,格式为 “tar [选项] [文件]”
  tar -czvf 压缩包名称.tar.gz 源文件 (压缩)
  tar -xzvf 压缩包名称.tar.gz (解压)

  tar -cjvf 压缩包名称.tar.bz2 源文件 (压缩)
  tar -xjvf 压缩包名称.tar.bz2 (解压)

二十五、grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。
  grep hello /etc/passwd 在/etc/passwd 文件中查找含有hello文本的行
  -c 仅显示找到的行数
  -i 忽略大小写
  -n 显示行号

二十六、find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。
  find / -name php

二十七、输入输出重定向
  输出重定向:
   符号 作用
    命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
    命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
    命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
    命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
    命令 >> 文件 2>&1 或 命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

  输入重定向:
    符号 作用
    命令 < 文件 将文件作为命令的标准输入
    命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
    命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2

  [root@bogon ~]# wc -l aa.txt
  1 aa.txt # 会输出命令承受者的对象aa.txt
  [root@bogon ~]# wc -l < aa.txt ===> cat aa.txt | wc -l
  1 # 不会输出aa.txt,原因为aa.txt作为命令wc的标准输入,此时命令wc是对aa.txt里面的内容执行,不是对aa.txt这个对象执行

二十八、管道符 |
  作用:把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入

二十九、通配符
  例如:
    星号(*)代表匹配零个或多个字符
    问号(?)代表匹配单个字符
    中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符
    中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。