查看命令的使用方式
- help 列出常用的shell命名
- mkdir --help 列出指定命令(mkdir)的使用方式(参数)
命令的历史记录
方向键向上 上一条命令
方向键向下 下一条命令
清屏
clear 只是往下翻开新的一页,往上滑仍可以看到之前的内容,常用
reset 清空之前输入的内容,速度略慢
关机、重启
shutdown 关机
reboot 重启
查看正在执行的程序的信息
top
进程(面试常考)
ps -ef 查看所有进程信息
ps -ef | grep tomcat 查找指定进程。
kill 2610 结束|杀掉pid为2610的进程
不加-*,默认为kill -15,系统会发送一个SIGTERM信号给对应的程序,程序收到该信号后,可能发生以下事情:
- 程序立刻停止
- 程序释放相应资源后再停止
- 程序仍然继续运行
大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止。
但是也有程序可能接收信号后,做一些其他的事情(如果程序正在等待IO,可能不会立马做出响应),
就是说SIGTERM多半会被阻塞(进程不会立刻被杀掉)。
kill -9 2610 强制杀死进程(立刻杀死)
系统给对应程序发送的信号是SIGKILL,即exit,exit信号不会被系统阻塞,会立刻执行。
kill -9能顺利杀掉进程,但可能会留下一些不完整的文件、状态,从而影响服务的再次启动。
在使用 kill -9 前,应该先使用 kill -15,给目标进程一个清理善后的机会。
pid即Process Identification,是系统分配给每一个进程的唯一标识符,不是端口号。
管道
以一个命令的输出作为另一个命令的输入,输出 | 输入。示例:
ps -ef | less 分页显示正在运行的进程
ps -ef | grep 8080 在列出的进程信息中查找含有8080字符串的行
cat --help | more
相当于在一个命令的输出、另一个命令的输出之间架起了管道,使之相通,故名管道
&& 命令执行控制
mkdir test && cd test 只有&&左边的命令返回真(执行成功),右边的命令才会执行
网络通信
ifconfig 查看网络设备(网卡)的信息,包括ip、子网掩码等信息
ping 192.168.1.1 会一直ping
ping -c 4 192.168.1.1 只ping4次(发送4个数据包)
netstat -nltup 查看端口信息(重点)
-n 显示具体的ip、端口号
-l 显示正在监听的端口,l即listening
-t (只)列出tcp协议的ip、端口号,t即tcp
-u (只)列出udp协议的ip、端口号,u即udp
-p 列出使用此端口的服务|程序,p即programs
常见用法 netstat -nltp | grep 8080
日期时间
date 显示系统当前的日期时间
date -s "2020-02-21 10:05:30" 设置|修改系统的日期时间
查看磁盘信息
df 默认不带单位,挂载点、总容量、已用、可用
df -h 友好显示(带单位),很多命令的友好显示都是-h
查看内存信息
free 默认以KB为单位,总容量、已用、可用、缓存大小
free -m 默认以MB为单位
free -h 上面2种都不带单位、只显示数值,这种是友好显示的,会带单位G、M等
查看当前用户信息
who
查看主机名
hostname
修改主机名:在/etc/sysconfig/network文件中直接写主机名
sudo 以管理员身份执行
有时候执行命令时会提示权限不够,可以将命令前面添加sudo,表示使用系统管理员(root)的身份执行该命令。
示例: sudo chmod u:rw,g:rw,o:r 1.txt
防火墙设置
CentOS7之前使用iptables管理端口,以iptables命令操作;从CentOS7开始使用firewall(防火墙)代替iptables,使用firewall-cmd命令操作。
开启防火墙:
service firewalld start
开启防火墙后,会在外部、Linux之间架起一道墙,阻挡所有外部访问。开启端口后,外部才能访问该端口。
防火墙默认是开机自启的。
防火墙是(Linux自带的)一个服务,以service命令开启|关闭,服务名是firewalld,注意有个d。
关闭防火墙:
service firewalld stop
关闭防火墙后,墙没了,外部可以访问Linux的所有端口。
重启防火墙:
service firewalld restart
查看防火墙状态:
firewall-cmd --state
running表示正在运行(是开启的),not running表示防火墙是关闭的。
开启端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
--zone 作用域,public表示此端口配置作用于所有用户,默认只作用于当前用户
--add-port 要放行的端口,以端口/协议的方式指定
--permanent 表示此配置永久有效,不设置此参数,重启Linux就失效。
关闭端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
就是把add-port换为remove-port
重新加载防火墙的配置:
firewall-cmd --reload
修改防火墙设置后,重新加载配置即可生效,无需重启防火墙或Linux。
查询某个端口是否开启成功:
firewall-cmd --query-port=8080/tcp
yes表示开启成功
查看所有已开启的端口:
firewall-cmd --list-ports
参数名是list-ports,--表示参数。以端口/协议的方式列出。
查看环境变量
echo $JAVA_HOME
echo $PATH | grep jdk
服务管理
service 服务名 该服务的命令
比如开启防火墙:service firewalld start ,服务名是firewalld,start是firewalld的一个命令。
服务一般都有start、stop、restart命令。
开机自启
有很多程序往往都需要设置开机自启,比如tomcat、mysql、nginx等。
(1)在/etc/rc.d/rc.local文件中加入开机要自动执行的程序
vim /etc/rc.d/rc.local
touch那句代码是自带的。在touch下面加入路径,一行一个。
很多教程说 后面还要传入命令start,完全是画蛇添足,直接执行这个sh就行了,当然你传个start、传个abc都可以,反正都用不上。
(2)修改rc.local的权限,要具有可执行权限(x)。
rc.local默认没有x权限,但权限可能被其他人修改过,先看一下有没有x权限:
ls -l /etc/rc.d/rc.local
没有x权限就加上:
chmod 777 /etc/rc.d/rc.local
这个文件的属主是root,其实只要root(系统)有x权限就行,开机时会自动执行rc.local,启动里面指定的程序,无需登录账号。
说明:
默认是一个线程同步启动程序,有点慢,需要等会儿,可以在浏览器的多个标签页中试一下,或者用另一个浏览器,防止缓存。
可以打个空格、加个&,表示该程序异步启动,速度快很多:
/etc/local/tomcat/tomcat1/bin/startup.sh &