Linux 基础命令大全(入门必备)

# Linux 基础命令大全(入门必备)
Linux 命令是操作 Linux 系统的核心,以下整理了最常用的基础命令,涵盖文件操作、目录管理、系统信息、权限控制等核心场景,附带示例和说明,适合新手快速上手。

## 一、文件与目录操作(最常用)
### 1. 目录切换 `cd`
切换当前工作目录,是使用频率最高的命令。
```bash
cd /home          # 切换到绝对路径 /home(从根目录开始)
cd Documents      # 切换到相对路径 Documents(当前目录下的子目录)
cd ..             # 切换到上一级目录
cd ~              # 切换到当前用户的家目录(如 root 用户是 /root,普通用户是 /home/用户名)
cd -              # 切换到上一次所在的目录
```

### 2. 查看目录内容 `ls`
列出目录中的文件和子目录,常用参数可组合使用。
```bash
ls                # 列出当前目录的文件(不含隐藏文件)
ls -l             # 长格式显示(权限、所有者、大小、修改时间等),缩写为 ll
ls -a             # 显示所有文件(含隐藏文件,以 . 开头的文件)
ls -lh            # 长格式 + 人性化显示文件大小(如 K、M、G)
ls /home          # 列出指定目录 /home 的内容
ls -lt            # 按修改时间排序(最新的在前面)
```

### 3. 创建目录 `mkdir`
创建新的空目录。
```bash
mkdir test        # 在当前目录创建 test 目录
mkdir -p dir1/dir2/dir3  # 递归创建多级目录(父目录不存在时自动创建)
mkdir docs pics   # 同时创建多个目录(docs 和 pics)
```

### 4. 创建文件 `touch`
创建空文件,或更新已有文件的修改时间。
```bash
touch file.txt    # 创建空文件 file.txt
touch note1.txt note2.txt  # 同时创建多个文件
touch -d "2024-01-01" old.txt  # 修改文件的修改时间为指定日期
```

### 5. 删除文件/目录 `rm`
删除文件或目录,**慎用 `rm -rf`,删除后无法恢复**。
```bash
rm file.txt       # 删除文件(需确认,按 y 确认)
rm -f file.txt    # 强制删除文件(无需确认,直接删除)
rm -r dir1        # 递归删除目录及其中所有内容(需确认)
rm -rf dir2       # 强制递归删除目录(无需确认,危险操作!)
rm -rf *          # 强制删除当前目录下所有文件和目录(极度危险!)
```

### 6. 复制文件/目录 `cp`
复制文件或目录到指定位置。
```bash
cp file.txt /home/user/  # 复制 file.txt 到 /home/user/ 目录
cp file1.txt file2.txt   # 复制 file1.txt 并命名为 file2.txt(当前目录)
cp -r dir1 /home/user/   # 递归复制目录 dir1 及所有内容到 /home/user/
cp -v file.txt docs/     # 复制时显示详细过程(-v 表示 verbose)
```

### 7. 移动/重命名文件 `mv`
移动文件/目录到指定位置,或给文件/目录重命名。
```bash
mv file.txt docs/        # 移动 file.txt 到 docs 目录
mv old.txt new.txt       # 将 old.txt 重命名为 new.txt(当前目录)
mv dir1 /home/user/      # 移动目录 dir1 到 /home/user/
mv -v file.txt ../       # 移动文件并显示详细过程
```

### 8. 查看文件内容
#### (1)`cat`:查看文件全部内容(适合小文件)
```bash
cat file.txt             # 直接显示文件所有内容
cat file1.txt file2.txt  # 同时查看多个文件内容(拼接显示)
cat -n file.txt          # 显示内容并标注行号
```

#### (2)`more/less`:分页查看文件(适合大文件)
```bash
more large.txt           # 分页显示(按 Enter 下一行,按 q 退出)
less large.txt           # 更灵活的分页(支持上下箭头滚动,按 q 退出)
```

#### (3)`head/tail`:查看文件头部/尾部内容
```bash
head file.txt            # 查看文件前 10 行
head -n 5 file.txt       # 查看文件前 5 行
tail file.txt            # 查看文件后 10 行
tail -n 3 file.txt       # 查看文件后 3 行
tail -f log.txt          # 实时监控文件更新(常用于查看日志,按 Ctrl+C 退出)
```

