常用Linux命令
以下是常用的一些Linux命令,帮助您进行系统操作、文件管理、故障排查等工作。
1. 系统信息与用户管理
-
hostname: 查看当前系统的主机名。 -
who: 查看当前登录到服务器的所有用户信息。- 参数名词解释: 无。该命令会列出登录用户名、登录终端、登录时间以及登录来源IP地址。
- 补充: Linux是多用户多任务系统,允许多个用户同时登录操作。
- 参数名词解释: 无。该命令会列出登录用户名、登录终端、登录时间以及登录来源IP地址。
-
whoami(who am i): 显示当前操作用户的用户名。- 参数名词解释: 无。
- 补充: 用于确认当前是以哪个用户身份在进行操作。
-
ip address(或ip a): 查看和管理网络接口的IP地址信息。- 参数名词解释: 无。
- 补充: 这个命令会显示所有网络接口的详细信息,包括IP地址、MAC地址、接口状态等。在车载测试中,常用于确认网络连接状态和IP配置。提到的
127.0.0.1是本地回环地址,通常指本机。
-
ping [网址或IP地址]: 检测与目标主机之间的网络连通性。- 参数名词解释:
[网址或IP地址]: 您想要检测连通性的目标主机域名或IP地址。
- 补充:
ping命令通过发送ICMP Echo Request包到目标主机并等待ICMP Echo Reply包来判断网络是否通畅。输出信息中包含发送的字节数、响应时间 (TTL, time to live) 和丢包率等。按Ctrl + C可以终止ping命令的执行。
- 参数名词解释:
-
history: 查看当前用户执行过的历史命令记录。- 参数名词解释: 无。
- 补充: 可以方便地查找和重复执行之前使用过的命令。
2. 目录与文件操作
-
pwd(print working directory): 打印当前所在的完整工作目录路径。- 参数名词解释: 无。
- 补充: 帮助用户了解当前在文件系统中的位置。
-
ls(list): 列出目录中的文件和子目录。- 常用参数:
- 无参数: 列出当前目录下的文件和目录名(不包括隐藏文件)。
-a: 列出所有文件和目录,包括以"."开头的隐藏文件。-l: 以长列表格式显示文件和目录的详细信息,包括权限、所有者、大小、修改时间等。ll: 通常是ls -l的别名,功能相同,以长列表格式显示详细信息,并且可能包含隐藏文件。
- 文件颜色区分 (常见配置)
: - 白色: 普通文件 (如文本文件, Word文档, Excel表格)。
- 蓝色: 目录 (文件夹)。
- 绿色: 可执行文件 (如脚本)。
- 红色: 压缩包文件。
-l输出详解: - 第一部分 (1位): 文件类型 (
-普通文件,d目录,l链接文件,b设备文件等)。 - 第二部分 (3位): 文件所有者的权限 (r:读, w:写, x:执行, -:无权限)。
- 第三部分 (3位): 文件所属组的权限。
- 第四部分 (3位): 其他用户的权限。
- 数字: 硬链接数。
- 用户名: 文件所有者。
- 组名: 文件所属组。
- 文件大小: 以字节为单位。
- 修改时间: 文件最后修改的时间。
- 文件名: 文件或目录的名称。
- 权限数字表示: r=4, w=2, x=1。例如,rwx = 4+2+1 = 7。
- 第一部分 (1位): 文件类型 (
- 常用参数:
-
cd [目录路径](change directory): 切换当前工作目录。- 参数名词解释:
[目录路径]: 目标目录的路径,可以是绝对路径或相对路径。
- 常用用法:
cd [目录名]: 进入当前目录下的指定子目录。cd /: 切换到根目录。cd ..: 切换到上一级目录。cd ../..: 切换到上两级目录。cd ~或cd: 切换到当前用户的主目录。
- 路径解释
: - 绝对路径: 从根目录 (
/) 开始的完整路径。 - 相对路径: 从当前目录开始的路径。
- 绝对路径: 从根目录 (
- 注意:
cd命令只能进入目录,不能进入文件。
- 参数名词解释:
-
mkdir [目录名](make directory): 创建新的目录。- 常用参数:
mkdir [目录名1] [目录名2] ...: 同时创建多个目录。-p: 递归创建目录,如果父目录不存在则一并创建。例如mkdir -p A/B/C会创建A、A/B、A/B/C三级目录。
- 常用参数:
-
touch [文件名]: 创建新的空文件,或者更新已有文件的时间戳。- 常用参数:
touch [文件名1] [文件名2] ...: 同时创建多个文件。
- 注意:
touch命令不能像mkdir -p那样递归创建文件所在的目录。
- 常用参数:
-
rm [文件名](remove): 删除文件。- 常用参数:
-f(force): 强制删除,不进行提示。-r(recursive): 递归删除目录及其内容。 此参数非常危险,请谨慎使用!rm -rf [目录名]: 强制递归删除目录及其所有内容,极度危险,使用前务必确认!rm -r *: 删除当前目录下的所有文件和子目录 (通配符*代表所有)。
- 注意:
rm直接删除文件,通常无法恢复,请务必小心。
- 常用参数:
-
mv [源文件/目录] [目标文件/目录](move): 移动文件或目录,或者重命名文件或目录。- 用法:
- 重命名:
mv [旧名称] [新名称]。如果新名称与旧名称在同一目录下,则为重命名。 - 移动:
mv [源路径/文件] [目标路径]。将文件或目录从源路径移动到目标路径。移动后,源位置不再存在该文件或目录。
- 重命名:
- 用法:
-
cp [源文件] [目标文件/目录](copy): 复制文件。- 常用参数:
-r: 递归复制目录及其内容。当需要复制整个文件夹时使用。
- 用法:
cp [源文件] [新文件名]: 复制文件并命名为新文件名。cp [源文件] [目标目录]: 将文件复制到目标目录下,文件名不变。cp -r [源目录] [目标目录]: 复制整个目录到目标位置。
- 注意: 复制操作会在目标位置创建一个新的副本,原始文件或目录仍然存在于原位置。
- 常用参数:
3. 文件内容查看
-
cat [文件名](concatenate): 查看文件的全部内容,一次性显示在终端。- 常用参数:
-n: 显示行号,包括空行。-b: 显示行号,但不包括空行。
- 注意:
cat不适用于查看非常大的文件,因为它会一次性加载所有内容。cat不能用于查看目录内容,会报错。
- 常用参数:
-
tac [文件名](cat anacagram): 反向查看文件的内容,从最后一行开始显示。- 参数名词解释: 无。
- 补充: 与
cat命令的输出顺序相反。
-
head [文件名]: 查看文件的开头部分,默认显示前10行。- 常用参数:
-n [行数](或直接-数字): 指定显示的行数。例如head -n 5 [文件名]或head -5 [文件名]显示前5行。
- 常用参数:
-
tail [文件名]: 查看文件的末尾部分,默认显示最后10行。- 常用参数:
-n [行数](或直接-数字): 指定显示的行数。例如tail -n 5 [文件名]或tail -5 [文件名]显示后5行。会包含空白行。-f: 实时跟踪文件的末尾内容。当文件内容增加时,会动态显示新增的内容。常用于查看实时生成的日志文件。按Ctrl + C退出。
- 常用参数:
-
more [文件名]: 分页查看文件内容。- 操作:
- 空格键: 向下翻一页。
- 回车键: 向下滚动一行。
q: 退出查看。Ctrl + C: 强制退出。
- 空格键: 向下翻一页。
- 补充: 屏幕底部会显示当前查看进度的百分比。
- 操作:
-
less [文件名]: 功能更强大的分页查看器,允许向上和向下翻页。- 操作:
- 空格键 / Page Down: 向下翻一页。
- Page Up: 向上翻一页。
- 方向键上/下: 向上/下滚动一行。
/关键字: 向下搜索关键字。?关键字: 向上搜索关键字。n: 跳转到下一个搜索结果。N: 跳转到上一个搜索结果。q: 退出查看。Ctrl + C: 强制退出。
- 空格键 / Page Down: 向下翻一页。
- 操作:
4. VI/VIM 编辑器
vi [文件名]或vim [文件名]: Linux 内置的文本编辑器,用于创建或修改文件内容。- VIM与VI的区别: VIM (Vi IMproved) 是 VI 的增强版,兼容所有VI指令,并提供了更多功能,如语法高亮、多级撤销等。VIM 可以适用于多个操作系统平台。
- 模式:
- 命令模式 (Command Mode): 默认进入的模式,可以移动光标、删除文本、复制粘贴等。
- 插入模式 (Insert Mode): 用于输入文本。
- 从命令模式进入插入模式的常用按键:
i: 在光标当前位置前插入。a: 在光标当前位置后追加。o: 在当前行下方插入一个新行。O: 在当前行上方插入一个新行。
- 从命令模式进入插入模式的常用按键:
- 末行模式 (Last Line Mode / ex Mode): 用于执行保存、退出、搜索替换等命令。
- 从命令模式按
:进入。
- 从命令模式按
- 常用命令 (命令模式下):
- 移动光标:
h(左),j(下),k(上),l(右), 方向键。 gg: 跳转到文件第一行。G(Shift + g): 跳转到文件最后一行。dd: 删除当前行。yy: 复制当前行。p: 粘贴。u: 撤销上一步操作。Ctrl + r: 重做。
- 移动光标:
- 常用命令 (末行模式下):
:w: 保存文件。:q: 退出编辑器 (如果文件已修改且未保存,会提示)。:wq或:x: 保存并退出。:q!: 强制退出,不保存修改。:w [新文件名]: 另存为新文件。:/关键字: 向下查找关键字。:?关键字: 向上查找关键字。:n: 跳转到下一个搜索结果。:N: 跳转到上一个搜索结果。:%s/旧内容/新内容/g: 全局替换文本 (g表示全局替换当前行所有匹配,若无g则只替换第一个)。:n1,n2s/旧内容/新内容/g: 在第n1行到n2行之间替换文本。:n1,n2s/旧内容/新内容/c: 在第n1行到n2行之间替换文本,每次替换前询问确认。:1,$s/旧内容/新内容/g: 从第一行到最后一行全局替换 ($代表最后一行)。:set nu: 显示行号。:set nonu: 取消显示行号。
- 注意:
- 如果VI/VIM出现异常无法退出,可以尝试按
Ctrl + Z强制退出 (这通常是将进程置于后台,可能需要kill命令来彻底终止)。 - 快捷键如
dd,gg,G等仅在命令模式(查看模式)下生效,在编辑(插入)模式下会作为文本输入。
- 如果VI/VIM出现异常无法退出,可以尝试按
- VIM与VI的区别: VIM (Vi IMproved) 是 VI 的增强版,兼容所有VI指令,并提供了更多功能,如语法高亮、多级撤销等。VIM 可以适用于多个操作系统平台。
5. 文件压缩与解压缩
-
tar: 用于打包和解包.tar文件,常与压缩命令结合使用 (如 gzip, bzip2)。- 压缩 (打包并用gzip压缩为
.tar.gz或.tgz):tar -zcvf [压缩包名.tar.gz] [要压缩的文件/目录列表]- 参数解释:
-z: 通过 gzip 进行压缩/解压缩。-c: 创建新的归档文件 (压缩)。-v: 显示详细过程。-f: 指定归档文件名。[压缩包名.tar.gz]: 你要创建的压缩包的名称。[要压缩的文件/目录列表]: 一个或多个要压缩的文件或目录,用空格隔开。
- 参数解释:
- 解压缩 (解压
.tar.gz或.tgz文件):tar -zxvf [压缩包名.tar.gz]- 参数解释:
-x: 从归档文件中提取文件 (解压缩)。
- 参数解释:
- 解压缩到指定目录:
tar -zxvf [压缩包名.tar.gz] -C [目标目录]- 参数解释:
-C [目标目录]: 指定解压缩到的目标目录 (注意是大写C)。
- 参数解释:
- 查看压缩包内容 (不解压):
tar -tzvf [压缩包名.tar.gz]- 参数解释:
-t: 列出归档文件中的内容。
- 参数解释:
- 压缩 (打包并用gzip压缩为
-
zip/unzip: 用于处理.zip格式的压缩文件。- 压缩:
zip [压缩包名.zip] [要压缩的文件/目录列表]- 参数解释:
- 如果压缩目录,会自动包含目录内的所有文件和子目录。
- 参数解释:
- 解压缩:
unzip [压缩包名.zip]- 补充: 如果目标位置已存在同名文件,
unzip通常会询问是否替换。
- 补充: 如果目标位置已存在同名文件,
- 解压缩到指定目录:
unzip [压缩包名.zip] -d [目标目录]- 参数解释:
-d [目标目录]: 指定解压缩到的目标目录 (注意是小写d)。
- 参数解释:
- 查看压缩包内容 (不解压):
unzip -l [压缩包名.zip]- 参数解释:
-l: 列出压缩包内的文件列表。
- 参数解释:
- 压缩:
6. 输入/输出重定向与管道
-
输出重定向
>和>>: 命令 > 文件名: 将命令的输出结果覆盖写入到指定文件中。如果文件不存在则创建,如果文件存在则其原有内容会被覆盖。命令 >> 文件名: 将命令的输出结果追加到指定文件的末尾。如果文件不存在则创建,如果文件存在则新内容会添加到原有内容的后面。- 示例:
history > my_commands.txt(将历史命令覆盖写入文件),ls -l >> file_list.txt(将文件列表追加到文件末尾)。
-
管道符
|: 命令1 | 命令2: 将命令1的输出结果作为命令2的输入。- 作用: 可以将多个命令连接起来,实现更复杂的功能。
- 示例:
head -n 10 file.txt | tail -n 5(查看文件前10行中的后5行,即第6到第10行)。cat file.txt | grep "keyword"(在文件内容中搜索包含"keyword"的行)。
7. 文件查找
find [路径] [选项] [表达式]: 在指定路径下查找文件。- 常用选项与表达式:
[路径]: 开始查找的目录路径。例如/(根目录),.(当前目录)。-name "文件名": 按文件名查找 (区分大小写)。可以使用通配符,如*.txt查找所有txt文件。文件名通常用单引号或双引号括起来,以防止特殊字符被shell解释。- 通配符解释
: *关键字*或*关键字或关键字*: 模糊查询,*代表任意多个字符。*A*: 文件名中包含A的。A*: 文件名以A开头的。*A: 文件名以A结尾的。
- 通配符解释
-iname "文件名": 按文件名查找 (不区分大小写)。-type [文件类型]: 按文件类型查找。f: 普通文件。d: 目录。l: 符号链接。
-size [大小]: 按文件大小查找。+100M: 大于100MB的文件。-1G: 小于1GB的文件。100M: 等于100MB的文件。- 单位:
c(字节),k(KB),M(MB),G(GB)。
-user [用户名]: 按文件所有者查找。-group [组名]: 按文件所属组查找。-mtime [天数]: 按文件修改时间查找。-[天数]: [天数]天内修改过的文件。+[天数]: [天数]天前修改过的文件。[天数]: 正好在[天数]天前修改过的文件。
-exec [命令] {} \;: 对查找到的每个文件执行指定的命令。{}代表查找到的文件名。
- 示例:
find /tmp -name "*.log" -type f -size +10M(在/tmp目录下查找所有大于10MB的.log普通文件)。 - 注意: 在根目录 (
/) 下执行find命令可能会花费较长时间,因为它会遍历整个文件系统。如果遇到 "Permission denied" 错误,通常是因为当前用户没有权限访问某些目录。
- 常用选项与表达式:
8. 快捷键
Ctrl + L: 清屏,清除终端当前显示的内容,但历史内容仍然可以通过向上滚动查看。Ctrl + C: 中断当前正在执行的命令或程序。Ctrl + Z: 将当前正在执行的命令放到后台并暂停 (挂起)。可以使用fg命令恢复到前台,或bg命令使其在后台继续运行 (如果程序支持),或kill命令终止。Tab: 命令或路径自动补全。在输入命令或文件名/路径时,按Tab键可以尝试自动补全,如果存在多个匹配项,按两次Tab通常会列出所有匹配项。