第3课:Linux基础命令

【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起

推广

【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起

Linux基础命令

命令行基础

1. 终端和Shell

什么是Shell?

# Shell是命令行解释器
# 常见的Shell类型
echo $SHELL                    # 查看当前Shell
cat /etc/shells               # 查看系统支持的Shell

# 常见Shell
/bin/bash                     # Bash (最常用)
/bin/zsh                      # Zsh (功能强大)
/bin/fish                     # Fish (用户友好)
/bin/sh                       # Bourne Shell (传统)

命令行提示符

# 普通用户提示符
user@hostname:~$ 

# root用户提示符
root@hostname:~# 

# 提示符组成
user        # 用户名
hostname    # 主机名
~           # 当前目录 (~ 表示家目录)
$           # 普通用户标识
#           # root用户标识

2. 命令基本语法

命令结构

# 基本语法
command [options] [arguments]

# 示例
ls -la /home/user
│  │   │
│  │   └── 参数 (要操作的对象)
│  └── 选项 (修改命令行为)
└── 命令 (要执行的操作)

选项格式

# 短选项 (单个字符)
ls -l                         # 长格式显示
ls -a                         # 显示隐藏文件
ls -la                        # 组合选项

# 长选项 (完整单词)
ls --all                      # 等同于 -a
ls --long                     # 等同于 -l
ls --all --long               # 等同于 -la

文件和目录操作

1. 目录导航

pwd - 显示当前目录

pwd                           # 显示当前工作目录
/home/user                    # 输出示例

cd - 切换目录

cd /home/user                 # 切换到指定目录
cd ~                          # 切换到家目录
cd                            # 切换到家目录 (同上)
cd ..                         # 切换到上级目录
cd ../..                      # 切换到上两级目录
cd -                          # 切换到上次访问的目录

# 相对路径 vs 绝对路径
cd Documents                  # 相对路径
cd /home/user/Documents       # 绝对路径

ls - 列出目录内容

# 基本用法
ls                            # 列出当前目录内容
ls /home                      # 列出指定目录内容

# 常用选项
ls -l                         # 长格式显示 (详细信息)
ls -a                         # 显示所有文件 (包括隐藏文件)
ls -la                        # 组合选项
ls -lh                        # 人性化显示文件大小
ls -lt                        # 按修改时间排序
ls -lS                        # 按文件大小排序
ls -lr                        # 逆序显示

# 输出解释
-rw-r--r-- 1 user user 1024 Dec 20 10:30 file.txt
│          │ │    │    │    │            │
│          │ │    │    │    │            └── 文件名
│          │ │    │    │    └── 修改时间
│          │ │    │    └── 文件大小
│          │ │    └── 所属组
│          │ └── 所有者
│          └── 链接数
└── 权限

2. 文件操作

touch - 创建文件

touch file.txt                # 创建空文件
touch file1.txt file2.txt     # 创建多个文件
touch "file with spaces.txt"  # 创建包含空格的文件名

cp - 复制文件

# 复制文件
cp source.txt dest.txt        # 复制文件
cp source.txt /home/user/     # 复制到指定目录
cp source.txt ../backup.txt   # 复制到上级目录并重命名

# 复制目录
cp -r source_dir dest_dir     # 递归复制目录
cp -r /home/user/docs /backup/

# 常用选项
cp -i source.txt dest.txt     # 交互模式 (覆盖前询问)
cp -u source.txt dest.txt     # 只在源文件更新时复制
cp -v source.txt dest.txt     # 显示详细信息

mv - 移动/重命名文件

# 重命名文件
mv oldname.txt newname.txt    # 重命名文件
mv old_dir new_dir            # 重命名目录

# 移动文件
mv file.txt /home/user/       # 移动文件到目录
mv file.txt /home/user/new.txt # 移动并重命名

# 移动多个文件
mv file1.txt file2.txt /backup/

# 常用选项
mv -i source.txt dest.txt     # 交互模式
mv -v source.txt dest.txt     # 显示详细信息

rm - 删除文件

# 删除文件
rm file.txt                   # 删除文件
rm file1.txt file2.txt        # 删除多个文件

# 删除目录
rm -r directory               # 递归删除目录
rm -rf directory              # 强制递归删除 (危险!)

# 常用选项
rm -i file.txt                # 交互模式 (删除前询问)
rm -v file.txt                # 显示详细信息
rm -f file.txt                # 强制删除 (不询问)

# 安全删除技巧
rm -i *.txt                   # 删除所有txt文件 (交互模式)

3. 目录操作

mkdir - 创建目录

