介绍

命令说明
stat显示指定文件的相关信息,比ls命令显示内容更多
who显示在线登录用户
hostname显示主机名称
uname显示系统信息
top显示当前系统中耗费资源最多的进程
ps显示瞬间的进程状态
du显示指定的文件(目录)已使用的磁盘空间的总量
df显示文件系统磁盘空间的使用情况
free显示当前内存和交换空间的使用情况
ifconfig显示网络接口信息
ping测试网络的连通性
netstat显示网络状态信息
clear清屏
kill杀死一个进程

常用启动脚本

#! /bin/bash
nohup /usr/java/jdk1.8.0_161/bin/java -Dfile.encoding=UTF-8 -jar boot-1.0.jar --spring.config.location=application.properties &>./log.txt &

tail -f log.txt

linux下检查是否安装过某软件包

  1. rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"

  2. 以deb包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep "软件或者包的名字"

  3. yum方法安装的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "软件名或者包名"

  • 查看是否安装了gcc

yum list installed | grep "gcc"

输出重定向

1. 语法

切记,执行输出时记得提前备份,防止覆盖源文件 😢。

command > file

执行命令 command 然后将结果输出至 file 文件中。

2. 示例

  • echo:基础操作;

    echo "hello world" > linux.txt
    
  • cat:普遍的使用;

    cat linux.txt > linux1.txt
    
  • command:command 解释。

    which google-chrome-stable > linux.txt
    

3. 扩展内容

  • 错误输入:命令错误时不会生效,修改默认文件描述符输入错误提示信息;

    cho "hello world" 2> test.txt
    
  • 追加输入:追加内容。

    echo "hello world" >> test.txt
    

输入重定向 核心使用

常利用空设备open in new window(/dev/null)和重定向来丢弃不需要的输出流。

cat /etc/hosts > /dev/null

替换jar包中的配置文件或者class文件

  • 如果java 工程是打包成jar工程,这个时候又修改了少量代码,重新打包上传就比较麻烦。可用如下方式局部替换配置文件或者class文件。
#搜索:   
jar -tvf   property-api.jar  |   grep   AddressUtils.class
#解压:     
jar -xvf   property-api.jar    BOOT-INF/classes/com/summer/common/utils/ip/AddressUtils.class
#替换:   
jar -uvf  property-api.jar BOOT-INF/classes/com/summer/common/utils/ip/AddressUtils.class

示例

解析命令:

  1. jar: 包是Java中所特有一种压缩文档

  2. -u 添加文件到jar包中

  3. -v 生成详细的报造,并输出至标准设备

  4. -f 指定jar包的文件名

  5. -t 显示jar中的内容列表 -c 创建一个jar包 -t 显示jar中的内容列表 -x 解压jar包 -m 指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置) -0 产生jar包时不对其中的内容进行压缩处理 -M 不产生所有文件的清单文件(Manifest.mf)。这个参数与忽略掉-m参数的设置 -i 为指定的jar文件创建索引文件 -C 表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命令

  6. 使用jar tvf jar名称 | grep 目标文件名 查询出目标文件在jar包中的目录

[root@VM_0_3_centos ~]# jar -tvf property-api.jar |grep AddressUtils.class

  1. 使用jar xvf jar名称 目标文件名(copy上面查出的全路径) 将目标文件及所在jar包中的目录解压到当前路径 [root@VM_0_3_centos ~]# jar -xvf property-api.jar BOOT-INF/classes/com/summer/common/utils/ip/AddressUtils.class
  2. 修改目标文件的内容,或者将要新的目标文件替换掉提取出来的目标文件

4.使用jar uvf jar名称 目标文件名(和步骤(2)中的目标文件名相同) 将新目标文件替换到jar包中 [root@VM_0_3_centos ~]# jar uvf property-api.jar BOOT-INF/classes/com/summer/common/utils/ip/AddressUtils.class

jar

系统服务管理

