两年工作经验-linux常用部署-打包-压缩-查找端口服务的常用命令

286 阅读15分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情

1、tail -f 实时查看日志文件 linux查看日志后100行

tail -f 实时查看日志文件 tail -f 日志文件log

tail - 100f 实时查看日志文件 后一百行

tail -f -n 100 catalina.out linux查看日志后100行

搜寻字符串

grep ‘搜寻字符串’ filename

按ctrl+c 退出

---------------------

作者:wanghai76

1、查看某个端口是否被占用

LINUX中如何查看某个端口是否被占用 ,【只有显示listen才表示监听,端口被占用】
netstat  -tuanp  |grep   端口号
​
解释:netstat:网络状态;anp  :网络分析; grep :在文件中查找
解释:用到命令  netstat -anp   查看网络状态
listen表示监听,established表示建立连接。
local address表示本地ip地址和端口号,
foreign address表示外部连接的ip地址和端口号。
​
用grep过滤

2、杀死进程 PID

kill -9 进程号

3、切换为root用户操作

sudo +命令 即可 sudo就是以root用户操作

4、yum install lsof -y 安装插件

【-y表示确认安装插件lsof】

5、lsof -i:端口号 查看端口占用

【只有显示listen才表示监听,端口被占用】

6、find命令 查找文件

【注意:如果是没有加指定哪个目录寻找文件,则是在pwd本目录及以下寻找】
按照文件名查找
find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
https://blog.csdn.net/lilong329329/article/details/78626837
​
find / -name kafka 代表查找文件夹
find / -name kafka.conf有后缀代表查找文件;
​
举例1:
查找文件  find / -name kafka.conf 
表示在/根目录下 查找 kafka.conf 文件
查找目录 find / -name kafka  没有后缀
表示在/根目录下 查找 kafka目录
举例2:
查找文件  find -name kafka.conf 
表示在pwd本目录下查找kafka.conf 文件
查找目录  find  -name kafka  没有后缀
表示pwd本目录下 查找 kafka目录
​
find / -name *jdk* 表示在根目录查找名字包含jdk的文件夹/目录和文件

7、删除文件

rm -rf 文件或者文件夹 直接不需要输入yes或者no删除
​
删除目录和文件 rm -rf 目录或者文件 都可以强制删除/无需确认y

8、创建文件和目录

创建文件 touch file(文件名)
​
创建文件 cat>>a.txt  必须加后缀
此时会进入编辑,按ctrl+d 退出编辑
vivim进入编辑文件模式;
按 i  表示 输入模式
按 ESC 退出输入模式,切换到命令模式
:wq!
w表示保存
q表示退出quit
!表示强制

下面是几个vi与行移动有关的命令:
-   g:光标到首行
-   G:光标移至最后一行
-   nG:光标移至第n行首
-   n+:光标下移n-   n-:光标上移n行

注意输入命令,需要首先按ESC键回到命令模式。

​
创建目录 mkdir a[目录] 表示创建a目录
创建多级目录 mkdir -p a/b 表示创建a目录和a目录下面的b目录

9、解压文件命令tar、unzip zip包 解压

# tar  -zxvf  filename.tar.gz
​
tar -zxf
​
z :表示 tar 包是被 gzip 压缩过的 (后缀是.tar.gz),所以解压时需要用 gunzip 解压 (.tar不需要)
【解压.tar.gz后缀】
​
x :表示 从 tar 包中把文件提取出来
【解压】
​
v :表示 显示打包过程详细信息
【解压过程信息】
​
f  :指定被处理的文件是什么
【文件名】
​
http://www.manongjc.com/article/42355.html

解压zip包:
unzip zip包 解压

10、从linux服务器下载文件到本地命令scp

Linux服务器下载文件夹到本地
1、使用scp命令
​
scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
​
scp work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
​
scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
​
scp -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数

11、cp 快捷命令:复制文件到多个目录

cp 【选项】 源文件或者目录 目标文件或者目录
-v– 启用详细模式来显示更多复制细节。
# cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
# cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

12、日志存储位置

linux系统/var/log目录下的信息详解
所有的命令输入历史轨迹:/var/log/history_trace/root

13、查看当前使用者[命令]的进程状态

Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
-aux 显示所有包含其他使用者的行程
​
ps -aux | grep nohup  显示命令nohup使用者的行程
如果出现R则是在运行,其他状态都是没有运行;

