当前位置: 首页 > news >正文

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

文章目录

    • 一、Linux系统概述与配置环境
    • 二、Linux基础命令详解
      • 1. 文件与目录操作命令
        • ls命令 - 列出目录内容
        • cd命令 - 切换目录
        • mkdir命令 - 创建目录
        • rmdir命令 - 删除空目录
        • touch命令 - 创建文件或更新时间戳
        • cp命令 - 复制文件和目录
        • mv命令 - 移动或重命名
        • rm命令 - 删除文件或目录
      • 2. 文件查看与搜索命令
        • cat命令 - 查看文件内容
        • more/less命令 - 分页查看
        • head/tail命令 - 查看文件首尾
        • grep命令 - 文本搜索
      • 3. 系统信息与帮助命令
        • man命令 - 查看手册
        • date命令 - 日期时间操作
        • cal命令 - 日历
        • which/whereis命令 - 查找命令位置
    • 三、Linux权限管理详解
      • 1. 用户与用户组管理
        • su命令 - 切换用户
        • sudo命令 - 以超级用户权限执行
      • 2. 文件权限基础
      • 3. 权限修改命令
        • chmod命令 - 修改权限
        • chown命令 - 修改所有者
        • chgrp命令 - 修改组
        • umask命令 - 设置默认权限
      • 4. 特殊权限
        • 粘滞位(咱们打游戏臭名昭著的东西doge)
        • SUID/SGID权限
    • 四、高级文件操作与实用技巧
      • 1. 文件查找命令
        • find命令 - 高级文件搜索
        • locate命令 - 快速文件查找
      • 2. 压缩与归档
        • tar命令 - 打包与压缩
        • zip/unzip命令
      • 3. 实用技巧与组合命令
        • 命令组合与管道
        • 后台运行与作业控制
        • 输出重定向
        • 实用命令组合示例
    • 五、Linux系统管理基础
      • 1. 进程管理
        • ps命令 - 查看进程
        • top/htop命令 - 动态查看进程
        • kill命令 - 终止进程
      • 2. 网络管理
        • ifconfig/ip命令 - 网络接口
        • netstat/ss命令 - 网络连接
        • ping/traceroute命令 - 网络测试
      • 3. 磁盘管理
        • df命令 - 磁盘空间
        • du命令 - 目录空间
        • mount/umount命令 - 挂载
    • 六、尾言

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

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

二、Linux基础命令详解

1. 文件与目录操作命令

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

2. 文件查看与搜索命令

cat命令 - 查看文件内容
cat file1                # 显示文件内容
cat file1 file2          # 合并显示多个文件
cat -n file1             # 显示行号
cat -b file1             # 只对非空行编号
cat -s file1             # 压缩连续空行为一行
cat file1 > file2        # 重定向输出
cat file1 >> file2       # 追加内容
more/less命令 - 分页查看
more file1               # 分页查看,只能向下翻页
less file1               # 更强大的分页查看器,可上下翻页
less -N file1            # 显示行号
less -i file1            # 忽略搜索大小写
less +F file1            # 实时跟踪文件变化(类似tail -f)
head/tail命令 - 查看文件首尾
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命令 - 文本搜索
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命令 - 查看手册
man ls                   # 查看ls命令手册
man 2 open               # 查看系统调用open
man 3 printf             # 查看C库函数printf
man -k keyword           # 按关键字搜索手册
man -f command           # 显示命令的简短描述
date命令 - 日期时间操作
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命令 - 日历
cal                      # 显示当月日历
cal -3                   # 显示前月、当月、下月
cal -y                   # 显示全年日历
cal 2023                 # 显示2023年日历
cal 1 2023               # 显示2023年1月日历
which/whereis命令 - 查找命令位置
which ls                 # 显示ls命令的完整路径
whereis ls               # 显示命令的二进制、源码和手册位置

三、Linux权限管理详解

1. 用户与用户组管理

su命令 - 切换用户
su username              # 切换用户但保留当前环境
su - username            # 完全切换用户,加载新用户环境
su -                     # 切换到root用户
exit                     # 返回原用户
sudo命令 - 以超级用户权限执行
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命令 - 修改权限
# 符号模式
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命令 - 修改所有者
chown user file         # 修改文件所有者
chown user:group file   # 同时修改所有者和组
chown :group file       # 只修改组
chown -R user:group dir # 递归修改目录所有者和组
chgrp命令 - 修改组
chgrp group file        # 修改文件组
chgrp -R group dir      # 递归修改目录组
umask命令 - 设置默认权限
umask                   # 查看当前umask值
umask 022               # 设置umask值