mkdir new_directory           # 创建目录
mkdir dir1 dir2 dir3          # 创建多个目录
mkdir -p path/to/deep/dir     # 创建多级目录
mkdir -v new_directory        # 显示创建过程

# 创建复杂目录结构
mkdir -p project/{src,docs,tests}
mkdir -p project/src/{main,utils}

rmdir - 删除空目录

rmdir empty_directory         # 删除空目录
rmdir -p path/to/empty/dir    # 删除多级空目录
rmdir -v empty_directory      # 显示删除过程

文件内容查看

1. 文本文件查看

cat - 显示文件内容

cat file.txt                  # 显示文件内容
cat file1.txt file2.txt       # 显示多个文件内容
cat -n file.txt               # 显示行号
cat -b file.txt               # 只对非空行显示行号
cat -A file.txt               # 显示所有字符 (包括不可见字符)

less/more - 分页查看

less file.txt                 # 分页查看文件 (推荐)
more file.txt                 # 分页查看文件 (传统)

# less 快捷键
空格键                        # 下一页
b                            # 上一页
q                            # 退出
/pattern                     # 搜索
n                            # 下一个搜索结果
N                            # 上一个搜索结果
G                            # 跳到文件末尾
g                            # 跳到文件开头

head/tail - 查看文件头尾

head file.txt                 # 显示前10行
head -n 20 file.txt           # 显示前20行
head -c 100 file.txt          # 显示前100个字符

tail file.txt                 # 显示后10行
tail -n 20 file.txt           # 显示后20行
tail -f file.txt              # 实时监控文件变化 (常用于日志)
tail -F file.txt              # 实时监控 (文件被重新创建时继续监控)

2. 文件信息查看

file - 查看文件类型

file file.txt                 # 查看文件类型
file *                        # 查看当前目录所有文件类型
file /bin/ls                  # 查看可执行文件信息

stat - 查看文件详细信息

stat file.txt                 # 显示文件详细信息
# 输出包括:
# - 文件大小
# - 权限
# - 创建时间
# - 修改时间
# - 访问时间
# - inode号

wc - 统计文件信息

wc file.txt                   # 显示行数、单词数、字符数
wc -l file.txt                # 只显示行数
wc -w file.txt                # 只显示单词数
wc -c file.txt                # 只显示字符数
wc -m file.txt                # 只显示字符数 (多字节字符)

文本处理命令

1. 文本搜索

grep - 文本搜索

grep "pattern" file.txt       # 搜索包含pattern的行
grep -i "pattern" file.txt    # 忽略大小写搜索
grep -n "pattern" file.txt    # 显示行号
grep -v "pattern" file.txt    # 显示不包含pattern的行
grep -r "pattern" directory   # 递归搜索目录
grep -l "pattern" *.txt       # 只显示包含pattern的文件名

# 正则表达式
grep "^start" file.txt        # 搜索以start开头的行
grep "end$" file.txt          # 搜索以end结尾的行
grep "[0-9]" file.txt         # 搜索包含数字的行

find - 文件搜索

find . -name "*.txt"          # 在当前目录搜索txt文件
find /home -name "file.txt"   # 在/home目录搜索特定文件
find . -type f                # 搜索所有文件
find . -type d                # 搜索所有目录
find . -size +1M              # 搜索大于1MB的文件
find . -mtime -7              # 搜索7天内修改的文件
find . -name "*.log" -delete  # 搜索并删除log文件

2. 文本处理

sort - 排序

sort file.txt                 # 按字母顺序排序
sort -n file.txt              # 按数字排序
sort -r file.txt              # 逆序排序
sort -u file.txt              # 排序并去重
sort -k 2 file.txt            # 按第2列排序

uniq - 去重

uniq file.txt                 # 去除相邻重复行
uniq -c file.txt              # 显示重复次数
uniq -d file.txt              # 只显示重复行
uniq -u file.txt              # 只显示不重复行

# 通常与sort结合使用
sort file.txt | uniq          # 先排序再去重

cut - 提取列

cut -d ',' -f 1 file.csv      # 提取CSV文件第1列
cut -d ':' -f 1,3 /etc/passwd # 提取用户名和UID
cut -c 1-10 file.txt          # 提取每行前10个字符

系统信息查看

1. 系统状态

ps - 查看进程

ps                            # 显示当前用户进程
ps aux                        # 显示所有进程详细信息
ps -ef                        # 显示所有进程 (另一种格式)
ps -u username                # 显示特定用户进程

top - 实时进程监控

top                           # 实时显示进程信息
htop                          # 增强版top (需要安装)