14、通过进程号PID 查询 端口号

netstat -nap | grep 进程pid

15、通过端口号 查看进程号

netstat -tuanp | grep 端口号

16、df -h 查看磁盘占用的空间

df: Disk free  空余硬盘
文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
​
​
​
​
Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
Used:表示用掉的磁盘空间大小;
Available:表示剩余的磁盘空间大小;
Use%:磁盘空间使用率;
Mounted on:文件系统的挂载点,也就是磁盘挂载的目录位置
​
命令解释,菜鸟教程:https://www.runoob.com/linux/linux-comm-df.html

17、du -h查看某个文件或目录占用磁盘空间的大小

du: Disk usage 硬盘使用率

18、linux常用命令英文全称与中文解释

https://www.cnblogs.com/hi3254014978/p/12643601.html

19、显示日志和查询日志信息的包含内容

linux tail -fn 2000 catalina.out |grep -i Exception
​
tail是显示日志的命令,-fn是动态显示日志,n后面加的2000是从两千行开始动态显示,catalina.out是文件名,grep是查找字符串,后面加的-i Exception是搜索日志的包含“-i Exeception”这个字符串的行。这一整行的意思就是动态打印日志文件里面包含“-i Exceptio”字符串的行
​
tail语法格式: tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ] -f 指定要查找的文件 -n 2000行.

20、查看linux系统多少位的

getconf LONG_BIT

21、建立软连接

ln -s /usr/PhantomJS/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs

22、Linux vim退出命令(保存与不保存)

:w            - 保存文件,不退出 vim
:w file  -将修改另外保存到 file 中,不退出 vim
:w!          -强制保存,不退出 vim
:wq          -保存文件,退出 vim
:wq!        -强制保存文件,退出 vim
:q            -不保存文件,退出 vim
:q!          -不保存文件,强制退出 vim
:e!          -放弃所有修改,从上次保存文件开始再编辑

23、cat命令查看文件前100行或者后100行(用来查看日志)

显示文件最后20行:cat err.log | tail -n 20
​
显示文件前面20行:cat err.log | head -n 20

24、tail -f 实时查看日志文件

tail -f 实时查看日志文件 tail -f 日志文件log
​
 就这么简单,按ctrl+c 退出
 
 例如:tail -f debug.log

25、pwd获取当前工作目录的完整路径

pwd简介
pwd 命令查看”当前工作目录“的完整路径。每当在终端进行操作时,都会有一个当前工作目录。在不太确定当前位置时,使用pwd来判定当前目录在文件系统内的确切位置。

26、Linux查看修改系统字符集

1、查看系统当前字符集的设置:
​
[root@ ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
​
https://blog.csdn.net/dou3516/article/details/111311937

27、查看已经安装的字体包|中文字体包

fc-list
fc-list :lang=zh
fc-list | grep simsun.ttf
​
https://blog.csdn.net/wlwlwlwl015/article/details/51482065
https://www.jianshu.com/p/8a6a1eab2e3f

28、yum源install安装软件包

yum –选项命令包
yum list          # yum list显示所有已经安装和可以安装的程序包
yum -y install httpd
​
如果你不加-y他会问你要不要安装。如果你想自己来控制有些包是否安装,这里不要加-y,如果你想自动安装,不进行交互,这里加入-y。这个就是yum 的安装了,非常简单。
​
安装完之后查询一下
​
yum list httpd,Installed 说明已经安装好了

29、查看文件的读r写w执行x权限

ls -l simsun.ttf  查看文件内容详细信息
ls -l 显示所有目录里文件内容详细信息
​
查看linux文件的权限:ls -l 文件名称
​
查询目录中的内容命令 ls [选项] [文件或目录]
选项:
-a 显示所有文件、包括隐藏文件
-l 显示详细信息
-d 查看目录属性(目录本身权限)
-h 人性化显示文件大小(在文件大小后面加上单位)
-i 显示inode(查看文件id号)

30、查看文件夹权限

查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)
ls -ld dejavu/

31、修改权限的命令

修改文件及文件夹权限:
​
sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户)
​
常用修改权限的命令:
​
sudo chmod 600 ××× (只有所有者有读和写的权限)
​
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
​
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
​
sudo chmod 666 ××× (每个人都有读和写的权限)
​
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
​
========================chmod===============

