当前位置:首页>Linux>Linux文件系统和命令行

Linux文件系统和命令行

  • 2026-09-29 04:53:46
Linux文件系统和命令行

v2026.1 // CentOS / Ubuntu / Debian

Linux实战手册

一份可以放在手边的 Linux 命令行实战指南

feng@linux:~/tutorial

$uname -aLinux linux 5.15.0-generic #1 SMP x86_64 GNU/Linux$cat /etc/os-releaseNAME="Ubuntu"VERSION="22.04.1 LTS (Jammy Jellyfish)"$neofetch# 你的 Linux 之旅开始了

目录 CONTENTS

  • 01
    基础命令 ls/cd/pwd
  • 02
    文件系统结构
  • 03
    文件操作
  • 04
    文本处理
  • 05
    用户与权限
  • 06
    网络命令
  • 07
    进程管理
  • 08
    Vim 编辑器
  • 09
    Shell 脚本
01 / BASICS

最基础的命令

每天都会用到的核心命令

pwd — 当前目录

Print Working Directory,显示当前工作目录

$ pwd

$pwd/home/feng/projects

ls — 列出文件

List,查看目录内容

$ ls [选项] [目录]

$ls# 普通列出$ls -l# 详细列表$ls -a# 包含隐藏文件$ls -lh# 人性化大小$ls -lt# 按时间排序$ls -R# 递归列出

cd — 切换目录

Change Directory,目录间移动

$ cd [目录]

$cd /home# 绝对路径$cd ..# 上级目录$cd ~# 用户主目录$cd -# 返回上次目录$cd .# 当前目录

clear — 清屏

清空终端屏幕

$ clear

$clear# 或 Ctrl+L

💡 提示:按Tab自动补全,Ctrl+C终止当前命令,Ctrl+L清屏

02 / FILESYSTEM

Linux 文件系统

理解 Linux 的目录结构

/(根目录,所有目录的起点)

├── home/(普通用户目录)

└── feng/(用户 feng 的主目录)

├── Desktop/

├── Downloads/

├── Documents/

└── .config/(隐藏配置目录)

├── root/(管理员主目录)

├── etc/(系统配置文件)

├── var/(可变数据:日志、缓存)

├── usr/(用户程序)

├── tmp/(临时文件)

├── dev/(设备文件)

└── proc/(进程信息)

目录
用途
示例文件
/etc
系统配置
/etc/nginx/nginx.conf
/var/log
系统日志
/var/log/syslog
/home
用户目录
/home/feng
/usr/bin
用户程序
/usr/bin/python3
/tmp
临时文件
重启通常清空

📌 快捷符号:.当前目录 |..上级目录 |~家目录 |-上次位置

03 / FILE OPERATIONS

文件与目录操作

创建、复制、移动、删除

mkdir — 创建目录

$ mkdir [选项] 目录名

$mkdir project# 创建单个$mkdir -p a/b/c# 递归创建$mkdir -p {src,dist,test}# 同时创建多个

touch — 创建文件

$ touch 文件名

$touch readme.md$touch a.txt b.txt c.txt# 多个

cp — 复制

$ cp [选项] 源 目标

$cp file.txt backup.txt$cp -r dir/ backup/# 目录$cp -i f.txt dest/# 询问$cp -v f.txt dest/# 显示

mv — 移动/重命名

$ mv [选项] 源 目标

$mv old.txt new.txt# 重命名$mv file.txt /tmp/# 移动$mv -i file.txt dest/# 询问$mv *.txt backup/# 通配符

rm — 删除

$ rm [选项] 文件

$rm file.txt# 删除文件$rm -r dir/# 删除目录$rm -rf dir/# 强制删除$rm -i file.txt# 询问确认

ln — 链接

$ ln [选项] 源 链接

$ln file link# 硬链接$ln -s file link# 软链接$ln -s /path/link# 绝对路径

⚠️ 危险命令:rm -rf /删除全系统!rm -rf *删除当前一切!rm -rf .*删除所有隐藏文件!

04 / TEXT PROCESSING

文本处理

查看、搜索、统计文本内容

cat — 查看内容

$cat file.txt# 全部$cat -n file.txt# 行号$cat -A file.txt# 显示隐藏字符

head / tail — 部分查看

$head -20 file.txt# 前20行$tail -30 file.txt# 后30行$tail -f log.txt# 实时跟踪$tail -F log.txt# 跟踪并重试

grep — 搜索

$grep "word" file.txt# 搜索$grep -i "word" file.txt# 忽略大小写$grep -r "word" dir/# 递归搜索$grep -n "word" file.txt# 显示行号$grep -v "word" file.txt# 反向匹配

wc — 统计

