基本操作
Linux关机,重启
查看系统,CPU信息
uname -a
cat /proc/version
envcat /proc/cpuinfo
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
cat /proc/cpuinfo | grep physical | uniq -c
getconf LONG_BIT
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
建立软连接
ln -s /usr/local/jdk1.8/ jdk
rpm相关
sshkey
ssh-keygen -t rsa -C your_email@example.com
命令重命名
同步服务器时间
sudo ntpdate -u ntp.api.bz
后台运行命令
nohup xxx &
nohup xxx > /dev/null &
nohup xxx >out.log 2>&1 &
强制活动用户退出
查看命令路径
查看进程所有打开最大fd数
配置dns
nslookup,查看域名路由表
last, 最近登录信息列表
设置固定ip
ifconfig em1 192.168.5.177 netmask 255.255.255.0
查看进程内加载的环境变量
# 也可以去 cd /proc 目录下, 查看进程内存中加载的东西
ps eww -p XXXXX(进程号)
查看进程树找到服务器进程
查看进程启动路径
添加用户, 配置sudo权限
useradd 用户名
passwd 用户名
vim /etc/sudoers
强制关闭进程名包含xxx的所有进程
ps aux|grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
磁盘,文件,目录相关操作
vim操作
%s/x/y/g
0
$
shift + g
gg
:set nu
:set nonu
/xxx(检索内容)
?xxx(检索内容)
打开只读文件,修改后需要保存时(不用切换用户即可保存的方式)
查看磁盘, 文件目录基本信息
wc命令
wc -l filename
wordwc -w filename
wc -L filename
wc -c
常用压缩, 解压缩命令
压缩命令
tar czvf xxx.tar
zip -r xxx.zip
解压缩命令
tar zxvf xxx.tar
tar zxvf xxx.tar -C /xxx/yyy/
unzip xxx.zip
变更文件所属用户, 用户组
chown eagleye.eagleye xxx.log
cp, scp, mkdir
cp xxx.log
cp -f xxx.log
cp -r xxx(源文件夹) yyy(目标文件夹)
scp -P ssh端口 username@10.10.10.101:/home/username/xxx /home/xxx
mkdir -p /xxx/yyy/zzz
mkdir -p src/{test ,main}/{java,resources}
比较两个文件
日志输出的字节数,可以用作性能测试
查看, 去除特殊字符
cat -v xxx.sh
sed -i 's/^M//g’ env.sh # 去除文件的特殊字符, 比如^M: 需要这样输入: ctrl+v+enter
处理因系统原因引起的文件中特殊字符的问题
cat file.sh > file.sh_bak
cat > file1.sh
:set fileencodings=utf-8 ,然后 w (存盘)一下即可转化为 utf8 格式,
:set fileformat=unix
find . -name "*.sh" | xargs dos2unix
tee, 重定向的同时输出到屏幕
awk ‘{print $0 }’ xxx.log | tee test.log
检索相关
grep
grep -v xxx
grep -v '^/pre>
grep -n “^$” 111.txt
grep -n “^abc” 111.txt
grep 'xxx' -n xxx.log
grep 'xxx' -c xxx.log
grep 'xxx' -i xxx.log
awk
awk -F ':' '{if ($5 ~ /user/) print $0}' /etc/passwd
awk -v RS='character' 'END {print --NR}' xxx.txt
find检索命令
find /home/eagleye -name '*.mysql' -print
find /usr -atime 3 –print
find /usr -ctime 5 –print
find /doc -user jacky -name 'j*' –print
find /doc \( -name 'ja*' -o- -name 'ma*' \) –print
find /doc -name '*bak' -exec rm {} \;
网络相关
查看什么进程使用了该端口
获取本机ip地址
/sbin/ifconfig -a|grep inet|grep -v 127.0 .0 .1 |grep -v inet6|awk '{print $2}' |tr -d "addr:"
iptables
service iptables status
ipiptables -I INPUT -s ***.***.***.*** -j DROP
iptables -D INPUT -s ***.***.***.*** -j DROP
备注: 参数-I是表示Insert(添加),-D表示Delete(删除)。后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。
/sbin/iptables -I INPUT -p tcp --dport 9090 -j ACCEPT
/etc/init.d/iptables status
/etc/init.d/iptables start
/etc/init.d/iptables stop
/etc/init.d/iptables restart
nc命令, tcp调试利器
nc 192.168 .0 .11 8000 < data.txt
nc -l 8000 > received_data
nc -lk 8000
tcpdump
tcpdump -i em1 tcp port 12301 -s 1500 -w abc.pcap
跟踪网络路由路径
traceroute -I www.163.com
traceroute -M 3 www.163.com
traceroute -p 8080 192.168 .10 .11
ss
ss -l
ss -pl
ss -t -a
ss -u -a
ss -o state established '( dport = :smtp or sport = :smtp )'
ss -o state established '( dport = :http or sport = :http )'
找出所有连接X服务器的进程
ss -x src /tmp/.X11-unix/*
列出当前socket统计信息
ss -s
解释:netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
netstat
netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":" );if(n<=2)++S[array[(1)]];else ++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n" , a, S[a]);++I}printf("%-20s %s\n" ,"TOTAL_IP" ,I);for(a in s) printf("%-20s %s\n" ,a, s[a]);printf("%-20s %s\n" ,"TOTAL_LINK" ,N);}'
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t" ,state[key]}'
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!