CentOS 7 命令手册

本片记录了 Linux 方面的简单介绍和常用命令,使用的是 CentOS。

一、Linux 介绍

1.1 Linux 和 GNU/Linux

GNU/Linux

1.2 Linux 和 Windows 对比(网上粘的)

  • 授权:Linux是免费的系统,系统的源码也是开放的,用户可以对其进行编辑修改;Windows是需要收费的系统,即便是购买之后其系统源码也是受到版权保护,用户不能够对其进行修改
  • 软件:在软件的丰富程度方面,如果您经常使用消费级的软件以及游戏等,显然在这方面Windows的支持更好,尤其是对于游戏玩家,Windows支持的游戏更多;当然Linux可以通过Wine来实现,Windows的EXE软件运行在Linux系统上的目的,但显然体验不如原生的软件
  • 安全性:由于普及率方面等原因,Windows在各种恶意软件和病毒的数量方面显然是比Linux要多,目前由于普及率较少,Linux在这方面的数量更少
  • 易用性:由于开源的特性,Linux拥有不同的发行版本,使用的UI虽然大同小异但使用起来也是会存在着不同;在这一点上,显然Windows使用起来更为方便;不过由于在系统资源占用上更少,可以对系统进行深度的定制,因此在运行的硬件适用性上,显然Linux有着更大的优势
  • 稳定性:很多服务器选择使用Linux,除了其开源的特性和模块化的内核设计外,还有就是在稳定性方面有着更好的表现

二、CentOS 和 虚拟机

2.1 CentOS 下载

The CentOS Project

CentOS 中文 官网 (p2hp.com)

CentOS Mirrors List

centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)

2.2 虚拟机下载

VMWare:Workstation Pro 收费,自行查找资源下载。

VirtualBox:Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle 中国

2.3 VMWare 配置虚拟机

VMware 需要开启 CPU 虚拟化

创建虚拟机步骤:

  1. 创建虚拟机,自定义配置
  2. CPU 内核数 <= 资源管理器中的逻辑处理器个数
  3. 内存和硬盘按自己所需分配
  4. 其它默认
  5. CD/DVD 使用已下载好的 ISO 映像文件

手动分区:

  • 引导分区 /boot 500 MiB
  • 交换分区 swap 4 GiB
  • 其它 / 15GiB
  • 文件系统:xfs

三、终端

3.1 [root@redis001 ~]# 说明

  • root:当前用户
  • redis001:当前主机
  • ~:当前目录
  • #:root 用户命令提示符号,其他用户为 $

四、文件系统

4.1 文件目录

Linux 文件目录

五、VIM 编辑器

5.1 VIM 三种编辑模式

VIM 三种模式切换

5.2 命令模式

常用命令:

命令 作用
i 切换到输入模式,以输入字符
x 删除当前光标所在处的字符
X 删除当前光标前一个字符
: 切换到底线命令模式,以在最底一行输入命令
gg 跳转到文件开头
G 跳转到文件末尾
dd 删除光标所在一整行数据,且临时存储到缓存区
yy 复制整行文本到临时缓存区
p 将指定缓存区内容放在光标位置之下;整行文本放在行下面,若是非整行文本则放在光标后面
P 将指定缓冲区的内容放到当前光标的位置之上;整行文本放在行下面,若是非整行文本则放在光标后面
u 撤销最近的修改,针对所有修改
U 撤销对当前行上做的所有修改
r 替换光标位置上的一个字符,但不会进入 insert 模式,先按 r 再按要替换成的字符,也可以 2r 把光标后面两个都替换掉
R 替换从光标位置开始的字符,同时改变 vim 到文本输入模式
. 重复上一次的修改 – 注意该命令是英文符号点
>> 向右移动本行一段距离
<< 向左移动本行一段距离

翻页命令:

命令 作用
Ctrl + d 将光标向下翻半屏,通常每次翻屏12行
Ctrl + u 将光标向上翻半屏,通常每次翻屏12行
Ctrl + f 将光标向下翻满屏,通常每次翻屏24行
Ctrl + b 将光标向上翻满屏,通常每次翻屏24行

5.3 编辑模式

