惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
T
Tenable Blog
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
P
Proofpoint News Feed
A
About on SuperTechFans
P
Privacy International News Feed
月光博客
月光博客
雷峰网
雷峰网
S
Secure Thoughts
博客园 - 叶小钗
博客园 - 聂微东
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
The Cloudflare Blog
SecWiki News
SecWiki News
The Hacker News
The Hacker News
V
Vulnerabilities – Threatpost
罗磊的独立博客
A
Arctic Wolf
阮一峰的网络日志
阮一峰的网络日志
Know Your Adversary
Know Your Adversary
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
小众软件
小众软件
有赞技术团队
有赞技术团队
博客园 - 司徒正美
T
Tailwind CSS Blog
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
L
Lohrmann on Cybersecurity

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 仿真钓鱼页面窃取用户凭证 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation Windows核心系统进程链与svchost深度解析 企业测试环境的弱口令需要整改吗 AI对话笔记-模板 网络安全行业招聘需求与技术能力分析 银狐木马技术原理分析与检测技术 SIEM-安全信息和事件管理 AI笔记 转载 专业备考⏳ 其他杂项🧶 Markdown 原生图片 知道创宇技能表 Prompt越狱手册 deepseek使用指南 清华大学 deepseek提问方法 markdown基本语法 数据湖:它们是什么?为什么您的组织需要一个? GitHub Codespaces velociraptor(迅猛龙)快速上手 学习windows快捷命令 软考中的一些概念 学习ssh基本使用 Linux系统换源输入法和包管理器 DC-8靶机 Metasploitable3下载与安装 信息收集方法及流程 防守之道 开发运维 免责声明 密码喷射攻击:防范攻击你需要知道的事项 密码学中的哈希解释:它的工作原理、算法和实际用途 应急响应术语 各种报错积累 漏洞挖掘思路 收藏夹 RDP和360星图使用 windows入侵排查 Linux入侵排查 Redis日志分析 Linux安全加固 windows安全加固 windows日志ID速查 中间件加固 数据库安全加固 windows系统提权 MySQL注入复盘 学习git版本控制工具的概念与命令 学习Web Shell 学习Linux命令 java环境配置 学习python基础语法特性解题笔记 学习Mysql基础知识 windows权限维持 学习网络及安全的一些术语 PHP代码审计 Linux系统提权 MSSQL注入复盘 Linux权限维持 命令执行和反序列化 逻辑漏洞 upload-labs 框架漏洞 学习PHP语法特性 XXE&SSRF CSRF 文件上传 Google Hacking XSS-lab XSS实验 学习URL请求后的通信过程 FOFA
学习常用 150 个Linux命令
卷卷 · 2025-12-06 · via 卷卷

⌨️ Linux 命令

学习shell的第一步:当然是从Linux命令入手了。

⭐常用 150 个Linux命令⭐

