Linux运维命令
2026-05-26 09:43:31 1 举报AI智能生成
涵盖了Linux的几乎常见运维命令以及部分选项
运维
模板推荐
作者其他创作
大纲/内容
查询帮助
man
命令 --help
ai查询
which查询查找命令文件<br>
history查询历史命令
-c 清除历史记录
系统管理
shutdown
-h关机 +时间<br>
-r重启 +时间<br>
-c取消关机<br>
halt关机
init 0关机<br>
reboot重启
systemctl管理服务(开关重启),设置开机自启动<br>
start开启
stop关闭
restart重启
disable禁止自启动
disable --now(关闭并禁止开机自启动)<br>
enable开机自启动
enable --now(开启并开机自启动)<br>
status状态
is-active检查是否开启<br>
is-enabled检查是否开机自启动
daemon-reload服务命令改变后需使用一次
edit 修改启动脚本
hostnamectl显示与修改主机名<br>
hostnamectl set-hostname xxxxxx
hostname查看或临时修改主机名
-I 查看主机全部ip<br>
ifdown关闭指定网卡
ifup开启指定网卡
ubt中网卡配置生效
修改网卡配置文件
netplan apply
networkctl reload
lscpu查看cpu信息
核心数
nproc
cpu型号
free查询内存信息
-h 以人类可读方式查看大小
w查看系统负载
查看谁登陆系统并且在干啥?<br>
uptime w命令的第一行
who w命令的最后几行
ps查看进程
-ef 查看所有进程
aux
auxf
pstree以树行显示进程信息
top默认是交互式的显示系统运行状态
交互式:top<br>
非交互式:top -bn1<br>
-p pid 查看指定进程信息<br>
-p pid -H 显示进程的线程信息<br>
使用top命令后可以按'1'来查看核心数
iotop查看io使用情况
uname查看系统的信息,内核,主机名,cpu架构
-r 查看内核信息
-m 查看cpu架构
x86_64<br>
arm64/aarch64
-a 输出包含内核名称/版本/编译时间等完整信息
关闭selinux
vim /etc/selinux/config里面的SELINUX=行改为SELINUX=disabled
kill
kill + pid<br>
kill -9 pid强制终止进程<br>
kill -USR2 旧进程pid<br>保持旧进程不关,可运行新进程
pkill
名字
killall
名字或pid
&<br>
nohup 命令 &<br>
md5校验
md5sum 文件(可一次查看多个文件)查看指纹<br>
md5sum --check 文件.md5 使用已生成的md5值对文件进行校验<br>
md5sum计算文件内容的MD5值
echo -n "你的明码" | md5sum
localectl查看或修改语言
localectl set-locale LANG=en_US.UTF-8 英文
localectl set-locale LANG=zh_CN.UTF-8 中文
export LANG= 临时修改
crontab定时任务管理
-e 编辑定时任务配置
-l 查看定时任务内容
文件中符号
* 所有<br>
/ 间隔多久(/2)<br>
- 表示范围(2-5)<br>
分 时 日 月 周
journalctl查看指定的日志信息<br>
journalctl -xe -u 服务<br>
-u 指定服务
-p err 查看错误日志(根据优先级筛选)
-f 查看实时信息(放在命令最后)
-n 查看最新的几行数据
--since "2026-04-01" --until "2026-04-02"(查看指定时间范围)
lsblk查看系统的磁盘使用情况<br>
-a 显示所有设备信息<br>
sysctl 配置系统内核参数
-p 使系统内核参数生效
网络管理
ip查看ip地址
ip a
ip r 查看路由
ip -br -c a 获得清晰彩色的概览
ping检查网路连通性
-c 设置发送次数
-W 设置发送间隔时间<br>
fping批量检查
telnet检查端口是否开启
ip或域名 端口,查询端口是否可以使用
nmtui查看修改网络信息
ss查看系统所有开启的端口
-lntup查看端口
-l listen监听状态
-n 不要反向解析(ip-->名字)
-t tcp
-u udp
-p 详细进程信息进程名字,pid
-ant 连接状态
-a 所有状态
-n 不要反向解析(ip-->名字)
-t tcp
netstat
与ss类似,选项相同<br>
nmap网络扫描工具
-p指定端口或范围<br>显示open表示开启
nmap -p 22 ip或域名
nmap -p 80,443 ip或域名<br>
nmap -p 1-1024 ip或域名
nmap -p 22 10.0.0.0/24 ip或域名
dig查询域名DNS信息<br>
host
nslookup
iftop查看实时网速
-B 以字节单位表示速度<br>
-n ip反向解析为域名/主机名
-i 指定网卡
-P 显示端口<br>
-N 不要把端口解析为服务名<br>
iftop -nNP -Bt -s 1<br>非交互模式,方便过滤
nethogs
tracert
-d 网址 windows路由追踪命令
traceroute
-n 使用ip地址而非主机名<br>
-I 使用ICMP回应取代UDP资料信息<br>
route查看路由表和默认网关
-n显示数字形式的ip地址
nc扫描与连接指定端口
-v ip 端口<br>用于检查端口是否开启
mtr 实时路由路径追踪
mtr 域名
cur文件传输工具<br>
-s 静默交互
iperf测试带宽
-s 设置服务端
-c 服务端ip<br>客户端连接服务端
tcpdump<br>Linux自带抓包软件
-i 指定网卡
-vv显示详细信息
-n 不将ip地址转化为主机名
-w 保留数据包
tcpdump -nnn -vvv 端口或协议或ip -w 文件.pcap<br>#保留数据包到该文件,wiershark可识别
tcp/udp port 端口<br>抓住指定端口
tcp/udp src port 端口 源端口
tcp/udp dst host 端口 目标端口
host ip<br>抓住指定ip
src host ip 源ip<br>
dst host ip 目标ip
and 并且
or 或者
! 取反<br>
文件与目录基础指令
mkdir创建目录
-p创建多层目录
touch创建文件(摸)<br>
cd进入指定目录
.或不输入直接会家目录<br>
..上级目录<br>
.进入当前目录<br>
- 返回上一次离开的目录
pwd查看定位
ls查看目录内容
-l查看详细信息,ll=ls -l
-a查看全部内容
-t按照时间顺序排序
-r逆序排序,一般与-t一起使用
-h 以人类可读形式显示大小
-d 显示目录本身属性
-i 显示文件的inode编号<br>
-S 按文件大小排序
cp复制,备份
-r复制目录
-p保持属性不变
-a=-p -r -d<br>
-t 优先指定目标终点(不能改名,只可接目录)<br>
mv移动,重命名
-t 优先指定目标终点(不能改名,只可接目录)<br>
rm删除
-f强制删除
-r删除目录
*删除所有文件与目录
cat查看文件内容
-n number显示文件行号<br>
-A 查看隐藏的符号
echo打印
><br>
>><br>
{}<br>
'内容' 可写入复杂内容<br>
$? 检查上一步命令操作是否成功<br>
输出1是成功
其他是失败
tree以树形结构查看目录
-L指定层数,最多显示几层目录
-L 2 显示2层目录
-F给不同类型文件加上标记,目录加上/(斜线)<br>
快捷键
ctrl+c取消当前操作<br>
tab键自动补全命令或路径
ctrl+a光标移动到行的开始<br>
ctrl+e光标移动到行的末尾<br>
ctrl+u把光标所在位置到行首的内容剪切(删除)<br>
ctrl +k把光标所在位置到行尾的内容剪切(删除)
ctrl +w把光标所在位置到前一个空格的内容剪切(删除)
ctrl+l清屏<br>
ctrl+y粘贴<br>
ctrl +d退出登录<br>
文件与目录进阶指令
tail显示文件最后几行,默认十行
-f 显示文件实时更新
-5n或-5 显示最后5行
head 显示文件开头几行,默认十行
-5或-5n 显示开头5行
less按页查看内容,类似vim
q 退出
G最后一行
g 第一行
100g 某一行
空格或ctrl+f 按页查看下一页<br>
ctrl+b 按页查看上一页<br>
more按页查看,到最后一行自动退出
wc 统计文件内信息
-l 仅统计文件行数
sort对内容排序
-n 按数值大小正常顺序
-rn 逆序排序(常用)<br>
-k2 对第二列内容进行排序 (不能与-h一起使用)<br>
-h 前方命令使用-h选项,sort排序时也要加上
-t:(指定:为分隔符)<br>
-k3,3 -k4,4(以第三段为主排序,第四段为次级排序)<br>
uniq去重(相邻的行)<br>
-c 统计相同的内容并显示次数
rz(上传)和sz(下载)<br>
可能需要下载,lrzsz软件包
rz上传到linux,当前目录
sz linux下载到本地
date查看或修改时间<br>
+%F(年月日)<br>
+%Y%m%d<br>
+%T(时分秒)<br>
+%H:%M:%S<br>
+%w(星期几)<br>
-d根据描述显示指定的日期<br>
-s " 时间 " 手动设置时间<br>
ntpdate同步时间
ntpdate ntp.aliyun.com(时间服务器地址)<br>自动同步时间
timedatectl查看和修改时区
timedatectl set-timezone Asia/Shanghai<br>修改时区
tar
创建压缩包
tar zcf /backup/etc.tar.gz /etc/<br>
常见的压缩包格式
tar.gz<br>
.tar.bz2
.tar.xz
...
查看
tar tf /backup/etc.tar.gz<br>
解压
tar xf /backup/etc.tar.gz<br>
--keep-old-files
保留已存在的文件,不覆盖
--skip-old-files
跳过已存在的文件,不覆盖也不提示
解压到指定目录<br>
tar xf /backup/etc.tar.gz -C /opt/<br>
去除层目录结构(如果有多层目录,可根据实际情况调整数字)
--strip-components=1
zip/unzip
zip -qr不显示过程并压缩目录<br>
unzip 压缩包 -d 目录 (解压指定压缩包到指定目录)<br>
gzip
gzip 文件 (压缩文件)<br>
gzip -d xxx.gz(解压指定文件)<br>
ln创建硬链接
-s 创建软连接(若是创建至其他目录则两个都要写绝对路径)<br>
-sf File1 File2
diff比较文件内容差异<br>
diff 参数 文件1 文件2<br>
vimdiff同时编辑多个文件(也可用于直观查看文件不同)<br>
vimdiff [参数] 文件1 文件2 [文件n]<br>
xargs给其他命令传递参数
echo {01.100}.txt | xargs touch <br>创建100个文件<br>
-n3 设置以3行形式输出<br>
mktemp创建暂存文件目录<br>
-d 创建目录
-p 指定目录
linux四剑客
grep/egrep过滤
-i 关键词不分(忽略)大小写<br>
-n 给过滤内容加上行号
-v 排除包含指定内容的行(输出其他行)<br>
-o 显示grep执行过程,正则每次匹配到的内容
-w 精确过滤
-l 过滤输出的时候只显示文件名
-R 递归查找根据指定的目录过滤内容类似于find + grep<br>
grep -E == egrep 支持扩展正则
-A4 过滤出这一行和接下来的4行<br>
awk取列,计算统计
正向写法
awk '{print $1}' awk.txt取出第一列<br>
awk ‘{print $1,$3}’ awk.txt取出第一列和第三列<br>
反向写法
awk '{print $NF}' awk.txt 取出倒数一列<br>
awk '{print $(NF-1)}' awk.txt取出倒数第2列<br>
取行
awk 'NR==2' xxx 取出xxx的第2行<br>
awk '/root|oldoby/' 文件<br>取出文件中包含root获oldboy的行
awk ‘NR==1,/11:11:11/’ 文件<br>取出文件中第一行到包含11:11:11行的内容<br>
'!/内容/'表示排除所表示的内容的行<br>
awk '$8~/Z/{print $1}'<br>取出第八列中包含Z的行的第一列<br>
-F指定分隔符<br>
-F',' 以,(逗号)为分隔符<br>
-v定义变量并赋值<br>
awk -vn1=$num1 -vn2=$num2 'BEGIN{print n1/n2 }'
比较大小输出内容
echo $load $cpu|awk '$2>=$1{print "high"}'<br>比较两个变量的大小,大于等于则输出high
find查找
find 搜索目录 选项 搜索内容
-type 类型
f 文件
d 目录
-name名字
-iname 不区分名字大小写
-size 大小
-mtime 修改时间
-maxdepth 最大深度
-o 或者 注意加上\(\)<br>
-exec…… {} \;进一步处理搜索结果<br>
find /etc/ -type f -name "*.conf" -exec egrep --color 'root|oldboy' {} \;
find与其他命令配合
-delete 删除匹配到的文件
sed擅长取行,替换,修改文件内容
选项
-n 取消默认输出,一般与p一起使用
-r 支持扩展正则
-i 修改文件内容,,选项谨慎,选项放在最后<br>
-i.bak 先备份文件,然后修改<br>
-e 显式指定编辑命令(一般用于连续多个编辑)<br>
sed -e 's/foo/bar/' -e 's/hello/world/' file
查找
-n 与p搭配
1p第一行
1,5p 第一到五行
//p包含什么的行
//,//p从包含什么到包含什么的行
!p 表示排除所表示行<br>
替换
s###g替换每行中所有的指定内容<br>
s###替换每行中匹配的第一个内容<br>
修改指定行的内容
1,5s###g修改第一到五行<br>
sed -n '/mnt/s#xxx#xxx#gp' xxx<br>修改包含/mnt/的行的内容
反向引用
实现取列,分组处理内容
根据需求处理某一行内容
删除 d
用法与查找相同,不加-n
增加 cia
sed '5a lidao'<br>
c 指定行替换
i 指定行上一行追加
a 指定行下一行追加
打印
sed 'p' xxx<br>sed显示一次并且打印一次内容
sed 'p;p' xxx<br>sed显示一次并且打印2次内容<br>
隔行
隔行查看
sed -n '1~2p' xxx<br>从第一行开始每2行(1,3,5,7)查看一次,,仅显示匹配内容<br>
隔行删除
sed '1~2d' xxx<br>从第一行开始每2行(1,3,5)删除一次,,并显示其他内容<br>
vim专题
快捷键
上下移动光标
移动光标到第1行 gg 或 1G 或 :1<br>
移动光标到最后一行 G
某一行 100gg 或 100G 或 :100<br>
左右移动
移动到行首 0或^<br>
移动到行尾 $<br>
复制删除粘贴
复制yy
复制5行,5yy
删除dd
删除5行,5dd
粘贴p
粘贴5次,5p
其他
撤销u
显示行号 :set nu<br>
不显示行号 :set nonu<br>
搜索 /搜索内容,n继续向下搜索,N继续向下搜索
清空文件内容
先到第1行,dG ,一直删除到最后一行<br>
批量操作<br>
V进入可视行模式
批量复制y,可视块模式也有
批量删除d,可视块模式也有
ctrl+v可视块模式<br>
选好修改部分后,按 I (大写I),进入编辑模式批量编辑<br>
故障
清除临时文件
vim批量替换
当前行替换
:s/old/new/
当前行全部替换
:s/old/new/g
全文替换
:%s/old/new/g
指定范围替换
:10,20s/old/new/g
带确认的替换
:%s/old/new/gc
替换时会逐个确认,按 y 确认替换,n 跳过,a 替换所有,q 退出
git专题
配置管理
git config --global user.name "name"
设置全局用户名
git config --global user.email "email"
设置全局邮箱
git config --list
列出所有配置
git config --global core.editor "vim"
设置默认编辑器
git config --global color.ui true
增加一些提示颜色
git config --global --unset 删除配置项
仓库操作
git init
初始化本地仓库
git clone <url> [dir]
克隆远程仓库
git remote -v
查看远程仓库地址
git remote add origin <url>
添加远程仓库
git remote remove origin
移除远程仓库
git remote set-url origin <new_url>
修改远程仓库地址
基础提交
git status
查看工作区状态
git add <file>
添加文件到暂存区
git add .
添加所有变更
git commit -m "message"
提交到本地仓库
git commit -am "message"
跳过暂存区直接提交
git push origin <branch>
推送到远程
git pull origin <branch>
拉取并合并远程分支
git fetch origin
只拉取不合并
分支管理
git branch
列出本地分支
git branch -r
列出远程分支
git branch -a
列出所有分支
git branch <branch_name>
创建分支
git checkout <branch_name>
切换分支
git checkout -b <branch_name>
创建并切换
git merge <branch_name>
合并指定分支到当前分支
git branch -d <branch_name>
删除本地分支(已合并)
git branch -D <branch_name>
强制删除本地分支
git push origin --delete <branch_name>
删除远程分支
git branch -m <old> <new>
重命名分支
标签管理
git tag
列出所有标签
git tag <tag_name>
创建轻量标签
git tag -a <tag_name> -m "message"
创建附注标签
git push origin <tag_name>
推送单个标签
git push origin --tags
推送所有标签
git tag -d <tag_name>
删除本地标签
git push origin --delete tag <tag_name>
删除远程标签
日志与差异
git log
查看提交历史
git log --oneline --graph
简洁图形式查看
git diff
查看未暂存的变更
git diff --staged
查看已暂存的变更
git diff <commit1> <commit2>
比较两次提交
git show <commit>
显示某次提交的详情
撤销与回滚
git reset HEAD <file>
撤销暂存区的文件
git checkout -- <file>
撤销工作区修改
git reset --soft HEAD~1
撤销提交,保留改动
git reset --hard HEAD~1
撤销提交,丢弃改动
git revert <commit>
生成反向提交(安全回滚)
git clean -fd
删除未跟踪的文件和目录
暂存与储藏
git stash save "message"
暂存当前修改
git stash list
查看储藏列表
git stash pop
应用最近储藏并删除
git stash apply
应用最近储藏但不删除
git stash drop stash@{0}
删除指定储藏
iptables专题
保存规则
(Debian/Ubuntu): iptables-save > /etc/iptables/rules.v4 (iptables-save 输出当前规则,重定向到文件)
(CentOS/RHEL): service iptables save (service 调用系统服务保存规则到 /etc/sysconfig/iptables)
恢复规则
iptables-restore < /etc/iptables/rules.v4 (iptables-restore 从文件读取并恢复规则)
增
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
添加规则(追加到链尾)
-A 追加到链尾
-s 源地址
-j 目标动作
iptables -I INPUT 3 -s 10.0.0.1 -j DROP
添加规则(第3条规则前)
-I 插入
iptables -N MY_CHAIN
新建自定义链
-N 创建新链
删
iptables -D INPUT -s 192.168.1.10 -j DROP
删除规则(按内容匹配)
-D 删除匹配的规则
iptables -D INPUT 2
删除规则(按行号)
iptables -F INPUT
清空指定链内规则
-F 清空链中所有规则
iptables -F
清空所有链规则
-F 不带参数,清空所有链的规则
iptables -X MY_CHAIN
删除自定义空链
-X 删除用户自定义的空链
改
iptables -R INPUT 2 -s 10.0.0.5 -j ACCEPT
替换规则
-R 替换第2条规则为新规则
iptables -E old_name new_name
重命名自定义链
-E 重命名用户链
iptables -P INPUT DROP
设置链的默认策略
-P 设置默认策略,可选项 ACCEPT/DROP/REJECT
查
iptables -L -n -v
列出所有规则(详细,不解析主机名)
-L 列出规则
-n 不解析IP/端口为名称
-v 显示详细信息
iptables -t nat -L -n -v
列出指定表(如 nat)
-t 指定表名
iptables -L -n --line-numbers
显示规则行号
--line-numbers 显示每条规则的行号
iptables -L -n -v -x
查看规则计数与精确流量
-x 显示精确的字节/包计数,不进行单位换算
匹配条件示例(常用扩展)
-p 指定协议,如 tcp/udp/icmp
--dport 匹配目标端口,常与 -p tcp/udp 联用
--sport 匹配源端口,可用冒号指定范围
-s 源IP或网段
-d 目标IP或网段
-i 进入报文的网络接口
-o 发出报文的网络接口
-m state --state ESTABLISHED,RELATED (-m state 状态模块,--state 指定状态)
-m multiport --dports 80,443,8080 (-m multiport 多端口模块,--dports 指定目标端口列表)
日志与调试
-j LOG --log-prefix "INPUT_DROP: " --log-level 4
记录日志
-j LOG 跳转到日志动作
--log-prefix 日志前缀
--log-level 日志级别
iptables -Z INPUT
清空指定链计数器
-Z 清零链的字节/包计数器
iptables -L -n -v
查看规则命中次数
-v 显示每条规则匹配的包和字节数
磁盘管理
du查看目录大小
-sh查看目录大小
df 显示磁盘空间使用情况
-h 人类可读(查看block使用情况))<br>
-i 查看inode使用情况
-T显示文件系统类型
xfs
ext4
file查看目标详细类型
stat查看目标属性信息,文件名
dd
dd if=/dev/zero of=/tmp/xxxx bs=1M count=100<br>创建指定大小的文件<br>
fdisk管理mbr类磁盘分区<br>
-l 查看分区/硬盘
q 退出不保存
w 退出保存
n 创建分区
d 删除分区
p 输出磁盘信息,分区信息
gdisk管理gpt类磁盘分区
parted通用管理磁盘分区
mktable gpt/mbr<br>创建gpt/mbr类磁盘分区
mkpart primary 0 100g <br>primary主分区 0 开始 100g结束<br>
q 退出
p 查看
rm id号 删除
mkfs格式化,创建文件系统
mkfs.xfs 分区<br>以xfs格式进行格式化
-f 强制格式化<br>
mkfs -t xfs
mkfs.ext4 分区
blkid查看已格式化的分区/文件系统
mount临时挂载<br>给设备设置入口,入口就是挂载点,挂载点就是目录<br>
mount 分区 目录
永久挂载,编辑/etc/fstab
-a 加载/etc/fstab文件中记录的所有文件系统<br>
umount删除挂载
umount -lf 目录 <br>强制卸载
mkswap 格式化,创建swap
swapon 启动swap
swapon -a临时开启
swapoff 关闭swap
swapoff -a临时关闭
修改/etc/fstab中注释掉swap的行
ubt/debian系统中还要额外执行<br>systemctl mask swap.target命令
lsof 查看文件的进程信息
list open files 显示出所有被打开的文件
lsof | grep delete<br>
硬链接数位0(没有入口)<br>
进程调用数不为0(进程使用)<br>
-p 显示指定进程号所打开的文件<br>
-i 显示符合条件的进程
-d 显示占用该文件的进程
-R 显示父进程ID
-c 显示指定进程所打开的文件<br>
lvextend<br>用于扩展 LVM中已存在的逻辑卷大小
-l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv (Ubuntu默认的LVM逻辑卷命名格式)<br>(使用卷组中所有剩余空间扩展,通常与-r搭配实现一步到位)
-L +50G <逻辑卷><br>(扩展指定大小)
-L 200G <逻辑卷><br>(扩展到指定大小)
-t (测试模式 安全检查)
-r (同时调整文件系统)
用户管理专题命令
设置或修改密码passwd
--stdin 非交互设置密码(只适用红帽)<br>echo 'Lidao996' |passwd --stdin oldboy
-l 锁定普通用户(用于访问控制)<br>-l 用户名
su切换用户
ubt切换到root用户sudo su -
su -
useradd添加用户
-u设置用户id
-s设置新用户的默认shell终端
-m用户目录不存在时自动创建
-M不建立用户家目录
adduser
chpasswd批量修改密码<br>
cat pass.txt |chpasswd
mkpasswd随机生成密码
mkpasswd -l 20 随机生成20位密码
userdel删除用户
-r删除用户并且删除家目录,删除用户的邮箱文件
id查看用户信息(检查用户是否存在)<br>
w查看用户登陆信息(查看负载)<br>
who当前登录用户的信息,时间
uptime
w命令显示的第1行
last用户登录情况
lastlog所有用户最近一次登陆情况
whoami查看当前用户名
usermod修改用户信息
visudo修改权限(限root用户操作)<br>
sudo激活权限
alias查看/设置别名
临时取消别名
\rm
/bin/rm
永久生效,需修改/etc/profile文件<br>并输入 source /etc/profile 生效
修改特殊命令还需修改 ~/.bash文件<br>
权限管理体系
chmod修改权限
数字权限
字符=权限<br>
chown修改所有者
chown oldboy.oldboy<br>
chown oldboy
lsattr查看特殊属性<br>
chattr修改特殊属性
umask
了解:控制系统默认权限(新文件,新目录)<br>
oldoby.txt -rw-r---- root root<br>
软件包管理
红帽系统安装命令yum
install ,安装软件包,升级<br>
-y 默认全部yes
reinstall重新安装
localinstall
安装本地已经下载好的rpm包
yum查询依赖,下载依赖,安装依赖
查询依赖的软件包或命令属于哪个软件包provides<br> 或者search all
yum list可以下载安装的软件包清单
update
remove 删除软件<br>
clean all清空本地软件包缓存信息<br>
--nodeps 安装时不查询依赖
rpm
-qa 检查软件是否安装
-ql 查看软件包内容
-e 删除软件包<br>(不使用的工具放着就行,如果是服务关闭即可)<br>
-ivh 安装
-Uvh 安装或升级
update/upgrade
-aV
检查命令是否变化了
配置,命令
软件刚安装时和现在
apt
apt update
ubt/debian中修改了apt源的配置(下载地址)<br>
一定要执行apt update
在本地生成仓库中软件包列表信息
apt install
remove 删除软件<br>
dpkg
-l 检查软件是否安装
rpm -qa
-L 查看软件包内容
rpm -ql
-i 安装
rpm -ivh
-r 删除软件包
rpm -e
-V 检查命令是否变化了
rpm -aV
wget
-P 指定文件下载的存储目录<br>wget -P /目标目录 文件
--spider检查是否存在
-T 设置等待时间<br>
-t 设置等待次数
curl
-H自定义解析头信息<br>-H Host:buy.oldboy.cn<br>
-L 跟随跳转<br>
-v 显示过程
-A 自定义UA头<br>
curl ifconfig.io查询当前公网IP
-s 静默执行模式<br>
-k 跳过证书校验
--connect-timeout 定义超时时间
安装常用工具
tree
telent
vim
bash-completion
bash-completion-extras
lrzsz
zip,unzip<br>
pstree
软件包psmisc
特殊符号
~ 家目录
.. 上级目录
. 当前目录
* 代表当前目录所有内容<br>
>清空文件后写入文件<br>
1.txt > 2.txt,将1.txt文件中的内容写到2.txt文件中<br>
>>写入文件末尾<br>
1.txt >> 2.txt,将1.txt文件中的内容追加到2.txt文件中<br>
< 常用读取文件内容<br>
tr 'a-z' 'A-Z' < passwd
xargs -n3 <num.txt
<< 常用于cat命令写入内容<br>
cat >或>> 文件名字 <<结束标记
{}用于批量操作文件,框住规律部分<br>
管道 |<br>
把管道前面输出的字符,传递给后面的命令
1个命令无法直接获取但我们想要的结果
'' 单引号,所见即所得,单引号里面的内容不会被处理,直接输出<br>
""双引号,类似于单引号,但是一些特殊符号会被解析运行 ``,$,$(),.....<br>
不加引号 类似于双引号,额外支持{}*通配符
``反引号,优先执行引号里面的命令<br>
先获取指令的结果,然后把结果交给其他命令使用
创建文件,目录,压缩包(带时间)<br>
$()类似于反引号,现代Shell脚本中更推荐使用的写法<br>
& 后台执行<br>
命令或脚本 &<br>
nohup 命令或脚本 &<br>后台运行,连接断开也不会结束,默认会把命令/脚本输出写到nohup.out文件
[[:blank:]]匹配任意空白字符<br>
四剑客符号
^ 以xx开头的行<br>
$ 以xx结尾的行<br>
. 任意一个字符<br>
* 前一个字符出现0次或0次以上<br>
[ ][abc]一个整体包含3个情况,匹配a,b,c<br>
除 ^、-(位置特殊)外,其他字符在字符组中无需转义<br>即特殊符号在字符号中失去特殊含义
[^] [^abc]不匹配a或b或c<br>
| 管道符,意思是 或者<br>
\ 转义符,将特殊符号转为普通符号<br>
+ 前一个字符出现1次或1次以上<br>
{} o{n,m}前一个字符o,出现n次,最多出现m次<br>
() 1个整体<br>
? 前一个字符出现0次或1次<br>
变量
环境变量
一般系统定义
PS1
控制命令行格式<br>
LANG
language语言,字符集
PATH
path 路,小路
存放命令的路径
UID<br>
当前用户的UID,在判断中使用,检查当前用户是否为root<br>
export 临时设置变量
unset临时删除变量
其他命令
发送邮件
mail (麒麟)<br>
s-nail (Ubuntu)<br>
source或 .<br>
运行脚本,加载带有变量,自定义函数库
ssh-keygen创建秘钥<br>
ssh-keygen -f ~/.ssh/id_rsa -P ''
ssh-copy-id分发秘钥
sshpass -p 用户密码 ssh-copy-id -o StrictHostKeyChecking=no 用户@ip号
scp基于ssh协议远程复制(传送)文件
scp 选项 参数(文件) 指定用户@ip号:存放地址<br>
-r 递归处理所有子文件<br>
-p 保留原始属性
# 指定下载到 Windows 的特定目录(例如 D:\Downloads)<br>scp <用户名>@<ECS公网IP>:/<ECS上的目录路径> D:\Downloads\
rsync远程传输数据
rsync -avz /etc/ rsync_backup@172.16.1.41::data<br>rsync 选项 参数 用于认证的用户@服务端ip::模块<br>
-a 可以传输各种类型并保持修改时间不变
-v 显示过程
-z 传输过程压缩,减少带宽占用
jps 只显示java进程<br>
- lvm
jstack 显示java进程的线程信息
jstack 进程|grep -i thread.state |awk '{print $2}'|sort |uniq -c
jmap 显示jvm信息
-heap 进程<br>导出jvm使用率
-dump:format=b,file=/xxxx/xxxxx.hprof 进程<br>导出jvm数据到文件中
update-alternatives<br>#可以对于Debian/Ubuntu等系统优雅地管理系统中的多个Java版本,并方便地切换
# 注册JDK 21<br>update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-21.0.9/bin/java 1<br>update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-21.0.9/bin/javac 1
# 配置当前使用的版本<br>update-alternatives --config java/javac
# 删除错误的 java 条目<br>update-alternatives --remove java /usr/lib/jvm/java-17-openjdk-amd64/bin/javac
nginx
-t 语法检查
-s reload 热加载配置文件
mvn 需安装maven工具用于编译java代码
clean package
clean install
clean deploy 用于maven项目向私有依赖仓库上传依赖
-U 强制检查远程仓库中快照版本(SNAPSHOT) 的更新,确保使用最新依赖
-Dmaven.test.skip=true(跳过所有测试相关)
-DskipTests
评论
0 条评论
下一页