初级程序员必备的十大技能之基础 Linux 命令(一)

简介: 教程来源 https://qcycj.cn/ 本文系统讲解程序员必备的Linux核心命令,涵盖文件操作、文本处理、权限管理、进程与网络工具等,结合原理、参数详解及实战案例,助你高效部署、排查与运维——无论用Windows还是macOS,Linux都是程序员不可或缺的“第二操作系统”。

为什么程序员必须懂 Linux?
你可能听说过这些场景:

部署项目到服务器:ssh 连上去,ls 看看文件,vim 改改配置,systemctl restart nginx 重启服务

线上排查问题:top 看 CPU,df -h 看磁盘,tail -f 看日志,grep 找错误

批量处理文件:find + xargs + sed 一行命令完成,而图形界面要点几百下鼠标

Linux 是程序员的“第二操作系统”。不管你平时用 Windows 还是 macOS,服务器 90% 以上跑的都是 Linux。

本文将从零开始,系统讲解初级程序员必须掌握的 Linux 命令,覆盖:

文件操作:ls、cd、cp、mv、rm、find

文本处理:cat、grep、sed、awk、vim

权限管理:chmod、chown、useradd

进程管理:ps、top、kill、systemctl

网络工具:ssh、scp、curl、netstat

系统监控:df、du、free、htop

每一部分都有详细的命令解释、参数说明和实战案例。

一、Linux 基础概念:先理解“是什么”

1.1 Linux 的哲学
image.png
1.2 文件系统结构

/                       # 根目录
├── bin/                # 基本命令(ls, cp, mv)
├── boot/               # 启动文件(内核)
├── dev/                # 设备文件(硬盘、终端)
├── etc/                # 配置文件(nginx, ssh)
├── home/               # 用户家目录
│   ├── user1/
│   └── user2/
├── lib/                # 共享库文件
├── media/              # 挂载点(U盘、光驱)
├── mnt/                # 临时挂载点
├── opt/                # 第三方软件
├── proc/               # 进程信息(虚拟文件系统)
├── root/               # root 用户家目录
├── sbin/               # 系统管理命令
├── tmp/                # 临时文件(重启会清空)
├── usr/                # 用户程序和数据
│   ├── bin/            # 用户命令
│   ├── lib/            # 用户库
│   └── local/          # 本地安装软件
└── var/                # 可变数据
    ├── log/            # 日志文件
    └── www/            # Web 服务器数据

1.3 路径规则

# 绝对路径:从根目录开始
/home/user/project/index.js

# 相对路径:从当前目录开始
./index.js          # 当前目录
../config.js        # 上一级目录
../../package.json  # 上两级目录

# 特殊目录
.   # 当前目录
..  # 上一级目录
~   # 用户家目录
-   # 上一个工作目录

二、文件与目录操作(高频命令)

2.1 ls - 列出目录内容

# 基础用法
ls                  # 列出当前目录(不含隐藏文件)
ls -a               # 列出所有文件(包括 . 开头的隐藏文件)
ls -l               # 长格式显示(权限、链接数、所有者、大小、时间)
ls -lh              # 人类可读的大小(1K、2M、3G)
ls -la              # 所有文件 + 详细信息
ls -ltr             # 按修改时间排序(最新的在最后)
ls -lS              # 按文件大小排序(最大的在前)
ls -R               # 递归列出子目录

