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基础命令要点:
- 文件操作:ls、cd、cp、mv、rm是最基础的命令
- 文本处理:cat、grep、sort、uniq等用于处理文本
- 系统监控:ps、top、df、du用于监控系统状态
- 帮助系统:man、help、–help获取命令帮助
- 效率技巧:使用Tab补全、历史命令、通配符提高效率
下一课预告
在下一课中,我们将学习Linux文件系统,包括:
- 文件系统结构
- 文件权限管理
- 链接文件
- 文件系统挂载
💡 小贴士:熟练掌握基础命令是学习Linux的关键。建议每天练习这些命令,逐渐形成肌肉记忆。使用Tab键补全可以大大提高效率!
📚 文章对你有帮助?请关注我的公众号,万分感谢!
获取更多优质技术文章,第一时间掌握最新技术动态

关注公众号
第一时间获取最新技术文章

添加微信
技术交流 · 问题答疑 · 学习指导
评论讨论
欢迎留下你的想法和建议