linux命令
Linux-Shell教程:https://www.cnblogs.com/zhang-jun-jie/p/9266858.html
常用的文件及作用:
常用文件 | 作用 | 示例 |
---|---|---|
/etc/rc.local | 开机自启项,是/etc/rc.d/rc.local的快捷方式 /etc/rc.d/rc.local有执行权限才会生效 | /etc/rc3.d/Sserver.sh |
/etc/sysconfig/network | 1.永久设置计算机名; 2.开启IPV4和IPV6; 3.设置默认IPV4和IPV6网关; | HOSTNAME=NetSeal0 NETWORKING=yes GATEWAY=192.168.1.1 IPV6_DEFAULTGW=… |
/etc/sysconfig/network-scripts/ifcfg-* | 1.开启/关闭网卡; 2.开启/关闭静态IP; 3.设置网卡MAC地址; 4.设置IPV4地址、子网掩码、网关(设置完网关自动为默认网关,记录在/etc/sysconfig/network); | NAME=enp0s3 BOOTPROTO=static ONBOOT=yes IPADDR=10.20.61.55 GATEWAY=10.20.61.49 NETMASK=255.255.255.240 DNS1=219.141.136.10 |
/etc/resolv.conf | 设置DNS服务器 | nameserver 219.141.136.10 nameserver 8.8.8.8 |
/etc/hosts | 域名解析文件,将主机名映射到IP地址 | 10.20.61.79 NetSeal2 127.0.0.1 NetSeal0 |
/etc/redhat-release | 查看系统发行版本号,是/etc/centos-release的快捷方式 | CentOS Linux release 7.9.2009 (Core) |
HA相关文件及作用:
HA相关文件 | 作用 | 示例 |
---|---|---|
/etc/ha.d/ha.cf | 1.配置ha基本信息:包括日志路径、广播地址、广播端口、 广播时间间隔(秒)、超时宕机(秒)、主机恢复是否切回主机(on/off); 2.配置主从节点; | logfile /var/log/ha.log ucast eth1 192.168.200.129 keepalive 2 deadtime 30 udpport 694 auto_failback on node node1 node node2 ping 192.168.0.1 |
/etc/ha.d/haresources | 1.ha主机的信息:包括主机节点名、虚拟IP、主机绑定网口等; 2.HA启停脚本 | NetSeal 10.20.87.159/24/eth0:0 netsealscript.dat |
/etc/ha.d/resource.d/netsealscript.dat | HA启停时,一起执行的脚本 | Kserver/Sserver |
/etc/init.d/heartbeat | 查看HA状态和启停的脚本 | /etc/init.d/heartbeat status /etc/init.d/heartbeat start /etc/init.d/heartbeat stop |
/var/log/ha-* | HA日志 | / |
DFS相关文件及作用:https://blog.csdn.net/qq_42873640/article/details/117030928
1.1 rpm
- rpm命令是RPM软件包管理工具。
常用参数
-a:查询所有套件;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
1.2 grep
Linux系统中grep命令是一种强大的文本搜索工具。
常用参数
-i:不区分大小写;
1.3 ps
ps命令用来列出系统中当前运行的那些进程。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。
常用命令:
ps -ef|grep java #查看java进程
常用参数
-a 显示同一终端下的所有程序;
-A 显示所有进程;
-e 等于“-A”;
-l:较长、较详细的将该 PID 的的信息列出;
-f:完整输出显示进程之间的父子关系;
1.4 ifconfig
参考:linux命令之ifconfig
注意:如果想要查看所有的网络接口,使用’ifconfig -a’即可。
提醒:虚拟机和实体机执行ifconfig后的结构会不一致。
虚拟机:(以实体机为准)
[root@VM-8-4-centos ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.8.4 netmask 255.255.252.0 broadcast 10.0.11.255
inet6 fe80::5054:ff:fee7:fc62 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:e7:fc:62 txqueuelen 1000 (Ethernet)
RX packets 65818387 bytes 7103510301 (6.6 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 66826912 bytes 11821285251 (11.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1061361 bytes 122373584 (116.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1061361 bytes 122373584 (116.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
实体机:(以实体机为准)
[root@CentOS6 桌面]$ ifconfig //查看所有正在运行的网络接口(eth1没有联网)
eth1 Link encap:Ethernet HWaddr 00:0C:29:42:9F:CE
inet6 addr: fe80::20c:29ff:fe42:9fce/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3058 errors:0 dropped:0 overruns:0 frame:0
TX packets:2715 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:355994 (347.6 KiB) TX bytes:263751 (257.5 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:720 (720.0 b) TX bytes:720 (720.0 b)
第一行:eth1 Link encap:Ethernet HWaddr 00:0C:29:42:9F:CE
eth1是网卡名称;Link encap:Ethernet是连接类型,这里是Ethernet(以太网);HWaddr 00:0C:29:42:9F:CE是网卡物理地址(MAC地址)。
第二行:inet addr:192.168.78.133 Bcast:192.168.78.255 Mask:255.255.255.0
inet addr:192.168.78.133是网卡的IPv4地址;Bcast:192.168.78.255是广播地址;Mask:255.255.255.0是子网掩码。
第三行:inet6 addr: fe80::20c:29ff:fe42:9fce/64 Scope:Link
部分可能没有,这一行是IPv6地址。
第四行:UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
UP是网卡开启状态;(BROADCAST应该是支持广播;)RUNNING是网卡正在运行;MULTICAST说明支持组播;MTU:1500是最大传输单元1500字节。
第五、六、七行:RX packets:3084 errors:0 dropped:0 overruns:0 frame:0
TX packets:2716 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
这三行是接收和发送数据包的统计情况。
第八行:RX bytes:357836 (349.4 KiB) TX bytes:264093 (257.9 KiB)
这一行是接收和发送数据字节数统计信息。
注意:lo是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
1.4.1 关闭网口
[root@CentOS6 桌面]$ ifconfig eth1 down #关闭网络接口
[root@CentOS6 桌面]$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:0C:29:42:9F:CE
inet addr:192.168.78.133 Bcast:192.168.78.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1 #可以看到UP和RUNNING已经消失
RX packets:5072 errors:0 dropped:0 overruns:0 frame:0
TX packets:4027 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:877465 (856.8 KiB) TX bytes:537369 (524.7 KiB)
1.4.2 开启网口
[root@CentOS6 桌面]$ ifconfig eth1 up #开启网络接口
[root@CentOS6 桌面]$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:0C:29:42:9F:CE
inet addr:192.168.78.133 Bcast:192.168.78.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe42:9fce/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 #UP和RUNNING又出现了
RX packets:5076 errors:0 dropped:0 overruns:0 frame:0
TX packets:4033 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:877987 (857.4 KiB) TX bytes:538149 (525.5 KiB)
1.5 文件常用操作
1.5.1 创建文件
touch fileName
1.5.2 创建文件夹
创建一级文件夹:mkdir dirName
创建多级文件夹:mkdir -p dirName
1.5.3 删除文件
rm -f fileName
1.5.4 删除文件夹
rm -rf dirName
1.5.5 文件重命名
mv name newName
1.5.6 文件/文件夹复制
文件复制:cp source target
文件夹复制:cp -r source target
1.5.7 文件权限
chmod 777 fileName
chmod +x fileName
1.5.8 文件上传
rz
1.5.9 文件下载
sz
1.5.10 文件压缩解压
注意权限问题
若tgz在windows上解压后传到linux上,sh脚本会没有执行权限。不建议这样操作,应该在linux上解压。
windows有一神器bandzip可打tgz,若全程是在windows上解压再压缩,压缩后的tgz在linux上解压是有执行权限的。但也不建议这样操作!
老老实实在linux解压和压缩吧,命令见下文
压缩:tar -cvf product.tgz product
解压至当前目录:tar -xvf product.tgz
解压至指定目录:tar -xvf product.tgz -C /home/zj/test 指定目录必须已存在
1.5.11 移动光标+屏幕翻滚
描述1 | 描述2 |
---|---|
^ 移到行首 | $ 移到行尾 |
H 移到屏幕顶行 | L 移到屏幕最后行 |
gg 移到文件头 | G 移到文件尾 |
Ctrl + u 向文件首翻半屏 | Ctrl + d 向文件尾翻半屏 |
Ctrl + b 向文件首翻一屏 | Ctrl + f 向文件尾翻一屏 |
^ 移到行首
1.6 网络相关操作
1.6.1 查看防火墙状态
centos6:
查看防火墙状态 service iptables status
开启防火墙 service iptables start
关闭防火墙 service iptables stop
永久关闭,重启生效:chkconfig iptables off
centos 7以上版本用firewalld相关命令查看防火墙状态,具体命令如下
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
[root@VM-8-4-centos ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
1.6.2 防火墙开放指定端口
centos7以上:
- 查看开放端口情况
firewall-cmd --zone=public --query-port=80/tcp
[root@VM-8-4-centos sysconfig]# firewall-cmd --list-ports
22/tcp
[root@VM-8-4-centos sysconfig]# firewall-cmd --zone=public --query-port=80/tcp
no
[root@VM-8-4-centos sysconfig]# firewall-cmd --zone=public --query-port=22/tcp
yes
- 添加开放端口
添加80端口的访问权限,这里添加后永久生效
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
添加完记得reload!
命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
[root@VM-8-4-centos sysconfig]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@VM-8-4-centos sysconfig]# firewall-cmd --reload
success
[root@VM-8-4-centos sysconfig]# firewall-cmd --list-ports
22/tcp 80/tcp
- 关闭80访问权限
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload
关闭完记得reload!
[root@VM-8-4-centos sysconfig]# firewall-cmd --zone=public --remove-port=80/tcp --permanent
success
[root@VM-8-4-centos sysconfig]# firewall-cmd --reload
success
[root@VM-8-4-centos sysconfig]# firewall-cmd --list-ports
22/tcp
1.6.3 重启网卡
service network restart;
1.7 查看某个端口的使用情况
列出谁在使用某个端口:
lsof -i:3306
netstat -anp|grep 3306
示例:查询达梦数据库端口5236的连接情况,可以看出有两个IP在连着,10.20.61.61就是我
1.8 查看系统信息
1.8.1 CPU
CPU型号、个数、核数、使用率
内存大小、使用率
linux free 命令下free/available区别:https://www.jianshu.com/p/2ffeb3a3aa90
Linux查看CPU详细信息:https://www.jianshu.com/p/a0ab0ccb8051
查看系统cpu个数、核心数、线程数:https://blog.csdn.net/tyyking/article/details/83092531
[root@NetSeal0 ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : CentaurHauls # 芯片的厂商,美国Centaur公司
cpu family : 6 # 表示哪一代芯片,family 6表示VIA的Nano系列
model : 15 # model表示型号,也就是采用哪种微结构,15表示以赛亚
model name : C-QuadCore C4600@2.0GHz # CPU型号:兆芯4核芯片C4600,主频为2GHz
stepping : 14
cpu MHz : 1998.000
cache size : 2048 KB
physical id : 0
siblings : 4 # 单个CPU逻辑物理核数
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
CPU个数
grep ‘physical id’ /proc/cpuinfo | sort -u|wc -l
[root@NetSeal0 fishman]# grep 'physical id' /proc/cpuinfo | sort -u|wc -l
1
1.8.2 磁盘
df -h 来查看文件磁盘的占用情况,-h 有较高可读性,-k 则是按1024字节块展示
通常磁盘满了主要是因为大量的日志打印,咱们使用du -sh * 命令,查看当前目录下所有文件夹各自占用的空间
查看上GB的目录并且排序,可以用这个命令
du -h --max-depth=1 |grep ‘G’ |sort
然后不断执行上面的过程,进入大文件目录,定位大文件并删除
如果删除大文件,df -h查看磁盘空间并没有释放,那么就是被删除的文件关联的进程还在执行,那么需要我们将相关进程kill掉或重启,可以用这个命令来查看进程
lsof |grep delete
1.8.3 pci设备
lspci,是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。
用法:
lspci:显示pci设备信息
lspci -t:以树的形式显示pci设备信息。
1.9 用户登录信息
last 列出当前和曾经登入系统的用户信息
它默认读取的是/var/log/wtmp文件的信息。输出的内容包括:用户名、终端位置、登录源信息、开始时间、结束时间、持续时间。注意最后一行输出的是wtmp文件起始记录的时间。当然也可以通过last -f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp
1.10 配置ipv6
开启ipv6
[root@NetSeal ~]$ cat /etc/sysconfig/network
#
#Mon Jul 20 10:26:10 CST 2020
HOSTNAME=NetSeal #永久修改计算机名
NETWORKING=yes #开启ipv4
GATEWAY=192.168.1.1 #ipv4默认网关
IPV6_DEFAULTGW= #ipv6默认网关
#增加节点
NETWORKING_IPV6=yes
配置ipv6地址
[root@NetSeal ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static #静态ip
ONBOOT=yes #开启网卡
HWADDR=0C:C4:7A:16:54:F0 #网卡Mac地址
IPADDR=10.20.87.55 #ipv4地址
NETMASK=255.255.255.0 #ipv4子网掩码
GATEWAY=10.20.87.1 #ipv4网关
#配置ipv6
IPV6INIT=yes
IPV6ADDR=
IPV6_DEFAULTGW=
配置ipv6默认网关
[root@NetSeal ~]$ cat /etc/sysconfig/network
#
#Mon Jul 20 10:26:10 CST 2020
HOSTNAME=NetSeal #永久修改计算机名
NETWORKING=yes #开启ipv4
GATEWAY=192.168.1.1 #ipv4默认网关
NETWORKING_IPV6=yes #开启ipv6
#增加节点
IPV6_DEFAULTGW=192.168.10.1 #ipv6默认网关
执行(待确认)
/sbin/route -A inet6 add default gw 192.168.10.1
ipv4为
/sbin/route add default gw 192.168.10.1
1.11 查看/修改计算机名
1.查看计算机名
[root@NetSeal0 ~]$ hostname #查看计算机名
NetSeal0
[root@NetSeal0 ~]$ uname -n #查看计算机名
NetSeal0
2.临时修改计算机名
[root@NetSeal0 ~]$ hostname tempName #临时修改计算机名为tempName,重启后无效
3.永久修改计算机名
修改/etc/sysconfig/network,设置HOSTNAME
[root@NetSeal ~]$ vi /etc/sysconfig/network
#
#Mon Jul 20 10:26:10 CST 2020
HOSTNAME=NetSeal #永久修改计算机名
1.12 安装字体
查看是否安装字体库,执行fc-list,发现没有安装字体库
字体安装在/usr/share下,查看文件夹发现里面并没有fonts文件夹,说明上述命令没错,确实没有安装字体库。
使用yum安装字体库,
出现图示所示文字为安装成功
此时在/usr/share下再次查看,发现已经有fonts了,同时执行fc-list发现只有英文字体,没有想要的中文字体。
安装中文字体:进入/usr/share/fonts下,新建文件夹chinese,在windows系统的 C:\Windows\Fonts目录下找到需要的字体, copy 到 /usr/share/fonts/chinese目录下,执行fc-cache -fv刷新字体缓存
1.13 时间
1.13.1 查询
date
1.13.2 修改时区
删除本地时间并设置时区为上海
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
1.13.3 修改时间
修改 date -s “2018-2-22 19:10:30”
常用于临时修改
1.13.4 启动ntpd同步服务
/etc/init.d/ntpd start
过一会执行date即可看到时间更新为最新时间了。
随笔
1.开启网卡、重启网卡
https://www.cnblogs.com/cy60/p/9287856.html
安装 net-tools 工具,yum install -y net-tools
部署项目:
1.指定项目安装路径:
判断是否已存在,已存在就删除
不存在,新建
2.放置jdk及其他到安装路径;
启动项目:
defpath=“/opt/infosec/NetSeal”
currentpath=pwd
直接在shell下设置JAVA_HOME、CLASSPATH环境变量,部署项目时推荐
1.配置JAVA_HOME
JAVA_HOME=
d
e
f
p
a
t
h
/
j
d
k
1.8.
0
1
21
/
e
x
p
o
r
t
J
A
V
A
H
O
M
E
2.
配置
j
r
e
J
R
E
H
O
M
E
=
{defpath}/jdk1.8.0_121/ export JAVA_HOME 2.配置jre JRE_HOME=
defpath/jdk1.8.0121/exportJAVAHOME2.配置jreJREHOME={defpath}/jdk1.8.0_121/jre/
export JRE_HOME
3.配置Tomcat
TOMCAT_HOME=
d
e
f
p
a
t
h
/
t
o
m
c
a
t
/
e
x
p
o
r
t
T
O
M
C
A
T
H
O
M
E
e
x
p
o
r
t
C
A
T
A
L
I
N
A
H
O
M
E
=
{defpath}/tomcat/ export TOMCAT_HOME export CATALINA_HOME=
defpath/tomcat/exportTOMCATHOMEexportCATALINAHOME={defpath}/tomcat
CLASSPATH=
d
e
f
p
a
t
h
/
t
o
m
c
a
t
/
l
i
b
:
{defpath}/tomcat/lib:
defpath/tomcat/lib:{defpath}/jdk1.8.0_121/jre/lib:.
export CLASSPATH
4.端口
TPORT_TOMCAT=netstat -ntlp | awk '{print $4}' | grep -i '8443'
TPORT_AUTH=netstat -ntlp | awk '{print $4}' | grep -i '8451'
查看进程
ps -elf|grep java
-e:显示所有进程
-l:显示较长较详细的PID信息
-f:显示更完整的信息
查看是否支持ipv6
ifconfig lo |grep inet6
获取服务器的版本
cat /etc/redhat-release
获取hostname中的ip是否是将要操作的聚合ip
hostname -i
Bond类:
String nbdev;
String mode;
String hashPolicy;
String vip;
String gateway;
String netmask;
String vip6;
String gateway6;
List resources;
获取路由信息
获取网卡信息
获取bond信息map列表,得到eth列表和bond列表(资源名为alias)
遍历网卡信息,得到没有被bond过的网卡,添加到filterCardList
添加bond:
填写聚合名称;
选择bond模式;
设置传送hash策略;
填写聚合IPv4地址、IPv4网关、IPv4子网掩码;
填写聚合IPv6地址、IPv6网关;
配置可用网卡资源(filterCardList);
修改bond:
回显bond信息,修改,提交;
处理:new BondManager().modifyBond(bond);
停止bond:
处理:new BondManager().stopBond(param);
获取网卡信息:
1.执行命令
String[] commandLine = { “/bin/sh”, “-c”, “/sbin/ifconfig” };
Process proc = Runtime.getRuntime().exec(commandLine);
2.从流中获取结果,转成Vector
Vector<NetworkCard> cardList = (Vector<NetworkCard>) net.getInfoFromBuffer(proc.getInputStream());
设置网卡:
1.若设置ipv6地址
系统开启ipv6 NetworkUtil.openIpv6();
获取要改的网卡文件
IniConfigManager icm = new IniConfigManager(filename);
icm.initInfo();
从文件获取IPV6ADDR信息,不存在就新添IPV6信息
Hashtable<String, String> ht = new Hashtable<String, String>();
ht.put(“IPV6INIT”, “yes”);
ht.put(“IPV6ADDR”, “”);
ht.put(“IPV6_DEFAULTGW”, “”);
icm.addItem(ht);
2.修改网卡文件或创建文件
3.执行命令
String shell = name + " " + ip + " netmask " + mask;
String[] commandLine = { "/bin/sh", "-c", "/sbin/ifconfig " + shell};
Process proc = Runtime.getRuntime().exec(commandLine);
网关:文件 /etc/sysconfig/network
Ipv4网关:GATEWAY
ipv6网关:IPV6_DEFAULTGW
DNS:文件/etc/resolv.conf
示例:
nameserver 219.141.136.10
nameserver 202.106.0.20