Linux 基础命令

一、命令行基础与语法

命令结构

Linux命令遵循特定的语法结构:

命令 [选项] [参数]
  • 命令:要执行的操作或程序名称

  • 选项:修改命令行为的标志,通常以---开头

  • 参数:命令操作的对象,如文件名、目录名等

示例:

ls -l /home/user  # ls是命令,-l是选项,/home/user是参数

选项类型

Linux命令支持两种主要类型的选项:

  1. 短选项:单字母选项,前面加一个连字符-

  2. 长选项:完整的单词选项,前面加两个连字符--

获取帮助

Linux提供了多种获取命令帮助的方式:

  1. --help 选项:大多数命令都支持此选项,提供简要用法说明

  2. man 命令:查看命令的完整手册页(manual page)

  3. info 命令:某些命令提供更详细的info文档

  4. whatis 命令:显示命令的简短描述

  5. apropos 命令:搜索与关键词相关的命令


二、Shell 特殊符号与元字符

数据流重定向

标准流概念

Linux系统为每个进程提供了三个标准流:

  1. 标准输入 (stdin, 文件描述符0):默认来自键盘的输入

  2. 标准输出 (stdout, 文件描述符1):默认输出到终端屏幕

  3. 标准错误 (stderr, 文件描述符2):默认输出错误信息到终端屏幕

输出重定向

重定向标准输出

重定向标准错误

同时重定向标准输出和标准错误

示例:

输入重定向

示例:

特殊重定向技巧

丢弃输出

示例:

重定向到标准错误

tee命令:同时输出到屏幕和文件

示例:

文件描述符操作

复制文件描述符

示例:

创建自定义文件描述符

重定向与管道的结合使用

重定向和管道可以结合使用,创建强大的命令组合:

示例:


管道(Pipe)

| 将一个命令的标准输出作为另一个命令的标准输入。

示例:

命令连接符(Command Operators)

  • &&:逻辑与。

  • ||:逻辑或。

  • ;:顺序执行。

后台执行(Background Execution)

&:将命令放入后台执行,立即释放当前终端。

示例:

进程管理相关移步->

三、文件与目录管理

ls - 列出目录内容

选项:

  • -l:详细信息(长格式显示)

  • -a:显示所有文件,包括隐藏文件

  • -d:查看目录本身的权限和大小信息

  • -i:显示inode号码

  • -r:反向排序(降序)

  • -t:按修改时间排序

  • -h:人性化显示文件大小(与-l一起使用)

示例:

cd - 切换目录

特殊路径:

  • cd ~cd:返回用户家目录

  • cd -:返回上一个工作目录

  • cd ..:返回上级目录

pwd - 显示当前工作目录

mkdir - 创建目录

选项:

  • -p:创建多级目录(父目录不存在时一并创建)

示例:

rmdir - 删除空目录

cp - 复制文件和目录

选项:

  • -r:递归复制(用于目录)

  • -i:交互模式(覆盖前提示)

  • -v:显示复制过程

mv - 移动/重命名文件和目录

mv 默认是 mv -i 的别名。

选项:

  • -i:交互模式(覆盖前提示)

  • -v:显示移动过程

rm - 删除文件和目录

rm 默认是 rm -i 的别名。

选项:

  • -r:递归删除(用于目录)

  • -f:强制删除(不提示)

  • -i:交互模式(删除前提示)

find - 查找文件

选项:

  • -type [文件类型] :按分类查找

  • -name [文件名]:按文件名查找

  • -iname [文件名]:忽略大小写按文件名查找

  • -mtime [+/-天数]:modify,按修改时间查找,+[n] n 天前,-[n] n 天内

  • -size [+/-大小]:按文件大小查询

  • -and:选项之间的默认关系,省略

  • -or:或

  • -maxdepth:最大深度

示例:

find 命令的后续处理

方法 1 - xargs 参数传递:

常规单参数命令通过 xargs 直接传递(xargs 后的别名命令将失效)

find 命令结果交给 mv、cp 处理:

方法 2 - exec 执行命令:

方法 3 - 反引号或$()

