在项目中常使用的命令,做记录以防忘记。
有错误请留言指正,看到就会修改,不定时更新
文章目录
1、查看进程
例如:
①. ps -ef|grep tomcat
②. ps -ef|grep java
③. ps -aux|grep redis
可以查看进程状态。
④. kill -9 PID
强制杀死指定PID的进程。
具体参数含义自行搜索。
2、查看磁盘、内存使用情况
①. 查看磁盘使用情况:df -h
。
②. 查看当前目录各个文件大小:du -sh *
。
②. 查看内存使用情况:free -h
。
3、vim命令
"vim 文件
"可以修改文件内容。打开文件后再按 i 进取编辑模式,修改完成后按 esc
退出编辑模式。按 :wq
进行保存退出,如果不加w的话就只是退出,不会保存。
3、查看日志
less 命令:
在 less 中,可以使用以下快捷键:
向下翻页: 按空格键
向上翻页: 按 b 键
向下滚动一行: 按 Enter 或向下箭头
向上滚动一行: 按向上箭头
搜索关键词: 输入 / 然后输入关键词,按 Enter,使用 n 往后查找,使用 N 往前查找
跳转到最后一行:按 G 键
退出 less: 按 q 键
如果你还想要实时监控日志,并且可以随时跳到某一行,可以使用 tail -f 和 less 的组合。你可以使用如下命令:
tail -f /path/to/your/logfile.log | less -R
tail命令
查看文件的最后几行,可以使用 tail 命令,配合 -n 选项来指定行数
tail -n 100 /path/to/your/logfile.log
4、linux查看cpu和操作系统
查看cpu信息:
cpu信息记录在/proc/cpuinfo中。也可以直接使用lscpu
查看。
#查看cpu信息
lscpu
Architecture: x86_64 架构
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 40 逻辑CPU数
On-line CPU(s) list: 4-9
Off-line CPU(s) list: 0-3,10-39
Thread(s) per core: 0 每个核心的线程
Core(s) per socket: 10 每个物理CPU中的核心数
Socket(s): 2 物理CPU数
NUMA node(s): 1
Vendor ID: GenuineIntel CPU厂商ID
CPU family: 6 CPU系列
Model: 85
Model name: Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz 型号
Stepping: 7
CPU MHz: 2700.106
BogoMIPS: 4406.77
Virtualization: VT-x CPU支持的虚拟化技术
L1d cache: 32K 一级缓存(这具体表示表示CPU的L1数据缓存)
L1i cache: 32K 一级缓存(具体为L1指令缓存)
L2 cache: 1024K 二级缓存
L3 cache: 14080K
NUMA node0 CPU(s): 0-39
- 物理CPU数
物理CPU就是插在主机上的真实的CPU硬件,在Linux下可以数不同的physical id 来确认主机的物理CPU个数。可以看到当前机器拥有2颗物理CPU
。
[work@tjtx etc]$ cat /proc/cpuinfo | grep 'physical id' | sort | uniq
physical id : 0
physical id : 1
- 每个物理CPU的核心数
我们常常会听说多核处理器,其中的核指的就是核心数。在Linux下可以通过cores来确认主机的物理CPU的核心数。可以看到每颗CPU拥有10个逻辑核心
。
[work@tjtx etc]$ cat /proc/cpuinfo | grep 'cpu cores' | uniq
cpu cores : 10
- 逻辑CPU个数
逻辑CPU跟超线程技术有联系,假如物理CPU不支持超线程的,那么逻辑CPU的数量等于核心数的数量;
如果物理CPU支持超线程,那么逻辑CPU的数目是核心数数目的两倍。
在Linux下可以通过 processors 的数目来确认逻辑CPU的数量。当前机器拥有40个CPU线程
。
[work@tjtx etc]$ cat /proc/cpuinfo | grep 'processor' | wc -l
40
综上所述:这台机器有2颗物理CPU,每个物理CPU有10个核心,系统一共拥有40个逻辑CPU。显然开启了超线程。
超线程介绍链接:linux 超线程及其原理,以及如何查看是否开启了超线程
查看操作系统版本:
#查看操作系统版本
cat /proc/version
Linux version 4.18.20-2.el7.wuba.lp.x86_64 (sys@58.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)) #1 SMP Mon Dec 23 17:24:31 CST 2019
5、linux中redis的使用
此处假设redis已经安装编译完成。如何安装自行百度。(其实就是把redis的tar.gz包下载下来然后解压,再进入目录中使用make命令编译即可)。这里不讲redis的其他启动操作和集群配置,只列出基本的启动服务、关闭服务命令,想了解具体配置请查看收藏夹。
①. 开启redis服务: 进入src目录后执行 ./redis-server ../redis.conf
。redis.conf是配置文件。
②. 连接redis客户端:在src目录下执行 ./redis-cli -h 127.0.0.1 -p 6379
。
③. 关闭redis服务:在src目录下执行 ./redis-cli -h 127.0.0.1 -p 6379 shutdown
或者直接杀死redis-server的进程。
④. 其他常用redis命令,登录客户端之后可执行以下操作:
select 1 //redis默认有16个数据库,使用select选择一个然后进行后续操作。
dbsize //查看当前数据库键的个数。
keys pattern //查看匹配模式的所有key
flushdb //清空当前数据库的所有键值。
flushall //晴空所有数据库中的键值
info //查看redis信息。
info memory //查看redis内存方面的信息。
cluster info //查看redis集群信息。
cluster slots //查看redis集群槽的信息。
cluster nodes //查看redis集群节点信息。
type key //查看key的类型
6、linux中mysql的使用
①. 启动mysql服务: 执行service mysqld start
。
②. 关闭mysql服务: 执行service mysqld stop
。
③. 启动mysql服务: 执行service mysqld restart
。
④. 查看mysql服务状态:执行service mysqld status
。
④. 登录mysql客户端:执行mysql -u root -p
后再输入密码即可登录。登录客户端后可执行以下操作:
show databases; //查看所有数据库。
use 数据库名称; //使用指定的数据库。
show tables; //查看当前数据库所有的表。
DESCRIBE 表名; //查询表结构
quit //退出客户端。
7、linux中mongodb的使用
①. 启动mongo服务(以配置文件的方式启动):在mongodb的bin目录下执行 ./mongod -f 配置文件的位置
就可以启动mongo服务。
②. 启动mongo服务(以数据存储文件的方式启动):./mongod -dbpath 数据文件的位置
。
③. 登录mongoshell进行操作:在bin目录下执行 ./mongo --port 27017 -u admin -p 111111 --authenticationDatabase admin
就能以admin的身份登录shell进行操作。
④. 根据ID进行查询:db.collection.find({"_id" : ObjectId("xxxxxxxxxxxx")})
就可以查询出指定_id的文档,如果想要删除只需要把find换成remove即可。
8、查看端口使用情况
netstat -anp|grep 端口号
例如:
①. netstat -anp|grep 8080。
②. netstat -anp|grep 6379。
主要看监控状态为LISTEN表示已经被占用,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了。
ps:windows查看端口占用和杀死进程命令如下:
①.netstat -aon|findstr 8080
。
②.tasklist | findstr "15404"
。
③.taskkill -pid pid /f
。
ps:mac本查看端口占用和杀死进程命令:
①.查看端口占用:lsof -i:8080
。
②.杀死进程:kill pid"
。
9、linux启动jar包程序
linux运行jar包命令如下:
方式一:
java -jar xxx.jar
特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。
方式二:
java -jar xxx.jar &
&代表在后台运行。
特点:当前ssh窗口不会锁定,但是当关闭该窗口时,程序中止运行。
方式三:
nohup java -jar xxx.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
方式四:
nohup java -jar xxx.jar >log.txt &
解释下 >log.txt
command >out.file
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
10、linux压缩命令
- 解压.zip文件:
unzip 文件名
。加上-o
参数会进行覆盖解压。 - 压缩.zip文件:
zip -r 压缩后的文件名.zip 文件名(可以为多个)
。 - 解压.tar.gz文件:
tar -xzvf 文件名
。
其余用法:
1、 --strip-components用法
格式:tar --strip-components = NUMBER
在提取时从文件名中删除NUMBER个前导组件,如下:
tar xf xxx.tar.gz -C /usr/src/001
/usr/src/001/xxxxx/src/opp/lll.txt
tar xf xxx.tar.gz -strip-components=1 -C /usr/src/001
/usr/src/001/src/opp/lll.txt
2、 不解压直接查看tar.gz压缩包里的内容
tar -tvf xxx.tar.gz
- 压缩.tar.gz文件:
tar -czvf 压缩后的文件名.tar.gz 将要压缩的文件(可以是多个)
。 - 打包.tar文件:tar是打包,不是压缩。
tar -cvf 打包后的文件名.tar 将要打包的文件(可以为多个)
。 - 解包.tar文件:
tar -xvf 解包的文件名.tar
。 - 压缩.rar文件:
rar a 目录文件名.rar 目录文件名
。 - 解包.rar文件:
unrar x 目录文件名.rar
。 - 压缩.gz文件:
gzip 文件名
。 - 解包.gz文件:
gzip -d 文件名.gz
。 - 压缩.bz2文件:
bzip2 -z 文件名
。 - 解包.bz2文件:
bzip2 -d 文件名.bz2
。 - 解压.jar包:
jar xf jar包名
。
还可以把jar包后缀改成.zip然后使用unzip命令解压。 - 压缩.jar包:
jar cvf jar包名 ./
将当前目录下文件打成jar包。
jar命令参数 | 说明 |
---|---|
-c | 创建一个jar包 |
-t | 显示jar中的内容列表 |
-x | 解压jar包 |
-u | 添加文件到jar包中 |
-f | 指定jar包的文件名 |
-v | 输出详细报告 |
-m | 指定MANIFEST.MF文件 |
-0 | 生成jar包时不压缩内容 |
-M | 不生成清单文件MANIFEST.MF |
-i | 为指定的jar文件创建索引文件 |
-C | 可在相应的目录下执行命令 |
11、切换到root用户与ssh命令
①. 切换到root用户:sudo -s
。
②. ssh使用:ssh 用户名@机器名或ip地址
12、Git常用命令
- 显示当前Git配置:
git config --list
。 - 设置提交代码时的用户信息:
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"
- 更新远程分支列表:
git remote update origin --prune