1. 概念
VMware Workstation : 是一款功能全面的虚拟机软件,适合开发、测试、多系统运行等场景
centos:是一款免费开源的linux发型版本 , 简单点说就是将linux内核与应用软件做一个打包
2. 命令
符号 | 含义 | 典型用途 |
---|---|---|
. | 当前目录 | cp file.txt . |
.. | 父目录 | cd .. 或 ls ../other_dir |
~ | 当前用户的家目录 |
|
/ | 根目录 | cd /usr/local |
一、文件与目录操作
1. 基础命令
命令 | 功能 | 示例 | 记忆技巧 |
---|---|---|---|
ls | 列出目录内容 | ls [选项] [目录或文件]
ls -a 全部文档,连同隐藏文件(开头为.的档案) ls -h 可以以人类可读格式显示文件大小如MB,KB ls -l a.txt 查看a.txt文件的详细信息 | LiSt(列表) |
cd | 切换目录 |
cd ~/Pictures 切换到Pictures目录下面 cd - # 返回之前所在的目录 cd /usr/local/bin # 绝对路径切换,从根目录下切换 cd ./subfolder #相对路径切换 | Change Directory |
pwd | 显示当前路径 | pwd | Print Working Directory |
mkdir | 创建目录 |
| MaKe DIRectory |
touch | 创建空文件 |
| 像“触摸”文件(创建/更新时间戳) |
vim | 创建并打开文件 | vim file.txt |
2. 文件操作
命令 | 功能 | 示例 | 记忆技巧 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cp | 复制文件 | 基本复制(保留原目录结构)
仅复制目录内容(不保留 cp -r dir1/. dir2/ 保留文件属性(权限、时间戳等) cp -a dir1 dir2/
cp file.txt ~/Pictures # 复制 file.txt 到 /Pictures/ 目录下 cp file1.txt file2.txt ~ /Pictures #复制多个文件到目录下 cp -i file.txt ~ /Pictures # 覆盖前询问确认 | CoPy(复制) | ||||||||||||||||||
mv | 移动/重命名 |
(1) 移动文件/目录 mv file.txt /path/to/destination/ # 将 file.txt 移动到目标目录 (2) 重命名文件/目录 mv oldname.txt newname.txt # 文件重命名 | MoVe(移动) | ||||||||||||||||||
rm | 删除文件 |
rm file1.txt file2.txt file3.txt 删除多个文件 | ReMove(移除) | ||||||||||||||||||
rmdir | 删除目录 | rmdir work
| |||||||||||||||||||
cat | 查看文件内容 | 查看文件
cat file.txt # 显示文件全部内容
cat -n file.txt # 显示内容并加上行号(包括空行)
cat -b file.txt # 显示内容并加上行号(忽略空行) 合并多个文件 cat file1.txt file2.txt > combined.txt # 合并文件并保存
cat *.log > all_logs.txt
# 合并所有 .log 文件 实例: 快速查看日志 cat /var/log/nginx/access.log | tail -n 20 # 查看日志最后20行 tail -n 100 /var/log/auth.log # 显示最后100行 tail -f /var/log/nginx/error.log # 实时跟踪日志更新(Ctrl+C 退出) 选项 , -f 是单词 "follow" 的缩写,表示持续跟踪(即实时监视)文件的更新内容 tail -f test.log | grep "error" 查看实时更新的日志文件是否有报错 | CAT(像猫一样“吐出”内容) | ||||||||||||||||||
less | 分页查看文件 | less /var/log/syslog # 分页查看文件,再按q 可退出查看 | 比 | ||||||||||||||||||
more | 分页查看文件 | more a.txt |
| ||||||||||||||||||
diff | 比较文件或者目录的差异 | diff [选项] 文件1 文件2 # 比较两个文件 diff [选项] 目录1 目录2 # 比较两个目录 |
二、文本处理与搜索
命令 | 功能 | 示例 | 记忆技巧 | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
grep | 文本搜索 | grep [选项] "搜索模式" [文件...]
#搜索模式:可以是普通字符串或正则表达式
grep "error" log.txt
常用选项 :
| Global REgex Print(全局正则搜索) | |||||||||||||||||||||||||||||||||||||||||||
find | 查找文件 | find [搜索路径] [匹配条件] [操作] 不指定路径时:默认从当前目录递归搜索
find /home -name "*.txt" # 查找/home下所有.txt文件
find / -type d -name "config" # 查找全盘名为config的目录 当
find 和 grep的区别: | 直接记英文“查找” | |||||||||||||||||||||||||||||||||||||||||||
head | 查看文件开头 | head [选项] [文件...]
| 像“头”部查看
| |||||||||||||||||||||||||||||||||||||||||||
tail | 查看文件结尾 |
| 像“尾巴”一样跟随文件 | |||||||||||||||||||||||||||||||||||||||||||
wc | 统计行数/单词数 | wc [选项] [文件...]
| Word Count(单词计数) |
三、权限与用户管理
命令 | 功能 | 示例 | 记忆技巧 |
---|---|---|---|
chmod | 修改权限 |
| Change Mode(改模式) |
chown | 修改所有者 | chown user:group file.txt | Change Owner(改所有者) |
sudo | 提权执行命令 | sudo apt update | Super User DO(超级用户执行) |
passwd | 修改密码 | passwd user1 | PASS WorD(密码) |
chmod
一、权限基础
1. 权限类型
-
r
(read):读取权限(文件:查看内容;目录:列出内容)。 -
w
(write):写入权限(文件:修改内容;目录:创建/删除文件)。 -
x
(execute):执行权限(文件:可运行;目录:可进入)。
2. 用户类别
-
u
(user):文件所有者。 -
g
(group):所属用户组。 -
o
(others):其他用户。 -
a
(all):所有用户(默认值,相当于ugo
)。
3. 权限表示法
-
符号模式:用
u/g/o/a
++/-/=
+r/w/x
组合(如u+x)
-
数字模式:用 3 位八进制数表示权限(如
755
)
二、基础语法
chmod [选项] 权限模式 文件/目录...
-
常用选项:
-
-R
:递归修改目录及其子内容的权限。 -
-v
:显示详细操作信息
-
三、符号模式(直观)
1. 权限操作符
符号 | 作用 | 示例 |
---|---|---|
+ | 添加权限 | chmod u+x file.sh |
- | 移除权限 | chmod o-w file.txt |
= | 精确设置权限 | chmod a=rw file |
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w,o-r file.txt # 移除组的写权限和其他用户的读权限
chmod a=rw config.conf # 所有用户设置为读写权限(无执行)
chmod +x program # 等价于 `a+x`,所有用户添加执行权限
四、数字模式(高效)
1. 权限对应数字
权限 | 数字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
- | 0 |
2. 数字组合规则
-
每位数字 =
u
+g
+o
的权限值之和。 -
示例权限:
-
7
(4+2+1):rwx
-
6
(4+2+0):rw-
-
5
(4+0+1):r-x
-
0
(0+0+0):---
-
chmod 755 script.sh # u=rwx (7), g=rx (5), o=rx (5)
chmod 644 file.txt # u=rw (6), g=r (4), o=r (4)
chmod 600 ~/.ssh/id_rsa # 仅所有者可读写(安全敏感文件)
五、权限查看
使用 ls -l
查看当前权限:
ls -l file.txt
输出示例:
-rw-r--r-- 1 user group 1024 Jan 1 10:00 file.txt
-
首字符
-
表示文件,d
表示目录。 -
后续 9 位:
u
(rw-)、g
(r--)、o
(r--)
chown
一、基础语法
chown [选项] [所有者][:所属组] 文件/目录...
所有者:用户名或 UID(如
root
或1000
)。所属组:组名或 GID(如
admin
或1001
),需在所有者后加:
或.
指定。选项:常用
-R
(递归修改)
二、使用示例
1. 修改文件所有者
chown alice file.txt # 将文件所有者改为 alice
sudo chown root /etc/config # 修改系统文件需 sudo
2. 同时修改所有者和所属组
chown alice:developers project/ # 所有者改为 alice,组改为 developers
chown :admin log.txt # 仅修改组为 admin(省略所有者)
3. 递归修改目录权限
sudo chown -R www-data:www-data /var/www # 递归修改网站目录所有者/组
sudo , su
sudo和root的概念
root 用户
身份:Linux 系统的超级管理员,拥有 最高权限(UID=0)。
特点:
可以执行任何操作(包括删除系统关键文件)。
默认情况下,直接使用 root 登录或操作存在高风险(容易误操作导致系统崩溃或被入侵)
sudo命令
作用:允许 普通用户 临时以 root(或其他用户)权限执行命令,而无需切换到 root 账户
核心功能:
权限委托:管理员可以精确控制哪些用户能通过
sudo
执行哪些命令。审计日志:所有
sudo
操作会被记录(如/var/log/auth.log
),便于追踪责任。
sudo 和root 的 常见问题
Q1: 为什么
sudo
要求输入当前用户密码,而不是 root 密码?
安全设计:确保是用户本人操作,而非他人盗用 root 密码后直接提权。
Q2: 如何切换到 root 用户?
如果用户有
sudo
权限:sudo -i # 切换到 root 并加载环境变量
sudo su - # 同上Q3: 没有 sudo 权限怎么办?
需由管理员(root 或有
sudo
权限的用户)将你加入sudo
组:usermod -aG sudo your_usernameQ4:
sudo
和su
的区别?
命令 需要 root 密码 切换用户 日志记录 推荐场景 sudo
当前用户密码 可选 ✅ 临时提权执行命令 su
root 密码 必须 ❌ 长期切换用户 Q5:
sudoers
文件是啥?
/etc/sudoers
是 Linux 系统中 控制sudo
命令权限的核心配置文件,定义了哪些用户/组可以以何种权限执行哪些命令
sudo和su的区别
基本概念对比
特性 | su (Substitute User) | sudo (SuperUser DO) |
---|---|---|
设计目的 | 切换用户身份 | 以其他用户身份执行单条命令 |
密码要求 | 需要目标用户的密码 | 需要当前用户的密码 |
日志记录 | 无详细日志 | 详细记录所有sudo操作 |
权限控制 | 要么全有要么全无 | 可精细控制每个用户的权限 |
默认行为 | 切换到root用户 | 以root权限执行单条命令 |
详细区别解析
1. 认证方式
su
:su - username # 需要输入目标用户的密码需要知道目标用户(如root)的密码
sudo
:sudo command # 需要输入当前用户的密码只需要知道当前用户的密码(该用户必须在sudoers列表中)
2. 环境变量处理
su
:su - # 连字符(-)会加载目标用户的环境变量 su # 不加载目标用户的环境变量
sudo
:sudo -i # 模拟完整登录环境 sudo -s # 只切换shell不改变环境变量
3. 权限控制粒度
su
:
二进制控制:要么获得完整权限,要么没有
无法限制用户可以做什么
sudo
:
可以通过
/etc/sudoers
文件精确控制:# 允许用户alice仅重启web服务 alice ALL=(root) /usr/bin/systemctl restart nginx
使用场景对比
适合使用
su
的情况:
需要长时间以其他用户身份工作(特别是root)
su - root目标系统没有配置sudo
需要完全模拟目标用户环境
适合使用
sudo
的情况:
临时执行需要特权的单个命令
sudo apt update多管理员环境下需要审计跟踪
需要精细控制用户权限时
四、系统监控与管理
命令 | 功能 | 示例 | 记忆技巧 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ps | 查看进程 | ps -aux 当前系统中正在运行的所有进程 “a”代表显示所有的进程(而不管它们属于哪个用户); “u”代表显示该进程归属的用户; “x”表示显示一般服务进程(没有连接到终端的服务进程) 常用选项组合:
进程选择选项
| Process Status(进程状态) | ||||||||||||||||||||||||
top | 动态监控资源 |
退出 top
系统概览区(顶部) top - 15:30:45 up 2 days, 3:15, 3 users, load average: 0.52, 0.58, 0.47 Tasks: 215 total, 1 running, 214 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.3 us, 1.2 sy, 0.0 ni, 93.4 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8000000 total, 2000000 free, 3000000 used, 3000000 buff/cache KiB Swap: 2000000 total, 1900000 free, 100000 used. 4500000 avail Mem
进程列表区 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 400000 50000 8000 R 6.2 0.6 0:10.25 firefox 5678 mysql 20 0 2000000 500000 20000 S 3.1 6.3 10:15.20 mysqld 各列含义:
实用技巧 top -d 2 # 设置刷新间隔为2秒 top -p 1234 # 只监控指定PID top -u mysql # 只监控指定用户进程 与ps命令的区别
| 像“顶部”俯瞰所有进程 | ||||||||||||||||||||||||
df | 查看文件系统的整体的磁盘空间使用情况 |
展示文件系统的总容量,可用空间,已用空间,磁盘空间利用率等 以可读的格式显示磁盘空间(否则默认显示单位是字节,不直观) df -a:包含全部的文件系统 | Disk Free(磁盘空闲) | ||||||||||||||||||||||||
du | 用于估算文件或者目录所占的磁盘空间大小 | du -h :以人类刻度的格式显示磁盘使用信息 du -s :可查看当前目录的总大小 du -h -s /home/user/documents : 查看 /home/user/documents 目录的大小 | |||||||||||||||||||||||||
free | 查看内存 | free -h (MB单位) | 直接记英文“空闲” | ||||||||||||||||||||||||
systemctl | 管理服务 | systemctl restart sshd | System Control(系统控制) | ||||||||||||||||||||||||
stat | 查看文件/目录的详细信息 | stat file.txt | |||||||||||||||||||||||||
netstat | 查看端口 | 通过组合不同的选项,
|
五、网络工具
命令 | 功能 | 示例 | 记忆技巧 |
---|---|---|---|
ping | 测试网络连通性 | ping google.com | 像“乒”声测试网络 |
curl | 发送HTTP请求 | curl -O https://example.com/file.zip | Client URL(客户端URL工具) |
ssh | 远程登录服务器 |
| Secure SHell(安全壳) |
scp | 安全复制文件 | scp file.txt user@remote:/path/ | Secure CoPy(安全复制) |
telnet | 用来远程登录操作 | telnet
| |
ifconfig | 命令用来查看和配置网络设备 | 可用来查看 网络配置,ip地址,子网掩码,mac地址 等信息 | interface configuration"(接口配置) |
route | 查看和操作内核的 IP 路由表 |
六、压缩与归档
命令 | 功能 | 示例 | 记忆技巧 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tar | 打包/解压 | 创建归档文件(打包) 格式:tar -cvf 归档名.tar 文件或目录
注意:归档文件在前面
tar -cvf backup.tar /home/user/docs # 打包目录
tar -cvf logs.tar *.log # 打包所有.log文件 解压文件
格式:tar -xvf 归档文件 [ -C 解压目录 ]
tar -xvf archive.tar #解压到当前目录
tar -xvf file.tar -C ./work # 解压.tar文件到work目录下面 常用选项:
压缩归档文件
tar -zcvf backup.tar.gz /home/user # gzip压缩 | Tape ARchive(磁带归档) | ||||||||||||||||||||
zip | 压缩为.zip | zip [选项] 压缩包名.zip 文件或目录列表 zip archive.zip file.txt 压缩单个文件 zip -r archive.zip dir1/ 压缩目录 | 直接记英文“拉链”(压缩) | ||||||||||||||||||||
unzip | 解压.zip | unzip [选项] 压缩包名.zip
| 反义“zip” |
七、vim编辑器
-
普通模式(Normal Mode) :只查看
-
默认进入的模式,用于导航和操作文本。
-
切换方式:在其他模式下按
Esc
键。
-
-
插入模式(Insert Mode) : 编辑
-
用于输入和编辑文本。
-
切换方式:在普通模式下按
i
(插入)、a
(追加)、o
(新行)等键。
-
-
命令模式(Command Mode)
-
执行保存、退出等操作。
-
切换方式:在普通模式下按
:
-
普通模式(Normal Mode):默认模式,用于导航和命令操作(按 ESC
返回)
启动 Vim 后的默认模式, 从其他模式按 ESC
光标移动
命令 | 功能 |
---|---|
h j k l | 左、下、上、右移动 |
w / b | 跳到下一个/上一个单词开头 |
e | 跳到单词结尾 |
0 / ^ | 跳到行首(^ 是非空格首字符) |
$ | 跳到行尾 |
gg | 跳到文件开头 |
G | 跳到文件末尾 |
50G | 跳到第 50 行 |
Ctrl+f / Ctrl+b | 向下/向上翻页 |
编辑操作
命令 | 功能 |
---|---|
i | 在光标前进入插入模式 |
a | 在光标后进入插入模式 |
v | 进入到 可视模式 |
o / O | 在当前行下方/上方插入新行 |
x | 删除当前字符 |
dd | 删除当前行 |
yy | 复制当前行(yank) |
p / P | 粘贴到光标后/前 |
u | 撤销(Undo) |
Ctrl+r | 重做(Redo) |
r | 替换当前字符(如 rx 替换为 x ) |
J | 合并下一行到当前行 |
查找与替换
命令 | 功能 |
---|---|
/word | 向下查找 word |
?word | 向上查找 word |
n / N | 跳转到下一个/上一个匹配 |
:%s/old/new/g | 全局替换 old 为 new |
:10,20s/old/new/g | 替换 10-20 行的内容 |
命令模式
命令 | 功能说明 |
---|---|
:w | 保存文件 |
:w! | 强制保存(只读文件时) |
:q | 退出 Vim |
:q! | 强制退出(不保存修改) |
:wq / :x | 保存并退出 |
:e <文件名> | 打开新文件 |
:e! | 重新加载当前文件(放弃修改) |
:saveas <路径> | 另存为文件 |
插入模式(Insert Mode):编辑文本(通过 i
、a
等键进入)
基本操作
命令 | 功能 |
---|---|
ESC | 返回普通模式 |
Ctrl+h | 删除前一个字符(Backspace) |
Ctrl+w | 删除前一个单词 |
Ctrl+u | 删除到行首 |
Ctrl+[ | 等同于 ESC |
自动补全
命令 | 功能 |
---|---|
Ctrl+n / Ctrl+p | 向下/向上补全单词 |
Ctrl+x + Ctrl+f | 文件名补全 |
Ctrl+x + Ctrl+o | 代码补全(需插件) |
模式切换总结
操作 | 功能 |
---|---|
i / a / o | 进入插入模式 |
v / V / Ctrl+v | 进入可视模式 |
ESC / Ctrl+[ | 返回普通模式 |
九、yum
yum 是 RPM (Red-Hat Package Manager)红帽软件包管理器 包管理器的前端工具, 它简化了软件包的安装、更新和依赖管理
基本语法
yum [option] [command] [package...]
: 基本语法,其中[option]
为可选,[command]
为命令名称,[package]
为要安装的软件包名称
[command] 常用命令
yum install
: 安装指定软件包及其依赖软件包。例如:yum install httpd
。yum update
: 更新系统中已经安装的所有软件包及其依赖软件包。例如:yum update
。yum search
: 搜索可以安装的软件包。例如:yum search mysql
。yum info
: 查看软件包详细信息。例如:yum info httpd
。yum list
: 列出所有已安装或可安装的软件包。例如:yum list installed
。yum remove
: 卸载指定软件包及其依赖软件包。例如:yum remove httpd
。yum upgrade
: 升级所有软件包到最新版本。例如:yum upgrade
。yum clean
: 清除缓存。例如:yum clean all
十、其他命令
命令 | 作用 | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
重定向 | 标准输出重定向 覆盖输出到文件 ls -l > filelist.txt # 将ls输出写入filelist.txt(覆盖原有内容) 追加输出到文件 date >> logfile.txt # 将date输出追加到logfile.txt末尾 创建空文件 (等效于touch) > filelist.txt 标准错误输出重定向 将命令的错误输出重定向到文件内 ls m.file 2> error.txt 同时将重定向标准输出和错误输出 讲命令的标准输出和错误输出都重定向到同一个文件 ls &> output.txt 标准输入重定向 把指定文件的内容作为命令的输入 wc -l < data.txt # 统计data.txt的行数 | |||||||||||||||||||||||||
ctrl + c | 当执行linux命令卡住的时候,可强制退出 | |||||||||||||||||||||||||
| 查看所有用户基本信息 | |||||||||||||||||||||||||
sudo yum install | sudo yum install [选项] <软件包名1> <软件包名2>...
举例: sudo yum install tree #安装tree 注意事项: 需要root权限(通过sudo 或者直接切换到root用户) | |||||||||||||||||||||||||
tree | 安装tree:sudo yum install tree tree #显示当前目录树 tree ~/Pictures #显示指定目录树 tree -d # 只显示目录,不显示文件 tree | tail -n 1 #统计文件下目录和文件的数量 tree --du -h #显示磁盘的占用情况 | |||||||||||||||||||||||||
kill | kill [选项] <进程ID(PID)> 用于终止进程的命令,通过发送指定的信号来控制进程的行为 kill PID # 默认情况下,kill命令发送SIGTERM(信号15),这可以请求进程终止 kill -l # 命令列出所有可用信号 kill -9 1234 # 强制终止进程(信号9) kill -SIGSTOP 1234 # 向 PID 为 1234 的进程发送 SIGSTOP kill 1234 5678 9012 终止多个进程 最常用的信号是:
| |||||||||||||||||||||||||
| cron table :cron是时间的意思, table指的是定时任务的配置文件 管理用户级的定时任务,实现自动化执行命令或脚本(如备份、日志清理、定时任务等) crontab -l 查看当前的定时任务 | |||||||||||||||||||||||||
useradd |
| |||||||||||||||||||||||||
locate | 是一个快速查找文件的工具,它通过搜索 预建的数据库(而非实时扫描磁盘)来定位文件 1. 工作原理
2.基本用法 安装 locate: sudo yum install mlocate 更新数据库: sudo updatedb 简单搜索: locate [选项] 文件名或模式 3.实际使用 locate b.txt #输出所有路径中包含b.txt的文件 locate "*.jpg" #查看所有jpg的文件 locate和find的区别: 1. locate是非实时的,需要依赖数据库更新 ; find是实时的 2.locate只支持简单的文件名搜索 ; find支持较多形式 | |||||||||||||||||||||||||
clear | 清除当前屏幕上的文字 | |||||||||||||||||||||||||
ln | 用于创建文件或目录的 链接(Link),分为 硬链接(Hard Link) 和 符号链接(Symbolic Link,软链接) ln [选项] 源文件 目标链接
链接类型对比
inode : inode 是文件系统中的一种数据结构,它存储了文件或目录的大部分元数据,而不是文件内容本身。元数据包含了文件的权限、所有者、文件大小、创建时间、修改时间、访问时间等信息。每个文件和目录在文件系统中都对应一个唯一的 inode 编号,通过这个编号可以找到对应的 inode 以及相关的元数据 | |||||||||||||||||||||||||
管道符 | | 将一个命令的输出传递给另一个命令作为输入的符号 cat /var/log/nginx/access.log | tail -n 20 # 查看日志最后20行 | |||||||||||||||||||||||||
查看某个进行的占有率 | top htop ps 与 grep : 查看cpu占有率 查看内容占有率 | |||||||||||||||||||||||||
| 查看用户 UID/GID 及所属组 | |||||||||||||||||||||||||
passwd | 修改当前用户密码 用户:yangsuqin 密码:qwerty246824 | |||||||||||||||||||||||||
修改登录密码 | 用户 linux 密码 linux246824 以上也是root用户的密码 |