![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 66
爱琴孩
扫盲+科普+解惑,愿天下程序员每天少掉头发
展开
-
$‘\r‘: 未找到命令
'\r': 未找到命令,这个异常在执行shell脚本的时候经常遇到,一般新手遇到这个问题就不知道咋回事了。我们一般开发环境都是windows环境,在windows上编写的shell脚本里面如果存在换行符\r。如果我们直接在linux服务器上执行windows上编辑的shell脚本就会报前面的异常,那么我们可以将Windows格式的sh文件转换为Unix格式。原创 2024-07-27 16:53:14 · 385 阅读 · 0 评论 -
awk常见用法
awk命令默认使用空格作为字段分隔符,但是可以根据需要自定义分隔符。原创 2023-12-31 10:23:42 · 540 阅读 · 0 评论 -
正则表达式
(1)介绍正则表达式应用广泛,在绝大多数的编程语言都可以完美应用,在Linux中,也有着极大的用处。使用正则表达式,可以有效的筛选出需要的文本,然后结合相应的支持的工具或语言,完成任务需求。(2)正则表达式类型正则表达式可以使用正则表达式引擎实现,正则表达式引擎是解释正则表达式模式并使用这些模式匹配文本的基础软件。原创 2023-12-30 14:34:55 · 533 阅读 · 0 评论 -
SSH 原理
SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。转载 2023-11-11 17:49:14 · 145 阅读 · 0 评论 -
曾经我很疑惑2>&1
写Java的朋友一定对上面的命令很熟悉,相信大部分人都知道>表示的是重定向,那么什么是重定向?2>&1又是什么意思?要从根儿上说明这个问题,我们有必要好好理解一下「文件描述符」的概念。文件描述符(File descripter)就是一个整数,这个整数唯一标识了操作系统中某个被打开的“文件”。转载 2023-01-05 22:01:18 · 99 阅读 · 0 评论 -
df命令,你真的会了么?
我知道在Linux上我可以用df命令来查看磁盘使用空间。你能告诉我df命令的实际例子使我可以最大限度得利用它吗?df命令可以展示任何“mounted”文件系统的磁盘利用率。该命令可以用不同的方式调用。这里有一些有用的 df 命令例子.默认情况下,df命令用1K为块来展示磁盘空间,这看起来不是很直观。“-h”参数使df用更可读的方式打印磁盘空间(例如 100K,200M,3G)。当你监视磁盘使用情况时,你必须注意的不仅仅是磁盘空间还有“inode”的使用情况。原创 2022-12-16 16:15:57 · 320 阅读 · 0 评论 -
精通Linux,没用过scp?
使用Linux时,传输文件是经常做的事情,传输文件有很多种方式、也有很多种协议,最常用的是rsync、scp 和 sftp,其中scp通过使用SSH(Secure Shell)机制传输文件来确保数据的真实性、加密和机密性。因此,传输中的数据可以免受窥探攻击,客户端可以使用此协议向服务器上传和下载文件和目录,它需要密码或密钥进行身份验证,scp 的默认端口是 TCP 端口 22,这也是 SSH 的默认端口。scp 协议的优势是您无需启动 FTP 会话或显式登录远程主机进行文件传输。将文件从本地复制到远程主机:原创 2022-12-04 16:29:13 · 2104 阅读 · 0 评论 -
精通Linux,不清楚Telnet和SSH?
telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式,虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)。以上两种方式都可以远程登录到服务器,server-ip代表远程服务器的IP地址,name代表SSH登陆进远程服务器的用户名。如果远程服务器的端口是其他的,在后面加上-p参数。连接成功终端就会提示继续输入用户密码,输入就好了。原创 2022-11-08 22:22:54 · 1136 阅读 · 0 评论 -
精通Linux,不知道nslookup?
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。nslookup的用法相对来说还是蛮简单的,主要是下面的几个用法。的CNAME记录,第二个Address就是该站点的IP地址,Aliases是别名的意思,意思是。直接查询返回的是A记录,我们可以指定参数,查询其他记录,比如AAAA、MX等。如果没指定dns-server,用系统默认的dns服务器。这里的名称(name)是指要查询的域名,查询。时的名称是该站点的A记录绑定域名,查询一个域名的A记录。原创 2022-11-07 22:56:31 · 324 阅读 · 0 评论 -
精通Linux,没用过lsof命令?
lsof(list open files)命令可以列出当前系统已经打开的所有文件。在Linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。原创 2022-11-06 21:07:10 · 767 阅读 · 0 评论 -
精通Linux,不会find命令?
可以很肯定地说,find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。让我们看一道真题:如果你的 Linux 服务器上有一个名为 logs 的目录,如何删除该目录下最后一次访问时间超过一年的日志文件呢?🤔这种情况很常见,但令人惊讶的是,并非每个开发人员都能在面试中清楚地写出这个命令。如果你还没有完全理解上面的命令,完全不用担心。本文将介绍 find 命令的 7 个实际用途。转载 2022-11-02 23:18:56 · 140 阅读 · 0 评论 -
3年经验,没用过jmap?
前言我们在前面3年经验,没用过jstack?中学习了jstack相关使用介绍,这里再和大家一起学习下另外一个重要的命令。jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。常见参数如下no option: 查看进程的内存映像信息,类似 Solaris pmap 命令。 heap: 显示Java堆详细信息 histo[:live]: 显示堆中对象的统计信息 clstats原创 2022-03-27 15:05:11 · 1695 阅读 · 0 评论 -
记一次生产环境服务节点掉线排查
前言前段时间,运维反馈现网有个服务的一个节点自己down掉了,从eureka自动下线了,运维大佬在重启节点之前dump了堆栈,并把dump文件发我了,这边用jprofile打开dump文件快照,当时被一个红色线条吸引了。其中有一个类居然有4857万个对象,这些对象占用了接近1.9G内存,难怪节点挂掉了。根据jprofile中的classes,查看References,选中其中一个对象,可以看到对象生成的堆栈信息,具体在哪个方法的哪一行生成了这些大批量对象,后来经过排查,发现是代码中的原创 2022-03-22 21:47:33 · 1277 阅读 · 2 评论 -
3年经验,没用过jstack?
前言大家在日常工作中,或多或少都遇到过生产环境服务异常,比如某个进程将服务器内存打满,或者占用了大量CPU,这时候就需要开发和运维同学一起去排查具体的原因了,这时候jstack命令就能用到了,如果说工作三年,都没用过jstack命令,那只能说平台服务高可用性太强了。jstack简介jstack用于生成JVM当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等原创 2022-03-05 19:21:09 · 659 阅读 · 0 评论 -
Linux服务器逻辑CPU、物理CPU那点事
基础概念1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)2.cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)3.逻辑cpu数:一般情况下,逻辑cpu=物理CPU个数×每颗核数,如果不相等的话,则表示服务器的CPU支持超线程技术(HT:简单来说,它可使处理器中的1 颗内核如2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑原创 2022-02-26 10:41:38 · 351 阅读 · 0 评论 -
Linux服务自启动的三种方式
chkconfig命令在Linux中我们可以通过chkconfig命令来查看服务的启动状态,比如说chkconfig --list|grep httpd就可以看到apache服务的状态httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:offchkconfig有几个等级:0:表示关机1:表示单用户模式2:表示无网络链接多用户命令行模式3:表示有网络链接多用户命令行模式4:表示不可用情况5:表示带图形界面的多用户模式6:表示重原创 2022-01-22 18:24:18 · 1237 阅读 · 0 评论 -
Linux查看端口占用情况
前言在日常开发测试中,我们有时候遇到服务启动端口被占用,那如何查看端口被哪个服务占用呢?这里和大家一起来学习下两种查看端口信息方式。lsof方式比如说我们想查看下8110端口是否被占用,我们可以通过lsof -i:8110来查看从上面可以看到8110端口被179957进程占用,具体该进程是什么信息,我们可以通过ps -aux|grep 179957来查看进程具体信息dev 179957 1.0 1.1 8285464 1567636 ? Sl Jan.原创 2022-01-17 21:53:58 · 800 阅读 · 0 评论 -
tar命令高频用法
前言tar命令是Linux中比较常用的解包与打包命令。下面举例说明一下tar 的基本命令。#tar -cvf sysconfig.tar /etc/sysconfig命令解释:将目录/etc/sysconfig/目录下的文件打包成文件sysconfig.tar文件,并且放在当前目录中参数解释如下:-c 创建新的文档。-v 显示详细的tar处理的文件信息-f 要操作的文件名#tar -rvf sysconfig.tar /etc/sysconfi...原创 2022-01-15 22:01:08 · 1420 阅读 · 0 评论 -
Linux之nohup命令
nohup命令简介nohup命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。命令格式nohup Command [ Arg … ] [ & ]参数说明Command:原创 2021-11-24 20:32:31 · 264 阅读 · 0 评论 -
bad interpreter: No such file or directory问题
前言前段时间在电脑中写的shell脚本,放到linux服务器启动报错bad interpreter: No such file or directory。开报错信息应该是文件格式问题,导致解析异常,这边简单备注下。[dev@test Test_DownloadAudio]$ ./start.sh -bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory.sh脚本在windows系统下编写的,所以可能有不可原创 2021-11-06 16:04:55 · 794 阅读 · 0 评论 -
su和sudo那点事
1.su命令介绍及主要用法首先需要解释下su代表什么意思。之前一直以为su是super user,查阅资料之后才知道原来表示switch user。知道su是由什么缩写来的之后,那么它提供的功能就显而易见了,就是切换用户。1.1-参数su的一般使用方法是:su<user_name> 或者 su-<user_name>两种方法只差了一个字符-,会有比较大的差异: 如果加入了-参数,那么是一种login-shell...转载 2021-10-12 19:22:59 · 203 阅读 · 0 评论 -
Linux深度解析软链接硬链接(下)
前言软链接也称作符号链接,相比硬链接来讲,软链接就要常用多了。我们先建立一个软链接,再来看看软链接的特点。[root@localhost ~]# touch check#建立源文件[root@localhost ~]# ln -s /root/check /tmp/check-soft#建立软链接文件[root@localhost ~]# ll -id /root/check /tmp/check-soft262154 -rw-r--r-- 1 root root 0 6月 19 11:转载 2021-07-05 22:39:38 · 136 阅读 · 0 评论 -
Linux深度解析软链接硬链接(中)
前言建立硬链接和软链接非常简单,那这两种链接有什么区别?它们都有什么作用?这才是链接文件最不容易理解的地方,我们分别来讲讲。ln创建硬链接我们再来建立一个硬链接文件,然后看看这两个文件的特点。[root@localhost ~]# touch test#建立源文件[root@localhost ~]# ln /root/test /tmp/test-hard#给源文件建立硬链接文件 /tmp/test-hard[root@localhost ~]# ll -i /root/test转载 2021-07-05 22:33:09 · 145 阅读 · 0 评论 -
Linux深度解析软链接硬链接(上)
前言如果要想说清楚 ln 命令,则必须先解释下 ext 文件系统(Linux 文件系统)是如何工作的。而我们的 Linux 目前使用的是 ext4 文件系统。下面用一张示意图来描述 ext4 文件系统ext4 文件系统会把分区主要分为两大部分(暂时不提超级块):小部分用于保存文件的 inode (i 节点)信息;剩余的大部分用于保存 block 信息。inode 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、转载 2021-07-05 21:51:05 · 159 阅读 · 0 评论 -
java.io.IOException: No such file or directory之linux权限问题
在Java中,如果你尝试在一个不存在的目录下创建文件,那么也会出现"No such file or directory"错误。为了解决这个问题,你可以在创建文件之前,先判断目录是否存在。如果目录不存在,可以使用mkdirs()方法来创建目录。开发环境一个上传文件的服务被人以非root账号启动,启动之后上传文件总是报一个目录不存在,异常信息关键点如下。怎么解决想必也是无需多言。原创 2021-06-09 21:21:05 · 7721 阅读 · 0 评论 -
Linux单双引号嵌套引发的小问题
单双引号如何嵌套使用最近有个小需求需要统计下ES中的文本结果,编辑和未编辑文本的占比,由于直接统计ES中的结果,这里直接写了个DSL查询脚本,初版版本脚本如下curl -XGET 127.0.0.1:9200/esIndex/esType/_search?pretty -d '{"query":{ "bool":{ "should":[ { "range": { "createTime原创 2021-06-03 20:40:08 · 849 阅读 · 0 评论 -
Linux服务器查看内存使用情况
前言在日常开发或者生产环境,我们经常需要查看linux服务的内存使用情况,所以能熟练敲出命令能便于我们快速定位问题,这里来和大家一起学习linux的常用查看内存命令。free命令free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。很清晰明白的显示出了总内存多少,已使用多少,还剩下多少。这里可以看到Swap的used已使用了811Mb,服务器上跑了一个下载音频的进程,物理内存已经不够用了,所以从磁盘中虚拟出一部分的内存。当然我们可以使用free.原创 2020-09-28 22:50:55 · 1128 阅读 · 0 评论 -
Linux日常操作之du和df
前言日常在使用linux服务器的时候,我们少不了需要使用一些简单的命令去查看linux服务的使用情况,比如经常常见的top命令,free命令等等,这里简单记录下linux操作中的du和df。高频操作之du -hLinux du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。比如查看当前目录下的各个文件和目录的占用空间du -h --max-depth=1查看结果如下高频操作之df -hLinux df(英文全拼原创 2020-09-17 22:15:17 · 571 阅读 · 0 评论 -
The temporary upload location is not valid问题
前言最近在测试环境测试一个带上传功能的服务,服务出现了一个很奇怪的问题。由于这个服务使用比较少,所以版本迭代也很慢,代码有一段时间没改动了,但是在测试一个上传功能的时候居然失败了,错误日志如下按照日志上的目录去找,服务器上确实没有这个目录。所以报错了,但是为什么之前功能Ok,现在就不行了。Linux服务器定时删除tmp目录在linux系统中,springboot应用服务在启动的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下.原创 2020-07-21 22:45:36 · 1122 阅读 · 0 评论 -
Linux中sudo之后无需输入密码
前言在Linux和其他类Unix操作系统中,只有root用户可以运行所有命令并在系统上执行某些关键操作,如安装和更新,删除包,创建用户和组,修改重要的系统配置文件等。同时,承担root用户角色的系统管理员可以允许其他正常系统用户在sudo命令和几个配置的帮助下运行某些命令以及执行包括上述的一些重要系统操作。sudo 表示 "superuser do"。 它允许已验证的用户以其他用户的身份来运行命令。在执行玩sudo之后需要输入当前用户的密码,这在日常操作中不是很方便。比如说,我们在shell脚本中执行s原创 2020-07-13 22:28:09 · 2650 阅读 · 0 评论 -
rm -rf 之后磁盘空间没有释放
确切地说,不是收到的自动告警短信或者邮件告诉我某机器上的磁盘满了,而是某同学人肉发现该机器写不了新文件才发现该问题的. 说明我司告警服务还不太稳定 :)第一次出现该问题时,我的处理方式是:先删了/tmp/目录, 空闲出部分空间,然后检查下几个常用的用户目录,最终发现某服务A的日志文件(contentutil.log)占用了好几个大G,询问相关开发人员后确定该日志文件不需要压缩备份,所以可直接删除, 于是rm contentutil.log之后就天真地认为万事大吉了…(不懂为啥当初没df再看看...原创 2020-07-08 22:03:00 · 3623 阅读 · 0 评论 -
curl命令实用教程
前言在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。curl命令在日常开发或运维中都经常用到,这里和大家总结下curl命令的常用用法。基础用法curl http://www.baidu.com执行后,www.baidu.com 的html就会显示在屏幕上了。保存访问的网页方式一使用linux的重定向功能保存curl http://www..原创 2020-06-13 15:59:33 · 858 阅读 · 0 评论 -
说说Linux中的umask
前言Linux文件权限这块是Linux学习的基础,我们在学习linux权限的时候,都有学过umask命令。在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,文件的最大访问权限为rw-rw-rw-,创建目录的最大权限rwxrwxrwx,而umask值则表明了需要从最大权限中去掉...原创 2019-11-17 23:14:02 · 505 阅读 · 0 评论 -
CentOS 6.5中将openjdk1.7换为sun jdk1.8
前言由于版权问题,linux系统中默认都安装了openjdk。最近由于要做es集群迁移,需要将一个es节点迁移到另一个服务器上,由于es需要jdk1.8以上,而服务器上是默认安装是openjdk1.7,所以用自己的jdk1.8去替换系统自带的openjdk1.7。下面详细介绍下具体的替换过程。jdk1.8的下载要换jdk1.8,我们首先肯定需要下载linux对应的jdk版本,到官网下载...原创 2018-11-29 21:48:27 · 716 阅读 · 0 评论 -
linux下的select,poll,epoll
前言在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,其实I/O多路复用就是通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就...原创 2018-12-30 10:44:12 · 904 阅读 · 0 评论 -
Linux进程基础
前言在计算机里面,一个进程通常指的是一个运行程序的实例,它包含程序代码和其活动。依赖于具体的操作系统,一个进程启动后通常由若干个线程组成,多个线程可以同时并发的执行程序的指令,进程里面第一个启动的线程,通常称为主线程。进程的类型前台进程 通常也指交互进程,这些进程一般都是通过linux终端会话创建的,换句话说必须有用户连接到系统上,然后开启一个进程,这种进程不会被系统函数或者创建。...转载 2019-01-14 22:52:57 · 168 阅读 · 0 评论 -
Linux下环境变量那些事
前言作为java开发,我们应该对于环境变量都很熟悉。安装jdk的时候,同学们都配置过jdk的JAVA_HOME等环境变量,那么配置的环境变量到底有啥用呢?其实环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用这当然和具体的环境变量相关。比如path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去...原创 2019-01-26 17:03:37 · 170 阅读 · 0 评论 -
Nginx在Linux服务器中启动,停止,重启
前言对于tomcat和Nginx,不管是开发,测试,还是运维,我们都应该对其很熟悉。不能说我是开发,Nginx的日常操作,我们不需要关注。其实对于Nginx的基础操作,我们还是很有必要去学习下,无非就是几个简单的命令,多操作几次就会了。这里简单记录下常见Nginx操作,记笔记是好事,但是最终目的还是希望大家从记笔记中脱离笔记,达到熟能生巧的境界。不能说重启个Nginx,还得去找之前记得小笔记来...原创 2019-06-22 11:17:12 · 7157 阅读 · 0 评论 -
Linux中的文件快速查找
前言日常开发中,我们经常会用到linux系统,如果刚开始接触Linux系统,可能操作起来确实有点不习惯,这里和大家一起总结一些在日常开发中比较实用的命令,俗话说:"熟能生巧",linux命令本身不难,多操作几遍就会了。1.在目录中查找指定文件,目录在linux系统,有时候我们知道服务器肯定有某个文件或目录,但是不记得在哪个位置了,这时候我们怎么快速找到指定名称的文件呢?下面举个例子,假...原创 2019-09-03 22:13:28 · 321 阅读 · 0 评论 -
Linux中进程和连接状态查看
前言在linux日常使用,我们经常会需要查看具体某个进程是否存在,服务是否启动成功,抑或是需要根据端口号来查询这个端口号是否被占用。有时候我们还要查看目前系统中某个进程的连接数,还有各个TCP连接分别处于什么状态。这里来和大家一起总结下这些实用命令。查看端口号是否被占用比如在Linux系统中,我需要查看系统8096端口是否被占用,我们该怎么查看呢。我们可以输入下面的命令lsof ...原创 2019-09-04 23:01:29 · 4279 阅读 · 0 评论