# 通配符
ls *.js             # 所有 .js 文件
ls file?.txt        # file1.txt、file2.txt(? 匹配单个字符)
ls file[0-9].txt    # file0.txt 到 file9.txt
ls {src,test}/*.js  # src/ 和 test/ 下的 .js 文件

# 实际案例
ls -la | grep "^d"  # 只显示目录
ls -la | grep "^-"  # 只显示文件

2.2 cd - 切换目录

cd /var/log         # 切换到绝对路径
cd ./src            # 切换到相对路径
cd ..               # 上一级目录
cd ../..            # 上两级目录
cd ~                # 回到家目录
cd -                # 回到上一个目录

# 设置别名(添加到 ~/.bashrc 或 ~/.zshrc)
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

2.3 pwd - 显示当前路径

pwd                 # /home/user/project
pwd -P              # 显示真实路径(不解析符号链接)

2.4 mkdir - 创建目录

mkdir myfolder                  # 创建单个目录
mkdir folder1 folder2 folder3   # 创建多个目录
mkdir -p parent/child/grandchild # 创建多级目录(父目录不存在时自动创建)
mkdir -m 755 secure_folder      # 创建时指定权限

# 批量创建目录
mkdir {2024..2026}/{01..12}     # 创建 3年×12月 的目录结构

2.5 touch - 创建文件/更新时间戳

touch file.txt                  # 创建空文件(如果不存在)
touch -t 202401011200 file.txt  # 修改时间戳为 2024-01-01 12:00

# 批量创建文件
touch {1..10}.txt               # 创建 1.txt 到 10.txt

2.6 cp - 复制文件/目录

cp source.txt dest.txt          # 复制文件
cp -i source.txt dest.txt       # 覆盖前提示确认
cp -r source_dir/ dest_dir/     # 递归复制目录
cp -u source.txt dest.txt       # 只复制更新的文件(源文件更新才复制)
cp -p source.txt dest.txt       # 保留文件属性(权限、时间戳)
cp -a source_dir/ dest_dir/     # 归档模式(保留所有属性 + 递归)

# 复制多个文件到目录
cp file1.txt file2.txt file3.txt target_dir/

2.7 mv - 移动/重命名

mv old.txt new.txt              # 重命名
mv file.txt ../                 # 移动到上一级目录
mv *.js ./src/                  # 移动所有 .js 文件到 src
mv -i source.txt dest.txt       # 覆盖前提示
mv -u source.txt dest.txt       # 只在源文件更新时移动

2.8 rm - 删除文件/目录

rm file.txt                     # 删除文件
rm -i file.txt                  # 删除前确认
rm -f file.txt                  # 强制删除(不提示)
rm -rf folder/                  # 强制删除目录及其内容(危险!)
rm -- -file.txt                 # 删除以 - 开头的文件

# 安全删除(使用 trash-cli 替代 rm)
trash file.txt                  # 移动到回收站
trash-empty                     # 清空回收站

2.9 find - 查找文件

# 按名称查找
find . -name "*.js"             # 查找所有 .js 文件
find /home -name "config.json"  # 在 /home 下查找
find . -iname "README"          # 忽略大小写

# 按类型查找
find . -type f                  # 只查文件
find . -type d                  # 只查目录
find . -type l                  # 只查符号链接

# 按大小查找
find . -size +100M              # 大于 100MB
find . -size -1M                # 小于 1MB
find . -size 0                  # 空文件

# 按时间查找
find . -mtime -7                # 7天内修改的文件
find . -mtime +30               # 30天前修改的文件
find . -mmin -60                # 60分钟内修改
find . -newer reference.txt     # 比 reference.txt 更新的文件

# 按权限查找
find . -perm 755                # 权限正好是 755
find . -perm -u=w               # 用户有写权限

# 执行操作
find . -name "*.tmp" -delete                    # 删除找到的文件
find . -name "*.js" -exec wc -l {} \;           # 统计行数
find . -name "*.log" -exec rm {} \;             # 删除日志文件
find . -name "*.jpg" -exec mv {} images/ \;     # 移动图片

# 批量重命名(结合 xargs)
find . -name "*.txt" | xargs -I {} mv {} {}.backup

来源:
https://fndvx.cn/

相关文章
|
27天前
|
人工智能 API 开发工具
阿里云百炼Coding Plan订阅套餐说明:购买方式、售罄解决方法、token额度及使用规则指南
阿里云百炼Coding Plan是面向开发者的AI编程订阅服务,现仅开放Pro版(200元/月,9万次请求),每日9:30限量抢购。支持Qwen3.5-Plus、Kimi-k2.5、GLM-5等多模型,兼容Cursor、Qwen Code等工具。额度用尽即停,不转按量计费。阿里云百炼官网:https://t.aliyun.com/U/fPVHqY
|
2天前
|
机器学习/深度学习 自然语言处理 C++
大模型应用:大模型实测对比:1.8B vs 6B,本地部署的极限拉扯与真实体感.119
本文对比Qwen1.5-1.8B与ChatGLM2-6B两大中文大模型:前者轻量易部署,CPU即可运行,代码简洁,但易幻觉、指令遵循弱;后者参数量大,中文理解与逻辑更强,但需GPU、加载复杂。二者代表“小而美”与“大而全”的典型路径。
266 2
大模型应用:大模型实测对比:1.8B vs 6B,本地部署的极限拉扯与真实体感.119
|
2天前
|
人工智能 安全 Shell
Harness Engineering 被讲烂之后,Agent 工程真正难的是什么?
看 Anthropic、OpenAI、Gemini 的 Harness 都在做啥?
268 0
|
27天前
|
人工智能 前端开发 JavaScript
浏览器自动化的下一层:为什么 CloakBrowser 把指纹问题推到了源码层?
CloakBrowser 是一款基于 Chromium 源码级改造的反检测浏览器工具,通过 C++ 层补丁修复 Canvas、WebGL、字体、GPU、WebRTC 等指纹特征,并模拟真实用户行为,提升自动化环境可信度。它不绕验证码,而是从根源降低被风控识别概率,适用于测试开发、AI Agent 及合规爬虫场景。
|
1月前
|
存储 人工智能 前端开发
不写框架、不用 npm,我用 AI Coding 做了一个家庭记忆站
大佬勿进!新手向,手把手带你从零做站点:妈妈再也不用担心我会忘记和她之间的温馨小故事了。
219 3
|
27天前
|
人工智能 监控 测试技术
AI 测试用例审核 Skill:把用例评审从“凭经验”变成“可评分”
本文介绍一种AI驱动的测试用例审核Skill,将资深测试负责人的评审经验封装为可复用、可量化、可批量执行的标准能力。它能自动检查逻辑完整性、预期明确性、前置条件、PRD覆盖度及边界异常,逐条评分、定位问题、给出修改建议,助力团队提升用例质量、统一评审标准、加速新人成长。
|
28天前
|
开发框架 安全 Java
Java 长期支持版 JDK17 下载安装+详细配置步骤
JDK 17 是 Oracle 官方推出的长期支持(LTS)版本,具备高性能、高安全性、强兼容性与丰富新特性(如密封类、模式匹配等),广泛用于后端开发、微服务、大数据及教学实训,是企业级 Java 开发的主流稳定选择。(239字)
1284 0
|
26天前
|
SQL 人工智能 安全
从 Google Agentic Data Cloud 看:个人 Agent 能干活了,企业 Agent 卡在哪了?
本文探讨企业AI Agent从“能问”到“能干活”的核心挑战,提出落地需跨越三道坎:读懂数据(语义理解)、安全访问(权限与审计)、真正干活(端到端业务执行)。阿里云瑶池基于Meta Agent知识大脑、DataGateway安全通道等实践,正推动企业Agent走向规模化、自进化的真实生产应用。
181 0
|
28天前
|
人工智能 Java API
多端CRM客户关系管理系统源码下载(PHP/Java/Python)完整开源版
本文深度解析PHP、Java、Python三大技术栈的开源CRM方案,涵盖多端协同架构、RBAC权限控制、客户公海回收、RESTful API设计及AI智能化演进,助成长型企业以低成本实现私有化、可定制、高扩展的CRM自主建设。