命令 作用
i 在光标的左侧输入文本,光标右侧文本向右移动
I 在光标所在行的行首输入文本,相当于在行首执行了 i 命令
a 在光标的右侧输入文本
A 在光标所在行的尾部进行输入文本,相当于在光标行尾执行a命令
o 在光标所在行的下一行增添新的一行,光标停留在新行的行首
O 在光标所在行的上一行增添新的一行,光标停留在新行的行首

5.4 末行模式

命令 作用
:q 退出 vim 编辑器
- -
:q! 不保存文件,直接退出 vim 编辑器
:w 只保存文件,但不退出 vim 编辑器
:wq 保存文件且退出 vim 编辑器
ZZ 保存文件且退出 vim 编辑器
:start,endd 从第 start 行开始到 end 行进行删除操作 最后一个 d 表示删除,如 :3,4d
:%d 清空文件内容(跳到行首 dG 执行也可删除)
:! command 暂时离开vim编辑器去到指令模式下执行 command 命令显示结果,如 :!ls
:/string 从文件首部开始查找到尾部;按 n 键可以跳到下一个,N 上一个,另外按 / 键后,按上下键可以找到以前查找的记录,同样的也有记录
:?string 同上,从当前光标向文件首部查找
:%s/word1/word2/g 从文件首到尾替换每一行的 word1为 word2
:set nu 显示行号 也可以输入 set number
:set nonu 取消行号
:set ai/noai 开启/关闭自动缩进

5.5 VIM 键盘图

VIM 键盘图

六、网络配置

6.1 网络连接测试

命令 作用
ifconfig 查看 ip 地址

6.2 修改静态 IP

1
2
3
4
5
6
7
8
9
10
vim /etc/sysconfig/network-scripts/ifcfg-ens33

- BOOTPROTO="dhcp"
+ BOOTPROTO="static"

+ IPADDR=192.168.202.100
+ GATEWAY=192.168.202.2
+ DNS1=192.168.202.2

service network restart

6.3 配置主机名

查看主机名

1
hostname

配置主机名

方法一:修改配置文件,重启服务器

1
vim /etc/hostname

方法二:使用 hostnamectl 命令

1
hostnamectl set-hostname redis100

IP 通讯录 hosts

1
vim /etc/hosts

七、远程登陆

7.1 SSH 工具

安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。

  • Windows ssh
  • Xshell

7.2 FTP 工具

文件传输协议(File Transfer Protocol,FTP)是用于在[网络]上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

  • Windows scp
  • Xftp
  • FileZilla

八、系统管理

在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)。

每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

8.1 服务管理

systemctl (CentOS 7 版本)

基本语法:

1
systemctl start | stop | restart |status 服务名

查看服务:

1
ls /usr/lib/systemd/system -al

查看网络管理服务(NetworkManager)的状态:

1
systemctl status NetworkManager

查看 NetworkManager 服务:

1
ls /usr/lib/systemd/system -la | grep 'networkmanager.service' -i

8.2 系统运行级别

启动图形设置系统

setup

七个运行级别概述

  • 0 shutdown.target 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
  • 1 emergency.target 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
  • 2 rescure.target 多用户模式,没有NFS和网络支持
  • 3 multi-user.target 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
  • 4 无 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
  • 5 graphical.target 图形化模式,登陆后进入图形GUI模式,X Window系统
  • 6 无 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启

查看默认运行级别

systemctl get-default

设置默认运行级别

systemctl set-default TARGET.target

进入不同运行级别的方式

1
2
3
4
init 0   #关机
init 3   #进入3级别字符界面
init 5   #进入5级别图形界面
init 6   #重启

8.3 配置服务开机启动和关闭防火墙

查看自启动列表

systemctl list-unit-files

关闭防火墙

systemctl disable firewalld.service

8.4 关机重启

一分钟之后关机

shutdown

取消关机

shutdown -c

立刻关机

shutdown nown

几分钟之后关机

shutdown minutes

定时关机

shutdown hours:minutes

将数据由内存同步到磁盘

sync

停机,关闭系统,但不断电

halt

关机,断电

poweroff

重启

reboot

九、常用命令

9.1 shell 介绍和帮助命令

内置命令和外部命令

  1. Shell内置命令

