linux基本命令总结(linux常用命令一览表)

相信大家对 Linux 肯定是不陌生的,很多同学在学习 Linux 的时候比较头疼,觉得比较难学,命令多记不住,其实我们在学习 Linux 的时候,要把我们的大脑当成内存来用,而不是硬盘。  本文用的 ......

  相信大家对 Linux 肯定是不陌生的,很多同学在学习 Linux 的时候比较头疼,觉得比较难学,命令多记不住,其实我们在学习 Linux 的时候,要把我们的大脑当成内存来用,而不是硬盘。

  本文用的是 Ubuntu 操作系统,版本为 ubuntu-21.04-desktop-amd64.iso。下载地址:

  http://mirrors.aliyun./ubuntu-releases/

  用的远程连接工具为 FinalShell,下载地址:

  http://www.hostbuf./t/988.html

  Linux 中有很多命令,命令也有很多参数,那我们要怎么去学习呢?我们可以借助帮助文档,这里给大家介绍 3 个帮助命令:

  man

help

info

man 是 manual 的缩写,有问题找男人,当时这是一句开玩笑的话。

  man 命令的使用也非常简单,示例如下:

  man ls

man 也是一条命令,分为 9 章,可以使用 man 命令获得 man 的帮助:

  man man

  有的同学一定会好奇,为什么 man 命令给我们 9 章,这是因为命令和系统文件有的时候会出现重名的情况,比如:

  passwd # 这是命令

/etc/passwd # 这是配置文件

如果不知道是命令还是配置文件,加上 -a 参数:

  man -a passwd

这个时候会先查看 passwd 命令,退出后会显示:

  可以根据提示继续查看,还是跳过当前的命令查看下一个命令:

  这里我先要说一个内部命令和外部命令的概念,shell 自带的命令称为内部命令,其他的是外部命令。

  那要怎么区分到底是内部还是外部呢?通过 type,后面跟上命令。

  juran@juran-virtual-machine:~$ type cd

cd 是 shell 内建

如果是内部命令使用 help:

  help cd

如果是外部命令使用 --help:

  ls --help

info 帮助比 help 更详细,作为 help 的补充,大多数的情况下,我们使用 man 和 help 就足够了。

  终端的命令组成:

  mand [-options] [parameter]

mand:命令名,

[-options]:选项,可以有零个、一个或者多个选项,多个选项可以合并,命令的选项用于调整命令功能

[parameter]:参数,可以有零个、一个 或者 多个参数,参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作

[]:代表可选

在 Linux 中一切皆文件,而且 Linux 中是没有盘符的概念的,所有的文件都在根目录下,接下来我们就来看下查看目录的命令有哪些。

  ls 命令:列出文件夹中的内容,ls 只能查看一层目录信息:

  ls # 查看当前文件夹的内容

ls /bin # 查看 bin 目录下的文件

ls 命令还有一些比较常用的选项:

  命令选项

  说明

  -l

  以列表方式显示

  -h

  件大小单位显示,默认是字节

  -a

  显示隐藏文件和隐藏目录

  tree 命令:以树状方式显示目录信息,tree 可以查看多层目录信息。

  tree # 以树状方式显示当前目录信息

tree /bin # 如果提示没有 tree 命令,可以通过 apt install tree 进行安装

查看当前目录路径

  pwd 命令:查看当前目录路径,是 print work directory 的缩写。

  cd 命令:切换目录,是 change directory 的缩写。

  cd 命令有几个常用的写法:

  命令

  说明

  cd 目录

  切换到指定目录

  cd ~

  切换到当前用户的主目录

  cd ..

  切换到上一级目录

  cd .

  切换到当前目录

  cd -

  切换到上一次目录

  注意:cd 命令切换目录时,这个目录必须存在。cd 后面不写目录等价于 cd ~。

  touch 命令:创建指定文件

  touch abc.txt # Linux 里面文件可以没有后缀的

touch a b c # 可以一次创建多个文件

