这些Linux命令很重要
本文主要讲解Linux的基本命令,可以用于日常操作
目录
- 这些Linux命令很重要
- 一、Linux 版本与 LAMP
- 1.1 Linux 的版本
- 1.2 Linux 的特点与图形界面
- 1.3 LAMP
- 二、Linux 的介绍
- 2.1 物理机 / 虚拟机
- 2.2 IO 控制类型(硬盘接口与设备名)
- 2.3 命令窗口技巧
- 三、系统基础与概念
- 3.1 Linux 系统的组成
- 3.2 虚拟机快照
- 3.3 目录结构与命名
- 3.4 设备文件
- 3.5 Shell 与命令提示符
- 四、命令格式与通用快捷键
- 4.1 命令通用格式
- 4.2 通用快捷键
- 五、帮助与系统信息命令
- 5.1 帮助命令
- 5.2 系统信息命令
- 5.3 查看 IP 与远程登录
- 六、文件与目录操作
- 6.1 查看目录内容 —— ls
- 6.2 目录切换 —— cd
- 路径与家目录
- 6.3 查看当前工作目录 —— pwd
- 6.4 创建文件 —— touch / echo / cat
- 6.5 查看文件内容 —— cat / more / less / head / tail
- 6.6 创建 / 删除目录 —— mkdir / rmdir
- 6.7 起别名 —— alias / unalias
- 6.8 复制 —— cp
- 6.9 移动 / 改名 —— mv
- 6.10 删除 —— rm
- 七、查找、过滤与统计
- 7.1 查找命令位置 —— which / whereis
- 7.2 快速查找 —— locate
- 7.3 功能最全的查找 —— find
- 7.4 在文件内容中查找 —— grep
- 7.5 grep 正则表达式
- 7.6 数量统计 —— wc
一、Linux 版本与 LAMP
1.1 Linux 的版本
- 核心版本:完成操作系统功能的核心版本,如
Linux 2.6.30。 - 发行版本:在核心代码的基础上,打包一些应用程序、功能程序构成的版本。
- 红帽系列:RedHat、CentOS、Fedora。
- Debian 系列:Ubuntu、Debian。
1.2 Linux 的特点与图形界面
- Linux 大多安装在服务器端,使用命令界面,效率高。
- Linux 的图形界面,本质上只是运行了一个程序。
1.3 LAMP
- 一组常用开源软件组合:Linux +Apache +MySQL +PHP。
二、Linux 的介绍
2.1 物理机 / 虚拟机
- 物理机:PC;物理操作系统:Windows。
- 虚拟机:虚拟的计算机设备;
VM OS:虚拟机的操作系统。
2.2 IO 控制类型(硬盘接口与设备名)
- 硬盘连接类型:
- IDE → 设备名
hd + 字母 + 数字 - SCSI → 设备名
sd + 字母 + 数字
- IDE → 设备名
- Linux 中一切皆文件,设备文件一般存放在
/dev目录。 - 字母从
a开始代表第一块硬盘(如hda);数字从1开始代表分区(如hda1)。 - 例如:
hda= IDE 接口第一块硬盘;hda1= IDE 接口第一块硬盘的第一个分区。
2.3 命令窗口技巧
| 快捷键 | 功能 |
|---|---|
Ctrl + Shift + + | 放大窗口 |
Ctrl + - | 缩小窗口 |
Ctrl + L | 清屏 |
| ↑ / ↓ | 调出历史命令 |
Tab | 自动补全命令名或文件名 |
Ctrl + C | 终止当前命令的执行 |
三、系统基础与概念
3.1 Linux 系统的组成
- Linux 系统内核:提供系统最核心功能,如调度 CPU、管理内存等。
- 系统级应用程序:出厂自带程序,供用户快速上手操作系统。
3.2 虚拟机快照
- 作用:将当前虚拟机状态保存,之后可通过快照恢复到保存时的状态。
- 操作:关机/不关机均可 → 右键虚拟机左侧栏该虚拟机 →快照 → 拍摄快照。
3.3 目录结构与命名
- Linux没有盘符,只有一个根目录
/,所有文件都在它下面;层级用/描述(如/usr/local)。 - 文件命名没有严格使用扩展名,但部分文件用扩展后缀表示特定类型。
- 命名时不建议用
+、-、.开头:+:命令中通常代表赋予权限。-:命令中通常代表剥夺权限。.:代表隐藏文件。
3.4 设备文件
- Linux 中一切皆文件(包括硬件设备),设备文件存放在
/dev目录。
3.5 Shell 与命令提示符
- 命令终端对应Shell(外壳):一个命令解释程序,也是一种程序设计语言。
- 命令提示符:
[root@localhost /]#root:超级用户;localhost:主机名称;/:当前工作目录;#:超级用户提示符。[test@localhost /]$:普通用户提示符($)。
四、命令格式与通用快捷键
4.1 命令通用格式
命令[选项][参数]- 选项可以有多个,通常以
-开头,多个选项可以连在一起写(如-al)。 - 选项和参数的位置可以调整。
4.2 通用快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + C | 强制停止当前进程 |
Ctrl + D | 退出或登出(EOF) |
Ctrl + A | 光标移动到命令开始 |
Ctrl + E | 光标移动到命令结束 |
五、帮助与系统信息命令
5.1 帮助命令
man 命令名(manual):查看命令功能最全面的帮助手册,按q退出。info 命令名:详细介绍命令使用方法,支持 PageUp/PageDown,按q退出。命令名 --help:简洁介绍命令用法及各个选项作用。history:显示所有使用过的命令历史记录。
5.2 系统信息命令
| 命令 | 功能 |
|---|---|
uname [-a -r] | 显示正在使用的 Linux 系统信息(-a 全部,-r 发行号) |
date [+%T / +%D] | 当前日期;+%T时:分:秒,+%Dmm/dd/yy |
cal [年] | 日历;cal 年显示该年所有日历 |
bc | 内置计算器,输入表达式计算,quit退出 |
wc [-c -l -w] | 统计(-c 字节数,-l 行数,-w 字数) |
reboot | 重启系统 |
shutdown [-h now] | 关机;-h now马上关机(n 分钟后关机用-h +n) |
5.3 查看 IP 与远程登录
ifconfig:查看当前服务器的 IP 地址。putty:(软件)可实现远程登录。
六、文件与目录操作
6.1 查看目录内容 —— ls
ls[-a-l-i-R-h][路径]-a(all):列出全部文件,包含隐藏文件。-l:以详细信息形式列出,等价于ll。-i:显示 inode 节点号。-R:递归显示。-h:与-l一起使用,显示文件大小单位。- 颜色区分:普通文件黑色、可执行文件绿色、目录蓝色、链接文件浅蓝色、设备文件黄色、压缩文件红色。
详细信息(每个文件对应 10 个字符)
-rw-r--r--- 第 1 位:文件类型(
d目录、-普通文件、l链接、c字符设备、b块设备)。 - 第 2–4 位:所属者权限;第 5–7 位:所属组权限;第 8–10 位:其他用户权限。
rwx:r 读、w 写、x 执行;对应位置有字母则有该权限,为横线则无。
ls-ld/test# 查看目录本身的详细信息ls -l字段示例:
drwxr-xr-x. 2 root root 4096 Sep 22 2024 yum.repos.d 类型权限字符 链接数 所属者 所属组 大小 日期 文件名6.2 目录切换 —— cd
cd/# 切换到根目录cd..# 切换到上一级目录cd-# 切换到刚才所在的目录cd~# 切换到当前用户的家目录cd路径# 切换路径路径与家目录
- 绝对路径:从
/开始描述文件位置。 - 相对路径:从当前所在目录开始描述;
.当前目录,..上一级目录。 - 每个用户都有一个家目录:root 的家目录是
/root;其他用户的家目录在/home,每创建一个用户,会在/home下产生同名目录(如用户 zs 的家目录/home/zs)。
6.3 查看当前工作目录 —— pwd
pwd# 打印当前工作目录6.4 创建文件 —— touch / echo / cat
touch文件名...# 创建一个或多个空文件(如 touch a b c)echo"字符串">文件名# 创建具有简单内容的文件cat>文件名# 输入内容,创建复杂内容的文件>覆盖写入(原内容清空);>>追加(原内容保留)。- 例:
echo "hello everyone" > a。
6.5 查看文件内容 —— cat / more / less / head / tail
cat文件名# 显示文件内容cat-n文件名# 显示内容并加行号cat-b文件名# 加行号但忽略空行catfile1 file2>newfile# 合并文件more文件名# 分屏显示,空格翻页,enter 下一行less文件名# 分屏,支持 PageUp/PageDown,按 q 退出head-n文件名# 显示前 n 行tail-n文件名# 显示后 n 行(如 tail -5 /etc/passwd)tail -f:持续跟踪文件尾部(常看日志)。
more和less区别:
- more只能向下翻,不能向上
- less能上翻也能下翻
6.6 创建 / 删除目录 —— mkdir / rmdir
mkdir目录名...# 创建目录,可同时创建多个,用空格隔开# eg: mkdir a b 创建a,b两个文件夹mkdir-paaa/bbb/ccc/ddd# 递归创建目录结构rmdir空目录名# 删除空目录,只能删除空目录,不是空目录报错rmdir-paaa/bbb/ccc/ddd# 删除空目录结构6.7 起别名 —— alias / unalias
aliasll='ls -l'# 创建别名 llunaliastst# 取消别名6.8 复制 —— cp
cp源文件 目标- 目标文件不存在 → 另存为,
- 目标文件存在 → 替换。
-r:源为目录时递归复制该目录下所有文件和子目录。
6.9 移动 / 改名 —— mv
mv源文件 目标- 目标位置是文件名 → 重命名;目标位置是目录 → 移动。
- 例:
mv a.txt b/2.txt移动到 b 并改名为 2.txt。
6.10 删除 —— rm
rm文件或目录-r:递归删除目录及其中所有内容。-f:强制删除,不询问。- 复制、移动、删除都支持通配符:
*:代表任意多个字符。?:代表任意一个字符。
七、查找、过滤与统计
7.1 查找命令位置 —— which / whereis
which命令名# 查看命令位置和别名信息whereis命令名# 查看命令所在目录和帮助文档位置- 例:
ls命令存放在/bin/ls。 - 内置 shell 命令(如
cd、exit)不在磁盘上,无法用命令查找。
7.2 快速查找 —— locate
locate文件名# 快速查找(配合 updatedb 使用)updatedb# 建立文件索引库- 索引库文件:
/var/lib/mlocate/mlocate.db。 - 该库只记录上次执行 updatedb 时的索引,之后创建的文件搜索不到,需先
updatedb。
7.3 功能最全的查找 —— find
find[路径][选项]文件或目录名[动作]| 选项 | 功能 |
|---|---|
-name | 按名称查找,支持通配符;-iname忽略大小写 |
-user 用户名 | 按文件所属者查找 |
-group 组名 | 按文件所属组查找 |
-type 类型 | 按类型:f 普通文件、d 目录、b 块设备、c 字符设备、l 链接 |
size [+/-]大小 | 按大小:+ 大于,- 小于,无符号等于 |
-mtime | 内容被修改的时间(modify) |
-atime | 访问时间(读取文件) |
-ctime | 权限被修改的时间(change) |
-mmin/-amin/-cmin | 同 -mtime,但单位为分钟 |
示例:
find/-name'a.txt'# 精确查找find/-name'a???.txt'# 通配符(3 个任意字符)find/-name'*.txt'# 所有 .txtfind/-size+10M# 根下大于 10M 的文件find/-size-1k# 小于 1k 的文件find/-mtime-7# 7 天内内容被修改过的文件find/-mtime+1-mtime-2# 昨天到今天修改过的文件find/!-typed# 根下所有非目录文件find.-size+10M-o-userroot# 大于 10M 或所属者为 root多个条件组合:
-a:并且-o:或者!:非
动作 -exec:对查找到的内容执行命令
find.-name"*.txt"-execrm-f{}\;# 删除找到的内容find.-name"*.txt"-execcp{}/test\;# 复制找到的内容{}:代表 find 找到的每一个内容;\;:结束标志。
7.4 在文件内容中查找 —— grep
grep[选项]要查找的内容 文件名| 选项 | 功能 |
|---|---|
-v | 显示不符合要求的各行 |
-c | 只显示符合要求的行数 |
-n | 显示符合要求的行及行号 |
-i | 不区分大小写 |
-r | 递归查找目录及子目录下所有文件 |
- 可对目录下所有文件查找:
grep "data" /etc/*。 - 常配合管道使用:
ls /etc | grep "sys"(管道下面会提到)。
7.5 grep 正则表达式
| 写法 | 含义 |
|---|---|
[0-9] | 匹配某个范围 |
^ | 匹配行首 |
$ | 匹配行尾 |
. | 匹配任意一个字符 |
示例:
grep'[0-9a-zA-Z]24'a.txt# 开头是数字或字母,后面跟 24grep'^a'a.txt# 以 a 开头的行grep'5$'a.txt# 以 5 结尾的行grep'x...y'a.txt# 以 x 开头 y 结尾,中间 3 个字符7.6 数量统计 —— wc
wc[-c-m-l-w]文件路径-c:字节数;-m:字符数;-l:行数;-w:单词数。- 不加选项时,结果依次为:行数、单词数、字节数