【1】定义:Linux系统为了提高系统运行效率,将经常使用的轻量的命令在系统启动时一并加载到内存中供Shell随时调用,这部分命令称为内部命令,如 cd、exit、echo等

【2】特点:

内置命令构建在Shell程序中,运行时不必创建多余的进程,要比外部命令执行快得多。
内部命令写在bashy源码里面,并不单独以磁盘文件的形式存在于磁盘上。
2. Shell外部命令

【1】定义:外部命令是linux系统中独立的外部可执行程序,如ls等

【2】特点:

外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。
在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。
当外部命令被调用时,首先 Shell 会创建子进程,然后在子进程当中运行该程序。

帮助外部命令

man 命令

查看内置命令

man -f 命令

查看命令类型

type 命令

查看内置命令

help 命令

查看外部命令

命令 --help

常用快捷键

快捷键 功能
ctrl + c 停止进程
ctrl + l 清屏,等同于 clear;彻底清屏是:reset
table 提示(可以防止敲错)

9.2 目录操作命令

pwd 命令

pwd: print working directory 打印工作目录

  1. 基本语法

pwd (功能描述:显示当前工作目录的绝对路径)

cd 命令

cd: change directory 切换目录

  1. 基本语法

cd 参数

  1. 参数说明
参数 功能
cd 绝对路径 切换路径
cd 相对路径 切换路径
cd ~ 或者 cd 回到家目录
cd - 回到上一次所在目录
cd .. 回到当前目录的上一级目录
cd -P 跳转到实际物理路径,而非实际路径

mkdir

mkdir:make directory

  1. 基本语法

mkdir [option] 创建目录

  1. 选项说明
选项 说明
-p 创建多层目录

rmdir

rmdir:remove directory 删除目录

  1. 基本语法

rmdir [option] 删除目录

9.3 文件操作命令

touch 命令

touch:创建空文件

  1. 基本语法

touch 文件名称

cp 命令

cp:复制文件或目录

  1. 基本语法

cp [选项] source dest

功能描述:复制 source 文件到 dest

  1. 选项说明
选项 说明
-r 递归复制整个文件夹
  1. 经验技巧

强制覆盖不提示的方法:\cp(原生方法)

rm

rm:删除文件或目录

  1. 基本语法

rm [选项] deleteFile

功能描述:递归删除目录中的所有内容

  1. 选项说明
选项 说明
-r 递归删除目录中所有内容
-f 强制执行删除命令,而不提示确认
-v 显示指令的详细执行过程

mv

mv:移动文件或目录,重命名

  1. 基本语法

【1】mv oldNameFile newNameFile

功能描述:重命名

【2】mv xiaohu/house ./

功能描述:移动文件

cat

cat:查看文件内容

  1. 基本语法

cat [option] 要查看的文件

  1. 选项说明
选项 说明
-n 显示所有行的行号,包括空行

more

more:文件内容的分屏查看器

  1. 基本语法

more 要查看的文件

  1. 操作说明
操作 功能说明
空白键 向下翻一页
Enter 向下翻一行
q 立刻离开该文件,不再显示
Ctrl + F 向下滚动一屏
Ctrl + B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

less

less:分屏显示文件内容

  1. 基本语法

less 要查看的文件

  1. 操作说明

扩展了 more 的功能,之前的也可以使用

操作 功能说明
空白键 向下翻一页
pagedown 向下翻一页
pageup 向上翻一页
/字串 向下搜索字串的功能:n:向下查找,N:向上查找
?字串 向上搜索字串的功能:n:向上查找,N:向下查找
Shift + g 末尾
g 末尾

9.4 其它命令

echo

echo:输出内容到控制台

  1. 基本语法

echo [option] [输出内容]

  1. 选项说明
选项 说明
-e 支持反斜杠控制的转义字符

> >>

> 输出重定向,>> 追加

  1. 基本语法

【1】ls -l > 文件

功能描述:将 ls 查看信息写入到文件中

【2】ls -l >> 文件

功能描述:将 ls 查看信息追加到文件中

【3】cat 文件1 > 文件2

功能描述:将文件1的内容覆盖到文件2

【4】echo “内容” >> 文件

功能描述:将内容追加到文件中

head