### 9. 搜索文件内容 `grep`
在文件中搜索指定字符串,支持正则表达式。
```bash
grep "error" log.txt     # 在 log.txt 中搜索 "error" 字符串
grep -i "Error" log.txt  # 忽略大小写搜索(匹配 Error、ERROR 等)
grep -n "warning" log.txt # 搜索并显示匹配行的行号
grep -r "test" /home/    # 递归搜索 /home/ 目录下所有文件中的 "test"
grep -v "ignore" file.txt # 反向匹配(显示不包含 "ignore" 的行)
```

### 10. 查看文件路径 `pwd`
显示当前工作目录的绝对路径。
```bash
pwd                     # 示例输出:/home/user/Documents
```

## 二、系统信息与进程管理
### 1. 查看系统信息
#### (1)`uname`:查看系统内核信息
```bash
uname -a                # 显示完整系统信息(内核版本、主机名、硬件架构等)
uname -r                # 仅显示内核版本
```

#### (2)`hostname`:查看/设置主机名
```bash
hostname                # 查看当前主机名
hostname new-hostname   # 临时设置主机名(重启后失效)
```

#### (3)`df`:查看磁盘空间
```bash
df -h                   # 人性化显示磁盘分区使用情况(h=human)
df -T                   # 显示分区文件系统类型(如 ext4、xfs)
```

#### (4)`du`:查看目录/文件大小
```bash
du -sh dir1             # 显示目录 dir1 的总大小(s=summary,h=human)
du -h file.txt          # 显示文件大小
du -h --max-depth=1 /home/  # 显示 /home/ 下一级目录的大小
```

### 2. 进程管理
#### (1)`ps`:查看当前进程
```bash
ps -ef                  # 显示所有进程的详细信息(常用)
ps aux                  # 以用户为中心显示进程信息
ps aux | grep "java"    # 搜索与 java 相关的进程
```

#### (2)`top`:实时监控进程资源占用
```bash
top                     # 实时显示进程 CPU、内存占用(按 q 退出)
top -p 1234             # 仅监控 PID 为 1234 的进程
```

#### (3)`kill`:终止进程
```bash
kill 1234               # 终止 PID 为 1234 的进程(默认信号 15,正常终止)
kill -9 1234            # 强制终止进程(信号 9,无法拒绝,慎用)
killall java            # 终止所有名为 java 的进程(按进程名终止)
```

## 三、用户与权限管理
### 1. 用户操作
#### (1)`useradd/userdel`:创建/删除用户
```bash
useradd testuser        # 创建 testuser 用户(默认家目录 /home/testuser)
useradd -m testuser     # 创建用户并自动创建家目录
userdel testuser        # 删除用户(保留家目录)
userdel -r testuser     # 彻底删除用户及家目录
```

#### (2)`passwd`:修改用户密码
```bash
passwd testuser         # 管理员修改 testuser 的密码
passwd                  # 普通用户修改自己的密码(需输入原密码)
```

#### (3)`su/sudo`:切换用户权限
```bash
su root                 # 切换到 root 用户(需输入 root 密码)
su - testuser           # 切换到 testuser 并加载其环境变量
sudo ls /root           # 以 root 权限执行命令(普通用户需在 sudoers 列表中)
sudo -i                 # 切换到 root 环境(类似 su - root)
```

### 2. 权限管理
Linux 文件/目录的权限分为 3 类:所有者(u)、所属组(g)、其他用户(o),权限类型包括:读(r=4)、写(w=2)、执行(x=1)。

#### (1)`ls -l`:查看权限
```bash
ls -l file.txt          # 示例输出:-rw-r--r-- 1 user user 1024 Jan 1 10:00 file.txt
# 权限解析:-rw-r--r-- → 所有者可读可写(rw-),所属组可读(r--),其他用户可读(r--)
```

#### (2)`chmod`:修改权限(数字法/符号法)
```bash
# 数字法(推荐,简洁):r=4、w=2、x=1,三者相加
chmod 644 file.txt      # 所有者 rw-(6=4+2),所属组 r--(4),其他 r--(4)
chmod 755 dir1          # 所有者 rwx(7=4+2+1),所属组 r-x(5=4+1),其他 r-x(5)
chmod 777 file.txt      # 所有用户都有 rwx 权限(危险,不推荐)

# 符号法(灵活):u=所有者,g=所属组,o=其他,a=所有;+添加权限,-删除权限,=设置权限
chmod u+x file.txt      # 给所有者添加执行权限
chmod g-w file.txt      # 给所属组删除写权限
chmod a=r file.txt      # 给所有用户设置只读权限
```

#### (3)`chown`:修改文件所有者和所属组
```bash
chown user1 file.txt    # 将 file.txt 的所有者改为 user1
chown user1:group1 file.txt  # 改为 user1 所有,group1 所属组
chown -R user1 dir1     # 递归修改目录及内容的所有者
```