stat - 文件状态信息{#stat}


三、文件内容查看与操作

cat - 查看文件内容

选项:

  • -n:显示行号

  • -A:显示所有字符(包括特殊字符)

less - 分页查看文件内容

选项:

  • -N:显示行号

常用快捷键:

  • 空格/f:下一页

  • b:上一页

  • /:搜索内容

  • n:下一个匹配项

  • N:上一个匹配项

  • g:跳到文件开头

  • G:跳到文件末尾

  • q:退出

head - 显示文件开头部分

选项:

  • -n 数字:显示前n行(可简写为-数字

tail - 显示文件末尾部分

选项:

  • -n 数字:显示后n行(可简写为-数字

  • -f:实时追踪文件变化(常用于查看日志)

  • -F:类似于-f,但会在文件被移动或重命名后继续追踪

diff - 比较文件差异

4.6 tr - 替换单个字符


四、文本处理

grep - 文本过滤{#grep}

选项:

  • -r:递归搜索目录中的文件(常用)

  • -v:反向选择(常用,显示不匹配的行)

  • -i:忽略大小写

  • -n:显示行号

  • -w:全字匹配

  • -c:统计单词出现的个数

  • -o:只显示匹配的具体内容

  • -E:使用扩展正则,或者使用egrep命令

  • -A:显示过滤到内容的后n行(包含过滤行)

  • -B:显示过滤到内容的前n行

  • -C:显示过滤到内容的前后各n行

wc - 统计文本

选项:

  • -l:统计行数

  • -w:统计单词数

  • -c:统计字节数

  • -L:显示最长行的长度

sort - 排序文本

选项:

  • -r:反向排序(降序)

  • -n:按数值排序

  • -k:指定排序的列

  • -u:去重(只输出唯一的行)

uniq - 去除重复行

选项:

  • -c:统计每行重复次数

  • -d:只显示重复的行

  • -u:只显示不重复的行

注意:uniq只能去除相邻的重复行,通常与sort配合使用

示例:

xargs - 参数传递

选项:

  • -n 数字:每次传递指定数量的参数

  • -I {}:指定替换字符串

示例:

tac - 按行倒序

示例:

sed - 流编辑器{#sed}

选项:

  • -n:取消默认输出

  • -i:直接对源文件操作,不输出到标准输出

  • -r:扩展正则支持

模式(找谁):

  • n:指定数字,表示过滤指定第 n 行

  • n,m:区间过滤,过滤第 n 行至第 m 行

  • $:末尾行

  • /Regex/:模糊过滤,找到指定内容的

  • /Regex1/,/Regex2/:区间过滤,过滤表达式1至表达式2之间的内容

动作:

  • p:print,打印,一般结合-n使用

  • d:delete,删除

  • i:在某一行的上一行插入新内容

  • a:在某一行的下一行插入新内容

  • c:替换某一行内容

  • w:找到的行保存到文件

  • s#Regex1#Regex2#g:全局替换,分隔符还可以用/

示例:

awk - 编程{#awk}

选项:

  • -F:指定分隔符

内置变量

  • NR:存放着文件中每行的行号

  • NF:最后一列的列号

  • FILENAME:当前文件名

  • FS:字段分隔符,默认是空格和制表符

  • RS:行分隔符,用于分割每一行,默认是换行符

  • OFS:输出字段的分隔符,用于打印时分割字段,默认为空格

  • OFMT:数字输出的格式,默认为 %.6g

  • BEGIN{}读取文件之前执行的动作

  • END{}读取文件之前执行的动作

示例:


五、系统信息与监控

df - 磁盘空间查看

选项:

  • -h:人性化显示大小(KB, MB, GB)

  • -i:显示inode使用情况

du - 文件/目录大小查看

选项:

  • -h:人性化显示大小

  • -s:只显示总大小(不显示子目录)

  • --max-depth=N:指定显示深度

示例:

free - 内存使用情况

选项:

  • -h:人性化显示大小

  • -s 秒数:持续监控(指定间隔秒数)

uptime - 系统运行时间{#uptime}

w - 在线用户信息

whoami - 当前用户名

lscpu - CPU信息

type - 命令类型检查

last - 登录日志(按次)

lastlog - 登录日志(按用户)


七、其他实用命令

which - 命令路径查找

dd - 数据转换与拷贝

选项:

  • bs=大小:设置块大小

  • count=数量:设置拷贝块数

示例:


八、命令组合与管道

示例:

最后更新于