umask计算方式:

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

4. 特殊权限

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

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

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

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

1. 文件查找命令

find命令 - 高级文件搜索
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命令 - 快速文件查找
locate filename         # 快速查找文件(需先updatedb)
updatedb                # 更新locate数据库

2. 压缩与归档

tar命令 - 打包与压缩
# 打包
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命令
zip -r archive.zip dir/        # 递归压缩目录
unzip archive.zip              # 解压zip文件
unzip -l archive.zip           # 查看zip文件内容
unzip -d /path archive.zip     # 解压到指定目录

3. 实用技巧与组合命令

命令组合与管道
command1 | command2            # 管道,将command1输出作为command2输入
command1 && command2           # command1成功才执行command2
command1 || command2           # command1失败才执行command2
(command1; command2)           # 顺序执行多个命令
后台运行与作业控制
command &                      # 后台运行
nohup command &                # 退出终端后继续运行
jobs                           # 查看后台作业
fg %1                          # 将作业1调到前台
bg %1                          # 继续在后台运行作业1
ctrl+z                         # 暂停当前作业
输出重定向
command > file                 # 标准输出重定向到文件(覆盖)
command >> file                # 标准输出追加到文件
command 2> file                # 错误输出重定向到文件
command &> file                # 标准和错误输出都重定向
command < file                 # 从文件读取输入
实用命令组合示例
# 查找并处理文件
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命令 - 查看进程
ps aux                     # 查看所有进程
ps -ef                     # 完整格式显示进程
ps -u username             # 查看指定用户进程
ps -p PID                  # 查看指定PID进程
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%mem | head  # 查看内存使用前10的进程
top/htop命令 - 动态查看进程
top                        # 动态查看系统进程
htop                       # 增强版top(需安装)
kill命令 - 终止进程
kill PID                   # 终止进程
kill -9 PID                # 强制终止进程
killall process_name       # 终止所有同名进程
pkill -u username          # 终止指定用户的所有进程

2. 网络管理

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

3. 磁盘管理

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

六、尾言

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

http://www.dtcms.com/a/346848.html

相关文章:

  • 【KO】前端面试题三
  • React Hooks UseRef的用法
  • 【Win10 画图板文字方向和繁体问题】
  • 浮点数比较的致命陷阱与正确解法(精度问题)
  • linux下的网络编程:基础概念+UDP编程
  • Class41样式迁移
  • 55.Redis搭建主从架构
  • 计算机网络 各版本TLS握手的详细过程
  • CSS学习步骤及详解
  • 美食菜谱数据集(13943条)收集 | 智能体知识库 | AI大模型训练
  • JUC之虚拟线程
  • ArcGIS Pro 安装路径避坑指南:从崩溃根源到规范实操(附问题修复方案)
  • 运行npm run命令报错“error:0308010C:digital envelope routines::unsupported”
  • 使用 AD 帐户从 ASP.NET 8 容器登录 SQL Server 的 Kerberos Sidecar
  • 【深入理解 Linux 网络】收包原理与内核实现(下)应用层读取与 epoll 实现
  • 5G物联网的现实与未来:CTO视角下的成本、风险与破局点
  • 嵌入式学习日记(33)TCP
  • OpenFeign相关记录
  • 【嵌入式】【搜集】RTOS相关技术信息整理
  • Ubuntu2204server系统安装postgresql14并配置密码远程连接
  • 【python与生活】如何自动总结视频并输出一段总结视频?
  • FastAPI + SQLAlchemy 数据库对象转字典
  • 【力扣 Hot100】每日一题
  • C++之list类的代码及其逻辑详解 (中)
  • Java线程的几种状态 以及synchronized和Lock造成的线程状态差异,一篇让你搞明白
  • Linux服务器Systemctl命令详细使用指南
  • GitLab CI:安全扫描双雄 SAST vs. Dependency Scanning 该如何抉择?
  • 智慧园区人车混行误检率↓78%!陌讯动态决策算法实战解析
  • html链接的target属性
  • Win11 下卸载 Oracle11g