账号相关
用户
添加用户
useradd -m 用户名
passwd 用户名
删除用户
userdel -r 用户名
密码
创建root密码
sudo passwd root
修改指定用户密码
passwd 用户名
权限
修改文件归属group和用户
chown user:group 文件名
修改文件权限
chmod 755 文件名
ssh
ssh登录其他机器
ssh [-l login_name] [-p port] [user@]hostname
# 例:ssh -p 12333 root@216.230.230.114
修改 sshd_config后重启
systemctl restart sshd.service
磁盘相关
空间大小
查看当前目录下每个文件夹的大小
du -sh *
查询指定目录磁盘使用情况
du -h --max-depth=1 /var/lib/docker
网络相关
网卡信息
查询网卡信息
ethtool eth0
查询网络信息
ifconfig
端口查看
查看端口有没有被用
netstat -na|grep 端口
查看所有端口使用情况
netstat -na
netstat -nultp
lsof 查看端口占用
lsof -i:端口
显示 tcp,udp 的端口和进程等相关情况
netstat -tunlp | grep 端口号
扫描指定端口
nc -nvv ip port
# 例:nc -nvv 192.168.124.32 4080
网络请求
请求url
curl -l http://www.baidu.com
下载文件
wget http://www.baidu.com
网络监控
ping显示时间
ping 127.0.0.1 | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) }'
每隔0.6秒ping一次,一共ping 5次
ping -c 5 -i 0.6 qq.com
测速
speedtest
sudo apt install speedtest-cli
speedtest
# 1MB/s 等于 8Mbit/s
DNS
查询DNS的记录
nslookup baidu.com
文件相关
搜索
搜索内容
根据关键字搜索所有目录输出文件
mdfind -name "spss" | sort > ~/Desktop/spss_leftovers.txt
显示所有以d开头的文件中包含 test的行
grep 'test' d*
显示/usr/src目录下的文件(包含子目录)包含magic的行
grep -r magic /usr/src
搜索文件
查这个文件在哪个目录
find path expression
# 例:find / -name tnsnames.ora
查找一个文件大小超过100M的文件
find . -type f -size +100M
查找目录下文件名中含有指定字符串
find /etc -name 'srm'
传输
传输文件夹
# 拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/root目录下
scp -r /home/wtf/test/ root@192.168.100.1:/root/
传输文件
scp -P port file_name user@ip:/dir_name
# 例:scp /home/wtf/test/wtf.txt root@192.168.100.1:/root/
# -P: 大写的P, 指定端口号
# file_name: 指本机的文件路径, 绝对路径相对路径都可
# user: 远程主机的一个可用的用户名
# ip: 远程主机ip
# dir_name: 远程的一个user可以写入文件的目录
创建
创建文件
touch filename
vi filename
vim filename
创建文件夹
mkdir foldername
写入
清空日志
# 只能将一个日志文件给清空,可以在运行中进行
true > 日志名
vim 编辑器
# ● 命令模式:查找内容(/abc、跳转到指定行(20gg)、跳转到尾行(G)、跳转到首行(gg)、删除行(dd)、插入行(o)、复制粘贴(yy,p)
# ● 输入模式:编辑文件内容
# ● 末行模式:保存退出(wq)、强制退出(q!)、显示文件行号(set nu)
# 在命令模式下,输入a或i即可切换到输入模式,输入冒号(:)即可切换到末行模式;在输入模式和末行模式下,按esc键切换到命令模式
查看
查看动态日志
tail -f xx.out
查看最近1000行日志
tail -1000 xx.out
进程相关
进程统计
查看用户使用的进程或线程数量
ps h -Led -o user | sort | uniq -c | sort -nr
查看用户使用的进程或线程数量
ps h -Led -o user | sort | uniq -c | sort -nr
检查服务器上运行的线程和进程的总数
ps -eLf | wc -l
每个用户打开的进程数
ps --no-headers auxwwwm | awk '$2 == "-" { print $1 }' | sort | uniq -c | sort -n
进程信息
查看进程下的所有线程
top -H -p 进程id
查询进程的详细信息
ll /proc/PID #( PID为进程号,可通过top或者 ps -ef查看)
查询指定关键字进程
ps -ef|grep 关键字
# 例:ps -ef|grep nginx
显示进程所有状态
ps -aux | grep 关键字
# 例:ps -aux | grep java
杀死进程
强迫进程立即停止
kill -9 [PID]
压缩
压缩tar.gz
tar -zcvf ***.tar.gz
#例:(tar -zcvf renwolesshel.tar.gz renwolesshel/)
解压
解压tar.gz
tar -zxvf
磁盘相关
空间查看
查看主机还有多少空间
df -k
查看磁盘存储情况
df -h
查询磁盘结构
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
系统相关
监控
性能分析工具
top
系统
查询系统信息
cat /proc/version
uname -a
查看报告系统运行时长及平均负载
uptime
CPU
查询CPU信息
cat /proc/cpuinfo
内存
查询内存信息
cat /proc/meminfo
查询内存总量
grep MemTotal /proc/meminfo
查看内存的情况
free -m
临时关闭Swap 分区
swapoff -a
永久关闭Swap 分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
主机名
设置主机名
hostnamectl hostname 主机名
查看主机名
hostnamectl hostname
环境变量
修改环境变量
vim etc/profile
环境变量生效
source etc/profile
实践
目录满了
建立软连接解决目录满了问题
# 目录满了
/var/lib/jenkins/workspace
# 把文件移入新路径
mv /var/lib/jenkins/workspace /data/jenkins
# 然后建立软连接
ln -s /data/jenkins/workspace /var/lib/jenkins
自启动
后台自动启动
nohup java -jar /xxx/xxx/xxx.jar >/dev/null 2>&1 &
#关键在于最后的 >/dev/null 2>&1 部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海
# >/dev/null 表示将标准输出信息重定向到"黑洞"
# 2>&1 表示将标准错误重定向到标准输出(由于标准输出已经定向到“黑洞”了,即:标准输出此时也是"黑洞",再将标准错误输出定向到标准输出,相当于错误输出也被定向至“黑洞”)
command not found
ll command not found 当ll 无法识别时解决办法
ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名
vim ~/.bashrc
# 添加
alias ll='ls -l'
source ~/.bashrc
用户切换
普通用户免密切换root
vim /etc/sudoers
# 添加普通用户doge免密切换root
doge ALL=(root) NOPASSWD:ALL
保存后使用
sudo -s
或
sudo su -
报错 is unknown
curl命令出现–data-raw is unknown
将–data-raw换成–data即可
curl --location --request PUT 'http://ip:pory}/xx/xx/xx/xx'
--header 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
--header 'Content-Type: application/json'
--data '{
"uri":"/xx/*",
"desc":"xxxxxx",
"methods":["GET","POST","PUT","DELETE"],
"upstream_id": "xxxx"
}'