mkdir 命令:创建目录(文件夹)

  mkdir movie # 创建 movie 目录

mkdir a b c # 创建 a b c 目录

如果我想创建双层的目录,来试试:

  mkdir movie/active # 想要创建 movie 下面的 active 目录,而且 movie 目录是没有被创建过的

mkdir: 无法创建目录 “movie/active”: 没有那个文件或目录

这是我们可以通过选项 -p:

  mkdir movie/active -p # 选项和参数之间是没有顺序的,先写那个都可以

我们也可以通过查看帮助文档,man mkdir:

  rm 命令:删除指定文件或者目录

  rm 命令删除文件:

  rm abc.txt

rm 命令删除目录:

  mkdir juran

rm juran

rm: 无法删除 'juran': 是一个目录

rm 命令是无法直接删除目录的,需要加上选项 -r:

  rm -r juran

可以通过 man rm 查看选项,下面来自帮助文档:

  -r, -R, --recursive

remove directories and their contents recursively

rmdir 命令:删除空目录

  rmdir juran # juran 目录是空目录

如果删除非空目录:

  mkdir -p a/b

rmdir a

rmdir: 删除 'a' 失败: 目录非空

小结

  touch 表示创建文件

mkdir 表示创建目录

rm 表示删除文件或者目录,如果删除目录需要使用 -r 选项,-r 表示递归删除目录及其内容

rmdir 表示删除空目录

  cp 命令:拷贝文件、拷贝目录

  cp 命令复制文件:

  cp abc.txt juran # 复制 abc.txt 到 juran 目录下

cp命令复制目录

  mkdir a b # 创建 a 和 b 目录

cp a b # 复制 a 目录到 b 目录

cp: 未指定 -r;略过目录'a'

如果想要复制目录的话,需要加上选项 -r:

  cp -r a b

mv 命令:移动文件、移动目录、重命名

  mv 命令移动文件:

  mkdir abc # 创建 abc 目录

touch abc.txt # 创建 abc.txt 文件

mv abc.txt abc

mv 命令移动目录:

  mkdir a b

mv a b

  cat 命令:文本内容显示到终端

  查看文件内容:

  touch a.txt

ls /bin > a.txt

cat a.txt

查看文件内容,并显示行号:

  cat -n a.txt

查看多个文件:

  cat a.txt b.txt

多个文件合并:

  cat a.txt b.txt > c.txt

还有一个跟 cat 非常像的命令,tac 命令倒叙输出文本内容。

  head 命令:查看文件开头

  查看文件:

  head a.txt # 默认显示文件前 10 行内容

指定查看文件行数:

  head -5 a.txt # 显示文件前 5 行内容

tail 命令:查看文件结尾

  tail a.txt # 默认显示文件后 10 行内容

指定查看文件行数:

  tail -5 a.txt # 显示文件后 5 行内容

查看文件更新:

  tail -f a.txt

在另外一个终端,对文件进行更新:

  echo 'juran' > a.txt

  wc 命令:统计文件内容信息

  wc -l a.txt # 统计文件行数

  tar 命令:压缩和解压缩命令

  tar 命令可以打包,也可以打包压缩:

  touch 1.txt 2.txt 3.txt

ls /bin > 1.txt

ls /etc > 2.txt

ls /lib > 3.txt

tar -cvf 3.tar https://www.pc-daily./ruanjian/*.txt

压缩成 .gz 文件:

  tar -zcvf backup.tar.gz *.txt

解压 .gz 文件:

  tar -zxvf backup.tar.gz

解压到指定的目录:

  tar -zxvf backup.tar.gz -C bb/

压缩成 .bz2 文件:

  tar -jcvf backup.bz2 *.txt

解压 .bz2 文件:

  tar -jxvf backup.bz2

解压到指定目录:

  tar -jxvf backup.bz2 -C bb/

压缩 zip 文件:

  zip backup *.txt # 默认后缀是.zip