head:显示文件头部内容

  1. 基本语法

head 文件

功能描述:查看文件头10行内容

head -n 5 文件

功能描述:查看文件头5行内容,5可以是任意行数

  1. 选项说明
选项 说明
-n 行数 查看文件头部 n 行内容

tail

tail:输出文件尾部内容

  1. 基本语法

tail 文件

功能描述:查看文件尾部10行内容

tail -n 5 文件

功能描述:查看文件尾部5行内容,5可以是任意行数

tail -f 文件

功能描述:实时追踪该文档的所有更新

  1. 选项说明
选项 说明
-n 行数 指定显示尾部 n 行内容
-f 显示文件最新追加的内容,监视文件变化

ln

ln:软链接,软链接也称为符号链接,类似于 Windows 里的快捷方式,有自己的数据块,主要存放了链接其它文件的路径。

  1. 基本语法

ln -s [原文件或目录][软链接名]

功能描述:给源文件创建一个软链接

  1. 经验技巧

删除软链接:rm -rf 软链接名,而不是 rm -rf 软链接名/

如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉

查询:通过 ll 就可以查看,列表属性第 1 位是 1,尾部会有位置指向。

history

history:查看已经执行过的历史命令

  1. 基本语法

history

功能描述:查看已经执行过的历史命令

  1. 选项说明
选项 说明
-c 清除历史

十、时间日期类

date

date:显示日期

  1. 基本用法

date

功能描述:显示当前日期

  1. 选项说明
选项 说明
+%Y-%m-%d %H:%M:%S 格式化输出年月日时分秒
+%Y-%m-%d %H:%M:%S 格式化输出年月日时分秒
+%s 秒时间戳
-d ‘1 days ago’ 前一日
-s 字符串时间 设置系统时间

ntpdate

ntpdate:同步时钟

  1. 基本语法

ntpdate 服务器地址

功能描述:同步时钟

cal

cal:查看日历

  1. 基本语法

cal [选项]

功能描述:查看日历,不加选项显示本月日历

  1. 选项说明
选项 说明
-3 显示3个月的日历
-m 从周一开始显示日历
年份 显示那一年
-y 显示本年

十一、用户权限类

10.1 用户管理命令

useradd 添加新用户

  1. 基本语法

useradd 用户名

功能描述:添加新用户

useradd -g 组名 用户名

功能描述:添加新用户到某组

useradd -d /hmoe/文件夹别名 用户名

功能描述:更改主目录下用户的文件夹名称

passwd 密码 修改密码

  1. 基本语法

passwd 密码

功能描述:修改密码

id 用户名 查看用户

  1. 基本语法

id 用户名

功能描述:查询用户名是否存在

cat /etc/passwd 查看创建了哪些用户

  1. 基本语法

cat /etc/passwd

功能描述:查看创建了哪些用户

  1. 说明

mlemontx:x:1000:1000:mlemontx:/home/mlemontx:/bin/bash

  1. mlemontx: 用户名,表示用户的登录名。
  2. x: 密码字段,通常在 /etc/shadow 文件中进行保存,而不是 /etc/passwd 文件。这里的 x 表示密码已经被加密并保存在其他地方。
  3. 1000: 用户ID (UID),是一个用于标识用户的数字。在Linux中,每个用户都有一个唯一的UID。
  4. 1000: 组ID (GID),是指用户所属的主要用户组的组ID。
  5. mlemontx: 用户全名或注释字段,通常是用户的真实姓名或其他描述信息。
  6. /home/mlemontx: 用户的主目录路径,这是用户登录后默认的工作目录。
  7. /bin/bash: 用户的登录Shell,表示用户登录后将使用的命令行解释器(shell)。在这个示例中,使用的是Bash shell。

通常情况下,/etc/passwd 文件包含了系统中所有用户的信息,但是密码字段通常不直接在该文件中保存,而是在/etc/shadow文件中。这种方式提高了密码的安全性,因为/etc/shadow文件只允许root用户访问。

su 用户名 切换用户

  1. 基本语法

su 用户名

功能描述:切换用户

who am i 查询当前用户信息

  1. 基本语法

who am i

功能描述:最外层登录用户的详细信息

whoami

