总结一下自己在工作中通过 xshell 对linux服务器进行操作的常用命令
- xshell 中对命令经常用到的快捷键
ctrl + w 从命令行最后 按空格为分隔符 依次删除单词
ctrl + a 快速回到命令首部
ctrl + e 快速回到命令尾部
ctrl + u 将整个命令全部删除
ctrl + d 从光标位置开始向后删除
ctrl + r 进入命令搜索模式,快速搜索到自己最近执行的命令 按下enter键就会执行
ctrl + k 光标位置到命令尾部全部删除
- 查看linux版本信息
第一种:cat /proc/version
# 查看当前操作系统版本信息
第二种:uname -a
# 查看当前系统内核信息
第三种:lsb_release -a
# 第三种可以看到全部的系统信息
- 快速搜索日志文件中有用信息
# -i 表示忽略大小写
# *.log 表示以 log 结尾的 当前文件下的所有文件;也可以指定明确的文件名以逗号分隔
# -n 显示搜索文件中的行数
# -c 只查看 目标字符串 在第几行
# -v 查找不匹配的的字符串 通常可用来反选
grep -i "exception" *.log
# A 表示 被查询字符串之前多少行
# B 表示被查询字符串之后多少行
grep -A 10 -B 10 -i "被查询的字符串" filename
- less 查看文件
使用 less 查看中文乱码,或者有 esc 等奇怪符号
-g 跳转到文件开始
-G 跳转到文件结束
解决办法:
使用 less -R 可以去除 奇怪符号
export LESSCHARSET=latin1
解决中文乱码问题
- jps 显示所有 java 进程 pid 信息
jps
# 列出 pid 和 java 主类名
jps -l
# 列出 pid 和完整的 java 主类名
jps -lm
# 列出 pid 、主类全称和应用程序参数
jps -v
# 列出 pid 和 jvm 参数
jps -lvm
# 结果和 【ps -ef | grep java】结果类似
- du 查看空间
# -a 显示目录中所有文件大小
# -k 以KB为单位显示文件大小
# -m 以MB为单位显示文件大小
# -g 以GB为单位显示文件大小
# -h 以易读方式显示文件大小
# -s 仅显示总计
# 输出当前目录下各个子目录所使用的空间 :
du -hc --max-depth=1 ./
# 显示指定文件所占空间
du log2012.log
- Sort 排序
# -r 以相反的顺序展示
# -n 依照数值的大小排序
# -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
# -f 排序时,将小写字母视为大写字母
# -t <分隔字符> 指定排序时所用的栏位分隔字符
# 查看排序之后最后的 20位
sort -nrk 1 -t: | tail -n 20
- 快速截取一部分字符串
cut -d: -f1
以 ":" 进行分割 取第一部分
- 进程操作
kill %1 表示关闭后台进程 eg:[1]+ stopped ${进程名}
kill -l 查看当前系统支持发送的信号
- 网络操作
dig google.com 查看该域名对应的ip地址
curl 通过命令行的方式发起http请求
eg:curl ifconfig.me 能够查到当前服务器对应的公网地址
curl -L eggman.tv 表示会继续执行接下来要跳转的地址 比如使用了https请求 在访问80端口时强制转发到443安全端口
curl -i eggman.tv 能够获取到当前请求的头信息
curl -v eggman.tv 能获取到请求信息和response头部信息
curl -H "a:1" -H "b:2" eggman.tv 表示在请求该地址的时候添加定制请求头
curl -F "A=1" -F "B=2" eggman.tv 表示表单提交 这样默认发送 POST 请求 可以使用 -X PUT 改变请求方式
curl -d "" eggman.tv 提交一些body信息
wget 命令行的下载工具
wget http://halo.ryanc.cc/release/halo-1.3.0.jar -O halo-latest.jar 下载并以指定的名字保存文件
wget -b 表示下载进程进入后台运行 tail -f wget-log 可以用该命令查看下载信息
wget --spider www.baidu.com 模拟下载,不会真实的下载文件,检查网站是否良好,是不是可以下载
wget -S www.baidu.com 打印服务响应信息
wget -r --tries=2 www.baidu.com 指定尝试次数 2次之后不再尝试
- netstat 命令
netstat -s | grep "SYNs to LISTEN" 查看 tcp 半连接队列有多少溢出情况
netstat -anpl | grep <端口号> 查看该端口被哪个程序所占用
- 系统守护进程查看
注意:安装 supervisord 进程管理工具
pip install supervisor
守护进程查看tomcat运行:supervisorctl status
守护进程启动tomcat:supervisorctl start tomcat
守护进程关闭tomcat:supervisorctl stop tomcat
- 系统管理工具
w 该命令直接可以看到有几个用户,系统运行多长时间
uptime 也可以看到 w 命令的简化信息
watch -n 1 "date" 表示每一秒查看一次 date 运行的结果
- 自定义命令
1、在用户目录下 .bash_profile文件中定义一个方法
start(){
echo $USER
}
就可以在该用户登录的时候使用start命令了
2、alias l="ls -l" 表示给 ls -l 起一个别名 也就是在执行 l 的时候就表示执行了 ls -l 命令
3、创建 /bin 目录,将该目录添加到$PATH中 自己写的shell脚本就能够直接运行
export PATH=$PATH:$HOME/bin (自己定义的命令优先级低)
- linux中启动springboot项目
nohup java -jar 项目.jar --server.port=8081 &
其中nohup 表示当终端关闭时,Spring Boot 不要停止运行
& 表示让 Spring Boot 在后台启动
- linux时间相关
# 修改时间
date -s "时:分:秒"
date -s "年-月-日 时:分:秒"
# 按照指定的格式查看日期 +转换为具体的格式
date '+%Y-%m-%d %H:%M:%S'
# -d 参数进行 时间计算 正负号表示时间的加减
date -d '+3 days +2 hours -1 minute' '+%Y-%m-%d %H:%M:%S'
date -d '-3 days -2 hours' '+%Y-%m-%d %H:%M:%S'