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

深入解析:linux基本知识

深入解析:linux基本知识

目录

常见linux命令

1、文件与目录管理、文件查看

Tree目录展示

2、权限与用户管理

3、进程与系统监控

Shell

一、Shell 的本质:“翻译官”+“自动化工具”

二、Shell 的核心功能(四大能力)

1. 命令解释与执行

2. 脚本自动化

3. 输入输出重定向

4. 管道(Pipeline)

三、常见的 Shell 类型(不同 “方言”)

四、Shell 的实用价值(为什么要学它?)

五、shell脚本需--借助AI生成(end)

sudo

必须使用sudo的典型场景

sudo 与 su 的区别(拓展)


常见linux命令

1、文件与目录管理、文件查看

vi / vim 操作文件

- esc非插入

- :wq 保存并退出

- :q!强制退出

- :w 为新文件名明

cat 文件名   : 查看文件

clear 清除
pwd 显示当前路径

ls 列出文件目录

  • 基础:ls(显示当前目录可见文件)
  • 详细:ls -l(显示权限、所有者、大小、修改时间)
  • 隐藏文件:ls -a (显示以 . 开头的隐藏文件)

cd:切换目录

  • 返回上级:cd ..
  • 进入主目录:cd ~(或 cd
  • 返回上次目录:cd -
  • 进入 cd 名字
  • mkdir:创建目录

    • 单级目录:mkdir test_dir
    • 多级目录:mkdir -p dir1/dir2(递归创建,父目录不存在时自动创建)
  • touch:创建空文件

    • 示例:touch new_file.txt(创建空文本文件)
  • rm:删除文件 / 目录

    • 删除文件:rm file.txt
    • 强制删除:rm -f file.txt(无需确认直接删除)
    • 删除目录:rm -r dir_name(递归删除目录及内容)
    • 强制删除目录:rm -rf dir_name(谨慎使用!)

echo 通常用来回显文字

但是这里:echo "1234"

echo "123" > test.txt 覆盖文本,若无该文件,则增加

echo "123" >> test.txt 追加

Tree目录展示

一般需要下载

Ubuntu / Debian 系

sudo apt update  # 先更新软件源
sudo apt install tree

CentOS / RHEL 系(含 AlmaLinux、Rocky Linux)

sudo yum install tree  # 旧版 CentOS/RHEL
# 或(新版 CentOS/RHEL 8+)
sudo dnf install tree
2、权限与用户管理

权限修改(chmod

-- 一看我就经常用数字法

Linux 权限分所有者(u)、组(g)、其他(o),对应 r(读)、w(写)、x(执行)。

  • 数字法(常用):

    • 755:所有者 rwx,组和其他 r-x7=4+2+15=4+1
    • 644:所有者 rw-,组和其他 r--
    • 示例:chmod 755 script.sh(让脚本可执行)
  • 符号法:

    • 给所有者加执行权限:chmod u+x file.txt
    • 给组用户减写权限:chmod g-w file.txt
    • 给所有用户加读权限:chmod a+r file.txt

3、进程与系统监控

ps 查看进程

-  ps aux 查看所有进程

-  ps -ef (显示进程父子关系)

top/htop 查看实时监控

基础监控 top

交互式监控 htop

kill 终止进程

  • 终止进程:kill PID(默认发送 SIGTERM 信号)
  • 强制终止:kill -9 PID(发送 SIGKILL 信号,强制杀死)
  • 按名终止:killall process_name(终止所有同名进程)

free 内存使用(ctrl+shift+esc 平时的) 

df 磁盘使用
uptime 系统负载

Shell

在 Linux 中,Shell 是用户与操作系统内核交互的 “桥梁”,既是命令行解释器(接收并执行命令),也是脚本编程环境(自动化批量任务)。它的核心作用和常见类型如下:

一、Shell 的本质:“翻译官”+“自动化工具”
  1. 命令解释器
    用户在终端输入 lscd 等命令时,Shell 会将这些 “人类可读的指令” 翻译成系统内核能理解的 “系统调用”,再把执行结果返回给用户。

    • 示例:输入 ls -l,Shell 会解析并调用系统函数,列出当前目录的文件详情。
  2. 脚本编程环境
    把一系列命令写在 .sh 脚本文件中(如 backup.sh),Shell 可自动按顺序执行这些命令,实现任务自动化(如定时备份、日志分析)。

二、Shell 的核心功能(四大能力)
1. 命令解释与执行
  • 解析用户输入的命令(如 mkdir test 创建目录),传递给内核执行。
  • 支持命令参数(如 ls -a 显示隐藏文件)、选项(如 cd .. 返回上级目录)。
2. 脚本自动化
  • 将重复任务写成脚本(如每天自动备份数据库),Shell 会逐行执行脚本中的命令。
  • 支持编程逻辑:if-else(条件判断)、for/while(循环)、变量(name="Linux")、函数(function backup { ... })等。
3. 输入输出重定向
  • 输出重定向:将命令结果保存到文件(如 ls > file.txt 把文件列表写入 file.txt)。
  • 输入重定向:用文件内容作为命令输入(如 cat < file.txt 显示文件内容)。
4. 管道(Pipeline)
  • 用 | 连接多个命令,将前一个命令的输出作为后一个命令的输入,实现 “命令串联”。
  • 示例:ps aux | grep nginx(先查所有进程,再筛选含 nginx 的进程)。
三、常见的 Shell 类型(不同 “方言”)

Linux 有多种 Shell,默认是 bash,也可根据需求切换:

Shell 类型特点与场景
bash最常用(Ubuntu/CentOS 默认),兼容 sh,支持自动补全、历史命令、脚本编程。
sh传统 Bourne Shell,功能简单,适合老旧系统或极简环境(如嵌入式设备)。
zsh交互性更强(支持主题、插件、智能补全),程序员常用(需手动安装)。
fish侧重 “易用性”,内置自动建议、语法高亮,适合新手(需手动安装)。
四、Shell 的实用价值(为什么要学它?)
  1. 高效操作系统
    用命令替代图形界面点击(如 top 监控进程、df -h 查看磁盘),尤其适合服务器(无图形界面)。

  2. 自动化重复任务
    写脚本实现 “一键部署应用”“定时清理日志”,减少人工操作。

  3. 远程管理服务器
    通过 SSH 连接服务器后,必须用 Shell 命令执行操作(如 sudo reboot 重启服务器)。

  4. 定制开发环境
    通过 .bashrc/.zshrc 配置别名(如 alias ll='ls -l')、环境变量(如 export PATH=$PATH:/usr/local/bin

五、shell脚本需--借助AI生成(end)

sudo

我之前操作的时候,总对sudo迷惑不已。

在 Linux 操作系统中,sudo 是 “Superuser Do” 的缩写,核心作用是让普通用户临时获得 root(超级管理员)权限,以安全地执行需要高权限的操作。

sudo 的核心功能是让普通用户在不需要切换到 root 账户的情况下,临时以 root 身份执行特定命令,同时通过以下机制降低风险:

  • 密码验证:执行 sudo 时需输入当前用户的密码(而非 root 密码),验证后临时赋予权限。
  • 细粒度控制:管理员可通过 /etc/sudoers 文件配置:
    • 哪些用户可以用 sudo
    • 这些用户能以 root 身份执行哪些命令(如仅允许 apt 相关操作);
    • 是否需要输入密码(如某些脚本可配置 “免密执行”)。
  • 日志审计sudo 会记录 “谁在什么时候执行了什么命令”(日志存于 /var/log/auth.log 或 journalctl),便于追溯操作。

必须使用sudo的典型场景

1、系统级软件管理(ubuntu-sudo apt install nginx)

2、系统配置更改(sudu nano /etc/hosts -- 编辑hosts文件-域名解析)

3、服务与进程管理(sudo systemctl restart docker -- 重启docker

4、系统维护与安全

等....

sudo 与 su 的区别(拓展)

命令特点适用场景
su直接切换到 root 用户,需输入 root 密码;切换后所有操作均为 root 权限。需长期以 root 身份操作时。
sudo临时以 root 权限执行单条命令,需输入当前用户密码;依赖 /etc/sudoers 配置。

临时执行高权限操作时(推荐)。

http://www.hskmm.com/?act=detail&tid=9328

相关文章:

  • 解决方案架构师是做什么
  • 鸿蒙应用开发从入门到实战(九):ArkTS渲染控制
  • C# 2025年6-9月TIOBE排名增长及未来展望
  • 一个基于 .NET 开源、简易、轻量级的进销存管理系统
  • 采用tree命令导出文件夹/文件的目录树(linux)
  • The 2024 ICPC Asia East Continent Online Contest (I) 4/12 A/F/G/M
  • 深入解析 JVM 类加载机制:从字节码到运行时对象
  • 博弈论学习(第二天)
  • PHP 和 Elasticsearch:给你的应用加个强力搜索引擎
  • Windows 系统部署 Mosquitto MQTT broker 完整指南
  • 2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践
  • 坚果云 坚果 jianguoyun 怎么收文件?
  • mssql创建字段依赖
  • AT_agc060_a [AGC060A] No Majority
  • Flutter本地通知系统:记账提醒的深度实现
  • AT_agc053_b [AGC053B] Taking the middle
  • 一款多功能Linux服务器Web管理面板
  • 2025.9.16 测试
  • 题解:P12558 [UOI 2024] Heroes and Monsters
  • 数据分析与产品、运营、市场之间如何有效对齐 - 详解
  • (附源码)基于Java的学生托管系统的设计与实现 - 实践
  • SVG动画优化全攻略:从设计到性能提升
  • 【GitHub每日速递 250919】MCP 生态新工具!Registry 服务器注册服务预览版,AI 开发者部署认证全流程揭秘
  • 多元积性函数
  • MX 练石 2026 NOIP #7
  • 用Qt打造永远运行的程序/守护进程/程序启动器/实时监测程序运行/后台运行
  • 传话游戏 题解
  • 智驾芯片三强对决:征程6P vs EyeQ Ultra vs Thor
  • 0132_访问者模式(Visitor)
  • 国内AI云市场:挤不进前三,生存将成问题!