《Linux》基础命令到高级权限管理指南

文章目录

    • 一、Linux系统概述与配置环境
    • 二、Linux基础命令详解
      • [1. 文件与目录操作命令](#1. 文件与目录操作命令)
        • [ls命令 - 列出目录内容](#ls命令 - 列出目录内容)
        • [cd命令 - 切换目录](#cd命令 - 切换目录)
        • [mkdir命令 - 创建目录](#mkdir命令 - 创建目录)
        • [rmdir命令 - 删除空目录](#rmdir命令 - 删除空目录)
        • [touch命令 - 创建文件或更新时间戳](#touch命令 - 创建文件或更新时间戳)
        • [cp命令 - 复制文件和目录](#cp命令 - 复制文件和目录)
        • [mv命令 - 移动或重命名](#mv命令 - 移动或重命名)
        • [rm命令 - 删除文件或目录](#rm命令 - 删除文件或目录)
      • [2. 文件查看与搜索命令](#2. 文件查看与搜索命令)
        • [cat命令 - 查看文件内容](#cat命令 - 查看文件内容)
        • [more/less命令 - 分页查看](#more/less命令 - 分页查看)
        • [head/tail命令 - 查看文件首尾](#head/tail命令 - 查看文件首尾)
        • [grep命令 - 文本搜索](#grep命令 - 文本搜索)
      • [3. 系统信息与帮助命令](#3. 系统信息与帮助命令)
        • [man命令 - 查看手册](#man命令 - 查看手册)
        • [date命令 - 日期时间操作](#date命令 - 日期时间操作)
        • [cal命令 - 日历](#cal命令 - 日历)
        • [which/whereis命令 - 查找命令位置](#which/whereis命令 - 查找命令位置)
    • 三、Linux权限管理详解
      • [1. 用户与用户组管理](#1. 用户与用户组管理)
        • [su命令 - 切换用户](#su命令 - 切换用户)
        • [sudo命令 - 以超级用户权限执行](#sudo命令 - 以超级用户权限执行)
      • [2. 文件权限基础](#2. 文件权限基础)
      • [3. 权限修改命令](#3. 权限修改命令)
        • [chmod命令 - 修改权限](#chmod命令 - 修改权限)
        • [chown命令 - 修改所有者](#chown命令 - 修改所有者)
        • [chgrp命令 - 修改组](#chgrp命令 - 修改组)
        • [umask命令 - 设置默认权限](#umask命令 - 设置默认权限)
      • [4. 特殊权限](#4. 特殊权限)
    • 四、高级文件操作与实用技巧
    • 五、Linux系统管理基础
      • [1. 进程管理](#1. 进程管理)
        • [ps命令 - 查看进程](#ps命令 - 查看进程)
        • [top/htop命令 - 动态查看进程](#top/htop命令 - 动态查看进程)
        • [kill命令 - 终止进程](#kill命令 - 终止进程)
      • [2. 网络管理](#2. 网络管理)
        • [ifconfig/ip命令 - 网络接口](#ifconfig/ip命令 - 网络接口)
        • [netstat/ss命令 - 网络连接](#netstat/ss命令 - 网络连接)
        • [ping/traceroute命令 - 网络测试](#ping/traceroute命令 - 网络测试)
      • [3. 磁盘管理](#3. 磁盘管理)
        • [df命令 - 磁盘空间](#df命令 - 磁盘空间)
        • [du命令 - 目录空间](#du命令 - 目录空间)
        • [mount/umount命令 - 挂载](#mount/umount命令 - 挂载)
    • 六、尾言

一、Linux系统概述与配置环境

Linux是一种自由和开放源代码的类UNIX操作系统,由林纳斯·托瓦兹在1991年首次发布。作为服务器领域的霸主,Linux在全球服务器操作系统市场占据了极大的份额,同时在移动嵌入式、云计算以及大数据等领域也有广泛应用。我们熟知的安卓系统就是基于Linux。故学习Linux十分重要

二、Linux基础命令详解

1. 文件与目录操作命令

ls命令 - 列出目录内容
bash 复制代码
ls          # 简单列出文件和目录
ls -l       # 长格式显示,包含权限、所有者、大小等信息
ls -a       # 显示所有文件,包括隐藏文件(以.开头的文件)
ls -lh      # 以人类可读格式显示文件大小(KB,MB,GB)
ls -lt      # 按修改时间排序,最新修改的排在最前
ls -ltr     # 按修改时间反向排序,最旧的排在最前
ls -R       # 递归列出子目录内容
ls -d */    # 只列出目录
cd命令 - 切换目录
bash 复制代码
cd          # 返回用户主目录
cd ~        # 同上,返回用户主目录
cd /path/to/dir  # 使用绝对路径切换目录
cd ..       # 切换到上级目录
cd ../dir   # 使用相对路径切换
cd -        # 返回上一个工作目录
mkdir命令 - 创建目录
bash 复制代码
mkdir dirname              # 创建单个目录
mkdir dir1 dir2 dir3       # 同时创建多个目录
mkdir -p path/to/dir       # 递归创建目录路径
mkdir -m 755 newdir        # 创建目录时指定权限
rmdir命令 - 删除空目录
bash 复制代码
rmdir dirname      # 删除空目录
rmdir -p parent/child  # 递归删除空目录
touch命令 - 创建文件或更新时间戳
bash 复制代码
touch filename             # 创建新文件或更新已有文件时间
touch file1 file2 file3    # 同时创建多个文件
touch -t 202301011200 file # 设置特定时间戳(YYYYMMDDhhmm)
touch -a file             # 只更改访问时间
touch -m file             # 只更改修改时间
cp命令 - 复制文件和目录
bash 复制代码
cp file1 file2            # 复制文件
cp file1 file2 dir/       # 复制多个文件到目录
cp -i file1 file2        # 覆盖前提示确认
cp -r dir1 dir2          # 递归复制目录
cp -p file1 file2        # 保留原文件属性
cp -u file1 file2        # 只在源文件较新时复制
cp -v file1 file2        # 显示复制过程
mv命令 - 移动或重命名
bash 复制代码
mv oldname newname       # 重命名文件
mv file1 file2 dir/      # 移动多个文件到目录
mv -i file1 file2        # 覆盖前提示确认
mv -v file1 file2        # 显示移动过程
mv -n file1 file2        # 不覆盖已存在文件
rm命令 - 删除文件或目录
bash 复制代码
rm filename              # 删除文件
rm -i filename           # 删除前确认
rm -f filename           # 强制删除,不提示
rm -r dirname            # 递归删除目录
rm -rf dirname           # 强制递归删除目录
rm -v filename           # 显示删除过程

2. 文件查看与搜索命令

cat命令 - 查看文件内容
bash 复制代码
cat file1                # 显示文件内容
cat file1 file2          # 合并显示多个文件
cat -n file1             # 显示行号
cat -b file1             # 只对非空行编号
cat -s file1             # 压缩连续空行为一行
cat file1 > file2        # 重定向输出
cat file1 >> file2       # 追加内容
more/less命令 - 分页查看
bash 复制代码
more file1               # 分页查看,只能向下翻页
less file1               # 更强大的分页查看器,可上下翻页
less -N file1            # 显示行号
less -i file1            # 忽略搜索大小写
less +F file1            # 实时跟踪文件变化(类似tail -f)
head/tail命令 - 查看文件首尾
bash 复制代码
head file1               # 显示文件前10行
head -n 20 file1         # 显示前20行
tail file1               # 显示文件最后10行
tail -n 20 file1         # 显示最后20行
tail -f logfile          # 实时跟踪日志文件
tail -F logfile          # 跟踪日志,即使文件被重命名
tail -c 100 file1        # 显示最后100字节
grep命令 - 文本搜索
bash 复制代码
grep "pattern" file1     # 基本搜索
grep -i "pattern" file1  # 忽略大小写
grep -v "pattern" file1  # 反向匹配,显示不包含的行
grep -n "pattern" file1  # 显示匹配行号
grep -c "pattern" file1  # 统计匹配行数
grep -r "pattern" dir/   # 递归目录搜索
grep -l "pattern" *      # 只显示包含匹配项的文件名
grep -w "word" file1     # 全词匹配
grep -A 3 "pattern" file1 # 显示匹配行及后3行
grep -B 3 "pattern" file1 # 显示匹配行及前3行
grep -C 3 "pattern" file1 # 显示匹配行及前后各3行

3. 系统信息与帮助命令

man命令 - 查看手册
bash 复制代码
man ls                   # 查看ls命令手册
man 2 open               # 查看系统调用open
man 3 printf             # 查看C库函数printf
man -k keyword           # 按关键字搜索手册
man -f command           # 显示命令的简短描述
date命令 - 日期时间操作
bash 复制代码
date                     # 显示当前日期时间
date +%Y-%m-%d           # 格式化输出日期
date +%H:%M:%S           # 格式化输出时间
date +%s                 # 显示时间戳
date -d @1609459200      # 时间戳转日期
date -d "2023-01-01" +%s # 日期转时间戳
date -d "1 day ago"      # 显示昨天日期
date -d "next monday"    # 显示下周一日期
cal命令 - 日历
bash 复制代码
cal                      # 显示当月日历
cal -3                   # 显示前月、当月、下月
cal -y                   # 显示全年日历
cal 2023                 # 显示2023年日历
cal 1 2023               # 显示2023年1月日历
which/whereis命令 - 查找命令位置
bash 复制代码
which ls                 # 显示ls命令的完整路径
whereis ls               # 显示命令的二进制、源码和手册位置

三、Linux权限管理详解

1. 用户与用户组管理

su命令 - 切换用户
bash 复制代码
su username              # 切换用户但保留当前环境
su - username            # 完全切换用户,加载新用户环境
su -                     # 切换到root用户
exit                     # 返回原用户
sudo命令 - 以超级用户权限执行
bash 复制代码
sudo command             # 以root权限执行命令
sudo -u username command # 以指定用户身份执行
sudo -i                  # 启动root shell
sudo -l                  # 列出当前用户可执行的sudo命令

2. 文件权限基础

使用ls -l查看的权限示例:

复制代码
-rwxr-xr-- 1 user group 1024 Jan 1 10:00 file

权限分为四部分:

  1. 第一个字符:文件类型(-普通文件,d目录,l链接等)
  2. 接下来三组rwx:所有者、组、其他用户权限
  3. 数字:硬链接计数
  4. 用户名、组名、大小、修改时间和文件名

权限类型:

  • r(读):4
  • w(写):2
  • x(执行):1

3. 权限修改命令

chmod命令 - 修改权限
bash 复制代码
# 符号模式
chmod u+x file          # 给所有者添加执行权限
chmod g-w file          # 移除组写权限
chmod o=r file          # 设置其他用户权限为只读
chmod a+x file          # 给所有用户添加执行权限
chmod ug=rw,o= file     # 所有者和组读写,其他用户无权限

# 数字模式
chmod 755 file          # rwxr-xr-x
chmod 644 file          # rw-r--r--
chmod 600 file          # rw-------
chmod -R 755 dir/       # 递归修改目录权限
chown命令 - 修改所有者
bash 复制代码
chown user file         # 修改文件所有者
chown user:group file   # 同时修改所有者和组
chown :group file       # 只修改组
chown -R user:group dir # 递归修改目录所有者和组
chgrp命令 - 修改组
bash 复制代码
chgrp group file        # 修改文件组
chgrp -R group dir      # 递归修改目录组
umask命令 - 设置默认权限
bash 复制代码
umask                   # 查看当前umask值
umask 022               # 设置umask值

umask计算方式:

  • 文件默认权限:666 - umask
  • 目录默认权限:777 - umask

4. 特殊权限

粘滞位(咱们打游戏臭名昭著的东西doge)
bash 复制代码
chmod +t /shared_dir    # 设置粘滞位
chmod 1777 /shared_dir  # 数字方式设置

只有文件所有者、目录所有者或root才能删除设置了粘滞位的目录中的文件。

SUID/SGID权限
bash 复制代码
chmod u+s file          # 设置SUID
chmod g+s file          # 设置SGID
chmod 4755 file         # 数字方式设置SUID
  • SUID:执行时以文件所有者权限运行
  • SGID:对目录设置时,新建文件继承目录组

四、高级文件操作与实用技巧

1. 文件查找命令

find命令 - 高级文件搜索
bash 复制代码
find / -name "*.txt"           # 按名称查找
find / -type f -name "*.conf"  # 查找普通文件
find / -type d -name "log"     # 查找目录
find / -size +10M              # 查找大于10MB的文件
find / -mtime -7               # 查找7天内修改的文件
find / -user root              # 查找root用户的文件
find / -perm 644              # 查找权限为644的文件
find / -exec ls -l {} \;      # 对找到的文件执行命令
find / -name "*.tmp" -delete  # 查找并删除
locate命令 - 快速文件查找
bash 复制代码
locate filename         # 快速查找文件(需先updatedb)
updatedb                # 更新locate数据库

2. 压缩与归档

tar命令 - 打包与压缩
bash 复制代码
# 打包
tar -cvf archive.tar dir/      # 创建tar包
tar -tvf archive.tar           # 查看tar包内容
tar -xvf archive.tar           # 解压tar包
tar -xvf archive.tar -C /path  # 解压到指定目录

# gzip压缩
tar -czvf archive.tar.gz dir/  # 创建gzip压缩包
tar -xzvf archive.tar.gz       # 解压gzip包

# bzip2压缩
tar -cjvf archive.tar.bz2 dir/ # 创建bzip2压缩包
tar -xjvf archive.tar.bz2      # 解压bzip2包

# xz压缩
tar -cJvf archive.tar.xz dir/  # 创建xz压缩包
tar -xJvf archive.tar.xz       # 解压xz包
zip/unzip命令
bash 复制代码
zip -r archive.zip dir/        # 递归压缩目录
unzip archive.zip              # 解压zip文件
unzip -l archive.zip           # 查看zip文件内容
unzip -d /path archive.zip     # 解压到指定目录

3. 实用技巧与组合命令

命令组合与管道
bash 复制代码
command1 | command2            # 管道,将command1输出作为command2输入
command1 && command2           # command1成功才执行command2
command1 || command2           # command1失败才执行command2
(command1; command2)           # 顺序执行多个命令
后台运行与作业控制
bash 复制代码
command &                      # 后台运行
nohup command &                # 退出终端后继续运行
jobs                           # 查看后台作业
fg %1                          # 将作业1调到前台
bg %1                          # 继续在后台运行作业1
ctrl+z                         # 暂停当前作业
输出重定向
bash 复制代码
command > file                 # 标准输出重定向到文件(覆盖)
command >> file                # 标准输出追加到文件
command 2> file                # 错误输出重定向到文件
command &> file                # 标准和错误输出都重定向
command < file                 # 从文件读取输入
实用命令组合示例
bash 复制代码
# 查找并处理文件
find . -name "*.log" -exec grep -l "error" {} \; | xargs rm

# 统计文件行数
find /var/log -type f -name "*.log" | xargs wc -l | sort -n

# 监控日志变化
tail -f /var/log/syslog | grep --line-buffered "error"

# 批量重命名文件
for file in *.txt; do mv "$file" "${file%.txt}.bak"; done

# 计算目录大小
du -sh *
du -ah --max-depth=1 | sort -hr

# 查找大文件
find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -hr

五、Linux系统管理基础

1. 进程管理

ps命令 - 查看进程
bash 复制代码
ps aux                     # 查看所有进程
ps -ef                     # 完整格式显示进程
ps -u username             # 查看指定用户进程
ps -p PID                  # 查看指定PID进程
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%mem | head  # 查看内存使用前10的进程
top/htop命令 - 动态查看进程
bash 复制代码
top                        # 动态查看系统进程
htop                       # 增强版top(需安装)
kill命令 - 终止进程
bash 复制代码
kill PID                   # 终止进程
kill -9 PID                # 强制终止进程
killall process_name       # 终止所有同名进程
pkill -u username          # 终止指定用户的所有进程

2. 网络管理

ifconfig/ip命令 - 网络接口
bash 复制代码
ifconfig                   # 查看网络接口信息
ip addr                   # 新版查看网络接口
netstat/ss命令 - 网络连接
bash 复制代码
netstat -tulnp            # 查看监听端口
netstat -atn              # 查看所有TCP连接
ss -tulnp                 # 新版查看网络连接
ping/traceroute命令 - 网络测试
bash 复制代码
ping example.com          # 测试网络连通性
traceroute example.com    # 跟踪路由路径

3. 磁盘管理

df命令 - 磁盘空间
bash 复制代码
df -h                     # 人类可读格式显示磁盘使用情况
df -i                     # 显示inode使用情况
du命令 - 目录空间
bash 复制代码
du -sh /path              # 显示目录总大小
du -ah --max-depth=1      # 显示目录下各文件大小
mount/umount命令 - 挂载
bash 复制代码
mount /dev/sda1 /mnt      # 挂载设备
umount /mnt               # 卸载设备

六、尾言

文章中如有错误,欢迎各位读者在评论区指正。

向你鞠躬!!