Skip to content

Linux操作

服务器命令

systemctl:systemctl命令是service和chkconfig命令的组合体,可用于管理系统。

  • 输出系统中各个服务的状态:
shell
systemctl list-units --type=service
  • 查看服务的运行状态:
text
systemctl status firewalld
#关闭服务
systemctl stop firewalld
启动服务
systemctl start firewalld
#重新启动服务(不管当前服务是启动还是关闭):
systemctl restart firewalld
#重新载入配置信息而不中断服务:
systemctl reload firewalld
#禁止服务开机自启动:
systemctl disable firewalld
#设置服务开机自启动:
systemctl enable firewalld
#禁用开机启动:
systemctl disable firewalld
#重启防火墙:
firewall-cmd --reload
#开放端口(修改后需要重启防火墙方可生效):  
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#查看开放的端口:
firewall-cmd --list-ports
#关闭端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
  • 列出/目录下的文件
shell
ls -l /
  • 获取目前所在工作目录的绝对路径
shell
pwd
  • 改变当前工作目录
shell
cd /usr/local
  • 显示或修改系统时间与日期
shell
date '+%Y-%m-%d %H:%M:%S'
  • 用于设置用户密码
shell
passwd root
  • 改变用户身份(切换到超级用户)
shell
su -
  • 用于清除屏幕信息
shell
clear
  • 显示目前登录到系统的用户
shell
who -buT
  • 显示系统内存状态(单位MB)
shell
free -m
  • 显示系统进程运行动态
shell
#查看sshd进程的运行动态
ps -ef | grep sshd
  • 查看即时活跃的进程,类似Windows的任务管理器
shell
top

文件操作命令

  • 创建目录
shell
mkdir /test
  • 创建文件,例如创建text.txt文件
shell
touch text.txt

- 删除文件