# top 快捷键
q                            # 退出
k                            # 杀死进程
M                            # 按内存使用排序
P                            # 按CPU使用排序

df - 磁盘使用情况

df                            # 显示磁盘使用情况
df -h                         # 人性化显示
df -T                         # 显示文件系统类型
df /home                      # 显示特定目录所在分区

du - 目录大小

du                            # 显示当前目录大小
du -h                         # 人性化显示
du -s                         # 只显示总计
du -sh *                      # 显示当前目录下各项大小
du -sh /home/user             # 显示特定目录大小

2. 系统信息

uname - 系统信息

uname                         # 显示系统名称
uname -a                      # 显示所有系统信息
uname -r                      # 显示内核版本
uname -m                      # 显示硬件架构

whoami - 当前用户

whoami                        # 显示当前用户名
id                            # 显示用户ID和组ID
who                           # 显示已登录用户
w                             # 显示已登录用户及其活动

date - 日期时间

date                          # 显示当前日期时间
date +"%Y-%m-%d %H:%M:%S"     # 自定义格式
date -d "yesterday"           # 显示昨天日期
date -d "+1 week"             # 显示一周后日期

帮助系统

1. 获取帮助

man - 手册页

man ls                        # 查看ls命令手册
man 5 passwd                  # 查看passwd文件格式手册
man -k keyword                # 搜索包含关键字的手册

# man页面导航
空格键                        # 下一页
b                            # 上一页
q                            # 退出
/pattern                     # 搜索

help - 内置帮助

help cd                       # 查看内置命令帮助
ls --help                     # 查看命令帮助信息

which/whereis - 查找命令

which ls                      # 查找命令位置
whereis ls                    # 查找命令、源码、手册位置
type ls                       # 查看命令类型

实用技巧

1. 命令行快捷键

编辑快捷键

Ctrl + A                      # 移动到行首
Ctrl + E                      # 移动到行尾
Ctrl + U                      # 删除光标前所有内容
Ctrl + K                      # 删除光标后所有内容
Ctrl + W                      # 删除光标前一个单词
Ctrl + L                      # 清屏

历史命令

history                       # 显示命令历史
!!                            # 执行上一条命令
!n                            # 执行第n条历史命令
!string                       # 执行最近以string开头的命令
Ctrl + R                      # 搜索历史命令

2. 通配符

文件名通配符

*                             # 匹配任意字符
?                             # 匹配单个字符
[abc]                         # 匹配a、b、c中任意一个
[a-z]                         # 匹配a到z中任意一个
[!abc]                        # 匹配除a、b、c外的任意字符

# 示例
ls *.txt                      # 列出所有txt文件
ls file?.txt                  # 列出file1.txt、file2.txt等
ls [Dd]ocument*               # 列出Document或document开头的文件

3. 管道和重定向

重定向

command > file                # 输出重定向到文件 (覆盖)
command >> file               # 输出重定向到文件 (追加)
command < file                # 输入重定向从文件
command 2> file               # 错误输出重定向到文件
command &> file               # 所有输出重定向到文件

管道

command1 | command2           # 将command1的输出作为command2的输入
ls -l | grep "txt"            # 列出包含txt的文件
ps aux | grep "firefox"       # 查找firefox进程
cat file.txt | sort | uniq    # 排序并去重

总结

Linux基础命令要点:

  1. 文件操作:ls、cd、cp、mv、rm是最基础的命令
  2. 文本处理:cat、grep、sort、uniq等用于处理文本
  3. 系统监控:ps、top、df、du用于监控系统状态
  4. 帮助系统:man、help、–help获取命令帮助
  5. 效率技巧:使用Tab补全、历史命令、通配符提高效率

下一课预告

在下一课中,我们将学习Linux文件系统,包括:

  • 文件系统结构
  • 文件权限管理
  • 链接文件
  • 文件系统挂载

💡 小贴士:熟练掌握基础命令是学习Linux的关键。建议每天练习这些命令,逐渐形成肌肉记忆。使用Tab键补全可以大大提高效率!

Vue3 + TypeScript 企业级项目实战

课程推荐

Vue3 + TypeScript 企业级项目实战
Python 全栈开发工程师培训

热门课程

Python 全栈开发工程师培训

📚 文章对你有帮助?请关注我的公众号,万分感谢!

获取更多优质技术文章,第一时间掌握最新技术动态

关注公众号

关注公众号

第一时间获取最新技术文章

添加微信

添加微信

技术交流 · 问题答疑 · 学习指导

评论讨论

欢迎留下你的想法和建议