本片记录了 Linux 方面的简单介绍和常用命令,使用的是 CentOS。
一、Linux 介绍
1.1 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】ls -l > 文件
功能描述:将 ls 查看信息写入到文件中
【2】ls -l >> 文件
功能描述:将 ls 查看信息追加到文件中
【3】cat 文件1 > 文件2
功能描述:将文件1的内容覆盖到文件2
【4】echo "内容" >> 文件
功能描述:将内容追加到文件中
head
head:显示文件头部内容
head 文件
功能描述:查看文件头10行内容
head -n 5 文件
功能描述:查看文件头5行内容,5可以是任意行数
选项 | 说明 |
---|---|
-n 行数 | 查看文件头部 n 行内容 |
tail
tail:输出文件尾部内容
tail 文件
功能描述:查看文件尾部10行内容
tail -n 5 文件
功能描述:查看文件尾部5行内容,5可以是任意行数
tail -f 文件
功能描述:实时追踪该文档的所有更新
选项 | 说明 |
---|---|
-n 行数 | 指定显示尾部 n 行内容 |
-f | 显示文件最新追加的内容,监视文件变化 |
ln
ln:软链接,软链接也称为符号链接,类似于 Windows 里的快捷方式,有自己的数据块,主要存放了链接其它文件的路径。
ln -s [原文件或目录][软链接名]
功能描述:给源文件创建一个软链接
删除软链接:rm -rf 软链接名,而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉
查询:通过 ll 就可以查看,列表属性第 1 位是 1,尾部会有位置指向。
history
history:查看已经执行过的历史命令
history
功能描述:查看已经执行过的历史命令
选项 | 说明 |
---|---|
-c | 清除历史 |
十、时间日期类
date
date:显示日期
date
功能描述:显示当前日期
选项 | 说明 |
---|---|
+%Y-%m-%d %H:%M:%S | 格式化输出年月日时分秒 |
+%Y-%m-%d %H:%M:%S | 格式化输出年月日时分秒 |
+%s | 秒时间戳 |
-d '1 days ago' | 前一日 |
-s 字符串时间 | 设置系统时间 |
ntpdate
ntpdate:同步时钟
ntpdate 服务器地址
功能描述:同步时钟
cal
cal:查看日历
cal [选项]
功能描述:查看日历,不加选项显示本月日历
选项 | 说明 |
---|---|
-3 | 显示3个月的日历 |
-m | 从周一开始显示日历 |
年份 | 显示那一年 |
-y | 显示本年 |
十一、用户权限类
10.1 用户管理命令
useradd 添加新用户
useradd 用户名
功能描述:添加新用户
useradd -g 组名 用户名
功能描述:添加新用户到某组
useradd -d /hmoe/文件夹别名 用户名
功能描述:更改主目录下用户的文件夹名称
passwd 密码 修改密码
passwd 密码
功能描述:修改密码
id 用户名 查看用户
id 用户名
功能描述:查询用户名是否存在
cat /etc/passwd 查看创建了哪些用户
cat /etc/passwd
功能描述:查看创建了哪些用户
mlemontx:x:1000:1000:mlemontx:/home/mlemontx:/bin/bash
mlemontx
: 用户名,表示用户的登录名。x
: 密码字段,通常在 /etc/shadow
文件中进行保存,而不是 /etc/passwd
文件。这里的 x
表示密码已经被加密并保存在其他地方。1000
: 用户ID (UID),是一个用于标识用户的数字。在Linux中,每个用户都有一个唯一的UID。1000
: 组ID (GID),是指用户所属的主要用户组的组ID。mlemontx
: 用户全名或注释字段,通常是用户的真实姓名或其他描述信息。/home/mlemontx
: 用户的主目录路径,这是用户登录后默认的工作目录。/bin/bash
: 用户的登录Shell,表示用户登录后将使用的命令行解释器(shell)。在这个示例中,使用的是Bash shell。通常情况下,/etc/passwd
文件包含了系统中所有用户的信息,但是密码字段通常不直接在该文件中保存,而是在/etc/shadow
文件中。这种方式提高了密码的安全性,因为/etc/shadow
文件只允许root用户访问。
su 用户名 切换用户
su 用户名
功能描述:切换用户
who am i 查询当前用户信息
who am i
功能描述:最外层登录用户的详细信息
whoami
功能描述:当前登录用户的用户名
sudo 命令 普通用户临时拥有 root 权限
vim /etc/sudoers
将目标用户添加进去 wq!
sudo ls
功能描述:给目标用户 root 权限
userdel 用户名 删除用户
userdel 用户名
功能描述:删除用户
userdel -r 用户名
功能描述:删除用户及其主目录
groupadd 组名 创建用户组
groupadd 组名
功能描述:创建用户组
cat /etc/group
功能描述:查看用户组配置
usermod 修改用户
usermod -g 用户组名
功能描述:将用户加到用户组
groupmod 修改组名
groupmod -n 新用户组名 原用户组名
功能描述:重命名用户组
groupdel 删除用户组
groupdel 用户组
功能描述:删除该用户组
10.2 文件属性和权限
ll
ll
功能描述:通常,ll
实际上是 ls -l
的简写,其中 ls
是列出目录内容的命令,而 -l
是长格式(详细列表)的选项。ls -l
将显示文件和目录的详细信息,如文件权限、所有者、大小、修改日期等。
ls -al
功能描述:显示文件和目录,包括隐藏文件和目录。
drwxr-xr-x. 2 root root 6 7月 10 14:22 公共
drwxr-xr-x.
:文件类型和权限字段。这个字段表示该项是一个目录(d
),并且有一系列的权限标志,分为三组(所有者、组、其他用户)每组三个字符,分别表示读(r
)、写(w
)和执行(x
)权限。2
:连接数。这个字段表示目录的硬链接数。在 Unix 系统中,每个文件或目录都有一个链接数,即指向该文件或目录的硬链接数量。在 centOS 中,如果是文件代表硬链接数,如果是文件夹代表子目录的个数。root
:所有者。这个字段表示目录的所有者用户名。root
:所属组。这个字段表示目录所属的组名。6
:文件或目录的大小(以字节为单位)。对于目录,这通常是目录中的项目数量,因为目录本身没有固定的大小。7月 10 14:22
:修改日期和时间。这个字段显示了最后一次修改文件或目录的时间,其中 7月
表示月份,10
表示日期,14:22
表示时间。公共
:文件或目录的名称。这个字段是文件或目录的名称。除了 d
表示目录之外,还有一些其他可能的文件类型标志,它们用来表示不同类型的文件。在类Unix系统中,文件类型标志通常是单个字符,显示在文件权限的第一个位置。以下是一些常见的文件类型标志:
-
:普通文件。没有特殊标志,表示它是一个普通的文件。l
:符号链接(软链接)。这是一个指向另一个文件的链接。c
:字符设备文件。这是用于与字符设备通信的特殊文件,如终端。b
:块设备文件。这是用于与块设备通信的特殊文件,如硬盘。p
:命名管道。也称为FIFO(先进先出)管道,用于进程之间的通信。s
:套接字(socket)。用于进程间的网络通信。
这些文件类型标志与权限标志结合在一起,形成文件的权限字符串。例如,drwxr-xr-x
表示一个目录,而 -rw-r--r--
表示一个普通文件。
对于文件而言:
- r:代表可以读取,查看
- w:可以修改,但不代表可以删除,删除的前提是对文件目录有写权限
- x:可以被系统执行
对于目录而言:
- r:可以读取目录内容
- w:目录内创建、修改、重命名目录
- x:可以进入该目录
10.3 更改文件权限
chmod
chmod {ugoa}{+-=}{rwx} 文件或目录
chmod 42 文件或目录
功能描述:改变权限
chmod -R 777 目录
功能描述:将该目录下所有文件都放开rwx权限
u:所有者,g:所有组,o:其它人,a:所有人(u、g、o的总和)
r = 4,w = 2,x = 1 rwx = 4 + 2 + 1 = 7
chown
chown [选项] [最终用户] [文件或目录]
功能描述:改变文件或目录的所有者
选项 | 说明 |
---|---|
-R | 递归操作 |
chgrp
chgrp [最终用户组] [文件或目录]
功能描述:改变文件或目录的所属组
十二、搜索查找类
12.1 查找定位文件
find
find [搜索范围] [选项]
。功能描述:查找文件或目录
选项 | 说明 |
---|---|
-name | 按照指定的文件名查找模式查找文件 |
-usr | 查找属于指定用户名所有文件 |
-size | 按照指定的文件大小查找文件,单位为:b —— 块(512字节),c —— 字节,w —— 字(2字节),k —— 千字节,M —— 兆字节,G —— 吉字节 |
locate
locate 搜索文件
功能描述:快速定位文件路径
说明:locate 指令利用事前建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
which
which 命令
功能描述:某个命令在系统中的可执行文件的位置
where is
where is 命令
功能描述:主要用于查找标准二进制、源代码和帮助文档文件的位置
12.2 内容过滤查找和管道操作
grep
grep [选项] 查找内容 源文件
功能描述:管道符 '|',表示将前一个命令的处理结果输出传递给后面的命令处理
选项 | 说明 |
---|---|
-n | 显示匹配行及行号 |
wc 文件
wc 文件名
功能描述:用于统计文件中行数、字数和字符数的命令
wc filename
命令会输出文件的行数、字数和字符数,以及文件的名称。例如:
10 50 300 filename
上述输出的含义是:
- 文件有 10 行。
- 文件中共有 50 个单词。
- 文件中共有 300 个字符。
十三、压缩解压类
gzip/gunzip
gzip 文件
功能描述:压缩文件,只能将文件压缩为 *.gz 文件
gunzip 文件.gz
功能描述:解压缩文件命令
- 只能压缩文件不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
zip/unzip
zip [选项] xxx.zip 将要压缩的内容
功能描述:压缩文件或目录的命令
unzip [选项] xxx.zip
功能描述:解压缩文件
zip 选项 | 说明 |
---|---|
-r | 压缩目录 |
unzip 选项 | 说明 |
---|---|
-d | 指定解压缩后文件存放的目录 |
tar
tar [选项] xxx.tar.gz 将要打包进去的内容
功能描述:打包目录,压缩后的文件格式 .tar.gz
选项 | 说明 |
---|---|
-c | 产生 .tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包 .tar 文件 |
-C | 解压到指定目录 |
十四、磁盘管理类
14.1 查看目录占用空间大小
du
du 目录/文件
功能描述:显示目录下每个子目录的磁盘使用情况
选项 | 说明 |
---|---|
-h | 以人较易读懂的GBytes,MBytes,KBytes等格式自行显示 |
-a | 不仅查看子目录大小,还要包括文件 |
-c | 显示所有的文件和子目录大小后,显示总和 |
-s | 只显示总和 |
--max-depth=n | 指定统计子目录的深度为第 n 层 |
14.2 查看磁盘使用情况
df
df [选项]
功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况
选项说明
选项 | 说明 |
---|---|
-h | 以人较易读懂的GBytes,MBytes,KBytes等格式自行显示 |
free
free [选项]
功能描述:查看内存占用情况
选项说明
选项 | 说明 |
---|---|
-h | 以人较易读懂的GBytes,MBytes,KBytes等格式自行显示 |
14.3 查看磁盘挂载情况
lsblk
lsblk
功能描述:查看设备挂载情况
选项 | 说明 |
---|---|
-f | 查看详细的设备挂载情况,显示文件系统信息 |
14.4 挂载和卸载
mount/umount
mount [-t vfstype] [-o options] device dir
功能描述:挂在设备
umount 设备文件名或挂载点
功能描述:卸载设备
参数 | 功能 |
---|---|
-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
mkfs -t xfs /dev/sdb1
功能描述:格式化分区
fdisk
fdisk -l
功能描述:查看磁盘分区情况
fdisk 硬盘设备名
功能描述:对新增硬盘进行分区操作
选项 | 说明 |
---|---|
-l | 显示所有硬盘的分区列表 |
该命令必须在 root 用户下使用
Linux 分区:
- Device:分区序列
- Boot:引导
- Start:从X磁柱开始
- End:到Y磁柱结束
- Blocks:容量
- Id:分区类型ID
- System:分区类型
分区操作按键说明:
- m:显示命令列表
- p:显示当前磁盘分区
- n:新增分区
- w:写入分区信息并退出
- q:不保存分区信息直接退出
十五、进程管理类
15.1 查看进程
ps
ps aux | grep xxx
功能描述:查看系统中所有进程
ps -ef | grep xxx
功能描述:可以查看子进程之间的关系
选项 | 说明 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
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:该进程的启动时间、