功能描述:当前登录用户的用户名

sudo 命令 普通用户临时拥有 root 权限

  1. 基本语法

vim /etc/sudoers

将目标用户添加进去 wq!

sudo ls

功能描述:给目标用户 root 权限

userdel 用户名 删除用户

  1. 基本语法

userdel 用户名

功能描述:删除用户

userdel -r 用户名

功能描述:删除用户及其主目录

groupadd 组名 创建用户组

  1. 基本语法

groupadd 组名

功能描述:创建用户组

cat /etc/group

功能描述:查看用户组配置

usermod 修改用户

  1. 基本语法

usermod -g 用户组名

功能描述:将用户加到用户组

groupmod 修改组名

  1. 基本语法

groupmod -n 新用户组名 原用户组名

功能描述:重命名用户组

groupdel 删除用户组

  1. 基本语法

groupdel 用户组

功能描述:删除该用户组

10.2 文件属性和权限

ll

  1. 基本语法

ll

功能描述:通常,ll 实际上是 ls -l 的简写,其中 ls 是列出目录内容的命令,而 -l 是长格式(详细列表)的选项。ls -l 将显示文件和目录的详细信息,如文件权限、所有者、大小、修改日期等。

ls -al

功能描述:显示文件和目录,包括隐藏文件和目录。

  1. 示例

drwxr-xr-x. 2 root root 6 7月 10 14:22 公共

  1. drwxr-xr-x.:文件类型和权限字段。这个字段表示该项是一个目录(d),并且有一系列的权限标志,分为三组(所有者、组、其他用户)每组三个字符,分别表示读(r)、写(w)和执行(x)权限。
  2. 2:连接数。这个字段表示目录的硬链接数。在 Unix 系统中,每个文件或目录都有一个链接数,即指向该文件或目录的硬链接数量。在 centOS 中,如果是文件代表硬链接数,如果是文件夹代表子目录的个数。
  3. root:所有者。这个字段表示目录的所有者用户名。
  4. root:所属组。这个字段表示目录所属的组名。
  5. 6:文件或目录的大小(以字节为单位)。对于目录,这通常是目录中的项目数量,因为目录本身没有固定的大小。
  6. 7月 10 14:22:修改日期和时间。这个字段显示了最后一次修改文件或目录的时间,其中 7月 表示月份,10 表示日期,14:22 表示时间。
  7. 公共:文件或目录的名称。这个字段是文件或目录的名称。

除了 d 表示目录之外,还有一些其他可能的文件类型标志,它们用来表示不同类型的文件。在类Unix系统中,文件类型标志通常是单个字符,显示在文件权限的第一个位置。以下是一些常见的文件类型标志:

  • -:普通文件。没有特殊标志,表示它是一个普通的文件。
  • l:符号链接(软链接)。这是一个指向另一个文件的链接。
  • c:字符设备文件。这是用于与字符设备通信的特殊文件,如终端。
  • b:块设备文件。这是用于与块设备通信的特殊文件,如硬盘。
  • p:命名管道。也称为FIFO(先进先出)管道,用于进程之间的通信。
  • s:套接字(socket)。用于进程间的网络通信。

这些文件类型标志与权限标志结合在一起,形成文件的权限字符串。例如,drwxr-xr-x 表示一个目录,而 -rw-r--r-- 表示一个普通文件。

对于文件而言:

  • r:代表可以读取,查看
  • w:可以修改,但不代表可以删除,删除的前提是对文件目录有写权限
  • x:可以被系统执行

对于目录而言:

  • r:可以读取目录内容
  • w:目录内创建、修改、重命名目录
  • x:可以进入该目录

10.3 更改文件权限

chmod

  1. 基本语法

chmod {ugoa}{+-=}{rwx} 文件或目录

chmod 42 文件或目录

功能描述:改变权限

chmod -R 777 目录

功能描述:将该目录下所有文件都放开rwx权限

  1. 说明

u:所有者,g:所有组,o:其它人,a:所有人(u、g、o的总和)

r = 4,w = 2,x = 1 rwx = 4 + 2 + 1 = 7

chown

  1. 基本语法

chown [选项] [最终用户] [文件或目录]

功能描述:改变文件或目录的所有者

  1. 选项说明
