Linux 学习笔记
1 初识 Linux
1.1 简介
Linux 是一款免费、开源、自由传播的操作系统,广泛应用于企业级服务器、开发环境、嵌入式系统等领域。其稳定性、安全性和高性能使其成为服务器端的首选操作系统之一。
1.2 Linux 与 Windows 的主要区别
- 大小写敏感:Linux 严格区分大小写,而 Windows 不区分。
- 一切皆文件:Linux 中所有内容(包括硬件设备)都以文件形式存在。
- 文件扩展名意义不大:Linux 不依赖扩展名来识别文件类型,扩展名仅便于用户识别。常见扩展名示例:
- 压缩包:
.gz、.bz2、.tar.bz2、.tgz
- 二进制软件包:
.rpm
- 网页文件:
.html、.php
- 脚本文件:
.sh
- 配置文件:
.conf
- 软件兼容性:Windows 下的可执行程序无法直接在 Linux 中运行,需通过兼容层或重新编译。
1.3 字符界面的优势
- 占用系统资源更少,适合性能要求高的服务器环境。
- 操作简洁,减少图形界面带来的潜在安全风险。
- 更利于远程管理和自动化脚本执行。
2 SSH 协议
SSH(Secure Shell)是一种基于应用层的安全网络协议,由 IETF 制定。它专为远程登录会话和其他网络服务提供安全保障,支持加密传输,能有效防止信息泄露、中间人攻击等安全问题,是目前远程管理 Linux 服务器的主要方式。
3 Linux 系统管理
3.1 Linux 目录结构详解
| 目录 |
说明 |
/ |
根目录,所有文件和目录的起点。只有 root 用户有写入权限。 |
/bin |
存放用户常用的二进制可执行命令(如 ls、cp、grep),单用户模式下也可使用。 |
/sbin |
存放系统管理员使用的管理命令(如 reboot、ifconfig、fdisk)。 |
/etc |
存放系统和应用程序的配置文件,如网络配置、启动脚本等。 |
/dev |
设备文件目录,如磁盘、终端、USB 设备等。 |
/proc |
虚拟文件系统,存放当前系统进程和内核信息,如 /proc/cpuinfo、/proc/meminfo。 |
/var |
存放经常变化的数据,如日志文件(/var/log)、邮件(/var/mail)、打印队列等。 |
/tmp |
临时文件目录,系统重启后内容会被清空。 |
/usr |
用户程序和文件的主要存放位置,包括二进制文件、库、文档等。 |
/home |
普通用户的家目录,每个用户拥有自己的子目录。 |
/boot |
存放启动加载器(如 GRUB)和内核文件(如 vmlinuz、initrd)。 |
/lib |
存放 /bin 和 /sbin 中命令所需的共享库文件。 |
/opt |
可选应用程序的安装目录,通常用于第三方厂商软件。 |
/mnt |
系统管理员临时挂载文件系统的目录。 |
/media |
自动挂载的可移动设备(如 CD-ROM、U 盘)的目录。 |
/srv |
存放本机提供的服务数据,如 Web、FTP 服务数据。 |
3.2 Linux 常用命令
命令格式
[用户名@主机名 当前目录]
# 表示 root 用户,$ 表示普通用户。
~ 表示当前用户的家目录(root 为 /root,普通用户为 /home/用户名)。
一、文件操作命令
| 命令 |
说明 |
ls [选项] [路径] |
列出目录内容。常用选项:-a(显示隐藏文件)、-l(详细信息)、-h(人性化大小)。 |
pwd |
显示当前所在目录的绝对路径。 |
touch <文件名> |
创建一个空文件或更新文件时间戳。 |
cat <文件名> |
查看文件内容(适合小文件)。 |
tail [选项] <文件名> |
显示文件末尾内容,默认 10 行。常用 -f 实时追踪日志更新。 |
二、目录操作命令
| 命令 |
说明 |
mkdir <目录名> |
创建目录。-p 可递归创建多级目录。 |
cd <目录> |
切换目录。cd ~ 回家目录,cd - 回上次目录,cd .. 回上级目录。 |
rmdir <目录名> |
删除空目录。 |
rm [选项] <文件或目录> |
删除文件或目录。-r 递归删除,-f 强制删除(慎用 rm -rf /*)。 |
cp [选项] <源> <目标> |
复制文件或目录。-r 复制目录。 |
mv <源> <目标> |
移动文件或目录,也可用于重命名。 |
三、搜索命令
| 命令 |
说明 |
whereis <命令名> |
查找命令的二进制文件、源码和帮助文档位置。 |
which <命令名> |
查找命令的完整路径及别名。 |
find <路径> <条件> |
强大的文件搜索工具。常用:-name、-user、-size、-mtime。 |
grep [选项] <字符串> <文件> |
在文件中搜索指定字符串,支持正则表达式。 |
四、帮助命令
| 命令 |
说明 |
man <命令> |
查看命令的手册页,按 f/b 翻页,q 退出。 |
<命令> --help |
显示命令的简要帮助信息。 |
五、压缩与解压
| 命令 |
说明 |
zip [-r] <压缩包> <文件> |
压缩文件或目录。需安装 yum install zip。 |
unzip <压缩包> |
解压 zip 文件。需安装 yum install unzip。 |
tar -zcvf <压缩包> <源文件> |
打包并压缩为 .tar.gz。 |
tar -zxvf <压缩包> [-C 目录] |
解压 .tar.gz 文件。 |
tar 选项:-z(gzip)、-c(打包)、-x(解包)、-v(显示过程)、-f(指定文件名)。
六、关机与重启
| 命令 |
说明 |
shutdown [选项] <时间> |
关机或重启。-h 关机,-r 重启,-c 取消。 |
halt |
立即关机。 |
reboot |
重启系统。 |
logout |
退出当前登录会话。 |
七、系统状态查看
| 命令 |
说明 |
free [-h] |
查看内存使用情况(-h 人性化显示)。 |
top |
动态查看系统进程及资源占用(CPU、内存等)。按 q 退出。 |
history |
查看历史执行过的命令。 |
ps -ef |
查看当前系统所有进程信息。 |
top 输出中重点关注:%CPU、%MEM、RES、S(进程状态)。
3.3 VI / VIM 编辑器
启动
vi <文件名>
三种模式
- 输入模式:按
i、a、o、I、A、O、s、S 等进入,用于编辑文本。
- 编辑模式(命令模式):按
ESC 进入,可进行光标移动、复制、删除等操作。
- 末行模式:按
Shift + : 进入,可执行保存、退出、查找等命令。
常用操作
| 操作 |
说明 |
h/j/k/l |
左/下/上/右移动光标 |
0 / $ |
跳转到行首 / 行尾 |
gg / G |
跳转到文件首行 / 末行 |
:num |
跳转到第 num 行 |
Ctrl+f / Ctrl+b |
向下 / 向上翻页 |
dd / 3dd |
删除当前行 / 从当前行起删除 3 行 |
yy / 2yy |
复制当前行 / 从当前行起复制 2 行 |
p |
粘贴到光标下方 |
/pattern / ?pattern |
向前 / 向后搜索,按 n/N 跳转 |
:set nu / :set nonu |
显示 / 取消行号 |
:wq / :q! |
保存退出 / 强制不保存退出 |
3.4 系统服务管理
systemctl(CentOS 7+)
| 命令 |
说明 |
systemctl start <服务> |
启动服务 |
systemctl stop <服务> |
停止服务 |
systemctl restart <服务> |
重启服务 |
systemctl status <服务> |
查看服务状态 |
systemctl enable <服务> |
设置开机自启 |
systemctl disable <服务> |
禁止开机自启 |
systemctl list-unit-files |
查看所有服务及其自启状态 |
进程管理
| 命令 |
说明 |
ps -ef |
查看进程详细信息(UID、PID、PPID、CMD 等) |
kill -9 <PID> |
强制终止指定 PID 的进程 |
3.5 权限管理
用户管理
| 命令 |
说明 |
useradd <用户名> |
创建用户 |
useradd -G <组名> <用户名> |
创建用户并指定附加组 |
groupadd <组名> |
创建用户组 |
usermod -G <组名> <用户名> |
修改用户所属组 |
userdel [-r] <用户名> |
删除用户(-r 同时删除家目录) |
groupdel <组名> |
删除用户组 |
passwd <用户名> |
设置或修改用户密码 |
su <用户名> |
切换用户身份 |
cat /etc/passwd |
查看系统所有用户信息 |
文件权限管理
chmod [选项] 模式 文件名
- 选项:
-R 递归修改
- 模式:
- 符号法:
[ugoa] [+-=] [rwx],如 chmod u+x file
- 数字法:
r=4,w=2,x=1,如 chmod 755 file
sudo 权限管理
- 使用
visudo 编辑 /etc/sudoers 文件。
- 示例:
LTT ALL=(ALL) /usr/sbin/shutdown,允许用户 LTT 执行关机命令。
- 保存后,切换至 LTT 用户即可使用
sudo shutdown -h now。
3.6 网络管理
基本网络概念
- IP 地址:网络中标示主机的逻辑地址。
- MAC 地址:物理网卡的唯一标识。
- 子网掩码:划分网络位和主机位。
- 网关:不同网络间通信的出口。
- DNS:将域名解析为 IP 地址。
防火墙管理(firewalld)
| 命令 |
说明 |
firewall-cmd --state |
查看防火墙状态 |
firewall-cmd --reload |
重载防火墙规则 |
firewall-cmd --zone=public --list-ports |
查看已开放端口 |
firewall-cmd --zone=public --add-port=8080/tcp --permanent |
开放端口(需 reload) |
firewall-cmd --zone=public --remove-port=8080/tcp --permanent |
删除开放端口 |
systemctl stop firewalld |
关闭防火墙 |
systemctl disable firewalld |
禁用防火墙服务 |
3.7 软件安装与管理
RPM(Red Hat Package Manager)
| 命令 |
说明 |
rpm -ivh <包名> |
安装软件包 |
rpm -ivh --nodeps <包名> |
忽略依赖强制安装 |
rpm -q <软件名> |
查询是否已安装 |
rpm -qi <软件名> |
查看包信息 |
rpm -ql <软件名> |
列出包安装的文件 |
rpm -qf <文件路径> |
查询文件属于哪个包 |
rpm -qa |
列出所有已安装的 RPM 包 |
rpm -e <软件名> |
卸载软件包 |
YUM(包管理器,自动解决依赖)
| 命令 |
说明 |
yum install <软件名> |
安装软件 |
yum list installed |
查看已安装软件 |
yum list | grep <关键词> |
搜索可用软件包 |
yum remove <软件名> |
卸载软件 |
yum update |
更新所有软件包 |
yum info <软件名> |
查看软件包信息 |
4 补充建议
- 习惯使用
man 和 --help:这是学习和记忆命令的最佳方式。
- 谨慎使用
rm:尤其避免 rm -rf / 或 rm -rf /*,会导致系统崩溃。
- 备份重要配置文件:修改
/etc 下的配置前,建议先备份,如 cp /etc/xxx /etc/xxx.bak。
- 学会查看日志:
/var/log/messages 和 journalctl 是排查问题的重要工具。
- 熟练使用
tab 补全:提高命令输入效率,减少拼写错误。
- 适当使用别名:在
~/.bashrc 中设置常用命令别名,如 alias ll='ls -alh'。
所有评论(0)