linux命令总结
非22端口配置免密
方法一:
cd /root/.ssh
ssh-copy-id -i -p 22000 192.168.30.143
方法二
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22000 192.168.20.11
方法三
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 22000 root@192.168.20.11"
登录ftp:sftp -oPort=22000 admin@192.168.1.1 #带端口登录
时间同步
命令:
ntpdate ntp.ntsc.ac.cn #同步域名
ntpdate 192.168.1.100 #同步IP
补充:在服务器可以上网的情况下,自动同步系统时间 ntpdate ntp.ntsc.ac.cn 中国国家授时中心 NTP服务器地址是“ntp.ntsc.ac.cn”
mv
mv同时移动多个文件,在文件名结尾处加-t
mv epel_tsinghua.repo tsinghua.repo -t network/
查找文件内容 -r 递归查询
grep -r "www.hqq.net" *
grep
匹配IP地址: grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" |sort |uniq -c
sed
sed -i 's:目录1:目录2' filename
sed -i '/匹配/s:目录1:目录2' filename
sed 替换目录:sed -i '/SSHD=/s:/usr/sbin/sshd:/usr/local/openssh/sbin/sshd:g' /tmp/sshd.init
--批量修改查询结果,如下把www.bsxf.gov.cn 替换成 bs.gxxf.gov.cn
sed -i 's/www.bsxf.gov.cn/bs.gxxf.gov.cn/g' `find . -type f | xargs grep -l 'www.bsxf.gov.cn' `
ping网关: ifconfig | grep -w inet | awk 'NR==2 {print $2}' |sed 's/132/1/g'| xargs -i ping {}
获取MD5值 md5sum openssh-8.6p1.tar.gz

获取sha1,sha256 值:
sha1sum openssh-8.6p1.tar.gz
sha256sum openssh-8.6p1.tar.gz

iptables 给某个IP添加黑名单:
iptables -t filter -A INPUT -s 118.31.55.30/32 -m tcp -p tcp --dport 80 -j DROP
查看是否被DDOS攻击, 结果如果有SYN_RECV说明被攻击了
netstat -an|awk '/^tcp/ {print $NF}'|sort -n |uniq -c
netstat -tnlpa | awk '{print $6}'|sort -n |uniq -c
linux 主机名设置
1.临时设置,重启后失效:hostname keepalived02
hostname xxx
2.永远设置,重启后生效:hostnamectl set-hostname keepalived02
hostnamectl
1 2 3 4 5 6 7 8 9 10 11 | [root@node6 ~]# hostnamectl Static hostname: node6 Icon name: computer-vm Chassis: vm Machine ID: d79f4aeb9a7d42b19653fa2e7d94e90f Boot ID: 9af1fa4c81d94b4b8538e256a501de3a Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-957.el7.x86_64 Architecture: x86-64 |
[root@node6 ~]# hostnamectl --help
hostnamectl [OPTIONS...] COMMAND ... Query or change system hostname. -h --help Show this help --version Show package version --no-ask-password Do not prompt for password -H --host=[USER@]HOST Operate on remote host -M --machine=CONTAINER Operate on local container --transient Only set transient hostname --static Only set static hostname --pretty Only set pretty hostname Commands: status Show current hostname settings set-hostname NAME Set system hostname set-icon-name NAME Set icon name for host set-chassis NAME Set chassis type for host set-deployment NAME Set deployment environment for host set-location NAME Set location for host |
duf命令
rpm -ivh duf_0.5.0_linux_amd64.rpm

正确的方式是到/etc/profile里(或用户的.profile或.bashrc文件),直接export TZ变量为要更改的时区(时区的名字可以用tzselect向导来确定)
/etc/localtime文件
默认情况下情况下,TZ属性是空,这时候是靠/etc/localtime文件来确定的时区。而此文件通常又是一个到/usr/share/zoneinfo/下各种时区文件的软连接。通过修改/etc/localtime指向的软连接,进而修改系统的时区。比如下面的方法,将localtime文件设置为了北京时间:
[root@shuai01 ~]# date -R
Tue, 17 Jan 2017 13:57:06 +0000
[root@shuai01 ~]# export TZ='Asia/Shanghai'
[root@shuai01 ~]# date -R
Tue, 17 Jan 2017 19:57:18 +0600
locate 是另外一个根据文件名来搜索文件的命令。区别于 find 命令,locate 命令无需指定路径,直接搜索即可。
要使用locate命令必须先生成目录