解压缩 zip 文件:

  zip backup.zip -d /bb # -d 指定文件夹

  我们在 Windows 中有记事本,也有像 pycharm 这样的代码编辑器。

  那在 Linux 中我们用什么来写代码呢(如何优雅的装 X)?

  用的就是 vim,大家可以把 vim 想象成 Windows 中的 pycharm,或者你熟悉的编辑器。

  vim 安装

  sudo apt-get install vim # 这是 Ubuntu 的安装

sudo yum install vim # 这是 centos 的安装

vim 的工作模式

  命令模式

编辑模式

末行模式

工作模式效果图:

  编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成。

  vim 的末行模式命令

  :w 保存

:wq 保存退出

:x 保存退出

:q! 强制退出

vim 的常用命令

  命令

  说明

  yy

  复制光标所在行

  p

  粘贴

  dd

  删除/剪切当前行

  V

  按行选中

  u

  撤销

  ctr+r

  反撤销

  >>

  往右缩进

  <<

  往左缩进

  :/搜索的内容

  搜索指定内容

  :%s/要替换的内容/替换后的内容/g

  全局替换

  :开始行数,结束行数 s/要替换的内容/替换后的内容

  局部替换

  .

  重复上一次命令操作

  G

  回到最后一行

  gg

  回到第一行

  数字+G

  回到指定行

  shift+6

  回到当前行的行首

  shift+4

  回到当前行的行末

  ctr+f

  下一屏

  ctr+b

  上一屏

  vim 交换文件解决办法

  当我们用 vim 编辑一个文件,并写入一些数据,发生意外 vim 没有正常退出,这时再去编辑这个文件就会有如下提示:

  这时我们可以直接选择编辑,但是下次打开的时候仍然会有这个提示。如果我们执行命令 ls -a 会看到一个隐藏文件 .a.txt.swp。

  这个隐藏文件大家可以理解为 Linux 中的缓存文件,为了帮助我们恢复数据的。如果我们不需要的话,可以直接删除,删除掉这个文件后,再次编辑就不会有这个提示了。

  Linux 支持多任务多用户,用户登录 Linux 之后可以做很多事件,这点和 Windows 很像,但是 Windows 不支持多用户。

  useradd 命令:创建(添加)用户

  useradd -m juran # 如果是普通用户执行这个命令会报错

  创建用户是需要管理员的权限才可以的。我们想要执行这个命令有两种方法

  切换到 root 用户下去执行

在普通用户下,命令前面加上 sudo,这个命令在执行的时候就可以获得管理员的权限

sudo useradd -m juran

创建好的用户,还需要设置密码:

  sudo passwd juran

设置好密码后,我们可以切换到 juran 用户下:

  su juran

在 Ubuntu 中,默认切换到用户的 bash 是 /bash/sh,这样我们在敲命令的时候特别不方便,我们可以在创建用户的指定解释器:

  sudo useradd -m juran -s /bin/bash

查看用户是否创建成功,可以查看 /etc/passwd 这个文件:

  tail /etc/passwd

  passwd 文件中的每项信息说明,以 root:x:0:0:root:/root:/bin/bash 为例:

  第一个:用户名

第二个:密码占位符

第三个:uid, 用户 id

第四个:gid, 用户所在组 id

第五个:用户描述, 可选,

第六个:用户的主目录所在位置

第七个:用户所用 shell 的类型,一般由 bash 或者 sh,默认不设置是 sh 类型

创建用户,默认会自动创建一个同名的用户组,查看用户组是否创建成功,可以查看 /etc/group 这个文件。

  group 文件中的每项信息说明,以 laowang:x:1001: 为例:

  第一个:用户组名

第二个:用户组密码占位符,一般 Linux 系统的用户组都没有密码的

第三个:组 id

我们也可以通过 id 命令查看用户信息:

  id laowang

uid=1001(laowang) gid=1001(laowang) 组=1001(laowang)

第一个: uid 表示用户 id

第二个: gid 表示用户组 id

