深入解析: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-x
(7=4+2+1
,5=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 的本质:“翻译官”+“自动化工具”
命令解释器:
用户在终端输入ls
、cd
等命令时,Shell 会将这些 “人类可读的指令” 翻译成系统内核能理解的 “系统调用”,再把执行结果返回给用户。- 示例:输入
ls -l
,Shell 会解析并调用系统函数,列出当前目录的文件详情。
- 示例:输入
脚本编程环境:
把一系列命令写在.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 的实用价值(为什么要学它?)
高效操作系统:
用命令替代图形界面点击(如top
监控进程、df -h
查看磁盘),尤其适合服务器(无图形界面)。自动化重复任务:
写脚本实现 “一键部署应用”“定时清理日志”,减少人工操作。远程管理服务器:
通过 SSH 连接服务器后,必须用 Shell 命令执行操作(如sudo reboot
重启服务器)。定制开发环境:
通过.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 配置。 | 临时执行高权限操作时(推荐)。 |