选项 说明
-R 递归操作

chgrp

  1. 基本语法

chgrp [最终用户组] [文件或目录]

功能描述:改变文件或目录的所属组

十二、搜索查找类

12.1 查找定位文件

find

  1. 基本语法

find [搜索范围] [选项]

。功能描述:查找文件或目录

  1. 选项说明
选项 说明
-name <查询方式> 按照指定的文件名查找模式查找文件
-usr <用户名> 查找属于指定用户名所有文件
-size <文件大小> 按照指定的文件大小查找文件,单位为:b —— 块(512字节),c —— 字节,w —— 字(2字节),k —— 千字节,M —— 兆字节,G —— 吉字节

locate

  1. 基本语法

locate 搜索文件

功能描述:快速定位文件路径

说明:locate 指令利用事前建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

which

  1. 基本语法

which 命令

功能描述:某个命令在系统中的可执行文件的位置

where is

  1. 基本语法

where is 命令

功能描述:主要用于查找标准二进制、源代码和帮助文档文件的位置

12.2 内容过滤查找和管道操作

grep

  1. 基本语法

grep [选项] 查找内容 源文件

功能描述:管道符 ‘|’,表示将前一个命令的处理结果输出传递给后面的命令处理

  1. 选项说明
选项 说明
-n 显示匹配行及行号

wc 文件

  1. 基本语法

wc 文件名

功能描述:用于统计文件中行数、字数和字符数的命令

  1. 示例

wc filename

命令会输出文件的行数、字数和字符数,以及文件的名称。例如:

10 50 300 filename

上述输出的含义是:

  • 文件有 10 行。
  • 文件中共有 50 个单词。
  • 文件中共有 300 个字符。

十三、压缩解压类

gzip/gunzip

  1. 基本语法

gzip 文件

功能描述:压缩文件,只能将文件压缩为 *.gz 文件

gunzip 文件.gz

功能描述:解压缩文件命令

  1. 经验技巧
  • 只能压缩文件不能压缩目录
  • 不保留原来的文件
  • 同时多个文件会产生多个压缩包

zip/unzip

  1. 基本语法

zip [选项] xxx.zip 将要压缩的内容

功能描述:压缩文件或目录的命令

unzip [选项] xxx.zip

功能描述:解压缩文件

  1. 选项说明
zip 选项 说明
-r 压缩目录
unzip 选项 说明
-d <目录> 指定解压缩后文件存放的目录

tar

  1. 基本语法

tar [选项] xxx.tar.gz 将要打包进去的内容

功能描述:打包目录,压缩后的文件格式 .tar.gz

  1. 选项说明
选项 说明
-c 产生 .tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包 .tar 文件
-C 解压到指定目录

十四、磁盘管理类

14.1 查看目录占用空间大小

du

  1. 基本语法

du 目录/文件

功能描述:显示目录下每个子目录的磁盘使用情况

  1. 选项说明
选项 说明
-h 以人较易读懂的GBytes,MBytes,KBytes等格式自行显示
-a 不仅查看子目录大小,还要包括文件
-c 显示所有的文件和子目录大小后,显示总和
-s 只显示总和
–max-depth=n 指定统计子目录的深度为第 n 层

14.2 查看磁盘使用情况

df

  1. 基本语法

df [选项]

功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况

选项说明

选项 说明
-h 以人较易读懂的GBytes,MBytes,KBytes等格式自行显示

free

  1. 基本语法

free [选项]

功能描述:查看内存占用情况

选项说明

选项 说明
-h 以人较易读懂的GBytes,MBytes,KBytes等格式自行显示

14.3 查看磁盘挂载情况

lsblk

  1. 基本语法

lsblk

功能描述:查看设备挂载情况

  1. 选项说明
选项 说明
-f 查看详细的设备挂载情况,显示文件系统信息

14.4 挂载和卸载

mount/umount

  1. 基本语法

mount [-t vfstype] [-o options] device dir

功能描述:挂在设备

umount 设备文件名或挂载点

功能描述:卸载设备

  1. 参数说明
