Centos7常用命令、操作、快捷键

  • 常用快捷键
  • 常用命令
  • 线上常用命令
  • 查看日志
  • ps -ef | grep xxx
  • 其他归类命令
  • 文件命令
  • 系统命令
  • 软件安装相关命令
  • 解压缩
  • 修改环境变量
  • 防火墙开放端口策略
  • jar
  • 查看服务
  • mysql用到相关命令
  • 服务器常用命令
  • 磁盘命令
  • 平时收集
  • zookeeper


常用快捷键

命令

描述

tab

自动补全

常用命令

命令

描述

netstat -anp | grep 2181

查看zookeeper的2181端口是否在用,sudo yum install net-tools安装

kill -9 pid

杀掉进程

ps pid

查看进程信息

find / -name filename

在/目录查找文件

find / -name dirname -path d

查找目录

> /var/log/yum.log

清空文件内容

cat 日志名称 | grep 关键字 --color=auto

查看日志

ps au | grep java: 只展示当前终端机器的所有用户的进程信息。
ps ux | grep java: 比如展示所有终端机器的root用户的进程信息。
故常用:ps aux|grep java

线上常用命令

  • man ls: 帮助命令
  • grep [-A|-B num] PATTERN FILE-----------a为after,b为before,即显示匹配行的前或后多少行,-num表示前后都显示;
  • cat filename | grep -A|-B 1 pattern-------效果貌似同上面
  • cat file | head -size*page| tail -size ------不断增加page,相当于分页查看

查看日志

命令

描述

ls -lh

以合适的单位显示文件夹里 文件列表

tail -100f filename.log

查看日志文件的最后100行

cat filename.log | grep ‘关键字’

按关键字搜索文本

grep -A 10 ‘keyword’ filename.log

查看匹配keyword的行、及其后面10行。-B表示其前面10行

cat java.out | tail -n +x | head -n +y

先去掉前面x-1条日志,再只取前面y条机制,即x开始的y条日志

命令

描述

cat java.out | head -n x/+x

查看前面x条日志,相当于+10

cat java.out | head -n -x

查看除了最后x条以外的所有日志

cat java.out | tail -n x/-x

查看最后的x条日志,相当于-10

cat java.out | tail -n +x

查看除了前面x-1条以外的所有日志

  • 对于head/tail -n x。对于x > 0且不带符号, 表示head/tail开始至第x条记录,x等价于+x/-x;相对应的-x/+x时表示,不要最后x条/不要最开始的x条。
  • 即head永远优先前面的日志;tail优先后面的日志;
  • head只用x,tail只用-x(默认-可以去掉)比较好理解:

cat java.out | head -n x | tail -n y|,即先取前面x记录,再取x条中后面y条记录,即第(x - y + 1) 至 x条的记录 ;

ps -ef | grep xxx

[root@localhost ~]# ps -ef | grep sentinel
root       8973   8856  0 21:12 pts/2    00:00:00 grep --color=auto sentinel

UID

PID

PPID

C

STIME

TTY

TIME

CMD

所有者

PID

上级ID

CPU百分比

系统启动时间

登入的终端位置

使用掉的CPU

下达的指令

root

8973

8856

0

21:12

pts/2

00:00:00

grep --color=auto sentinel

其他归类命令

文件命令

命令

描述

rm -f 文件

忽略不存在文件,强制删除,无提示

rm -rf 目录

递归删除目录及下面文件

cp -b 旧文件 新文件

复制文件并重命名

vi 文件名

-------修改文件

i:

进入文件时,"i"可进入编辑状态

esc + :q!

-------不保存强制退出

esc + :wq

保存强制退出

touch filename

创建空白文件

mkdir -p 目录

-p可以创建多级目录

系统命令

命令

描述

ip addr

可以查看ip信息(centos 7)

systemctl stop/start/status/ firewalld

关闭/开始/状态 防火墙

firewall-cmd —state

查看火墙状态,比“systemctl status firewalld”更加易看;

systemctl enable/disable firewalld

开启/关闭防火墙开机启动

reboot

重启

chown -R root /var/ftp

修改所有者

chmod -R 666 /var/filename.txt

修改权限

cat /etc/redhat-release

查看系统版本,比如:Red Hat Enterprise Linux Server release 7.4 (Maipo)

userdel username

删除用户(貌似也会删除对应组。。。)

useradd -m username

创建用户名和组名都为username的用户和组

free -m

查看内存

lscpu

可以查看cpu信息

cut -d : -f 1 /etc/passwd

查看系统有哪些用户

软件安装相关命令

查看是否安装

来源

命令

描述

rpm

rpm -qa | grep 软件或者包的名字

查找某软件包是否安装

yum

yum list installed | 软件或者包的名字

例如:yum list installed

源码包

root用户安装通常在/sbin:/usr/bin目录下

常用软件安装

命令

描述

-

-

yum install zip unzip

安装zip、unzip应用

yum provides ifconfig、yum install net-tools

安装后可以使用ifconfig,可以查看ip等

yum install mlocate、updatedb

locate文件查找命令

解压缩

命令

描述

yum install zip unzip

安装zip、unzip应用

unzip Xxx.zip -d 解压到的目录

解压zip文件

tar -zxvf 文件名

解压tar.gz

tar参数

参数

意义

-z