命令功能说明
线上查询及帮助命令 (2 个)
man查看命令帮助,命令的词典,更复杂的还有 info,但不常用。
help查看 Linux 内置命令的帮助,比如 cd 命令。
文件和目录操作命令 (18 个)
ls全拼 list,功能是列出目录的内容及其内容属性信息。
cd全拼 change directory,功能是从当前工作目录切换到指定的工作目录。
cp全拼 copy,其功能为复制文件或目录。
find查找的意思,用于查找目录及目录下的文件。
mkdir全拼 make directories,其功能是创建目录。
mv全拼 move,其功能是移动或重命名文件。
pwd全拼 print working directory,其功能是显示当前工作目录的绝对路径。
rename用于重命名文件。
rm全拼 remove,其功能是删除一个或多个文件或目录。
rmdir全拼 remove empty directories,功能是删除空目录。
touch创建新的空文件,改变已有文件的时间戳属性。
tree功能是以树形结构显示目录下的内容。
basename显示文件名或目录名。
dirname显示文件或目录路径。
chattr改变文件的扩展属性。
lsattr查看文件扩展属性。
file显示文件的类型。
md5sum计算和校验文件的 MD5 值。
查看文件及内容处理命令(21 个)
cat全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。
tactac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。
more分页显示文件内容。
less分页显示文件内容,more 命令的相反用法。
head显示文件内容的头部。
tail显示文件内容的尾部。
cut将文件的每一行按指定分隔符分割并输出。
split分割文件为不同的小片段。
paste按行合并文件内容。
sort对文件的文本内容排序。
uniq去除重复行。oldboy
wc统计文件的行数、单词数或字节数。
iconv转换文件的编码格式。
dos2unix将 DOS 格式文件转换成 UNIX 格式。
diff全拼 difference,比较文件的差异,常用于文本文件。
vimdiff命令行可视化文件比较工具,常用于文本文件。
rev反向输出文件内容。
grep/egrep过滤字符串,三剑客老三。
join按两个文件的相同字段合并。
tr替换或删除字符。
vi/vim命令行文本编辑器。
文件压缩及解压缩命令(4 个)
tar打包压缩。oldboy
unzip解压文件。
gzipgzip 压缩工具。
zip压缩工具。
信息显示命令(11 个)
uname显示操作系统相关信息的命令。
hostname显示或者设置当前系统的主机名。
dmesg显示开机信息,用于诊断系统故障。
uptime显示系统运行时间及负载。
stat显示文件或文件系统的状态。
du计算磁盘空间使用情况。
df报告文件系统磁盘空间的使用情况。
top实时显示系统资源使用情况。
free查看系统内存。
date显示与设置系统时间。
cal查看日历等时间信息。
搜索文件命令(4 个)
which查找二进制命令,按环境变量 PATH 路径查找。
find从磁盘遍历查找文件或目录。
whereis查找二进制命令,按环境变量 PATH 路径查找。
locate从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。
用户管理命令(10 个)
useradd添加用户。
usermod修改系统已经存在的用户属性。
userdel删除用户。
groupadd添加用户组。
passwd修改用户密码。
chage修改用户密码有效期限。
id查看用户的 uid,gid 及归属的用户组。
su切换用户身份。
visudo编辑 / etc/sudoers 文件的专属命令。
sudo以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。
基础网络操作命令(11 个)
telnet使用 TELNET 协议远程登录。
ssh使用 SSH 加密协议远程登录。
scp全拼 secure copy,用于不同主机之间复制文件。
wget命令行下载文件。
ping测试主机之间网络的连通性。
route显示和设置 linux 系统的路由表。
ifconfig查看、配置、启用或禁用网络接口的命令。
ifup启动网卡。
ifdown关闭网卡。
netstat查看网络状态。
ss查看网络状态。
深入网络操作命令(9 个)
nmap网络扫描命令。
lsof全名 list open files,也就是列举系统中已经被打开的文件。
mail发送和接收邮件。
mutt邮件管理命令。
nslookup交互式查询互联网 DNS 服务器的命令。
dig查找 DNS 解析过程。
host查询 DNS 的命令。
traceroute追踪数据传输路由状况。
tcpdump命令行的抓包工具。
有关磁盘与文件系统的命令(16 个)
mount挂载文件系统。
umount卸载文件系统。
fsck检查并修复 Linux 文件系统。
dd转换或复制文件。
dumpe2fs导出 ext2/ext3/ext4 文件系统信息。
dumpext2/3/4 文件系统备份工具。
fdisk磁盘分区命令,适用于 2TB 以下磁盘分区。
parted磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。
mkfs格式化创建 Linux 文件系统。
partprobe更新内核的硬盘分区表信息。
e2fsck检查 ext2/ext3/ext4 类型文件系统。
mkswap创建 Linux 交换分区。
swapon启用交换分区。
swapoff关闭交换分区。
sync将内存缓冲区内的数据写入磁盘。
resize2fs调整 ext2/ext3/ext4 文件系统大小。
系统权限及用户授权相关命令(4 个)
chmod改变文件或目录权限。
chown改变文件或目录的属主和属组。
chgrp更改文件用户组。
umask显示或设置权限掩码。
查看系统用户登陆信息的命令(7 个)
whoami显示当前有效的用户名称,相当于执行 id -un 命令。
who显示目前登录系统的用户信息。
w显示已经登陆系统的用户列表,并显示用户正在执行的指令。
last显示登入系统的用户。
lastlog显示系统中所有用户最近一次登录信息。
users显示当前登录系统的所有用户的用户列表。
finger查找并显示用户信息。
内置命令及其它(19 个)
echo打印变量,或直接输出指定的字符串
printf将结果格式化输出到标准输出。
rpm管理 rpm 包的命令。
yum自动化简单化地管理 rpm 包的命令。
watch周期性的执行给定的命令,并将命令的输出以全屏方式显示。
alias设置系统别名。
unalias取消系统别名。
date查看或设置系统时间。
clear清除屏幕,简称清屏。
history查看命令执行的历史纪录。
eject弹出光驱。
time计算命令执行时间。
nc功能强大的网络工具。
xargs将标准输入转换成命令行参数。
exec调用并执行指令的命令。
export设置或者显示环境变量。
unset删除变量或函数。
type用于判断另外一个命令是否是内置命令。
bc命令行科学计算器
系统管理与性能监视命令 (9 个)
chkconfig管理 Linux 系统开机启动项。
vmstat虚拟内存统计。
mpstat显示各个可用 CPU 的状态统计。
iostat统计系统 IO。
sar全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU 中断和网络等性能数据。
ipcs用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
ipcrm用来删除一个或更多的消息队列、信号量集或者共享内存标识。
strace用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
ltrace命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。
关机 / 重启 / 注销和查看系统信息的命令(6 个)
shutdown关机。
halt关机。
poweroff关闭电源。
logout退出当前登录的 Shell。
exit退出当前登录的 Shell。
Ctrl+d退出当前登录的 Shell 的快捷键。
进程管理相关命令(15 个)
bg将一个在后台暂停的命令,变成继续执行 (在后台执行)。
fg将后台中的命令调至前台继续运行。
jobs查看当前有多少在后台运行的命令。
kill终止进程。
killall通过进程名终止进程。
pkill通过进程名终止进程。
crontab定时任务命令。
ps显示进程的快照。
pstree树形显示进程。
nice/renice调整程序运行的优先级。
nohup忽略挂起信号运行指定的命令。
pgrep查找匹配条件的进程。
runlevel查看系统当前运行级别。
init切换运行级别。
service启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