```shell
rm text.txt
#强制删除
rm -rf testdir/
  • 拷贝文件,例如将test1目录复制到test2目录
shell
cp -r /mydata/tes1 /mydata/test2
  • 移动或覆盖文件
shell
mv text.txt text2.txt
  • 压缩与解压

将/etc文件夹中的文件归档到文件etc.tar(并不会进行压缩)

shell
tar -cvf /mydata/etc.tar /etc

用gzip压缩文件夹/etc中的文件到文件etc.tar.gz

shell
tar -zcvf /mydata/etc.tar.gz /etc

用bzip2压缩文件夹/etc到文件/etc.tar.bz2

shell
tar -jcvf /mydata/etc.tar.bz2 /etc

分页查看压缩包中内容(gzip)

shell
tar -ztvf /mydata/etc.tar.gz |more -c -10

解压文件到当前目录(gzip)

shell
tar -zxvf /mydata/etc.tar.gz

解压文件到指定目录(gzip)

shell
tar -zxvf /mydata/etc.tar.gz -C /mydata/etc

查看磁盘空间占用情况

shell
df -hT

查看当前目录下的文件及文件夹所占大小

shell
du -h --max-depth=1 ./*

显示当前网络接口状态

shell
ifconfig

查看当前路由信息

shell
netstat -rn

查看所有有效TCP连接

shell
netstat -an
  • 分页查看文件,例如每页10行查看boot.log文件
shell
more -c -10 /var/log/boot.log

从网络上下载文件

shell
wget 地址

文件上传下载

安装上传下载工具lrzsz

shell
yum install -y lrzsz

上传文件,输入以下命令XShell会弹出文件上传框

shell
rz

下载文件,输入以下命令XShell会弹出文件保存框

shell
sz fileName
bash
#重启命令:
sudo reboot
sudo shutdown -r now      #立刻重启
sudo shutdown -r 10       #过10分钟自动重启
sudo shutdown -r 20:35    #在时间为20:35时候重启

#关机命令:
1、sudo halt              #立刻关机
2、sudo poweroff          #立刻关机
3、sudo shutdown -h now   #立刻关机
4、sudo shutdown -h 10    #10分钟后自动关机

防火墙

bash
#1、查看firewall服务状态
systemctl status firewalld
#出现Active: active (running)切高亮显示则表示是启动状态。
#出现 Active: inactive (dead)灰色表示停止,看单词也行。
 
#2、查看firewall的状态
firewall-cmd --state
 
#3、开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
 
#4、查看防火墙规则
firewall-cmd --list-all 
 
#5、查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

Iptables

  • 安装前先关闭firewall防火墙
  • 安装iptables
shell
yum install iptables
  • 安装iptables-services
shell
yum install iptables-services
  • 开启防火墙
shell
systemctl start iptables.service

Vim编辑器

  1. 打开文件编辑:vi 文件名

  2. 按 "i" 键 进入编辑模式

  3. 编辑完成后,按 Esc 键 退出编辑

  4. 保存 :wq

bash
:wq      表示保存退出
:wq!     表示强制保存退出
: x         表示保存退出

:q在vim中表示退出
:q!表示强制不保存退出,不对文件进行保存
":q" ":q!" 的区别如下:
如果文件有修改,:q 会提示有修改,是否退出,输入y退出
如果文件有修改,:q! 会强制直接退出,并且不对文件进行保留

端口/进程

在线检查端口

netstat(network status网络状态)命令各个参数说明如下:

-t:指明显示TCP端口,t是TCP的首字母。

-u:指明显示UDP端口,u是UDP的首字母

-l:仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序),l是listening的首字母。

-p:显示进程标识符和程序名称,每一个套接字/端口都属于一个程序,p是program的首字母。

-n:不进行DNS轮询,显示IP(可以加速操作),n是numeric的首字母,以数字形式显示地址和端口号。

-a:显示所有连接和侦听端口,a是all的首字母。

-o:显示拥有的每个连接关联的进程id,o是own的首字母。

  • 详细端口扫描:netstat -an

  • 当前所有tcp端口: netstat -ntlp

  • 当前所有udp端口: netstat -nulp

  • 当前系统端口使用情况: netstat -anp

  • 当前所有80端口使用情况:netstat -ntulp |grep 80

  • 指定端口运行的程序: lsof -i :port

查看进程号

bash
# Linux

lsof -i:端口号
netstat -tunlp|grep 端口号

# windows

netstat -ano |findstr  8080

查看端口

sudo netstat -apn | grep 进程号

扩展

ps -ef|grep java

ps -ef|grep jar

结束进程

bash
# Linux强制杀掉进程
kill -9 进程号

windows强制杀掉进程
taskkill /pid 进程号 -f

查找某服务路径

sudo find / -name *tomcat*

常用服务

JDK

安装JDK: yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

Subversion

查看状态:ps -ef|grep svn

启动:svnserve -d -r /home/svn/

停止: killall svnserve

Nginx

bash
#01进入安装路径
cd   /usr/local/nginx/sbin
#02启动
./nginx
#03检查
ps -ef | grep nginx  出现master 则启动成功
#04重启
./nginx -s reload
#05停止
./nginx -s stop
#06检查配置文件是否正确<code>./nginx -t -c /path/to/nginx.conf</code>

SpringBoot

bash
### 01日志打印
nohup java -jar sxpcwlkj.jar > nohup.out 2>&1&
### 02指定日志文件
nohup java -jar sxpcwlkj.jar > mylog.txt 2>&1&
### 03不进行日志打印
nohup java -jar sxpcwlkj.jar >/dev/null &
### 04日志打印 端口指定
nohup java -jar sxpcwlkj.jar --server.port=8880 > nohup.out 2>&1&
### 05进入日志:cd ./logs
### 06查看日志:tail -f -n2200 catalina.out

实例

  • 启动日志打印: nohup java -jar sxpcwlkj.jar > nohup.out 2>&1& ohup会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中

  • 停止后台运行的jar: ps -ef | grep java

  • kill命令杀掉jar包运行的进程: kill -9 100

kill 进程ID nohup 命令

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

nohup: 不挂断的运行,并没有后台运行功能,用nohup运行命令可以使命令永久执行下去,和用户终端没有关系,断开SSH不影响运行,&是后台运行.

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &到命令的尾部。

MQTT

  • 进入: cd /www/server/emqx/bin

  • 启动: emqx start

  • 停止: emqx stop

  • 重启: emqx restart

Redis

bash
# 1进入目录:

cd /www/server/redis/src
# 2登录: 

./redis-cli
# 3启动:

./redis-server 
# 或者 
./redis-server --port 6380

# 4已设置访问密码启动方式 
./redis-server …/redis.conf

# 5停止:
redis-cli -h 127.0.0.1 -p 6379 shutdown
redis-cli -h 127.0.0.1 -p 6379 -a password shutdown
如果上述方式都没有成功停止redis,则可以使用 kill -9 杀死redis进程

Released under the MIT License.