参数 功能
-t vfstype 指定文件系统的类型,通常不必指定。mount 通常会选择正确的类型,常用类型有:光盘或光盘镜像:ios9660、DOS fat16 文件系统:mdsods、Windows 9x fat32 文件系统:vfat,Windows NT ntfs 文件系统:ntfs,Mount Windows 文件网络共享:smbfs,UNIX(LINUX) 文件网络共享:nfs
- o options 主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接到系统,ro:采用只读方式挂接设备,rw:采用读写方式挂接设备,iocharset:指定访问文件系统所有字符集
device 要挂接(mount)的设备
dir 设备在系统上的挂接点(mount point)

14.5 磁盘分区

mkfs

  1. 基本语法

mkfs -t xfs /dev/sdb1

功能描述:格式化分区

fdisk

  1. 基本语法

fdisk -l

功能描述:查看磁盘分区情况

fdisk 硬盘设备名

功能描述:对新增硬盘进行分区操作

  1. 选项说明
选项 说明
-l 显示所有硬盘的分区列表
  1. 经验技巧

该命令必须在 root 用户下使用

  1. 功能说明

Linux 分区:

  • Device:分区序列
  • Boot:引导
  • Start:从X磁柱开始
  • End:到Y磁柱结束
  • Blocks:容量
  • Id:分区类型ID
  • System:分区类型

分区操作按键说明:

  • m:显示命令列表
  • p:显示当前磁盘分区
  • n:新增分区
  • w:写入分区信息并退出
  • q:不保存分区信息直接退出

十五、进程管理类

15.1 查看进程

ps

  1. 基本语法

ps aux | grep xxx

功能描述:查看系统中所有进程

ps -ef | grep xxx

功能描述:可以查看子进程之间的关系

  1. 选项说明
选项 说明
a 列出带有终端的所有用户的进程
x 列出当前用户的所有进程,包括没有终端的进程
u 面向用户友好的显示风格
-e 列出所有进程
-u 列出某个用户关联的所有进程
-f 显示完整格式的进程列表
  1. 功能说明

ps aux 显示信息说明:

  • USER:该进程是由哪个用户产生的
  • PID:进程的 ID 号
  • %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
  • %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
  • VSZ:该进程占用虚拟内存的大小,单位 KB;
  • RSS:该进程占用实际物理内存的大小,单位 KB;
  • TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,
  • tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
  • STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示 START:该进程的启动时间、<:高优先级、N:低优先级
  • TIME:该进程占用 CPU 的运算时间,注意不是系统时间
  • COMMAND:产生此进程的命令名、

ps -ef 显示信息说明:

  • UID:用户 ID
  • PID:进程 ID
  • PPID:父进程 ID
  • C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:CPU 时间
  • CMD:启动进程所用的命令和参数
  1. 经验技巧
  • 如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
  • 如果想查看进程的父进程 ID 可以使用 ef;

15.2 终止进程

kill

  1. 基本语法

kill [选项] 进程号

功能描述:通过进程号杀死进程

killall 进程名称

功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用

  1. 选项说明
选项 说明
-9 表示强迫进程立即停止

15.3 查看进程树

pstree

  1. 基本语法

pstree [选项]

功能描述:查看进程树

  1. 选项说明
选项 说明
-p 显示进程的 PID
-u 显示进程的所有用户

15.4 实时监控进程

top

  1. 基本语法

top [选项]

功能描述:实时监控系统进程状态

  1. 选项说明
选项 说明
-d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当中可以执行的命令
-i 使 top 不显示任何闲置或者僵死进程
-p 通过指定监控进程 ID 来仅仅监控某个进程的状态
  1. 操作说明
操作 说明
P 以 CPU 使用率排序,默认就是此项
M 以内存的使用率排序
N 以 PID 排序
q 退出 top
  1. 查询结果字段展示

第一行信息为任务队列信息

内容 说明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间,本机已经运行 1 天 13 小时 32 分钟
2 users 当前登录了两个用户
load average: 0.00, 0.00, 0.00 系统在之前 1 分钟,5 分钟,15 分钟的平均负载。一般认为小于 1 时,负载较小。如果大于1,系统已经超出负荷

第二行为进程信息

内容 说明
Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是 0,需要手工检查僵尸进程

第三行为 CPU 信息