第三个: 组 表示用户所在的用户组

创建用户流程

  useradd juran

系统读取 /etc/login.defs 和 /etc/default/useradd 两个文件中定义的规则创建新用户

向 /etc/passwd 和 /etc/group 文件中添加用户和组信息,想 /etc/shadow 和 /etc/gshadow 中添加密码信息

根据 /etc/default/useradd 文件中配置的信息创建用户家目录

把 /etc/skel 中所有的文件复制到新用户家目录中

在 Linux 系统中,UID 为 0,就是超级用户,如果设置管理员用户,可以改为 UID 为 0,系统用户 UID 为 1~999,Linux 安装的服务程序都会创建独有的用户负责运行,普通用户 UID 从 1000 开始,最大值 1000~60000 范围。

  修改用户信息

  创建的用户没有执行 sudo 命令的权限,那我们想要创建的用户也可以执行这个命令,怎么办呢?

  我们可以修改用户的附加组,每个用户都有自己的主组,相当于亲爹,那附加组就相当于干爹,可以有很多个:

  sudo usermod -g sudo jr

  这时我们创建的用户,就可以执行 sudo 命令了。

  为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。

  一个公司中有多个部门,每个部门中又有很多员工,如果只想让员工访问本部的资源,则可以针对部门而非具体的员工来设置。开发部的小哥哥想要前台小姐姐的信息,肯定不能让他直接访问的。

  groupadd 命令:创建(添加)用户组

  创建用户前,我们可以先创建好用户组:

  sudo groupadd dev # 创建开发组

创建用户指定组:

  sudo useradd -m laowang -g dev

修改用户组:

  sudo usermod -g dev laowang

删除用户组:

  sudo groupdel dev # 这时会报错

如果用户组下面有用户先删除用户在删除用户组。

  执行命令 ls -al 查看文件:

  这里以文件 abc 来解释。

  第一位:文件类型

  - 表示文件

d 表示目录

l 表示链接

后面 9 位表示权限:

  命令

  解释

  字母表示

  rw-

  所有者拥有读写权限

  用 u 表示,代表 user

  r--

  所属组拥有读权限

  用 g 表示,代表 group

  r--

  其他人拥有读权限

  用 o 表示,代表 other

  减少权限:

  chmod u-r abc.txt # 不能读取数据

chmod u-w abc.txt # 不能写入数据

添加只读权限,减少写权限:

  chmod u+r,u-w pwd.txt

chmod 数字法的使用,数字法就是 rwx 这些权限也可以用数字来代替。

  权限

  说明

  r

  可读,权限值是 4

  w

  可写,权限值是 2

  x

  可执行,权限值是 1

  -

  无任何权限,权限值是 0

  数字法授予权限,所有者可读可写可执行,所属组可读可写,其他人可读:

  chmod 764 abc.txt

  网络配置最重要的两个工具就是 ifconfig 和 ip,这两个工具分别来自两个工具包 net-tools 和 iproute2。

  ifconfig 命令:配置和显示 Linux 系统网卡的网络参数

  ifconfig 通常是用来查看网卡的信息(比如 IP 地址、收发包及丢包情况等),以及配置网卡(如启停网卡,修改网卡 MTU,修改 IP、MAC 地址等)。

  这个命令需要安装:

  sudo apt-get install net-tools

若 ifconfig 提示找不到命令,安装 net-tools 也未果,可能是因为 ifconfig 已不被推荐使用,可用 ip addr show 命令代替,一样可以显示出 IP 地址。

  ip 命令:网络配置工具

  ip 是非常强大的工具,可以替换 net-tools 包的所有工具,如常见的 ifconfig、netstat、route、arp 等。

  查看网卡信息:

  ip addr show

  显示系统路由:

  ip route show

  开启网卡或关闭网卡:

  ip link set eth0 up # 开启网卡

ip link set eth0 down # 关闭网卡