$wc -l file.txt# 行数$wc -w file.txt# 单词数$wc -c file.txt# 字符数$wc file.txt# 全部

sort / uniq — 排序去重

$sort file.txt# 排序$sort -u file.txt# 排序去重$uniq file.txt# 去重$sort file.txt | uniq -c# 统计重复

diff — 比较文件

$diff a.txt b.txt# 比较$diff -u a.txt b.txt# 统一格式$diff -r dir1/ dir2/# 目录比较

sed — 流编辑器

$sed 's/old/new/' file.txt# 替换$sed 's/old/new/g' file.txt# 全局替换$sed -i 's/old/new/' file.txt# 直接修改$sed '3d' file.txt# 删除第3行

awk — 文本处理

$awk '{print $1}' file.txt# 打印第1列$awk -F',' '{print $2}' file.txt# 指定分隔符$awk 'NR>1' file.txt# 跳过表头$awk '$3>80 {print}' file.txt# 条件打印

05 / PERMISSIONS

用户与权限

理解 Linux 的权限系统

📌 权限格式:-rw-r--r--= 文件类型 + 所有者 + 组 + 其他人的权限

权限
符号
数字
说明
读
r
4
查看文件内容
写
w
2
修改文件
执行
x
1
运行文件/进入目录

chmod — 修改权限

$chmod +x script.sh# 添加执行权限$chmod 755 file# rwxr-xr-x$chmod 644 file# rw-r--r--$chmod -R 755 dir/# 递归

chown — 修改所有者

$chown user file# 修改所有者$chown user:group file# 同时修改组$chown -R user dir/# 递归

sudo — 提权

$sudo command# 以root执行$sudo -i# 切换root$sudo visudo# 编辑sudoers

su — 切换用户

$su - user# 切换用户$su -# 切换root$whoami# 当前用户

06 / NETWORK

网络命令

检查网络、连接服务器

ping — 连通性测试

$ping google.com# 测试连通$ping -c 4 google.com# 发送4次$ping -i 2 google.com# 间隔2秒

curl — HTTP请求

$curl http://example.com# GET请求$curl -I http://example.com# 响应头$curl -o file.html url# 下载$curl -X POST url -d data# POST

wget — 下载

$wget url# 下载$wget -O file url# 重命名$wget -c url# 断点续传$wget -r url# 递归下载

ssh — 远程连接

$ssh user@host# 连接$ssh -p 2222 user@host# 指定端口$ssh -i key.pem user@host# 密钥登录$scp file user@host:/path# 复制

ip / ifconfig — IP地址

$ip addr# 查看IP$ip addr show eth0# 指定网卡$ip link set eth0 up# 启用网卡$hostname -I# 本机IP

netstat / ss — 端口

$ss -tuln# 监听端口$netstat -tuln# (旧)$ss -tn | grep :80# 80端口

07 / PROCESS

进程管理

查看、控制运行中的程序

ps — 进程列表

$ps# 当前终端$ps aux# 所有进程$ps -ef# 完整格式$ps aux | grep nginx# 查找进程

top / htop — 资源监控

$top# 任务管理器$htop# (需安装)$top -u user# 指定用户$top -p 1234# 指定PID

kill — 终止进程

$kill 1234# 正常终止$kill -9 1234# 强制终止$killall nginx# 按名称终止$pkill -f "python"# 按关键字

jobs / fg / bg — 后台任务

$command &# 后台运行$jobs# 查看任务$fg %1# 切到前台$bg %1# 切到后台$Ctrl+Z# 暂停任务

08 / VIM

Vim 编辑器

Linux 下最强大的编辑器

📌 提示:Vim 有三种模式:普通模式(命令)、插入模式(编辑)、可视模式(选择)

基本操作

$vim file.txt# 打开:w# 保存:q# 退出:wq# 保存退出:q!# 强制退出

插入模式

i# 当前光标前a# 当前光标后o# 下方新行O# 上方新行Esc# 退出插入

光标移动

h j k l# ← ↓ ↑ →w# 下个单词b# 上个单词0 $# 行首/行尾gg G# 文件头/尾

编辑操作

x# 删除字符dd# 删除行u# 撤销Ctrl+r# 重做yy# 复制行p# 粘贴

搜索替换

/word# 搜索n# 下个匹配:%s/old/new/g# 全局替换:s/old/new/# 当前行

高级技巧

5G# 跳到第5行dw# 删除单词ciw# 改写单词:sp file# 水平分屏:vsp file# 垂直分屏

📌 口诀:i=插入Esc=退出:wq=保存u=撤销dd=删行

09 / SHELL SCRIPT

Shell 脚本基础

编写自动化脚本