## 四、压缩与解压
### 1. tar 命令(常用,支持多种压缩格式)
`tar` 本身是打包命令,结合参数可实现压缩/解压,常用格式:
```bash
# 打包并压缩(tar.gz 格式,最常用)
tar -zcvf archive.tar.gz file1 dir1  # z=gzip 压缩,c=创建,v=显示过程,f=指定压缩包名

# 解压 tar.gz 格式
tar -zxvf archive.tar.gz             # x=解压,解压到当前目录
tar -zxvf archive.tar.gz -C /home/user/  # 解压到指定目录 /home/user/

# 打包并压缩(tar.bz2 格式,压缩率更高)
tar -jcvf archive.tar.bz2 file1 dir1  # j=bzip2 压缩

# 解压 tar.bz2 格式
tar -jxvf archive.tar.bz2
```

### 2. zip/unzip 命令(跨平台兼容)
```bash
# 压缩为 zip 格式
zip archive.zip file1 dir1
zip -r archive.zip dir1  # 递归压缩目录

# 解压 zip 格式
unzip archive.zip
unzip archive.zip -d /home/user/  # 解压到指定目录
```

## 五、网络相关命令
### 1. `ping`:测试网络连通性
```bash
ping baidu.com          # 测试与百度的连通性(默认无限发送,按 Ctrl+C 停止)
ping -c 4 baidu.com     # 发送 4 个数据包后停止
```

### 2. `ifconfig/ip`:查看网络配置
```bash
ifconfig                # 查看网卡信息(IP 地址、MAC 地址等,部分系统需安装 net-tools)
ip addr                 # 查看网卡 IP 信息(替代 ifconfig,更通用)
ip route                # 查看路由表(网关信息)
```

### 3. `curl/wget`:下载文件
```bash
# curl(支持多种协议,默认输出内容到终端)
curl https://example.com/file.txt  # 下载文件并显示内容
curl -O https://example.com/file.txt  # 下载文件并保留原文件名
curl -L https://example.com/link  # 跟随重定向下载

# wget(专门用于下载,自动保存文件)
wget https://example.com/file.txt
wget -c https://example.com/largefile.zip  # 断点续传(适合大文件)
```

### 4. `netstat`:查看网络连接状态
```bash
netstat -tuln           # 查看监听的 TCP/UDP 端口(t=TCP,u=UDP,l=监听,n=数字显示)
netstat -an | grep 8080 # 查看 8080 端口的连接状态
```

## 六、其他常用命令
### 1. `clear`:清空终端屏幕
```bash
clear                   # 快捷键:Ctrl+L(效果相同)
```

### 2. `history`:查看命令历史
```bash
history                 # 显示最近执行的命令列表(默认1000条)
!100                    # 执行历史中第 100 条命令
!ls                     # 执行上一次以 ls 开头的命令
history -c              # 清空命令历史
```

### 3. `man`:查看命令帮助文档
```bash
man ls                  # 查看 ls 命令的详细帮助(按 q 退出)
man chmod               # 查看 chmod 命令的权限说明
```

### 4. `find`:搜索文件/目录(按名称、大小、时间等)
```bash
find /home -name "file.txt"  # 在 /home 下搜索名为 file.txt 的文件(区分大小写)
find /home -iname "file.txt" # 忽略大小写搜索
find / -size +100M           # 搜索根目录下大于 100M 的文件
find /home -mtime -7         # 搜索 /home 下最近 7 天修改过的文件
```

## 新手必备技巧
1. **命令补全**:按 `Tab` 键自动补全命令、文件名、目录名(连续按两次 Tab 显示可选列表)。
2. **快捷键**:
   - `Ctrl+C`:终止当前命令(如 ping、tail -f)。
   - `Ctrl+D`:退出当前终端或用户(等价于 exit)。
   - `Ctrl+Z`:暂停当前命令(可用 `fg` 恢复到前台)。
3. **通配符**:
   - `*`:匹配任意字符(如 `ls *.txt` 匹配所有 .txt 文件)。
   - `?`:匹配单个字符(如 `ls file?.txt` 匹配 file1.txt、file2.txt)。
4. **管道符 `|`**:将前一个命令的输出作为后一个命令的输入(如 `ps aux | grep java`)。

以上命令覆盖了 Linux 日常使用的 90% 场景,建议先熟练掌握文件操作、权限管理、系统信息类命令,再逐步学习进阶用法。实际使用中可通过 `man 命令名` 查看详细参数,或通过搜索引擎查询具体场景的命令组合。