当我们遇到服务器的网络出现问题的时候,我们改怎么去排查呢?大家可以通过下面的命令来逐一排查。

  ping 命令:测试主机之间网络的连通性

  这个命令通常用来判断网络的连通性和网速情况,偶尔用来查看域名的 IP:

  ping www.baidu.

  ping 命令并不会自动结束,需要我们 ctrl+c 强制停止,大家可以通过 -c 选项来指定 ping 的次数:

  ping www.baidu. -c 3 # 设置完成要求回应的次数

  ping 只能使用 ipv4,要使用 ipv6,可以用 ping6 命令。

  telnet 命令:登录远程主机和管理(测试 IP 端口是否连通)

  telnet 通常用作远程登录,用来确定远程服务的状态,探测远程服务器的某个端口是否能访问,也可以探测本地的:

  telnet localhost 22

  telnet localhost 3306

  处理这种情况方法:

  确认 IP 地址是否正确?

确认 IP 地址对应的主机是否已经开机?

如果主机已经启动,确认路由设置是否设置正确?(使用 route 命令查看)

如果主机已经启动,确认主机上是否开启了 telnet 服务?(使用 netstat 命令查看,TCP 的 23 端口是否有 LISTEN 状态的行)

如果主机已经启动 telnet 服务,确认防火墙是否放开了 3306 端口的访问?(使用 iptables-save 查看)

traceroute 命令:显示数据包到主机间的路径

  traceroute 主要用来探测从源主机到目标主机之间的每一跳路由节点,通常和 ping 结合起来排查网络故障, ping 测连通性和网速,如果网络不通,可以借由 traceroute 进一步排查是哪个路由节点出问题了。

  traceroute www.58.

  我们 traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了 ICMP 的返回信息,所以我们得不到什么相关的数据包返回数据。

  有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台 DNS 出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加 -n 参数来避免 DNS 解析,以 IP 格式输出数据。

  如果在局域网中的不同网段之间,我们可以通过 traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到 traceroute 追踪数据包所经过的网关,提交 IDC 服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC 服务商也不可能帮助我们解决。

  netstat 命令:查看 Linux 中网络系统状态信息

  netstat 用于查看当前网络的连接情况,能够查看所有的网络连接,包括 Unix Socket 等,也是集多种工具于一身的组合工具。

  列出所有端口:

  netstat -a # 列出所有端口

netstat -at # 列出所有 tcp 端口

netstat -au # 列出所有 udp 端口

列出所有处于监听状态的 Sockets:

  netstat -l # 只显示监听端口

netstat -lt # 只列出所有监听 tcp 端口

netstat -lu # 只列出所有监听 udp 端口

ss 命令:iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息。

  ss 和 netstat 类似,也是用来查看网络连接统计的工具,它的输出也和 netstat 类似,甚至显示更多连接状态信息,它最大的优势在于比 netstat 快,在服务器维持上万个连接的情况下,这种优势就体现得比较明显。

  显示 TCP 连接:

  ss -t -a

列出所有打开的网络连接端口:

  ss -l

查看进程使用的 socket:

  ss -pl

nc 命令:用于设置路由器

  nc 被称为瑞士军刀,非常轻巧但功能强大,能够创建各种不同类型的网络连接、能够实现简单的聊天工具、远程传输文件、debug 分析、扫描端口等。

  TCP 端口扫描:

  nc -v -z -w2 localhost 1-100

选项解释:

  -v 显示指令执行过程

-z 使用 0 输入/输出模式,只在扫描通信端口时使用

-w 设置等待连线的时间

1-100 扫描 TCP 端口

UDP 端口扫描:

  nc -u -z -w2 192.168.0.1 1-1000 # 扫描 192.168.0.1 的端口 范围是 1-1000

选项解释:

  -u 使用 UDP 传输协议

