课程定位
命令行 != 黑客专属。
这套视频带你从Linux小白到命令行大师,涵盖文件管理+文本处理+系统监控+网络操作。
零基础也能30分钟掌握程序员必备的技能。
课程亮点
1、零基础友好:从最基础的ls,cd命令开始,循序渐进
2、实战导向:每个命令都配合真实场景和项目案例
3、效率提升:掌握管道,重定向等高级技巧,提升工作效率。
适合人群
编程初学者,需要使用Linux服务器的开发者,想要提升工作效率的技术人员,准备从事运维或后端开发的学习者。
课程概述
Linux命令行是程序员的基本功,也是提升工作效率的利器。
本课程从“为什么命令行比图形界面更强大”切入,系统讲解文件系统操作,文本处理,权限管理,进程控制等核心技能。
通过6大模块的学习,你将掌握文件管理的各种技巧,学会使用grep,awk,sed等文本处理神器,理解Linux权限体系,能够监控和管理系统进程,掌握网络诊断和远程操作,编写自动化脚本提升效率。
每个知识点都配合实际案例和练习,让你在30分钟内从命令行新手成长为能够独立解决问题的Linux用户,为后续的开发和运维工作打下坚实基础。
讲师介绍
本章学习目标
通过本章学习,你将能够:
- 熟练掌握:Linux基础命令和高级操作技巧
- 灵活应用:文件系统管理和权限控制命令
- 高效处理:文本处理和数据分析任务
- 轻松管理:进程监控和系统维护操作
- 自信应对:日常开发和运维工作需求
章节导航
1、文件系统的探险之旅:目录导航和文件管理
2、文本处理魔法师:文本处理技巧
3、权限管理大师:安全控制
4、进程管理侦探:系统监控
5、网络操作忍者:网络工具
6、命令行终极挑战:综合实战
Linux基础导航命令
pwd:显示当前目录
ls:列出目录内容
cd:切换目录
tree:树形显示目录结构,这个命令需要先安装才能。通过如下命令进行安装:
sudo apt install tree
执行命令示例:
clear:清空当前屏幕
Linux目录导航小游戏
导航到 /var/log,然后回到用户主目录。
方案1:
cd /var/log
cd ~
方案2:
cd var/log && cd -
pwd 查看当前位置
迷路时的救命稻草,可以输出你当前所在的目录。
ls 命令查看当前目录文件
ls -la 可以以列表的形式展示所有文件,包括隐藏文件。隐藏文件一般是以.点开头的文件。
cd 切换目录的各种用法
去根目录溜达
cd /
回到上级目录:
cd ..
回到家目录:
cd ~
回到家目录的简写:
cd
回到上一次的位置,时光倒流:
cd -
ls 命令的各种用法
查看详细信息:
ls -l
查看隐藏文件:
ls -a
人性化显示文件大小:
ls -h
按时间排序:
ls -t
按大小顺序:
ls -S
反向排序:
ls -r
同时查看详细信息,隐藏文件,人性化显示文件大小:
ls -lah
ls 练习1
找出当前目录中最大的3个文件,按大小降序排列。
ls -lSh | head -4
ls 练习2
显示所有以点开头的隐藏文件,按修改时间排序。
ls -lat | grep "\.\w"
ls 练习3
ls 只显示目录不显示文件
ls -ld */
ls 组合使用示例
显示详细信息,包括隐藏文件,人性化大小显示:
ls -lah
按修改时间排序,最新的在前面:
ls -lth
找占空间最大的内容:按文件大小排序,最大的在前面
ls -lSh
深度探索:递归显示所有子目录
ls -R
mkdir 创建文件夹
创建一个文件夹:
mkdir tmp
同时创建多级目录,也就是递归的创建目录:
mkdir -p tmp/a/b/c
touch 创建空文件
在某个目录下直接创建文件:
cd tmp
touch test.py
想要在某个文件夹中去创建文件:
touch tmp/a/b/c/test.txt
创建一个完整的项目结构
目录结构如下:
# my_game/
# ├── src/
# │ ├── main.py
# │ └── utils.py
# ├── tests/
# │ └── test_main.py
# ├── docs/
# │ └── README.md
# └── data/
# └── config.json
实现方案:
mkdir -p my_game/{src,tests,docs/data}
touch my_game/src/{main.py,utils.py}
touch my_game/tests/test_main.py
touch my_game/docs/README.md
touch my_game/data/config.json
验证结果:
tree my_game
mkdir 实用示例
创建单个目录:
mkdir my_project
创建多个目录:
mkdir dir1 dir2 dir3
创建多级目录结构:
mkdir -p projects/{src,docs,tests}/{python,java}
创建空文件:
touch README.md
创建多个文件:
touch file1.txt file2.txt file3.txt
创建带时间戳的文件,不重复的文件名:
touch "backup_$(date +%Y%m%d_%H%M%S).txt"
cp 复制命令
复制文件:cp
cp file1 file2
复制目录:cp -r
cp -r dir1 dir2
交互式复制:
cp -i file1 file2
仅复制新文件:
cp -u *.txt backup/
使用cp备份重要文件
比如,我们备份配置文件:
cp ~/.bashrc ~/.bashrc.backup.$(date +%Y%m%d)
使用cp复制所有python文件
先准备一些Python文件:
mkdir demo
touch demo/{a.py,b.py,c.py}
创建备份目录:
mkdir demo_backup
开始复制所有python文件到备份目录:
cp demo/*.py demo_backup/
使用cp只复制更新的文件
准备文件:
mkdir demo
touch demo/{a.txt,b.txt,c.txt}
复制文件:
mkdir demo2
cp demo/*.txt demo2/
修改文件:
vim demo/b.txt# 随便填充一些内容
# 保存退出# 执行复制
cp -u demo/*.txt demo2/
使用cp复制并显示进度
当我们复制一些大文件的时候,如果想要知道这个复制的进度的话,可以使用 cp -rv 命令。
先准备一个大文件:
with open("tmp.txt", "w") as f:for i in range(100000000):f.write("python teacher .....\n")
开始复制,复制时显示进度:
cp -rv tmp.txt tmp2.txt
要注意,这个进度不是单个文件的复制进度,而是当复制文件夹时,可以显示已经复制了哪些文件。
使用cp复制并保持原有属性
cp -p 这个参数,会让复制保留文件原有的属性。比如时间戳,权限等等。
示例:
touch tmp.txt
cp -p tmp.txt tmp2.txt
ls -lah
使用cp复制目录及其所有内容
先准备目录和文件:
mkdir tmp
touch tmp/{a,b,c}.txt
复制目录及其所有文件:
cp -r tmp/ tmp2/
使用cp复制多个文件到目录
准备多个文件和目录:
touch {a,b,c}.txt
mkdir tmp
执行cp复制命令:
cp a.txt b.txt c.txt tmp/
查看tmp目录:
tree tmp
使用cp和通配符复制多个文件
可以用星号代表任意文件名。
比如 *.py 可以代表 a.py, abc.py, aa123.py,不限制格式,只限制后缀。
借助这种通配符的规则,我们可以很轻松的实现批量复制。
先准备几个文件:
touch {a,b,c}.py
mkdir tmp
使用cp和通配符进行复制:
cp *.py tmp/
tree tmp
使用mv重命名文件
mv是修改文件名,不会保留原本的文件。
touch tmp.txt
mv tmp.txt tmp2.txt
使用mv和for循环批量重命名文件
准备文件:
touch {a,b,c}.py
使用循环和mv批量重命名文件,会把 .py 直接换成 .back :
for file in *.py; domv "$file" "$file%.py.back"
done
查看目录:
tree
使用mv移动文件到目录
准备文件:
touch tmp.py
准备目录:
mkdir tmp
移动文件到目录:
mv tmp.py tmp/
查看目录:
tree
使用mv和通配符移动多个文件
在真实的开发中,我们经常需要维护很多日志文件,本案例演示如何对多个日志文件做移动。
先准备一些日志文件:
touc {a,b,c}.log
准备目录:
mkdir logs
使用通配符进行移动:
mv *.log logs/
查看目录:
tree logs
使用mv重命名目录
先准备目录和文件:
mkdir demo
touch demo/{a,b,c}.py
tree
移动目录:
mv demo demo2
tree