Centos7常用命令、操作、快捷键
常用快捷键
命令 | 描述 |
---|---|
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参数表示只展示文件名
- grep -nr “mongodb:” [目录,默认当前文件夹] 在当前目录下查找包含”mongodb:"内容
- 批量删除命令: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
maven
mvn dependency:tree 展示依赖关系树