shell 传递参数

参数处理说明
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$-显示Shell使用的当前选项,与set命令功能相同。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

shell 运算符

1️⃣ 算术运算符

下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
+加法expr $a + $b 结果为 30。
-减法expr $a - $b 结果为 -10。
*乘法expr $a \* $b 结果为 200。
/除法expr $b / $a 结果为 2。
%取余expr $b % $a 结果为 0。
=赋值a=$b 将把变量 b 的值赋给 a。
==相等。用于比较两个数字,相同则返回 true。[ $a == $b ] 返回 false。
!=不相等。用于比较两个数字,不相同则返回 true。[ $a != $b ] 返回 true。

注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。

2️⃣ 关系运算符

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
-eq检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 false。
-ne检测两个数是否不相等,不相等返回 true。[ $a -ne $b ] 返回 true。
-gt检测左边的数是否大于右边的,如果是,则返回 true。[ $a -gt $b ] 返回 false。
-lt检测左边的数是否小于右边的,如果是,则返回 true。[ $a -lt $b ] 返回 true。
-ge检测左边的数是否大于等于右边的,如果是,则返回 true。[ $a -ge $b ] 返回 false。
-le检测左边的数是否小于等于右边的,如果是,则返回 true。[ $a -le $b ] 返回 true。

注意:关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

3️⃣ 布尔运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
!非运算,表达式为 true 则返回 false,否则返回 true。[ ! false ] 返回 true。
-o或运算,有一个表达式为 true 则返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a与运算,两个表达式都为 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。

4️⃣ 逻辑运算符

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
&&逻辑的 AND[[ $a -lt 100 && $b -gt 100 ]] 返回 false
||逻辑的 OR[[ $a -lt 100 || $b -gt 100 ]] 返回 true

5️⃣ 字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":

运算符说明举例
=检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。
!=检测两个字符串是否相等,不相等返回 true。[ $a != $b ] 返回 true。
-z检测字符串长度是否为0,为0返回 true。[ -z $a ] 返回 false。
-n检测字符串长度是否为0,不为0返回 true。[ -n $a ] 返回 true。
str检测字符串是否为空,不为空返回 true。[ $a ] 返回 true。

6️⃣ 文件测试运算符

文件测试运算符用于检测 Unix 文件的各种属性。

属性检测描述如下:

操作符说明举例
-b file检测文件是否是块设备文件,如果是,则返回 true。[ -b $file ] 返回 false。
-c file检测文件是否是字符设备文件,如果是,则返回 true。[ -c $file ] 返回 false。
-d file检测文件是否是目录,如果是,则返回 true。[ -d $file ] 返回 false。
-f file检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。[ -f $file ] 返回 true。
-g file检测文件是否设置了 SGID 位,如果是,则返回 true。[ -g $file ] 返回 false。
-k file检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。[ -k $file ] 返回 false。
-p file检测文件是否是有名管道,如果是,则返回 true。[ -p $file ] 返回 false。
-u file检测文件是否设置了 SUID 位,如果是,则返回 true。[ -u $file ] 返回 false。
-r file检测文件是否可读,如果是,则返回 true。[ -r $file ] 返回 true。
-w file检测文件是否可写,如果是,则返回 true。[ -w $file ] 返回 true。
-x file检测文件是否可执行,如果是,则返回 true。[ -x $file ] 返回 true。
-s file检测文件是否为空(文件大小是否大于0),不为空返回 true。[ -s $file ] 返回 true。
-e file检测文件(包括目录)是否存在,如果是,则返回 true。[ -e $file ] 返回 true。

shell 流程控制

  • if 语句:

    • 单分支

    • 双分支

      if 条件表达式; then
      	命令
      else
      	命令
      fi
    • 多分支

      if 条件表达式; then
       	命令
      elif 条件表达式; then
      	命令
      else
      	命令
      fi
  • for 语句:

    for 变量名 in 取值列表; do
    	命令
    已完成
  • while 语句:

  • case 语句:

    case 模式名 in
    	模式 1)
    		命令
    		;;
    	模式 2)
    		命令
    		;;
    	*)
    		不符合以上模式执行的命令
    esac