Pixiv - KiraraShss
Linux相关命令
3671 字
18 分钟
Linux相关命令
系统基础与信息查询
用于查看系统状态、内核信息、运行时间等基础信息。
| 命令 | 核心作用 | 高频用法与示例 |
|---|---|---|
| uname | 查看系统内核信息 | uname -a 查看全部系统信息;uname -r 查看内核版本 |
| hostname | 查看 / 设置主机名 | hostname 查看当前主机名;hostnamectl set-hostname new-name 永久修改主机名(systemd 系统) |
| date | 查看 / 设置系统时间 | date 查看当前时间;date -s ""2026-04-04 12:00:00"" 设置系统时间 |
| uptime | 查看系统运行时长与负载 | uptime显示开机时长、登录用户数、1/5/15 分钟系统平均负载 |
| who/w | 查看当前登录用户 | who 简单显示登录用户;w 详细显示用户及正在执行的操作 |
| dmesg | 查看系统内核开机日志 | grep error 排查开机硬件 / 系统错误 |
| history | 查看命令执行历史 | history 查看全部历史;!! 执行上一条命令;!n 执行第 n 条历史命令;history -c 清空历史 |
文件与目录操作(最高频核心)
Linux 一切皆文件,该类命令是日常操作的基础。
-
路径与目录导航
Terminal window pwd # 显示当前工作目录的绝对路径cd / # 切换到根目录cd ~ # 切换到当前用户家目录cd .. # 切换到上一级目录cd - # 切换到上一次所在的目录cd /usr/local # 切换到指定绝对路径 -
目录与文件创建 / 删除
Terminal window mkdir test # 创建单级目录mkdir -p a/b/c # 递归创建多级目录touch test.txt # 创建空文件,或修改文件时间戳touch a.txt b.txt # 批量创建空文件rmdir test # 删除空目录(仅能删空目录)rm test.txt # 删除文件rm -rf test_dir # 强制递归删除目录及所有内容(高危!严禁执行 rm -rf /) -
目录内容查看
Terminal window ls # 列出当前目录内容ls -l # 长格式显示(权限、所有者、大小、时间等,别名ll默认支持)ls -lha # 显示所有文件(含隐藏文件)+ 人性化大小单位ls -lht # 按修改时间倒序排列 -
文件 / 目录复制与移动
Terminal window cp test.txt /tmp/ # 复制文件到指定目录cp -r test_dir /tmp/ # 递归复制目录(必须加-r)mv test.txt new.txt # 重命名文件mv test.txt /tmp/ # 移动文件到指定目录 -
文件查找
Terminal window # 语法:find [路径] [条件] [动作]find / -name "test.txt" # 全局按文件名精确查找find . -name "*.log" # 当前目录查找所有.log结尾的文件find . -type f -size +100M # 查找当前目录大于100M的文件find . -mtime -7 # 查找7天内修改过的文件find . -name "*.tmp" -delete # 查找并删除.tmp文件 -
链接创建
Terminal window ln -s /target/path /link/path # 创建软链接(符号链接,类似Windows快捷方式)ln /target/file /link/file # 创建硬链接(仅限文件,不能跨分区)
文件内容查看与编辑
用于查看日志、修改配置、文本过滤等核心场景。
-
文件内容查看
Terminal window cat test.txt # 查看小文件全部内容,-n 显示行号more test.log # 分页查看大文件,向下翻页,q退出less test.log # 分页神器,支持上下翻页、/关键词搜索,q退出(大日志首选)head -20 test.txt # 查看文件前20行(默认10行)tail -50 test.txt # 查看文件最后50行(默认10行)tail -f test.log # 实时追踪文件新增内容(看日志必备) -
文本过滤与统计
Terminal window # grep 正则搜索过滤,高频核心grep "error" test.log # 查找包含error的行grep -i "error" test.log # 忽略大小写匹配grep -v "info" test.log # 反向匹配,排除含info的行grep -n "root" /etc/passwd # 显示匹配行的行号grep -rn "keyword" /etc/ # 递归搜索目录下所有文件的关键词# wc 统计wc -l test.txt # 统计文件行数wc -w test.txt # 统计单词数ls | wc -l # 统计当前目录文件数量 -
vim/vi 文本编辑器
Linux 系统标配编辑器,核心分为 3 种模式,高频操作如下:
Terminal window vim test.txt # 打开/创建文件,默认进入【命令模式】- 命令模式 → 插入模式:按
i(光标前插入)、a(光标后插入)、o(下一行新建) - 插入模式 → 命令模式:按
ESC - 命令模式 → 底行模式:按
:
底行模式高频操作:
Terminal window :w # 保存文件:q # 退出:wq # 保存并退出:q! # 强制退出不保存:%s/old/new/g # 全局替换old为new命令模式高频操作:
Terminal window dd # 删除当前行yy # 复制当前行p # 粘贴u # 撤销上一步/关键词 # 向下搜索?关键词 # 向上搜索 - 命令模式 → 插入模式:按
权限管理
Linux 多用户权限核心,文件权限分为所有者 (u)、所属组 (g)、其他人 (o),权限对应:读 (r=4)、写 (w=2)、执行 (x=1)。
# chmod 修改文件/目录权限chmod 755 test.txt # 数字法:所有者rwx(7),组/其他人rx(5)chmod 644 test.txt # 常用文件权限:所有者rw,其他只读chmod -R 755 test_dir # 递归修改目录下所有文件权限chmod u+x test.sh # 符号法:给所有者添加执行权限chmod o-w test.txt # 给其他人移除写权限
# chown 修改所有者和所属组chown user:group test.txt # 修改文件所有者为user,所属组为groupchown -R nginx:nginx /data # 递归修改目录所有者
# chgrp 修改所属组chgrp group test.txt
# umask 查看/设置默认权限掩码umask 022 # 新建文件默认644,目录默认755进程管理
用于排查服务状态、资源占用、进程启停。
# 进程查看ps -ef # 查看全格式所有进程ps aux # 查看所有进程,含CPU/内存占用ps aux | grep nginx # 过滤指定进程top # 实时动态查看进程资源(任务管理器),P按CPU排序,M按内存排序,q退出htop # top增强版,界面更友好(需额外安装)pstree # 树状显示进程父子关系
# 进程终止kill 1234 # 正常终止PID为1234的进程(信号15)kill -9 1234 # 强制杀死进程(信号9,慎用)killall nginx # 按进程名终止所有相关进程
# 进程后台运行与优先级nohup ./test.sh & # 后台运行脚本,关闭终端不终止,输出到nohup.outjobs # 查看当前终端后台任务fg %1 # 把1号后台任务调到前台bg %1 # 把暂停的任务放到后台继续运行nice -n 10 ./test.sh # 启动时指定进程优先级(-20最高,19最低)renice -5 -p 1234 # 修改已运行进程的优先级网络管理
用于网络连通性排查、端口监听、接口测试、防火墙配置。
# 网卡与IP配置ip addr # 查看所有网卡IP地址(替代ifconfig)ip link set eth0 up/down # 启用/禁用网卡ip route # 查看系统路由表ifconfig # 老版本网卡配置命令(需安装net-tools)
# 连通性与链路排查ping baidu.com # 测试网络连通性ping -c 4 192.168.1.1 # 指定ping4次traceroute baidu.com # 路由追踪,排查网络链路mtr baidu.com # 增强版路由追踪(结合ping+traceroute)telnet 192.168.1.1 80 # 测试TCP端口连通性
# 端口与网络连接查看ss -tulnp # 查看所有监听的TCP/UDP端口,显示PID/进程名(netstat替代)ss -tulnp | grep 80 # 过滤指定端口netstat -tulnp # 传统端口查看命令(需net-tools)
# 域名解析host baidu.com # 域名解析查询nslookup baidu.com # 域名解析详细信息
# 网页/接口请求与文件下载curl https://baidu.com # 命令行访问URL,测试接口curl -I https://baidu.com # 查看响应头curl -O https://example.com/file.zip # 下载文件curl -X POST -d "name=test" https://api.example.com # 发送POST请求wget https://example.com/file.zip # 命令行下载文件wget -c https://example.com/file.zip # 断点续传下载
# 防火墙管理## firewalld(CentOS/RHEL/Rocky 7+)firewall-cmd --state # 查看防火墙状态firewall-cmd --list-ports # 查看已开放端口firewall-cmd --add-port=80/tcp --permanent # 永久开放80端口firewall-cmd --reload # 重载防火墙规则使配置生效firewall-cmd --remove-port=80/tcp --permanent # 关闭端口
## ufw(Ubuntu/Debian)ufw status # 查看防火墙状态ufw allow 80/tcp # 开放80端口ufw deny 80/tcp # 关闭80端口ufw enable/disable # 启用/禁用防火墙压缩与解压
Linux 主流压缩格式全支持,跨 Windows 兼容。
# tar 打包压缩(最常用,支持gzip/xz/bzip2)## 核心选项:-c创建 -x解压 -z(gzip) -J(xz) -j(bzip2) -v显示过程 -f指定文件 -C指定解压目录tar -zcvf test.tar.gz /test # 打包并gzip压缩test目录tar -zxvf test.tar.gz # 解压.tar.gz/.tgz包tar -zxvf test.tar.gz -C /tmp # 解压到指定/tmp目录tar -Jcvf test.tar.xz /test # 打包并xz压缩(压缩率最高,大文件首选)tar -Jxvf test.tar.xz # 解压.tar.xz包
# zip/unzip 跨Windows通用格式zip -r test.zip test_dir # 递归压缩目录为zip包unzip test.zip # 解压zip包unzip test.zip -d /tmp # 解压到指定目录unzip -l test.zip # 查看zip包内容
# 单文件压缩gzip test.txt # 压缩为test.txt.gzgunzip test.txt.gz # 解压gzip文件xz test.txt # 压缩为test.txt.xzunxz test.txt.xz # 解压xz文件磁盘与存储管理
用于磁盘分区、挂载、空间占用排查。
# 磁盘空间查看df -h # 查看磁盘分区使用情况,人性化显示大小df -hT # 额外显示文件系统类型du -sh test_dir # 查看目录总占用大小du -h --max-depth=1 /usr # 查看/usr下一级目录占用大小
# 磁盘分区与格式化fdisk -l # 查看所有磁盘分区信息(MBR分区)parted -l # 查看分区信息(支持GPT大磁盘)mkfs.ext4 /dev/sda1 # 格式化分区为ext4文件系统mkfs.xfs /dev/sda2 # 格式化分区为xfs文件系统
# 磁盘挂载与卸载mount /dev/sda1 /data # 把sda1分区挂载到/data目录mount -o remount,rw / # 重新挂载根目录为读写模式umount /dev/sda1 # 按分区卸载umount /data # 按挂载点卸载blkid # 查看分区UUID(用于/etc/fstab永久挂载)
# 内存与swap查看free -h # 查看内存与swap分区使用情况用户与用户组管理
多用户系统账号管理核心命令。
# 用户管理useradd -m -s /bin/bash testuser # 创建用户,自动创建家目录,指定默认shell为bashpasswd testuser # 设置/修改用户密码passwd # 修改当前用户密码userdel -r testuser # 删除用户,同时删除家目录与邮箱usermod -aG sudo testuser # 把用户添加到sudo组(赋予管理员权限)usermod -s /bin/bash testuser # 修改用户默认shellid testuser # 查看用户UID、GID、所属组id # 查看当前用户信息
# 用户组管理groupadd testgroup # 创建用户组groupdel testgroup # 删除用户组gpasswd -a testuser testgroup # 把用户加入指定组gpasswd -d testuser testgroup # 把用户从组中移除
# 用户切换su testuser # 切换到指定用户su - root # 切换到root用户,同时加载root环境变量sudo command # 以root权限执行单条命令软件包管理
不同发行版分为 RPM 系和 DEB 系,命令不通用,对应如下。
RPM 系(CentOS、RHEL、Rocky、AlmaLinux、Fedora)
# yum(CentOS7及之前)/ dnf(CentOS8+/RHEL8+,兼容yum语法)yum install -y nginx # 安装软件,-y自动确认yum remove nginx # 卸载软件yum update nginx # 更新软件yum update # 全系统更新yum search nginx # 搜索软件包yum list installed # 查看所有已安装软件yum clean all # 清理软件缓存
# rpm 底层包管理(直接操作.rpm包)rpm -ivh xxx.rpm # 安装rpm包rpm -e nginx # 卸载软件rpm -qa # 查看所有已安装rpm包rpm -ql nginx # 查看软件安装的文件路径rpm -qf /usr/bin/nginx # 查看文件属于哪个rpm包DEB 系(Ubuntu、Debian、Linux Mint)
# apt 高级包管理器(首选)apt update # 更新软件源缓存apt install -y nginx # 安装软件apt remove nginx # 卸载软件(保留配置)apt purge nginx # 彻底卸载(删除配置)apt upgrade # 全系统更新已安装软件apt search nginx # 搜索软件apt list --installed # 查看已安装软件apt clean # 清理缓存
# dpkg 底层包管理(直接操作.deb包)dpkg -i xxx.deb # 安装deb包dpkg -r nginx # 卸载软件dpkg -P nginx # 彻底卸载dpkg -l # 查看所有已安装软件dpkg -L nginx # 查看软件安装路径dpkg -S /usr/bin/nginx # 查看文件所属包系统服务管理(systemd)
主流 Linux 发行版(CentOS7+、Ubuntu16.04+)均采用 systemd 管理系统服务,核心命令 systemctl。
systemctl start nginx # 启动服务systemctl stop nginx # 停止服务systemctl restart nginx # 重启服务systemctl reload nginx # 平滑重载配置(不重启进程)systemctl status nginx # 查看服务运行状态、日志systemctl enable nginx # 设置服务开机自启systemctl disable nginx # 关闭开机自启systemctl enable --now nginx # 开启自启并立即启动服务systemctl list-unit-files --type=service # 查看所有服务开机自启状态
# 系统电源管理systemctl reboot # 重启系统systemctl poweroff # 关机高级文本处理神器
awk 按列处理文本
awk '{print $1}' test.txt # 打印文件第一列df -h | awk '{print $1,$5}' # 打印磁盘设备名与使用率awk -F: '{print $1,$3}' /etc/passwd # 以:为分隔符,打印用户名与UIDawk '$3>1000' /etc/passwd # 过滤UID大于1000的行sed 流编辑器(文本替换、增删)
sed 's/old/new/g' test.txt # 全局替换old为new(不修改原文件)sed -i 's/old/new/g' test.txt # 直接修改原文件内容sed '2d' test.txt # 删除第二行sed '2i hello' test.txt # 在第二行前插入hellosed '2a world' test.txt # 在第二行后追加world高频实用符号与快捷键
核心符号:
- `:管道符,前一个命令的输出作为后一个命令的输入
>:覆盖重定向:清空文件原有内容写入>>:追加重定向:在文件末尾追加内容&:后台运行符:命令在后台执行xargs:标准输入转命令行参数
效率快捷键:
Ctrl + C:终止当前正在运行的命令Ctrl + L:清屏,等效于 clearCtrl + R:搜索历史命令Ctrl + A:光标跳到行首Ctrl + E:光标跳到行尾Tab:命令 / 路径自动补全,按两次显示所有匹配项
注意事项
- 执行高危命令(
rm -rf、mkfs、fdisk等)前,务必确认路径与参数,避免误操作导致数据丢失。 - 普通用户权限不足时,需加
sudo或以root用户执行。 - 所有命令的完整官方用法,均可通过
man 命令名查看帮助手册。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
相关文章 智能推荐
1
接口和接口测试的概念
接口测试 接口与接口测试一些理论知识
2
多表查询
MySQL数据库 关于MySQL多表查询的相关语句
3
MySQL约束
MySQL数据库 关于MySQL约束
4
数据库的增删改查
MySQL数据库 关于MySQL数据库的增删改查语句
5
数据库表操作
MySQL数据库 针对数据库与表的操作,即数据定义语言
随机文章 随机推荐