host 命令:常用的分析域名查询工具

  host 命令是域名分析查询工具,用来测试域名系统工作是否正常。

  查看百度域名信息:

  host www.baidu.

  nslookup 命令:查询域名 DNS 信息的工具

  nslookup 有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。

  进入交互模式,直接输入 nslookup 命令,不加任何参数,则直接进入交互模式,此时 nslookup 会连接到默认的域名服务器。或者输入 nslookup -nameserver/ip。进入非交互模式,就直接输入 nslookup 域名就可以了。

  非交互模式:

  nslookup www.baidu.

  交互模式:

  nslookup

Ubuntu 软件安装有两种方式:

  离线安装(deb 文件格式安装)

在线安装(apt-get 方式安装)

源码安装

我们绝大多数的时候,都是通过在线安装的方式来进行安装软件。

  apt-get 方式安装

  在线安装 deb 软件包的命令,主要用于在线从互联网的软件仓库中搜索、安装、升级、卸载软件。

  在线安装软件命令格式:

  sudo apt–get install 安装包 # 表示在线安装 deb 安装包

源码安装

  开源软件都会提供源码下载的方式,对于源代码安装方式的好处即可以定制软件功能,安装需要的模块,不需要的模块可以屏蔽,方便管理,卸载等。

  我们以 Redis 为例:

  https://redis.io/download # 这是官网 redis 的下载地址

官网中给出了源码安装的方式:

  $ wget https://download.redis.io/releases/redis-6.2.5.tar.gz

$ tar xzf redis-6.2.5.tar.gz

$ cd redis-6.2.5

$ make

这里会使用 make 工具,make 工具就会通过 makefile 文件来实现。makefile 文件是一种按照某种语法来编写且定义了各个文件的依赖关系。

  使用 make 命令,一般都需要 gcc 的环境:

  sudo apt-get install gcc

更改镜像源

  因为使用 apt-get 命令默认是从国外的服务器下载安装软件的,会导致下载安装速度很慢,所以需要更改成国内的镜像源服务器。

  镜像源说明:镜像源就是下载软件来源的服务器。

  更改镜像源的方式:

  可视化方式更改镜像源

手动方式更改镜像源

可视化的方式适合 Ubuntu 这种有图形化界面的。

  第一步:

  第二步:

  第三步:

  第四步:

  第五步:

  最后执行命令:

  sudo apt-get update

手动修改就容易很多:

  vim /etc/apt/sources.list # 编辑这个文件,将找好的国内镜像源直接复制到这个文件里面就行

这里是清华大学的镜像源,大家可以找其他的镜像源:

  ps 命令:用于报告当前系统的进程状态的命令

  ps 命令可以搭配 kill 指令随时中断、删除不必要的程序。ps 命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

  当我们在终端敲下 ps 命令,会显示如下界面:

  字段解释:

  PID 代表这个进程对应的 ID 号码

TTY 进程所属的控制台号码

TIME 进程所使用 CPUC 的总时间

CMD 就是正在执行的系统命令行是什么

ps 常用选项,显示 Linux 机器所有详细的进程信息:

  ps -ef

-e:列出系统所有运行的进程

-f:显示 ID PID PPID C 等信息

  字段解释:

  UID 这个进程是那个用户执行的命令

PID 进程的标识号码 用于启停进程

PPID 进程的父进程标识号

C 表示 CPU 使用的资源百分比

STIME 表示进程开始执行的时间

TTY 进程在那个终端执行的

TIME 该进程使用的 CPU 总时间

CMD 用户执行某条命令 产生的进程信息

过滤出系统指定的信息:

  ps -ef | grep vim

查看 named 进程详细信息:

  ps -aux | grep named

显示指定用户信息:

  ps -u root

把所有进程显示出来,并输出到 ps1.txt 文件:

  ps -aux > ps1.txt

ps 命令的参数,分为两种系统形式:

  ps ef,不带减号的参数

ps -ef,带减号的参数

大家一定要注意带减号和不带减号,表示的含义是不同的。

  e:列出程序时,显示每个程序所使用的环境变量

