Linux 期末复习

· 12 min read ·

一、基本命令

文件与目录操作

命令功能常用示例
ls列出目录内容ls -la(含隐藏文件)、ls -l(长格式)
cp复制文件/目录cp -r 源目录 目标目录(递归复制)
mv移动/重命名mv 旧名 新名
mkdir创建目录mkdir -p a/b/c(递归创建)
rm删除文件/目录rm -rf 目录(强制递归删除,谨慎使用)
find查找文件find / -name "*.txt"
grep文本搜索grep "关键词" 文件名
ln创建链接ln -s 源文件 链接名(软链接)、不加-s为硬链接

软链接 vs 硬链接:软链接类似快捷方式,删除原文件则失效;硬链接共享同一个inode,删除原文件仍有效。


二、权限管理

chmod(修改权限)

  • 数字法r=4, w=2, x=1
  • chmod 755 file:所有者rwx,同组r-x,其他人r-x
  • 符号法chmod u+x file(给所有者加执行权限)

chown(修改所有者)

  • chown 用户:组 文件

chgrp(修改所属组)

  • chgrp 组名 文件

注意:普通用户只能修改自己文件的权限,chown需要root权限。


三、文件查看命令

命令特点
cat一次性显示全部内容,适合小文件
more分页显示,只能向下翻
less分页显示,可上下翻页(更灵活)
head默认显示前10行,head -n 5显示前5行
tail默认显示后10行,tail -f实时追踪文件末尾

课本第5章习题(P76页) 重点关注这些命令的组合使用场景。


四、用户与组管理

  • useradd 用户名:添加用户
  • useradd -g 组名 用户名:指定主组
  • groupadd 组名:添加组
  • passwd 用户名:设置密码
  • usermod -aG 组名 用户名:将用户追加到附加组

五、用户切换与权限提升

  • su - 用户名:切换用户(-表示加载环境变量)
  • sudo 命令:以root身份执行单条命令
  • visudo:安全编辑/etc/sudoers文件

六、Vim 三种模式

模式进入方式主要操作
命令模式默认/按Escdd删除行、yy复制行、p粘贴、/关键字搜索、n下一个
插入模式i/a/o正常编辑文本
末行模式::w保存、:q退出、:wq保存退出、:q!强制退出、:set nu显示行号

搜索:命令模式下/关键词,按n跳转到下一个匹配项。


七、系统操作命令

tar(归档压缩)

  • tar -cvf 包名.tar 文件:创建归档
  • tar -xvf 包名.tar:解压
  • tar -zcvf 包名.tar.gz 文件:gzip压缩归档
  • tar -zxvf 包名.tar.gz:解压gzip压缩包
  • 参数记忆c创建、x解压、v显示过程、f指定文件名、zgzip压缩

rpm 与 yum

  • rpm -ivh 包名.rpm:安装
  • rpm -e 包名:卸载
  • yum install 软件名:在线安装(自动解决依赖)
  • yum remove 软件名:卸载

mount(挂载)

  • mount /dev/sdb1 /mnt:挂载分区到/mnt
  • umount /mnt:卸载

八、进程与系统管理

进程管理

  • ps aux:查看所有进程(BSD风格)
  • ps -ef:查看所有进程(Linux标准风格)
  • top:动态实时显示进程信息
  • kill PID:终止进程
  • kill -9 PID:强制终止

系统资源

  • free -h:查看内存使用(-h人类可读格式)
  • df -h:查看磁盘分区使用情况
  • du -sh 目录:查看目录占用空间
  • fdisk -l:查看磁盘分区表

九、网络命令

  • ifconfig:查看/配置网络接口(新版用ip addr
  • route -n:查看路由表
  • traceroute 目标:追踪数据包路径
  • netstat -tunlp:查看端口监听情况

十、三大核心概念

管道(Pipe)|

将前一个命令的标准输出作为后一个命令的标准输入

ps aux | grep nginx    # 查找nginx进程
cat /etc/passwd | wc -l  # 统计用户数

重定向

  • 1>>:重定向标准输出(覆盖)
  • 2>:重定向标准错误输出
  • &>:同时重定向标准输出和标准错误
  • >>:追加模式
ls /root 2>/dev/null        # 丢弃错误信息
command &> all.log          # 所有输出都保存

通配符

  • *:匹配任意多个字符
  • ?:匹配单个字符
  • [abc]:匹配a、b、c中任意一个

十一、DNS与网络服务

DNS服务

将域名解析为IP地址(正向解析)或将IP解析为域名(反向解析)。

nslookup

nslookup www.baidu.com    # 查询域名对应IP
nslookup 8.8.8.8          # 反向查询

十二、常见服务

服务功能启动/停止
SSH远程安全登录systemctl start/stop sshd
DHCP自动分配IPsystemctl start/stop dhcpd
SambaLinux与Windows文件共享systemctl start/stop smb
Apache WebWeb服务器systemctl start/stop httpdapache2

十三、安全机制

机制说明
iptables传统防火墙,基于规则链过滤数据包
firewalld新一代防火墙,基于区域管理,firewall-cmd配置
SELinux强制访问控制,getenforce查看状态,setenforce 0临时关闭

十四、Shell编程

变量类型

  • 系统变量$HOME$PATH$USER$SHELL
  • 内部变量(位置参数)$0脚本名、$1-$9参数、$#参数个数、$?上条命令退出状态、$$当前进程PID
  • 用户变量变量名=值(等号两边不能有空格)

常用内置命令

  • read 变量:读取用户输入
  • echo:输出
  • export 变量:将变量提升为环境变量
  • readonly 变量:设为只读
  • shift:参数左移,$1被丢弃,$2$1

脚本执行方式

bash script.sh        # 子shell执行
./script.sh           # 需要执行权限
source script.sh      # 当前shell执行
. script.sh           # 同上

测试判断

文件测试

[ -f 文件 ]  # 是否为普通文件
[ -d 目录 ]  # 是否为目录
[ -x 文件 ]  # 是否可执行
[ -e 文件 ]  # 是否存在

数值测试

[ 数值1 -eq 数值2 ]  # 等于
[ 数值1 -gt 数值2 ]  # 大于
[ 数值1 -lt 数值2 ]  # 小于

字符串测试

[ 字符串1 = 字符串2 ]   # 相等
[ -z 字符串 ]           # 长度为零
[ -n 字符串 ]           # 长度非零

流程控制结构

if-then-else

if [ 条件 ]; then
    命令
elif [ 条件 ]; then
    命令
else
    命令
fi

for循环

for 变量 in 列表; do
    命令
done

while循环

while [ 条件 ]; do
    命令
done