Linux 基础命令
本章将介绍 Linux 最基本的命令,帮助你开始在命令行中操作。
命令格式
Linux 命令的基本格式:
命令 [选项] [参数]
- 命令:要执行的程序名称
- 选项:修改命令行为的标志,通常以
-或--开头 - 参数:命令操作的对象
示例:
ls -l /home
# ls 是命令
# -l 是选项(显示详细信息)
# /home 是参数(要查看的目录)
解释:选项可以组合使用,如 ls -la 等同于 ls -l -a。有些选项需要参数,如 ls -w 80 设置输出宽度为 80。
获取帮助
man 命令
man(manual)显示命令的手册页:
man ls # 查看 ls 命令的手册
man 5 passwd # 查看第 5 节的 passwd(配置文件格式)
手册页章节:
- 1:用户命令
- 2:系统调用
- 3:库函数
- 4:特殊文件
- 5:配置文件格式
- 6:游戏
- 7:杂项
- 8:系统管理命令
操作方式:
空格:向下翻页b:向上翻页/关键词:搜索n:下一个搜索结果q:退出
--help 选项
大多数命令支持 --help 选项显示简要帮助:
ls --help
cp --help
info 命令
info 显示更详细的帮助信息:
info ls
info coreutils # 查看 coreutils 包的所有命令
目录操作
pwd - 显示当前目录
pwd
# 输出:/home/user
解释:pwd(print working directory)显示当前所在的绝对路径。在终端中操作时,时刻知道当前位置很重要。
cd - 切换目录
cd /home/user # 切换到指定目录
cd Documents # 切换到当前目录下的 Documents
cd .. # 切换到上级目录
cd ~ # 切换到用户主目录
cd # 不带参数,切换到主目录
cd - # 切换到上一个目录
cd ../.. # 切换到上两级目录
解释:
~表示当前用户的主目录,如/home/username.表示当前目录..表示上级目录-表示上一个目录,常用于在两个目录间快速切换
mkdir - 创建目录
mkdir test # 创建单个目录
mkdir -p a/b/c # 创建多层目录(父目录不存在时自动创建)
mkdir dir1 dir2 dir3 # 同时创建多个目录
mkdir -m 755 mydir # 创建时指定权限
解释:
-p(parents)选项非常实用,可以一次性创建多层嵌套目录-m选项可以设置目录权限,如755表示所有者可读写执行,其他人可读执行
rmdir - 删除空目录
rmdir test # 删除空目录
rmdir -p a/b/c # 删除多层空目录
解释:rmdir 只能删除空目录。要删除非空目录,需使用 rm -r。
文件浏览
ls - 列出目录内容
ls # 列出当前目录内容
ls /home # 列出指定目录内容
ls -l # 长格式显示(详细信息)
ls -a # 显示所有文件(包括隐藏文件)
ls -h # 人性化显示文件大小
ls -t # 按修改时间排序
ls -r # 反向排序
ls -R # 递归显示子目录
ls -la # 组合选项:详细信息 + 所有文件
ls -lh # 详细信息 + 人性化大小
输出解析:
-rw-r--r-- 1 user group 4096 Mar 15 10:30 file.txt
| 字段 | 含义 |
|---|---|
-rw-r--r-- | 文件类型和权限 |
1 | 硬链接数 |
user | 所有者 |
group | 所属组 |
4096 | 文件大小(字节) |
Mar 15 10:30 | 修改时间 |
file.txt | 文件名 |
文件类型(第一个字符):
-:普通文件d:目录l:符号链接c:字符设备b:块设备
解释:ls 是最常用的命令之一。-l 选项显示详细信息,-h 选项让文件大小更易读(显示 KB、MB 等),-a 选项显示以 . 开头的隐藏文件。
tree - 树形显示目录
tree # 树形显示当前目录
tree -L 2 # 只显示 2 层深度
tree -d # 只显示目录
tree -a # 显示隐藏文件
解释:tree 命令以树形结构显示目录,比 ls -R 更直观。如果系统没有安装,可以使用 sudo apt install tree(Ubuntu)或 sudo yum install tree(CentOS)安装。
文件查看
cat - 显示文件内容
cat file.txt # 显示文件内容
cat -n file.txt # 显示行号
cat -b file.txt # 显示行号(空行不计)
cat file1 file2 # 连接显示多个文件
cat file1 file2 > file3 # 合并文件
解释:cat 适合查看小文件。对于大文件,建议使用 less 或 more。
less - 分页查看
less file.txt # 分页查看文件
操作方式:
空格:向下翻页b:向上翻页/关键词:向下搜索?关键词:向上搜索n:下一个搜索结果N:上一个搜索结果g:跳到文件开头G:跳到文件末尾q:退出
解释:less 是查看大文件的最佳选择,它不会一次性加载整个文件到内存,支持前后翻页和搜索。
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 /var/log/syslog # 实时查看日志
解释:
head查看文件开头,常用于确认文件格式tail -f是查看日志的神器,实时显示新增内容
wc - 统计文件
wc file.txt # 显示行数、单词数、字节数
wc -l file.txt # 只显示行数
wc -w file.txt # 只显示单词数
wc -c file.txt # 只显示字节数
wc -m file.txt # 只显示字符数
解释:wc(word count)常用于统计代码行数或日志条目数。
文件查找
find - 查找文件
find /home -name "*.txt" # 按名称查找
find . -type f # 查找当前目录下所有文件
find . -type d # 查找当前目录下所有目录
find . -size +100M # 查找大于 100M 的文件
find . -mtime -7 # 查找 7 天内修改过的文件
find . -user root # 查找属于 root 用户的文件
find . -perm 755 # 查找权限为 755 的文件
find /tmp -name "*.log" -delete # 查找并删除
find . -name "*.txt" -exec grep "hello" {} \; # 对结果执行命令
解释:
find功能强大,支持按名称、类型、大小、时间等多种条件查找-exec选项可以对查找结果执行命令,{}代表找到的文件\;表示命令结束
which 和 whereis - 查找命令位置
which ls # 查找命令的位置
which python # 查找 Python 解释器位置
whereis ls # 查找命令的二进制、源码、手册位置
locate - 快速查找
locate file.txt # 快速查找文件
locate -i FILE.txt # 忽略大小写
locate -n 10 "*.txt" # 只显示前 10 个结果
解释:locate 比 find 快得多,因为它使用预先建立的数据库。但数据库每天更新一次,新文件可能找不到。可以使用 sudo updatedb 手动更新数据库。
其他常用命令
echo - 输出文本
echo "Hello World" # 输出文本
echo -n "不换行" # 不换行输出
echo -e "第一行\n第二行" # 解释转义字符
echo $HOME # 输出变量值
echo "内容" > file.txt # 输出重定向到文件(覆盖)
echo "内容" >> file.txt # 输出重定向到文件(追加)
date - 显示日期时间
date # 显示当前日期时间
date +"%Y-%m-%d" # 格式化输出:2024-03-15
date +"%H:%M:%S" # 格式化输出:10:30:45
date +"%Y-%m-%d %H:%M:%S" # 组合格式
常用格式:
%Y:四位年份%m:两位月份%d:两位日期%H:小时(24 小时制)%M:分钟%S:秒
clear - 清屏
clear # 清除终端屏幕
Ctrl + L # 快捷键,同样可以清屏
history - 命令历史
history # 显示命令历史
history 20 # 显示最近 20 条
!100 # 执行第 100 条历史命令
!! # 执行上一条命令
!ls # 执行最近的 ls 开头的命令
Ctrl + R # 搜索历史命令
alias - 命令别名
alias # 显示所有别名
alias ll='ls -la' # 设置别名
alias rm='rm -i' # 设置交互式删除
unalias ll # 删除别名
持久化别名:将别名添加到 ~/.bashrc 文件中使其永久生效:
echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrc
type - 查看命令类型
type ls # ls is aliased to `ls --color=auto'
type cd # cd is a shell builtin
type python # python is /usr/bin/python
解释:type 可以判断命令是别名、内置命令、还是外部程序。
命令快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + C | 终止当前命令 |
Ctrl + D | 退出当前 Shell |
Ctrl + L | 清屏 |
Ctrl + A | 光标移到行首 |
Ctrl + E | 光标移到行尾 |
Ctrl + U | 删除光标前所有内容 |
Ctrl + K | 删除光标后所有内容 |
Ctrl + R | 搜索历史命令 |
Tab | 自动补全 |
Tab Tab | 显示所有可能的补全 |
解释:掌握这些快捷键可以大大提高命令行操作效率。Tab 键自动补全是最常用的,按两次可以显示所有匹配项。
小结
本章我们学习了:
- Linux 命令的基本格式
- 获取帮助的方法(man、--help、info)
- 目录操作命令(pwd、cd、mkdir、rmdir)
- 文件浏览命令(ls、tree)
- 文件查看命令(cat、less、head、tail、wc)
- 文件查找命令(find、which、whereis、locate)
- 其他常用命令(echo、date、clear、history、alias)
- 命令行快捷键
练习
- 在主目录下创建一个名为
practice的目录 - 在
practice目录下创建多层子目录a/b/c - 使用
ls命令查看/etc目录的内容 - 使用
find命令查找/var/log目录下所有.log文件 - 使用
history命令查看你最近执行的命令 - 设置一个别名
la为ls -la