要不要我帮你整理一份**Linux基础命令速查手册**?可以按使用场景分类,方便你随时查阅和记忆。

Read more

基于Java的在线图书管理系统--毕设附源码99607

基于Java的在线图书管理系统--毕设附源码99607

摘 要 随着信息技术的发展,在线图书管理系统成为提升图书馆管理效率和用户体验的关键。传统图书管理方式存在资源分散、管理不便及用户交互性差的问题。本系统针对这些问题,采用Spring Boot框架与MySQL数据库,实现了一个高效、便捷的在线图书管理平台。系统分为借书用户和管理员两大模块,分别提供个性化的服务功能。借书用户能够访问首页、通知公告、图书资讯、图书中心等,进行借阅记录、归还、收藏及评论;管理员则负责后台管理,包括用户管理、图书中心维护、借阅与归还记录审核等。此外,系统通过前后端分离的设计,利用Vue.js优化前端展示,增强了系统的扩展性和维护性。本系统不仅提高了图书管理的效率,也提升了用户的阅读体验和互动性,满足了现代图书馆对信息化管理的需求。 关键词:Spring Boot框架;在线图书管理系统;Java语言;MySQL Abstract With the development of information technology, online library management system has

By Ne0inhk
从Web到AI:多模态Agent图像识别Skills开发实战——JavaScript+Python全栈图像处理方案

从Web到AI:多模态Agent图像识别Skills开发实战——JavaScript+Python全栈图像处理方案

图片来源网络,侵权联系删。 文章目录 * 1. 当Web图像处理遇见多模态Agent * 2. Web图像处理与Agent Skills的基因同源性 * 2.1 能力映射表(Web→图像Skills) * 2.2 图像Skills架构全景图 * 3. 图像识别核心原理(Web开发者视角) * 3.1 三大核心机制映射表 * 3.2 预处理流水线实现(类比CSS滤镜) * 3.3 后端推理服务设计(类比Express中间件) * 4. 企业级实战:电商商品瑕疵检测系统 * 4.1 项目结构(全栈设计) * 4.2 核心缺陷检测组件(Vue3 + TensorFlow.js) * 4.3 后端资源调度优化(解决高并发问题) * 5. Web开发者转型图像Skills的痛点解决方案 * 5.

By Ne0inhk
飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式

飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式

飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式 文章目录 * 飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式 * 前言 * 飞算 JavaAI IDEA插件下载、注册、使用 * 智能引导 * 操作流程 * Java Chat * 智能工作流程 * 操作流程 * 智能问答 * 操作流程 * SQL Chat * 操作流程 * 总结 前言 Java 开发面临需求迭代加速、系统复杂度攀升、人力成本高企的三重挑战下,飞算 JavaAI 开发助手应运而生,深度融合深度学习技术与代码工程最佳实践,打破传统开发中需求理解偏差、风格适配繁琐、流程割裂的痛点,构建从需求分析到部署交付的端到端智能链路,为开发者提供从老项目维护到新项目构建的全场景赋能,重新定义 Java 开发的效率与质量标准 ✅全链路智能开发赋能:需求分析到工程构建全流程引导,

By Ne0inhk
Java 网络编程(二)—— TCP流套接字编程

Java 网络编程(二)—— TCP流套接字编程

TCP 和 UDP 的区别 在传输层,TCP 协议是有连接的,可靠传输,面向字节流,全双工 而UDP 协议是无连接的,不可靠传输,面向数据报,全双工 有连接和无连接的区别是在进行网络通信的时候,通信双方有没有保存对端的地址信息,即假设 A 和 B 进行通信,A 保存了 B 的地址信息,B 也保存了 A 的地址信息,此时双方都知道和谁建立了连接,这就是有连接的通信,在之前的 UDP 数据报套接字编程中就提到过 UDP 是无连接的,所以在发送数据报的时候要加上对端的信息,防止丢包。 可靠传输是通过各种手段来防止丢包的出现,而不可靠传输则没有做任何处理直接把数据报传输过去,但是可靠传输不意味着能 100% 把数据报完整无误地传输给对方,只是尽可能降低丢包发生的概率,并且可靠传输是要使用很多手段来保持的,所以付出的代价相比于不可靠传输要大。 面向字节流就是以字节为单位来进行数据的传输,面向数据报就是以数据报为单位进行数据的传输。 全双工就是通信的双发可以同时给对方发送数据,

By Ne0inhk