提示:linux下常用命令、linux下的定时任务、两个服务器时间不一致,怎么同步、linux下查日志的命令、两个服务器之间建立信任、判断端口通不通、linux中防火墙、对外开放端口
前言
今天分享一些linux中的常见命令,当然,可能有一部分不那么常用。话不多说,直接上硬菜。本人水平有限,如有误导,欢迎斧正,一起学习,共同进步!
一、基础命令
1、cd
cd命令,进入到某个文件夹中。示例:
cd /usr/local
2、ls/ll
ls、ll是查看当前文件夹下的全部文件列表。示例:
ls -lht 查看当前文件夹内,所有文件的大小
3、stat
查看文件的创建、修改时间。示例:
stat 文件名
4、grep
过滤掉一部分内容。示例:
ps -ef |grep java // 筛选出来是java的进程
5、cp
cp命令,复制文件
cp file1 file2 file3 dir 将文件1、文件2、文件3复制到目录dir当中
cp 源信息(fileName) 目标信息(newFileName) 复制文件
cp -r directoryName newDirectoryName 复制目录(复制目录用-r)
6、scp
也是复制文件,只不过是两个服务器之间的cp。
scp -r /usrl/text.txt 10.2.193.85:/root/ 把当前虚拟机的text。txt文件,推送到远程的 10.2.193.85:/root/ 路径下
scp -r 10.2.193.85:/root/jj.txt . 从远程物理机10.2.193.85中,拿到jj.txt 拉取到本机中
scp 10.1.200.173:/root/dist.zip ./ 从远程物理机10.2.193.85中,拿到jj.txt 拉取到本机中的当前文件夹
示例:
scp -p port username@serverip:/home/user/file /home/user/file
-p port为指定端口,一般采用默认端口,可省略;
username为远端主机的用户名;
7、mv
mv 移动某个文件或文件夹。
-f:force,强制的意思,若目标文件已经存在,不会询问而直接覆盖
-i:若文件已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且比目标文件新,才会更新
示例:
mv /usr/local/jdk /usr/jdk
8、rm
rm命令,删除文件或目录。
-f:就是force的意思,忽略不存在的文件,不会出现警告信息
-i:互动模式,在删除前会询问用户是否操作
-r:递归删除,常用于目录删除,是一个非常危险的参数
-v:显示指令的详细执行过程。
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
示例:
rm -rf /usr/local/jdk
9、ps
ps,查看linux下的程序
ps aux:查看系统的所有进程
ps ax:查看不与terminal有关的所有进程
ps -|A:查看系统所有的进程数据
ps axjf:查看连同一部分进程树状态
示例:
ps -ef |grep java
ps aux | grep keywords
10、kill
kill,杀死某个进程
kill -signal PID 。其中signal如下
1:启动被中止的进程
2:相当于ctrl+c,中断一个程序的进行
9:强制中断一个进程的进行
15:以正常结束进程方式来终止进程
17:ctrl+z,暂停一个进程的进行
示例:
kill -9 15672
11、tar
tar [参数] source [target] source压缩文件,target解压缩后的目标位置
压缩:tar -icv -f filename.tar.bz2 要被处理的文件或目录名称
tar -czf 要压缩的目录 压缩后的文件名
查询:tar -itc -f filename.tar.bz2
解压:tar -jxv -f filename.tar.bz2 -C // tar -zxc jdk -C /usr/local -C是指解压到指定目录
tar -zxf 压缩文件名
tar -zxvf 压缩文件名
z:zip格式压缩文件,包含zip,gz,tar,gz等格式,不包含rar
c:创建压缩包
x:解压缩
f:指定文件
v:显示解压过程
示例:tail -zxvf a.tar
12、cat
cat命令,查看文件详情。示例:
cat a.txt
13、chmod
chmod命令,改变文件的权限。示例:
chmod 755 start.sh
chmod +x * // 这个文件夹下的全部文件,都赋予可执行的权限
也可以:
chmod +x /bin/scp 给scp命令加权限(目标服务器,把这个文件要拷贝到的服务器)
14、vi/vim(vim是增强命令,不代表所有的linux都支持)
vi filename
进入编辑模式:
a:append,追加的方式进入编辑模式
i:insert,插入的方式进入编辑模式
o:在光标的位置之下,新增一行,进入编辑模式
O:在光标的位置之上,新增一行,进入编辑模式
:dd:删除指定行,默认是1行
:w:保存
:q:退出vi编辑器
:wq:保存并退出
:q!:强制退出不保存
:set nu:显示行号
/keywords:搜索关键字,这个keywords是关键字
G:光标跳到文件尾
gg:光标跳到文件头
:%s/8001/8002/g // 将整个vim中的 8001 都换成8002,g代表全局替换
示例:
vim a.txt
15、file
file命令,用于判断文件的基本数据(因为linux中不是以后缀来区分的,看他是什么类型的数据)
file filename 示例:
file ./test
16、pwd
显示当前的目录层级。示例:
pwd
17、clear/clear screen
清空当前的显示屏。示例:
clear
18、touch
touch,创建文件命令。
touch 文件名
touch 目录/文件名
示例:
touch a.txt
19、mkdir
mkdir创建目录(文件夹)
mkdir directoryName 创建一个目录
mkdir -p parentDirectory/childDirectory 创建多级目录
mkdir ./node800{1,2,3,4,5,6} // 在当前目录同时创建8001,8002,8003…等6个节点
二、查日志相关命令
1、tail
查看一个文件的详情。示例:
tail -f 文件名
tail -100 文件名 // 看前100行
2、pwdx
pwdx,根据线程id,显示对应的目录层级。示例:
pwdx 线程id 显示当前线程id的线程的,文件所在位置
3、head
head显示前多少行(默认显示前10行)。head -number filename
示例:
cat -n nohup.out |tail -n +785|head -n 20
表示拿到 nohup。out文件中的 785行 下面的20行数据
4、cat
1、有关键字的 cat -n test.log | grep “关键词”
cat -n catalina.out |grep 717892466
cat error.log | grep -B 5 'nick' 显示nick及前5行
cat error.log | grep -A 5 'nick' 显示nick及后5行
cat error.log | grep -C 5 'nick' 显示file文件里匹配nick字串那行以及上下5行
cat error.log | grep -n -B10 -A10 5 'nick' 显示file文件里匹配nick字串前后10行
2、有行号的
首先: cat -n test.log |grep "地形" 得到关键日志的行号
cat -n nohup.out |tail -n +785|head -n 20
表示拿到 nohup。out文件中的 785行 下面的20行数据
5、vi
vi 进去日志文件, / 关键字 n 下一个,N 上一个 G 或者是 g
三、服务相关
1、df -hl
df -hl 查看当前内存的使用量,容量、已用、可用、已用%、挂载点。(查看服务器存储满没满)。示例:
df -hl
2、ifconfig
查看网卡信息。
ifconfig -a 查看所有网卡信息。
示例:
ifconfig
3、service
service服务控制命令
service 服务名称(iptables) start
service 服务名称 stop
service 服务名称 restart
service 服务名称 status
4、wget
wget 命令,是从网上下载资源用的。示例:
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
5、telnet
telnet ip 端口 (更多的是为了测ip的端口通不通的)。
telnet 192.168.0.5 //登录IP为 192.168.0.5 的远程主机
telnet 10.2.196.123 8848
telnet 怎么退出?
ctrl + ] 到命令行以后,
quit 退出telnet
6、ssh
ssh ip 切换到另一个虚拟机中(更多的是跳转)。示例:
ssh 10.1.200.173
7、ssh-keygen
如果你是想让 A 机和 B 机建立受信任,则将a的秘钥发到b上。a和 C 建立信任,则将a的密匙发到c上。要想b和a建立信任,则将b的密匙发到a上,b和c建立信任,则将b的密匙发到c上。就是若希望互相信任,则互相发就行。
在A机上:
ssh-keygen -t rsa
此时在~/.ssh文件夹中会有公钥和私钥:id_rsa 和id_rsa.pub cd /root/.ssh/
只要将id_rsa.pub文件复制到B机的相应的目录处,并且改名为authorized_keys就可以了
如果两台主机不在同一个内网中,并且其中一台是在一个共用IP地址的内网中,为其映射了一个端口号,
那么外网中的那台主机需要指定需要访问的端口号:
命令为:
scp -P 端口号 用户名@IP地址:路径 目的
8、curl
curl:在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。示例:
curl http://www.linux.com 执行后,www.linux.com 的html就会显示在屏幕上了
9、jps
jps命令是jdk提供的一个查看当前java进程的小工具,jps -l 输出完整的包名,应用主类名,jar的完全路径名。示例:
jps
10、local
定位到某个服务名,在服务器中的位置。示例:
locate redis-cli | grep ‘/redis-cli$’ // ( redis-cli 是服务名 )
11、ss
ss -s 查看tcp连接的数量
12、crontab
linux下的定时任务
crontab -l 查看linux下的 定时任务(当前登录人的 linux下的定时任务)
使用场景:如果你的服务器内存特别小的话,就需要定时的去清理日志,所以用定时任务去定时的去跑清理日志的脚本
crontab -e 去编辑这个定时任务的内容
crontab -r 删除
13、systemctl
比如两个服务器的时间不一致,怎么同步。
①直接修改服务器时间
输入命令行:date 查询服务器时间
输入命令行:date -s "20220112 12:42:00"
②同步其他服务器的时间到当前服务器
输入命令行:systemctl stop ntpd
输入命令行:systemctl disable ntpd
输入命令行:ntpdate 10.10.51.245(替换成时间正确的服务器)
14、md5sum
是用来比较两个文件内容是否一致的,如果md5的值一样,则说明俩文件一样。比较的是文件的内容,不是文件名。示例:
md5sum * (cd /opt/www/app/gwtrip/reconciliation/service)
15、sz
是从服务器下载文件用的。示例:
sz 文件名 把某个文件从服务器上下载到本机上
16、rz
将某个文件上传到服务器上(执行完以后,会弹出一个框,让你去选择文件)。示例:
rz
17、firewall
防火墙。示例:
firewall-cmd --list-all 列表
firewall-cmd --add-port=8080/tcp --permanent 查看防火墙已经开放的端口
firewall-cmd --reload 重启防火墙
18、reboot
reboot,重启linux
19、mysql
是用来连接mysql数据库用的。
mysql -u root -h 192.168.27.128 -P 3306 -p
mysql -u 是用户名,-h是连接的mysql的ip,-P是对方的端口,必须是大写的
20、du
查看文件大小。
du -sh 目录名称 查看指定目录的总大小
总结
作为一个Java开发的话,掌握以上命令,肯定就可以完成项目的部署、重启、排查等要求了,至于一些强化的命令,会有专门的运维工程师去处理的。后续有机会的话,还会给大家分享一些深入的命令。