32、给予文件的读r写w执行x权限说明

r read | w write | x execute
6读写
7读写执行
5读执行
​
一、
-rw-r–r–
1) -文件类型(-文件 d目录 l软链接文件(类似于windows中的快捷方式)),该种类型共7种,还有不常用的块设备文件、字符设备文件、套接字文件、管道文件。
2)rw-表示可读可写,代表所有者u的权限。
3)第一个r–表示可读,代表所属组g的权限(相同权限的人放在一起就是一组);第二个r–表示可读,代表其他人o的权限。
r 读 w 写 x 执行
数字2表示该文件被调用次数
第一个root表示所有者u
第二个root表示所属组g,在这里表示和root一个组的其他用户
51是文件大小,单位是字节(byte)
Aug 31 09:38表示文件最后一次修改时间
ex是文件名
二、
chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。一般是三个数字:第一个数字表示文件所有者的权限第二个数字表示与文件所有者同属一个用户组的其他用户的权限第三个数字表示其它用户组的权限。
​
权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=541)、可读可写(rw=642)、可读可写可执行(rwx=7421)。所以755代表rwxr-xr-x当前用户可读可执行。
777代表rwxr-rwx-rwx所有用户都可读可写可执行。
​
所以,chmod755设置用户的权限为:
​
1.文件所有者可读可写可执行
​
2.与文件所有者同属一个用户组的其他用户可读可执行
​
3.其它用户组可读可执行
​
chmod4755与chmod755的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。
扩展资料
在linux终端先输入ls -l,可以看到如:
​
-rwx-r--r-- (一共10个参数) 表示文件所属组和用户的对应权限。
​
第一个跟参数属于管理员,跟chmod无关,先不管.
​
2-4参数:属于user
​
5-7参数:属于group
​
8-10参数:属于others
​
接下来就简单了:r==>可读 w==>可写 x==>可执行
​
r=4 w=2 x=1
​
所以755代表 rwxr-xr-x
777 代表 rwxr-rwx-rwx 所有用户都可读可写可执行。

33、查看CentOS版本信息

https://blog.csdn.net/benben0729/article/details/81873422
​
uname -a

34、linux执行mysql命令导出数据库或者数据库中的表数据

导出表数据:
mysqldump -u用户名 -p 数据库名 表名 > 指定输出的目录/数据表名.sql
mysqldump -uroot -p cap_map a > /opt/a.sql
导出库数据:
mysqldump -u用户名 -p 数据库名 > 指定输出的目录/数据库名.sql
mysqldump -uroot -p cap_map > /opt/cap_map.sql
​
linux mysql数据导出命令
​
导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
​
1、导出数据和表结构:
​
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
​
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
​
学习链接:https://blog.csdn.net/weixin_42125826/article/details/113908503?

35、linux解决mysql锁表或者库表打不开了

原因: 一个端口 被两个进程占用了。
解决:多次杀把两个进程都杀死,然后重启mysql服务即可
查看mysql服务的状态,发现有两个进程
systemctl status mysqld
​
2、把两个进程都杀死
kill -9 进程号
​
3、重启msyql服务
systemctl restart mysqld
​
4、再查看状态为active(runngin)正在运行即可
​

36、优雅的关闭服务器进程

为不使用kill -9 直接使服务器宕机,出现服务中断,数据丢失,终端无法恢复正常状态,分布式时数据不一致。可使用优雅停机
curl -X post http://localhost:8080/shutdown
​
​
1、何为优雅关机:就是为确保应用关闭时,通知应用进程释放所占用的资源
线程池,shutdown(不接受新任务等待处理完)还是shutdownNow(调用 Thread.interrupt进行中断)
​
socket 链接,比如:netty、mq
​
告知注册中心快速下线(靠心跳机制客服早都跳起来了),比如:eureka
​
清理临时文件,比如:poi
​
各种堆内堆外内存释放
​
​
2、
到这里就进入重点了,spring boot中有spring-boot-starter-actuator 模块提供了一个 restful 接口,用于优雅停机。执行请求 curl -X POST http://127.0.0.1:8088/shutdown ,待关闭成功则返回提示。
​
到这里就进入重点了,spring boot中有spring-boot-starter-actuator 模块提供了一个 restful 接口,用于优雅停机。执行请求 curl -X POST http://127.0.0.1:8088/shutdown ,待关闭成功则返回提示。
​
注:线上环境该url需要设置权限,可配合 spring-security使用或在nginx中限制内网访问
#启用shutdown
endpoints.shutdown.enabled=true
#禁用密码验证
endpoints.shutdown.sensitive=false
#可统一指定所有endpoints的路径
management.context-path=/manage
#指定管理端口和IP
management.port=8088
management.address=127.0.0.1
​
​
#开启shutdown的安全验证(spring-security)
endpoints.shutdown.sensitive=true
#验证用户名
security.user.name=admin
#验证密码
security.user.password=secret
#角色
management.security.role=SUPERUSER

