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 存放用户常用的二进制可执行命令(如 lscpgrep),单用户模式下也可使用。
/sbin 存放系统管理员使用的管理命令(如 rebootifconfigfdisk)。
/etc 存放系统和应用程序的配置文件,如网络配置、启动脚本等。
/dev 设备文件目录,如磁盘、终端、USB 设备等。
/proc 虚拟文件系统,存放当前系统进程和内核信息,如 /proc/cpuinfo/proc/meminfo
/var 存放经常变化的数据,如日志文件(/var/log)、邮件(/var/mail)、打印队列等。
/tmp 临时文件目录,系统重启后内容会被清空。
/usr 用户程序和文件的主要存放位置,包括二进制文件、库、文档等。
/home 普通用户的家目录,每个用户拥有自己的子目录。
/boot 存放启动加载器(如 GRUB)和内核文件(如 vmlinuzinitrd)。
/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%MEMRESS(进程状态)。


3.3 VI / VIM 编辑器

启动
vi <文件名>
三种模式
  • 输入模式:按 iaoIAOsS 等进入,用于编辑文本。
  • 编辑模式(命令模式):按 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=4w=2x=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/messagesjournalctl 是排查问题的重要工具。
  • 熟练使用 tab 补全:提高命令输入效率,减少拼写错误。
  • 适当使用别名:在 ~/.bashrc 中设置常用命令别名,如 alias ll='ls -alh'
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