通过gzip方式压缩或解压,最后以.tar.gz 为后缀

-x

解压,-C + 解压目录

-v

黑框框输出解压或压缩的过程

-f

后面+解压缩的文件名

-c

新建压缩文档

cxt(查看)(末尾加文件)u(更新压缩包中文件)这几个参数只能有一个参数

修改环境变量

  • vim /etc/profile
  • 输入"i"进入编辑
  • 文件末尾加入,下面是jdk和ignite的示例
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64
export IGNITE_HOME=/usr/local/apache-ignite-fabric-2.6.0-bin

export CALSSPATH=$JAVA_HOME/lib/*.*
export PATH=$PATH:$JAVA_HOME/bin:$IGNITE_HOME
  • source /etc/profile:使参数生效;
  • 验证,如下
[root@localhost ~]# echo $IGNITE_HOME
/usr/local/apache-ignite-fabric-2.6.0-bin

防火墙开放端口策略

下面以数据库的3306为例

// 添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
// 删除3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
// 查看端口
firewall-cmd --list-ports
// 生效
firewall-cmd --reload

临时生效

// 查看3306是否开放
iptables -L -n|grep 3306;
// 临时生效
iptables -I INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT;

jar

// 启动jar
nohup java -jar image-process.jar &
// 关闭启动的jar
ps -ef | grep 'java -jar' 
kill -8 pid

查看服务

systemctl list-unit --type | grep mysqld:查看服务

  • list-units:运行中单元
  • list-unit-files:可用单元
  • –failed:列出失败单元

mysql用到相关命令

  • systemctl status/start firewalld:查看/启动防火墙
  • firewall-cmd --list-ports:查看防火墙放开的端口
  • systemctl list-unit-files | grep enabled:查看启用的服务。注意某服务启动,但可能stop了!
  • systemctl list-unit-files --type=service | grep mysql:列出所有可用单元,再grep筛选
mysqld.service                                enabled 
mysqld@.service                               disabled
  • 查看mysql是否安装
[root@VM_5_17_centos local]# rpm -qa|grep mysql
mysql-community-libs-5.7.27-1.el7.x86_64
mysql-community-common-5.7.27-1.el7.x86_64
mysql-community-client-5.7.27-1.el7.x86_64
mysql-community-server-5.7.27-1.el7.x86_64
  • 查看安装位置,貌似有多个位置。貌似默认是/usr/lib64/mysql
[root@VM_5_17_centos local]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

[root@iZuf6agiqhn4s48doletzuZ bin]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/man/man1/mysql.1.gz

usr/bin/mysql 是指:mysql的运行路径 
/usr/lib64/mysql 是指:mysql的安装路径
  • 查看运行文件位置
[root@iZuf6agiqhn4s48doletzuZ ~]# which mysql
/usr/bin/mysql
  • 启动时读取文件my.cnf,----------------不太明白,大概是/etc/my.cnf,相当于win下my.ini
[root@VM_5_17_centos mysql]# mysql --help | grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
[root@VM_5_17_centos mysql]# locate my.cnf
/etc/my.cnf
/etc/my.cnf.d
[root@VM_5_17_centos mysql]#

服务器常用命令

运行jar

// 查看哪些jar在运行
ps -ef | grep '.jar'

// 修改权限\用户
chmod -R 755 xxx.jar
chown -R root:root xxx.jar

// 修改jar
vim xxx.jar   -> enter -> 箭头上下移动找到要修改的文件 -> 编辑后 :wq保存即可

// 运行jar
/usr/local/java/bin/java -Dserver.port=8082 -jar /var/clusters/application/node01/app.jar

// 终止jar包运行:
kill -9 进程号

后台运行:nohup /usr/local/java/bin/java -Dserver.port=8082 -jar /var/clusters/xxx/node01/xxx.jar >xxx.log  &

post

// 向http://99.10.10.112:10008/xxx.json发起post请求,参数{"id":100}
curl -X POST http://99.10.10.112:10008/xxx.json -H 'Content-Type: application/json' -d '{"id":100}'

磁盘命令

  • df -h: 查看磁盘情况
  • lsof | grep deleted: 删除文件后空间未释放的话,可以用这个命令查看
  • du -sh *: 统计当前文件夹个文件大小
  • find . -size +100M: 查找大文件
  • du -sh: 当前空间总和

平时收集

  • 查看文件的时间:ls -l --time=ctime
  • 修改文件的修改时间:touch -m -d “2020-05-09 12:00:00” logger.log
  • 查看历史操作:history
  • centos7实现一段时间后Shell自动登出非活动用户
> vim /etc/profile

修改
export TMOUT=3000
# readonly TMOUT         # 防止用户更改

shell中
> TMOUT=0      防止超时退出
  • 用户列表文件:/etc/passwd/
  • cp -r 源目录 目标目录
  • find . | xargs grep -ri ‘要在当前目录下查找的内容’
  • find . | xargs grep -ril ‘要在当前目录下查找的内容’ ----------l参数表示只展示文件名
  • 批量删除命令:find . -name ‘xxx’ -exec rm {} ;
  • ps -p pid -o lstart: 可以查看进程的启动时间
  • 删除文件未释放空间:lsof -n /xxx |grep deleted|awk ‘{print $2}’|xargs kill -9

zookeeper

zkServer.sh start-foreground