systemctl

  • 启动服务:systemctl start httpd.service
  • 关闭服务:systemctl stop httpd.service
  • 重启服务(不管是否在运行):systemctl restart httpd.service
  • 重新载入配置(不中断服务):systemctl reload httpd.service
  • 查看运行状态:systemctl status httpd.service
  • 设置开机启动:systemctl enable httpd.service
  • 禁止开机启动:systemctl disable httpd.service
  • 查看系统安装的服务:systemctl list-units --type=service

文件管理

ls

列出/home目录下的子目录:ls -l /home 列出当前文件夹下所有文件夹及文件大小:ls -lht

pwd

显示当前工作目录

cd

切换目录: cd /usr/local

date

以指定格式显示日期;date '+date:%x time:%X'

passwd

修改root密码:passwd root

su

普通用户切换到超级用户:su -

clear

清除屏幕信息

man

查看ls命令的帮助信息:man ls

who

  • 查看当前运行级别:who -r
  • 显示用的登录详情:who -buT

free

以MB显示内存使用状态:free -m

ps

查看系统所有进程:ps -ef 查看运行的java进程: ps -ef | grep java

top

查看系统当前活跃进程信息

mkdir

创建目录

more

分页查看
每10行显示一屏查看:more -c -10

cat

查看config文件:cat -Ab config

rm

  • 删除文件:rm a.txt
  • 删除文件夹: rm -rf a/

touch

创建一个文件:touch a.txt

cp

将目录a的文件拷贝到目录b: cp -r /home/a /home/b

mv

移动或覆盖文件:mv a.txt b.txt

压缩与解压

tar

  • 打包文件夹到单独的文件:tar -cvf /opt/etc.tar /etc
  • 压缩文件夹到压缩文件(gzip):tar -zcvf /opt/etc.tar.gz /etc
  • 压缩文件夹到压缩文件(bzip2):tar -jcvf /opt/etc.tar.bz2 /etc
  • 查阅压缩包中内容(gzip):tar -ztvf /opt/etc.tar.gz /etc
  • 解压文件到当前目录(gzip):tar -zxvf /opt/etc.tar.gz

磁盘和网络管理

df

查看磁盘占用情况:df -hT

ifconfig

查看当前网络接口状态

netstat

  • 查看路由信息:netstat -rn
  • 查看所有有效TCP连接:netstat -an
  • 查看系统中启动的监听服务:netstat -tulnp
  • 查看处于连接状态的系统资源信息:netstat -atunp

wget

从网络上下载软件

软件的安装与管理

rpm

  • 安装软件包:rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
  • 模糊搜索软件包:rpm -qa | grep nginx
  • 精确查找软件包:rpm -qa nginx
  • 查询软件包的安装路径:rpm -ql nginx-1.12.2-2.el7.x86_64
  • 查看软件包的概要信息:rpm -qi nginx-1.12.2-2.el7.x86_64
  • 验证软件包内容和安装文件是否一致:rpm -V nginx-1.12.2-2.el7.x86_64
  • 更新软件包:rpm -Uvh nginx-1.12.2-2.el7.x86_64
  • 删除软件包:rpm -e nginx-1.12.2-2.el7.x86_64

yum

  • 安装软件包: yum install nginx
  • 检查可以更新的软件包:yum check-update
  • 更新指定的软件包:yum update nginx
  • 在资源库中查找软件包信息:yum info nginx*
  • 列出已经安装的所有软件包:yum info installed
  • 列出软件包名称:yum list redis*
  • 模糊搜索软件包:yum search redis

网络安全

iptables

  • 开启防火墙:systemctl start iptables.service
  • 关闭防火墙:systemctl stop iptables.service
  • 查看防火墙状态:systemctl status iptables.service
  • 设置开机启动:systemctl enable iptables.service
  • 禁用开机启动:systemctl disable iptables.service
  • 查看filter表的链信息:iptables -L -n
  • 查看NAT表的链信息:iptables -t nat -L -n
  • 清除防火墙所有规则:iptables -F;iptables -X;iptables -Z;
  • 添加过滤规则(开发80端口):iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  • 查找规则所做行号:iptables -L INPUT --line-numbers -n
  • 根据行号删除过滤规则:iptables -D INPUT 1