Linux基础指令
1. 基础导航命令
1.1 pwd - 显示当前所在目录
语法: pwd
功能:显示用户当前所在的绝对路径
示例:
[user@host ~]$ pwd
/home/user
1.2 cd - 切换工作目录
语法: cd [目录路径]
功能:改变当前工作目录到指定目录
常用用法:
- cd 进入当前用户的家目录
- cd ~ 同上,进入家目录
- cd / 进入根目录
- cd .. 进入上级目录
- cd - 返回上一次所在的目录
示例:
[user@host ~]$ cd /etc # 切换到/etc目录
[user@host etc]$ pwd
/etc
[user@host etc]$ cd .. # 返回上级目录
[user@host /]$ pwd
/
1.3 ls - 列出目录内容
语法: ls [选项] [目录或文件]
功能:列出目录内容或文件信息
常用选项:
- -a 列出所有文件(包括以 . 开头的隐藏文件)
- -l 列出详细信息(权限、所有者、大小、时间等)
- -h 以易读方式显示文件大小(配合-l使用)
- -d 将目录像文件一样显示(不显示目录内容)
- -t 按时间排序
- -r 反向排序
- -R 递归列出子目录内容
示例:
[user@host ~]$ ls # 列出当前目录内容
[user@host ~]$ ls -la # 列出所有文件的详细信息
[user@host ~]$ ls -lh /etc # 列出/etc目录内容,文件大小易读
[user@host ~]$ ls -d */ # 只列出目录
2. 文件操作命令
2.1 touch - 创建空文件或更新时间戳
语法: touch [选项] 文件...
功能:创建空文件或更新文件时间戳
常用选项:
-a 仅更改访问时间
-m 仅更改修改时间
示例:
[user@host ~]$ touch file.txt # 创建空文件
[user@host ~]$ touch -m file.txt # 更新文件的修改时间
2.2 mkdir - 创建目录
语法: mkdir [选项] 目录名...
功能:创建新目录
常用选项:
-p 递归创建多层目录
示例:
[user@host ~]$ mkdir newdir # 创建单个目录
[user@host ~]$ mkdir -p a/b/c/d # 递归创建多层目录
2.3 rmdir - 删除空目录
语法: rmdir [选项] 目录名
功能:删除空目录
常用选项:
-p 删除目录后,如果父目录为空也一并删除
示例:
[user@host ~]$ rmdir emptydir # 删除空目录,emptydir是目录名,不是指令
[user@host ~]$ rmdir -p a/b/c # 删除目录路径
2.4 rm - 删除文件或目录
语法: rm [选项] 文件或目录
功能:删除文件或目录
常用选项:
-f 强制删除,不提示
-i 删除前逐一询问确认
-r 递归删除目录及其内容
示例:
[user@host ~]$ rm file.txt # 删除文件
[user@host ~]$ rm -r directory/ # 递归删除目录
[user@host ~]$ rm -rf directory/ # 强制递归删除目录(危险!)
所以刚刚学的mkdir就是纯多余?
其实是因为 rmdir 只删除空目录,如果目录里有文件,它会报错并停止。这可以防止你意外删除整个目录树,安全性比rm高很多。
毕竟目录可不是单个文件,操作不慎可是boom一下全没啦!
2.5 cp - 复制文件或目录
语法: cp [选项] 源文件 目标文件
功能:复制文件或目录
常用选项:
-r 递归复制目录
-f 强制复制,覆盖不提示
-i 覆盖前询问
-p 保留文件属性
示例:
[user@host ~]$ cp file1.txt file2.txt # 复制文件
[user@host ~]$ cp -r dir1/ dir2/ # 递归复制目录
[user@host ~]$ cp -i file1.txt file2.txt # 覆盖前询问
2.6 mv - 移动或重命名文件
语法: mv [选项] 源文件 目标文件
功能:移动文件或重命名
常用选项:
-f 强制移动,覆盖不提示
-i 覆盖前询问
示例:
[user@host ~]$ mv old.txt new.txt # 重命名文件
[user@host ~]$ mv file.txt dir/ # 移动文件到目录
[user@host ~]$ mv dir1/ dir2/ # 移动或重命名目录
2.7 cat - 查看文件内容
语法: cat [选项] [文件]
功能:查看文件内容
常用选项:
-n 显示行号
-b 对非空行编号
-s 压缩连续空行
示例:
[user@host ~]$ cat file.txt # 查看文件内容
[user@host ~]$ cat -n file.txt # 显示行号查看
2.8 head - 查看文件开头部分
语法: head [选项] [文件]
功能:显示文件开头部分(默认10行)
常用选项:
-n 指定显示行数
示例:
[user@host ~]$ head file.txt # 显示前10行
[user@host ~]$ head -20 file.txt # 显示前20行
2.9 tail - 查看文件末尾部分
语法: tail [选项] [文件]
功能:显示文件末尾部分(默认10行)
常用选项:
-n 指定显示行数
-f 实时追踪文件变化(常用于查看日志)
示例:
[user@host ~]$ tail file.txt # 显示后10行
[user@host ~]$ tail -50 file.txt # 显示后50行
[user@host ~]$ tail -f logfile # 实时查看日志
不是前几行就是后几行……那我要是想看中间某一部分怎么办?
2.10 | - 管道
语法:命令1 | 命令2 | 命令3 ...
原理:
命令1 的标准输出(stdout)会被传递给 命令2 的标准输入(stdin)。
可以无限链接下去,形成一个处理流水线。
为什么要用管道?
避免中间文件:不需要临时保存数据,节省磁盘空间和时间。
模块化:每个命令只做一件事,组合起来完成复杂任务。
实时处理:数据在内存中流动,效率高。
示例:
# 假设有一个包含 100 行的文件 data.txt
# 先取前 20 行,再取这 20 行中的最后 10 行 → 得到 11~20 行
head -20 data.txt | tail -10
2.11 less - 分页查看文件
语法:less [参数] 文件
功能:在 Linux 终端中分页查看文件内容,它允许你一页一页地浏览文件,特别适合查看大文件(比如日志文件、长配置文件等),因为它不会一次性把整个文件加载到内存中。
选项:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- / 字符串:向下搜索“字符串”的功能
- ? 字符串:向上搜索“字符串”的功能
- n:重复前⼀个搜索(与 / 或 ? 有关)
- N:反向重复前⼀个搜索(与 / 或 ? 有关)
- q:quit
示例:
less -N -i /etc/passwd
-
-N:打开文件时显示每行的行号。 -
-i:在搜索时忽略大小写(例如/bash会同时匹配bash、Bash、BASH等)。
具体操作步骤(在 less 界面内)
-
查看行号:启动时已带
-N选项,每行前面会显示行号。 -
忽略大小写搜索:输入
/bash并回车,搜索 "bash"(因为-i选项,同时会匹配 "Bash"、"BASH" 等)。 -
继续向下查找:按
n键,光标移到下一个匹配行。 -
反向查找:按
N键,回到上一个匹配行。 -
向上搜索:输入
?nologin并回车,向上搜索 "nologin"。 -
重复搜索:按
n继续向上找下一个,按N反向(即向下)找。 -
退出:按
q键退出less,返回 bash 提示符。
2.12 find - 查找文件
语法: find [路径] [选项] [表达式]
功能:在目录树中查找文件
常用用法:
- find / -name filename # 按文件名查找(“/”表示在根目录下查询,查询范围为全部文件)
- find . -type f # 查找普通文件
- find . -type d # 查找目录
- find . -size +10M # 查找大于10M的文件
- find . -mtime -7 # 查找7天内修改的文件
示例:
[user@host ~]$ find /home -name "*.txt" # 查找.txt文件
[user@host ~]$ find . -type f -size +100k # 查找大于100k的文件
2.13 grep - 文本搜索
语法: grep [选项] 模式 [文件]
功能:在文件中搜索指定模式
常用选项:
- -i 忽略大小写
- -n 显示行号
- -r 递归搜索目录
- -v 反向选择(显示不包含模式的行)
示例:
[user@host ~]$ grep "error" logfile # 搜索包含error的行
[user@host ~]$ grep -r "TODO" . # 递归搜索当前目录
[user@host ~]$ grep -n "warning" file.txt # 显示行号搜索
3.系统信息命令
3.1 date - 显示日期时间
语法: date [选项] [+格式]
功能:显示或设置系统时间
常用格式:
- %Y-%m-%d 年-月-日
- %H:%M:%S 时:分:秒
- %s 时间戳
示例:
[user@host ~]$ date # 显示当前时间
[user@host ~]$ date "+%Y-%m-%d %H:%M" # 自定义格式
[user@host ~]$ date +%s # 显示时间戳
3.2 cal - 显示日历
语法: cal [选项] [月份] [年份]
功能:显示日历
常用选项:
- -3 显示上个月、当前月、下个月
- -y 显示全年日历
示例:
[user@host ~]$ cal # 显示当月日历
[user@host ~]$ cal 2024 # 显示2024年日历
[user@host ~]$ cal -3 # 显示三个月日历
3.3 which - 查找可执行文件位置
语法:which [文件]
功能:查找可执行文件位置
示例:
[user@host ~]$ which ls # 查找ls命令位置
4.其他实用命令
4.1 man - 查看命令手册
Linux的命令有很多参数,我们不可能全记住,可以通过查看练级手册(man函数)获取帮助。
语法:man[选项] 命令
常用选项:
- 1 是普通的命令
- 2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
- 3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备⽂件
- 4 略
- 5 是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
- 6 是给游戏留的,由各个游戏自己定义
- 7 是附件还有⼀些变量,比如像environ这种全局变量在这里就有说明
- 8是系统管理用的命令,这些命令只能由root使用,如ifconfig
- 9 略
[whb@bite-alicloud test]$ man printf # 查看printf指令(没错,printf也是⼀个指令)
[whb@bite-alicloud test]$ man fork # 查看系统调⽤,默认没有这个指令,man就⾃动去2号⼿册查找
[whb@bite-alicloud test]$ man 2 frok # 查看系统调⽤
[whb@bite-alicloud test]$ man 3 printf # 查看C库函数
[whb@bite-alicloud test]$ man 7 signal # 查看变量
[whb@bite-alicloud test]$ man 7 environ
[whb@bite-alicloud test]$ man man # 查看man⼿册⾃⼰
4.2 tar - 打包压缩
语法: tar [选项] 文件
功能:打包/解包文件
常用选项:
- -c 创建归档
- -x 解压归档
- -z 使用gzip压缩/解压
- -j 使用bzip2压缩/解压
- -v 显示过程
- -f 指定文件名
- -C 解压到指定目录
示例:
将 mydocs 目录打包成一个 .tar 文件(打包,不压缩):
tar -cvf mydocs.tar mydocs/
通常我们会用 gzip 压缩,生成 .tar.gz 文件(打包并压缩):
tar -czvf mydocs.tar.gz mydocs/
查看包内内容(不解包)
tar -tvf mydocs.tar
解包(解压 .tar 文件)
tar -xvf mydocs.tar
解压到指定目录
tar -xzvf mydocs.tar.gz -C /tmp/restore
4.3 zip/unzip - 压缩解压
大多数 Linux 发行版默认可能未安装,需手动安装:
# CentOS / RHEL
yum install -y zip unzip
4.3.1 zip - 压缩
语法:zip [选项] 压缩包名.zip 要压缩的文件或目录...
功能:压缩/解压
常用选项:
- -r 递归处理目录(压缩文件夹时必须加)
- -e 加密压缩,会提示输入密码
- -q 静默模式,不输出信息
- -m 压缩后删除原文件(移动文件到压缩包)
- -u 更新压缩包:只添加新增或修改过的文件
- -d 从压缩包中删除指定文件
- -l 显示版权信息(不常用)
压缩单个文件
zip myfile.zip file1.txt
压缩目录(必须加 -r)
zip -r mydocs.zip mydocs/
4.3.2 zip - 解压
语法:unzip [选项] 压缩包名.zip [-d 解压目录]
功能:解压
常用选项:
- -d 目录 解压到指定目录(默认当前目录)
- -l 列出压缩包内容(不解压)
- -v 更详细地列出内容(包括压缩比等)
- -o 覆盖已存在的文件而不提示
- -n 不覆盖已存在的文件
- -q 静默解压
- -P 密码 使用密码解压加密 ZIP
示例:
解压到当前目录
unzip mydocs.zip
解压到指定目录(目录不存在会自动创建)
unzip mydocs.zip -d /tmp/restore
查看压缩包内容(不解压)
unzip -l mydocs.zip
学会了就给博主点个赞呗?(✪ω✪)
———(如有问题,欢迎评论区提问)———
更多推荐






所有评论(0)