37、jps命令-查看java运行的进程和进程pid

jps(Java Virtual Machine Process Status Tool)
java虚拟机进程状态工具
​
提供显示所有java进程pid的命令,查看它

38、CURL -x 命令行统一资源定位符http代理访问

curl -x
​
curl:全称CommandLine URL 或 CommandLine Uniform Resource Locator,顾名思义,curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。
命令行url,命令行统一资源定位符,进行数据传输或者文件的传输。
​
​
​
x:proxy,使用HTTP代理访问;如果未指定端口,默认使用8080端口;
protocol默认为http_proxy,其他可能的值包括:
http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;
如:
--proxy 8.8.8.8:8080;
-x "http_proxy://aiezu:123@aiezu.com:80"

39、ps -ef

ps -ef | grep redis
查看redis服务的服务和端口号

40、more -100 fileName 每次查看文件100行

空格键:查看下一屏;
回车键:往下滚动一行;
b 键:往前查看一屏;
q 键:退出。
​
限制每页显示的行数
more 命令默认是整屏显示,如果我们一次只想查看几行,要怎么操作?只需加一个 -N 选项即可,N 就是你想要查看的行数。
more -N file_name
比如对于 /var/log/dmesg 文件我们一次只想查看 10 行,我们可以这样:
more -10 /var/log/dmesg
​
学习链接:https://blog.csdn.net/yychuyu/article/details/89926703

41 查看linux操作系统版本

cat /etc/redhat-release

42 Linux 查看应用程序进程号,端口号 通过进程号查看端口号 通过端口号查看进程号

1、查看运行的程序的pid(线程号)

{appName}:应用程序名称

ps aux | grep {appName}
2、根据线程号查询正在运行的程序的port(端口号)

{pid}:程序的线程号

netstat -anop | grep {pid}
3、查看port(端口号)对应的正在运行的程序以及pid(线程号)

{port}:端口号

lsof -i: {port}
4、查找线程号并杀掉程序:

{appName}:应用程序名称

ps aux | grep {appName} | grep -v grep | awk '{print $2}' | xargs kill -9
 
例如:ps aux | grep kill.py | grep -v grep | awk '{print $2}' | xargs kill -9

原文链接:https://blog.csdn.net/qq_36793589/article/details/122540515

43 内部网段互通 网络传输文件、目录命令 scp

-r用于传目录
实例:
scp -r hexiaoquan/ 2.22.21.238:/data/
scp serverA-service-1.0.0.jar 2.22.21.238:/data/hexiaoquan/

scp -r 本地文件 远端IP:远端路径
scp -r 远端IP:远端路径 本地路径

## 一、示例

### []()1. 从本地复制到远程

在本地服务器上将/root/lk目录下所有的文件传输到服务器43.224.34.73的/home/lk/cpfile目录下,命令为:

scp -r /root/lk root@43.224.34.73:/home/lk/cpfile

### []()2. 从远程复制到本地

在本地服务器上操作,将服务器43.224.34.73上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:

scp -r root@43.224.34.73:/home/lk /root


44 内部网段互通 连接其他服务器 ssh

ssh ifconfig的ip地址 
输入密码即可

45 修改文件名或者移动目录 mv

移动目录或文件到指定目录或文件:
mv ./* 指定目录下
/* 移动这个目录下的所有

修改文件名
mv 当前目录的文件名 准备修改的文件名

例如:
移动到某个文件必须是./目标文件目录 或者../目标文件目录
 mv config.json /openai  将config.json重新命名为openai名称 是错误的命令,预备是移动文件夹的
 mv config.json ./data/openai  将config.json文件移动到/data/openai 文件下