hello.sh

#!/bin/bash# 这是一个简单的脚本echo"Hello World!"NAME="Linux"echo"Welcome to $NAME"# 条件判断if[ -f "$1" ]; then  echo"File exists"fi

变量

$name="Linux"# 定义$echo $name# 使用$echo ${name}# 规范写法$readonly const="X"# 常量

数组

$arr=(a b c d)# 定义$echo ${arr[0]}# 访问$echo ${arr[@]}# 全部$echo ${#arr[@]}# 长度

循环

# for 循环fori in {1..5}; do  echo$idone

函数

func(){  echo$1}$func arg1

💡 运行脚本:chmod +x script.sh && ./script.sh

10 / PRACTICE

动手练习

在服务器上实践这些命令吧

🎯 练习 1:文件操作

# 1. 创建项目目录结构mkdir -p myproject/{src,docs,tests,dist}# 2. 进入项目目录cd myproject# 3. 创建文件touch README.mdtouch src/index.jstouch src/style.css# 4. 查看结构ls -R# 5. 复制文件cp README.md README.backup.md# 6. 重命名mv src/index.js src/main.js# 7. 删除rm README.backup.md# 8. 最终结构tree # 如果没有 tree,用 ls -R

🎯 练习 2:文本搜索

# 1. 创建测试文件echo -e "apple\nbanana\napple\norange\napple" > fruits.txtcat fruits.txt# 2. 搜索 applegrep "apple" fruits.txt# 3. 显示行号grep -n "apple" fruits.txt# 4. 统计出现次数grep -c "apple" fruits.txt# 5. 反向搜索(不含 apple)grep -v "apple" fruits.txt# 6. 排序并去重sort fruits.txt | uniq -c# 7. 替换sed 's/apple/grape/g' fruits.txt

🎯 练习 3:权限管理

# 1. 创建脚本echo '#!/bin/bashecho "Hello"' > hello.sh# 2. 查看权限ls -l hello.sh# 3. 添加执行权限chmod +x hello.sh# 4. 再次查看ls -l hello.sh# 5. 运行脚本./hello.sh# 6. 数字权限chmod 755 hello.sh # rwxr-xr-xchmod 644 hello.sh # rw-r--r--# 7. 创建新用户(需要root)# sudo useradd testuser# sudo passwd testuser

🎯 练习 4:Vim 入门

# 1. 打开文件vim hello.txt# 2. 进入插入模式,输入内容iHello VimWorld[按 Esc 退出插入模式]# 3. 保存退出:wq# 4. 再次打开vim hello.txt# 5. 删除一行(普通模式)dd# 6. 撤销u# 7. 复制一行yy# 8. 粘贴p# 9. 搜索/hellon # 下一个N # 上一个# 10. 替换当前行:s/hello/bye/g# 11. 保存退出:wq

🎯 练习 5:监控与进程

# 1. 查看当前进程ps aux | head -10# 2. 实时监控top# 按 q 退出# 3. 查找特定进程ps aux | grep bash# 4. 后台运行任务sleep 100 &jobs# 5. 查看后台任务jobs# 6. 切到前台fg %1# 按 Ctrl+C 终止# 7. 再次后台运行sleep 100 &# 8. 终止进程kill %1# 9. 查看系统资源df -hfree -huptime

🎯 练习 6:网络操作

# 1. 测试网络ping -c 3 baidu.com# 2. 下载文件wget https://example.com/file.tar.gz# 或curl -O https://example.com/file.tar.gz# 3. 查看本机 IPip addrhostname -I# 4. 检查端口ss -tuln# 5. 远程连接测试ssh -V# 6. HTTP 请求curl https://httpbin.org/getcurl -I https://baidu.com# 7. 传输文件# scp localfile user@host:/path/# scp user@host:/remotefile ./

🎯 练习 7:简单 Shell 脚本

# 创建 backup.shcat > backup.sh << 'EOF'#!/bin/bash# 备份脚本示例DATE=$(date +%Y%m%d)BACKUP_DIR="./backups"# 创建备份目录mkdir -p $BACKUP_DIR# 备份文件cp -r src $BACKUP_DIR/src_$DATEecho "Backup completed: src_$DATE"ls -la $BACKUP_DIREOF# 添加执行权限chmod +x backup.sh# 运行./backup.sh# 创建一个交互脚本cat > greet.sh << 'EOF'#!/bin/bashecho "What's your name?"read nameecho "Hello, $name! Welcome to Linux."EOFchmod +x greet.sh./greet.sh

💡 练习技巧:先看答案理解思路,然后自己动手敲命令。遇到问题用man 命令查看手册,或命令 --help查看帮助。

最新文章

随机文章