yum仓库
yum命令
yum repolist all # 查看是否启用
yum makecache # 生成缓存
yum list nginx* # 列出包名,带@ 说明已经安装了
yum provides htop # 查找htop命令需要安装哪个包
yum history #查看历史记录,然后根据Id可以用undo撤销指定的yum操作
yum update #[RPM包] 更新包
yum check-update #检查可更新的包
自动补全,安装后重启生效:yum install bash-completion
包组:yum grouplist
安装图形界面:yum groupinstall "Graphical Administration Tools" "GNOME Desktop" -y
无外网环境部署本地仓库,先安装yum-utils 、createrepo 两个工具
yum install yum-utils createrepo -y
2021年11月下载的本地yum源数量

2022年7月2日在清华源查看到最新的数量

总结:base包数据不变 10072个 ,epel包有更新13468 -> 13757
yum安装只下载
yum install --downloadonly --downloaddir=/root/vim vim

把rpm包放到没有网络的主机安装即可。

国内源下载
http://mirrors.163.com/
https://developer.aliyun.com/mirror/
https://mirrors.tuna.tsinghua.edu.cn/
http://mirrors.sohu.com/
--下载网易仓库
wget -c http://mirrors.163.com/.help/CentOS7-Base-163.repo
http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
其他版本下载:https://vault.centos.org/
https://vault.centos.org/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
查看未安装软件需要下载安装什么包名:
yum provides httpd #查看需要安装包名
yum search httpd #搜索同名的包
ab压力测试工具
ab工具,并发测试
ab -c 1024 -n 1000 https://www.baidu.com/indx.html
-c 并发数 #只能是10次。。。
-n 请求次数
查看文件或目录大小命令:du
du -sh * #查看当前目录所有文件大小
du-sh /data #查看data目录大小
du -sh /data | sort -n #查看大小并排序
rpm命令:
#安装包,如果依赖包没装,则会提示检测依赖失败:
rpm -ivh tomcat-7.0.76-2.el7.noarch.rpm
# 忽略依赖,强制安装:
rpm -ivh --nodeps tomcat-7.0.76-2.el7.noarch.rpm
# 卸载包:
rpm -e nginx
# 查询当前系统所有已安装的包:
rpm -qa
# 统计系统所有已安装的包:
rpm -qa | wc -l
# 查询某个包是否有安装:
rpm -q nginx|httpd
# 查询已安装包的版本信息:
rpm -qi nginx
# 查询已经安装的包的所有文件路径:
rpm -ql nginx
# 查询已安装的包的配置文件路径:
rpm -qc nginx
# 查询已安装的包文档路径:
rpm -qd nginx
# 根据指定的文件(一般指的是命令),反向查找软件包:
rpm -qf `which netstat`
# 查看软件包在安装过程中执行脚本:
rpm -q --scripts httpd
# 查询一个未安装的包的文件分布路径:
rpm -qpl tomcat-7.0.76-2.el7.noarch.rpm
nc命令:开启一个UDP端口,可以接收日志
命令格式: nc -ul 端口号
服务端IP192.168.1.1
nc -ul 60000

客户端:snmp或syslog日志输出指向 192.168.1.1 60000 即可
nmap命令: nmap -sU 192.168.1.1 -p 161

Nmap参数说明:
-sU 表示使用UDP端口探测
IP:指定目的IP
-p 表示端口号
Nmap返回状态说明:

zip解压工具
zip/unzip 压缩工具:支持目录压缩 zip 源文件.zip 源文件
zip test.zip test
zip test.zip test1 test2 # 把test1,test2 一起压缩到test.zip 中
解压缩: unzip test.zip
压缩目录: zip test.zip /tmp/test/* #指定目录下的所有文件
tar 工具
压缩打包: tar -czf xxx.tar.gz xxx # tar -czf 包名 被打包目录
解压缩:tar xf xxx.tar.gz # tar xf 包名
路由表查看:
route -n

说明:默认路径0.0.0.0 到 x.x.2.254 ,如果145段想访问143段,则需要手动添加一条路径
添加路由命令:
添加网段
route add -net 192.168.145.0/24 gw 192.168.143.1
-net :指定源IP网段
/24 : 也可以写成 netmask 255.255.255.0
gw : 下一跳地址,一般写网关地址
添加单个IP
route add -host 192.168.152.253 gw 192.168.143.1

#网关为0.0.0.0 ,网络不通
route add -host 192.168.1.1 dev eth0
删除路由
route del -net 192.168.0.0/24 gw 192.168.0.1
add 增加路由
del 删除路由
-net 设置到某个网段的路由
-host 设置到某台主机的路由
gw 出口网关 IP地址
dev 出口网关 物理设备名
增加默认路由 route add default gw 192.168.0.1
添加永久路由(重启网卡路由还在)
cd /etc/sysconfig/network-scripts/ #进入网卡目录
vim route-eth0 #添加一个文件
192.168.1.0/24 via 172.16.1.254 dev eth0
# 192.168.1.0/24 :访问不了的网段
# via : 指定下一跳 ,如果不写via x.x.x.x 默认是0.0.0.0
# dev : 指定从哪个网卡出去
systemctl restart network #重启网卡验证
route -n #查看路径是否还在
注意: 添加到/etc/rc.loacl 下重启系统后路由表还在。
开启 IP 转发:
# echo "1" >/proc/sys/net/ipv4/ip_forward (临时)
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久开启)
lsof命令
列出所有由某个PID对应的进程打开的文件: lsof -p 进程号

找到使用某个端口的进程:lsof -i:22000
列出所有网络连接:lsof -i
列出所有TCP网络连接:lsof -i tcp

列出所有UDP网络连接:lsof -i udp

列出所有IPv4或IPv6: lsof -i 4 或 lsof -i 6

jobs 查看后台进程(ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停)
fg %n 让后台运行的进程n到前台来
bg %n 让进程n到后台去


--命令用法
如果一个文件前面来- ,按常规的命令是操作不了的
方法一:在命令后面加 -- 就可以了。


方法二(推荐): 有-前面加 ./

只显示指定网卡
ip a show ens33

系统版本查看(含其它发行版本)
一、使用命令:cat /proc/version 查看
linux版本号:Linux version 5.4.0-99-generic (buildd@lgw01-amd64-007)
GCC版本号:gcc version 9.3.0
Ubuntu版本号:ubuntu1~20.04

二、 使用命令:uname -a 查看
显示linux 的内核版本和系统是多少位的:X86_64代表系统是64位的

三、 使用命令:lsb_release -a 查看
Distributor ID: Ubuntu 类别是Ubuntu
Description:Ubuntu 20.04.3 LTS LTS是Long Term Support:长时间支持版本,支持周期长达三年至五年
Release 20.04 发行日期或者发行版本号
Codename: focal ubuntu的代号名称

硬链接
创建命令: ln 源 目标
ln sshd_config sshd1
效果:源和目标内容一样,修改其中一个,另一个也会变化。
删除:删除任意一个,另外一个文件还能正常使用。
怎么区分:查看Inode值,这个值是一样的

优点:节省Inode空间,如复制一个文件,可以直接使用硬链接做实时备份。
缺点:不能链接目录,只能链接文件,不能跨分区。
软链接
创建命令: ln -s 源 目标
效果:相当于快捷方式,Inode值也不同
删除:删除源文件,目标文件失效。
优点:可以跨分区,不占硬盘空间。
强制踢人命令
pkill -kill -t pts/0
linux系统root用户可强制踢人其它登录用户,首先可用w命令查看登录用户信息,显示信息如下:
[root@Wang ~]# w
10:01:23 up 1:23, 3 users, load average: 0.71, 0.58, 0.57
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 - 09:59 1:53 0.01s 0.01s -bash
root pts/0 :0.0 10:01 0.00s 0.03s 0.00s w
wangbo pts/2 192.168.0.196 09:42 18:50 0.01s 0.01s -bash
文件切割命令:split
按行切割:split -l 20 143.log 143_log_
-l 20 #指定切割行数
143.log #被切的文件
143_log_ #切后另存的文件前缀
按大小切割:split -d -b 4k 143.log 143log_
-d 使用数字而不是字母作为切割后的小文件的后缀;
-b 每个分割文件的大小,单位k , m , g
143.log 被切的文件
143log_ 切后另存的文件前缀

文件合并:cat 143log_0* > hb.log

使用sort像excel一样排序某一列
升序 sort -n -k 5
-n #升序
-k 5 # 指定第5列

降序 sort -nr -k 5
-nr # 降序
-k 5 # 指定第5列

本文来自博客园,作者:此生逍遥py,转载请注明原文链接:https://www.cnblogs.com/csxy-py/p/16776133.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人