内容 说明
Cpu(s): 0.1%us 用户模式占用的 CPU 百分比
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.7%id 空闲 CPU 的 CPU 百分比
0.1%wa 等待输入/输出的进程的占用 CPU 百分比
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.1%si 软中断请求服务占用的 CPU 百分比
0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息

内容 说明
Mem: 625344k total 物理内存的总量,单位 KB
571504k used 已经使用的物理内存数量
53840k free 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了 628MB 内存,所以只有 53MB 的空闲内存了
65800k buffers 作为缓冲的内存数量

第五行为交换分区(swap)信息

内容 说明
Swap: 524280k total 交换分区(虚拟内存)的总大小
0k used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交互分区的大小

15.5 网络状态和端口监控

netstat

  1. 基本语法

netstat -anp | grep 进程号

功能描述:查看该进程网络信息

netstat –nlp | grep 端口号

功能描述:查看网络端口号占用情况

  1. 选项说明
选项 说明
-a 显示所有正在监听(listen)和未监听的套接字(socket)
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出在监听的服务状态
-p 表示显示哪个进程在调用

十六、系统定时任务

crontab

  1. 基本语法

crontab [选项]

功能描述:定时任务设置

  1. 选项说明
选项 说明
-e 编辑 crontab 定时任务
-l 查询 crontab 任务
-r 删除当前用户所有的 crontab 任务

十七、软件包管理

17.1 RPM

17.1.1 RPM 概述

RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。

RPM包的名称格式
Apache-1.3.23-11.i386.rpm

  • “apache” 软件名称
  • “1.3.23-11”软件的版本号,主版本和此版本
  • “i386”是软件所运行的硬件平台,Intel 32位处理器的统称
  • “rpm”文件扩展名,代表RPM包

17.1.2 RPM 查询命令(rpm -qa)

  1. 基本语法

rpm -qa

功能描述:查询所安装的所有 rpm软件包

  1. 经验技巧

由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包

17.1.3 RPM 卸载命令(rpm -e)

  1. 基本语法

rpm -e RPM软件包

rpm -e –nodeps 软件包

  1. 选项说明
选项 说明
-e 卸载软件包
–nodeps 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了

17.1.4 RPM 安装命令(rpm -ivh)

  1. 基本语法

rpm -ivh RPM 包全名

  1. 选项说明
选项 说明
-i install,安装
-v –verbose,显示详细信息
-h –hash,进度条
–nodeps 安装前不检查依赖

17.2 YUM

17.2.1 YUM 概述

YUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS
中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包
并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次
次下载、安装。YUM 类似于我们 java 开发中的 maven 工具,可以从镜像网站上下载应用程序,并直接安装。

17.2.2 YUM 的常用命令

  1. 基本语法

yum [选项] [参数]

  1. 选项说明
选项 说明
-y 对所有提问都回答“yes”
  1. 参数说明
参数 说明
install 安装 rpm软件包
update 更新 rpm软件包
check-update 删除指定的 rpm 软件包
list 显示软件包信息
clean 清理 yum 过期的缓存
deplist 显示 yum 软件包的所有依赖关系

17.2.3 修改络 网络 YUM 源

默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络 YUM 源为国内镜像的网站,比如网易 163,aliyun 等

1 )安装 wget, wget 用来从指定的 URL 下载文件

[root@hadoop101 ~] yum install wget

2 )在/etc/yum.repos.d/目录下,备份默认的 repos 文件,、

[root@hadoop101 yum.repos.d] pwd

/etc/yum.repos.d

[root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base.repo.backup

3 )下载网易 163 或者是 aliyun 的 repos 文件,任选其一

[root@hadoop101 yum.repos.d] wget

http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云

[root@hadoop101 yum.repos.d] wget

http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易 163

4 )使用下载好的 repos文件替换默认的 repos文件

例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo

[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo

5) )清理旧缓存数据,缓存新数据

[root@hadoop101 yum.repos.d]#yum clean all

[root@hadoop101 yum.repos.d]#yum makecache

yum makecache就是把服务器的包信息下载到本地电脑缓存起来

6) )测试

[root@hadoop101 yum.repos.d]# yum list | grep firefox

[root@hadoop101 ~]#yum -y install firefox