-e :列出系统所有运行的进程

  大家可以看出来效果是不一样的。

  pstree 命令:以树状图的方式展现进程之间的派生关系

  pstree 命令需要安装:

  sudo apt-get install psmisc

执行 pstree 效果如下:

  kill 命令:发送相关信号,给进程达到不同的停止效果

  我们通常用的都是 kill -9 进程号,除了 -9 这一个信号,kill 也有很多其他的信号。

  kill -l

  下面是常用的信号:

  HUP 1 终端挂断

INT 2 中断(同 Ctrl + C)

QUIT 3 退出(同 Ctrl + )

KILL 9 强制终止

TERM 15 终止,这是 kill 命令默认的

CONT 18 继续(与 STOP 相反,fg/bg 命令)

STOP 19 暂停(同 Ctrl + Z)

示例:

  ping www.baidu.

找到 ping 命令的进程号:

  ps -ef | grep ping

通过刚才找到的进程号结束掉 ping 命令:

  kill -9 进程号

top 命令:显示或管理执行中的程序

  可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。

  当我们敲下 top 命令,可以看到如下界面:

  top 交互命令

  在 top 命令执行过程中可以使用的一些交互命令,这些命令都是单字母的。

  h:显示帮助画面,给出一些简短的命令总结说明;

k:终止一个进程;

i:忽略闲置和僵死进程,这是一个开关式命令;

q:退出程序;

r:重新安排一个进程的优先级别;

S:切换到累计模式;

s:改变两次刷新之间的延迟时间(单位为 s),如果有小数,就换算成 ms。输入 0 值则系统将不断刷新,默认值是 5s;

f 或者 F:从当前显示中添加或者删除项目;

o 或者 O:改变显示项目的顺序;

l:切换显示平均负载和启动时间信息;

m:切换显示内存信息;

t:切换显示进程和 CPU 状态信息;

c:切换显示命令名称和完整命令行;

M:根据驻留内存大小进行排序;

P:根据 CPU 使用百分比大小进行排序;

T:根据时间/累计时间进行排序;

w:将当前设置写入~/.toprc 文件中。

top 命令上面字段:

  top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92

Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie

Cpu(s): 99.8?0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers

Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached

解释:

  top - 09:44:56[当前系统时间],

16 days[系统已经运行了 16 天],

1 user[个用户当前登录],

load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]

Tasks: 145 total[总进程数],

2 running[正在运行的进程数],

143 sleeping[睡眠的进程数],

0 stopped[停止的进程数],

0 zombie[冻结进程数],

Cpu(s): 99.8锐空间占用 CPU 百分比],

0.1%sy[内核空间占用 CPU 百分比],

0.0%ni[用户进程空间内改变过优先级的进程占用 CPU 百分比],

0.2%id[空闲 CPU 百分比], 0.0%wa[等待输入输出的 CPU 时间百分比],

0.0%hi[],

0.0%st[],

Mem: 4147888k total[物理内存总量],

2493092k used[使用的物理内存总量],

1654796k free[空闲内存总量],

158188k buffers[用作内核缓存的内存量]

Swap: 5144568k total[交换区总量],

56k used[使用的交换区总量],

5144512k free[空闲交换区总量],

2013180k cached[缓冲的交换区总量],

  free 命令:显示内存的使用情况

  可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

  以总和的形式显示内存的使用信息:

  free -t

  周期性的查询内存使用信息,每 3s 执行一次命令:

  free -s 3

  显示内存使用情况:

  free -m

systemctl 命令:系统服务管理器指令

  systemctl 命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

  启动服务:

  service httpd start

systemctl start httpd.service

停止服务:

  service httpd stop

systemctl stop httpd.service

重启服务:

  service httpd restart

systemctl restart httpd.service

重载服务:

  service httpd reload

systemctl reload httpd.service

检查服务状态:

  service httpd status

systemctl status httpd.service

设置开机自启动 MySQL 服务:

  systemctl enable mysqld.service

停止开机自启动:

  systemctl disable mysqld.service