-
文本全局替换
配置文件中批量修改字符串:sed -i 's#sourceStr#replacedStr#g' 配置文件
eg:
可以使用send命令替换所有logback_*.xml配置文件中的${usr.home}为/opt/rocketmq
cd /usr/local/rocketmq/conf/
sed -i 's#${user.home}#/opt/rocketmq#g' *.xml
-
杀死指定的进程
杀死所有查询到的进程:ps -efww | grep "pushstream" | grep -v grep | cut -c 9-15 | xargs kill -9
Linux 如何查看磁盘容量、查找大文件和大目录
磁盘统计
查看磁盘使用情况:df -h
目录统计
1.查看当前目录下的所有目录的大小(使用-h参数): du -h
2.查看当前目录下的所有目录的大小(使用-m参数,以m为单位),并且使用sort -nr 从小到大排序:du -m | sort -nr
文件统计
查找/home 目录下大于900M的文件
find /home -type f -size +900M
查找/home 目录下大于900M的文件,并且使用ls -lh 命令输出详细信息
find /home -type f -size +900M -print0|xargs -0 ls -lh
查找/home 目录下大约900M的文件,并且使用du -h 命令输出文件的大小
find /home -type f -size +900M -print0|xargs -0 du -h
查找/home 目录下大约900M的文件,并且使用du -m 命令输出文件的大小,然后使用 sort -nr 从小到大排序
find /home -type f -size +900M -print0|xargs -0 du -m|sort -nr
du -d1 -h /var/lib/docker/overlay2/ | sort -h
du -d1 -h /var/lib/docker/containers/ | sort -h
查看CPU:sar -u 1 5或者top -bn 1 -i -c
linux清空文件内容的三种方法
1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可。但当文件内容较大时处理会比较慢,命令如下:
vim file_name
:%d
:wq
2.使用cat命令情况,命令如下:推荐使用cat命令
cat /dev/null > file_name
3.使用echo命令清空,此时会在文件中写入一个空行“\n",命令如下:
echo "" > file_name
常用命令:这两个命令都可以查看端口被什么进程占用
1,lsof -i:端口号
lsof -i 用以显示符合条件的进程情况,lsof(list open files)是一个列出当前系统打开文件的工具
lsof输出的每列的意义是:
COMMAND:进程的名称或者进程开启的方式、PID:进程id、USER:进程所有者、FD:文件描述符、TYPE:协议类型、DEVICE:端口号、SIZE/OFF:偏移、NODE:协议名、NAME:节点名
2,netstat -tunlp|grep 端口号
命令里的t,u,n,l,p均有不同含义:
-t 仅显示和tcp相关的
-u 仅显示和udp相关的
-n 不限时别名,能显示数字的全部转换为数字
-l 仅显示出于Listen(监听)状态的
-p 显示建立这些连接的程序名
修改文件所属用户和用户组
使用chown命令可以修改文件或目录所属的用户:
命令:chown 用户 目录或文件名
例如:chown -R testAdmin /home () (把home目录下的所有目录和文件的拥有者改为testAdmin用户)
使用chgrp命令可以修改文件或目录所属的组:
命令:chgrp 组 目录或文件名
例如:chgrp -R testAdmin /home (把home目录下的work目录的所属组改为testAdmin组)
Tree命令安装和使用
1.下载安装包,地址:http://mama.indstate.edu/users/ice/tree/
wget http://mama.indstate.edu/users/ice/tree/src/tree-1.8.0.tgz
2.tar -zxvf tree-1.8.0.tgz
3.cd tree-1.8.0
4.make install
Tree命令使用
格式:tree + 参数
tree命令行参数:
1 -a 显示所有文件和目录。
2 -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
3 -C 在文件和目录清单加上色彩,便于区分各种类型。
4 -d 显示目录名称而非内容。
5 -D 列出文件或目录的更改时间。
6 -f 在每个文件或目录之前,显示完整的相对路径名称。
7 -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
8 -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
9 -i 不以阶梯状列出文件或目录名称。
10 -I 不显示符合范本样式的文件或目录名称。
11 -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
12 -n 不在文件和目录清单加上色彩。
13 -N 直接列出文件和目录名称,包括控制字符。
14 -p 列出权限标示。
15 -P 只显示符合范本样式的文件或目录名称。
16 -q 用"?"号取代控制字符,列出文件和目录名称。
17 -s 列出文件或目录大小。
18 -t 用文件和目录的更改时间排序。
19 -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
20 -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上
linux查看压缩包中包含哪些文件
查看zip文件包含哪些文件
unzip -t a.zip
查看jar包内文件命令
jar -tvf fileName.jar
查看tar压缩包里面的内容
tar -tvf Package_name.tar
根据某个字符串,查询该字符串前后文本信息命令:grep [-A num -B num -i] "key" file
其中:
A:表示在字符串之后 after context
B:表示在字符串之前 before context
num:要获取多少行文本 line number
-i:表示忽略大小写
key:要查找的字符串
file:文件名
实例:查找出现异常的前50行后100行的内容:grep -A 100 -B 50 -i ‘Excepiton’ catalina.out
nohup命令
Linux的nohup命令会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中
nohup命令:原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。
补充:
nohup java -jar xxx.jar &
这样执行后,nohup会把执行结果中的日志输出到当前文件夹下面的catalina.out文件中,通常情况下我们使用以上命令即可。 也可手动指定一个参数来规定日志文件的输出地点
nohup java -jar xxx.jar > catalina.out 2>&1 &
如果不需要输出日志,可以使用如下命令
nohup java -jar xxx.jar >/dev/null &
为了方便管理,我们还可以通过Shell来编写一些用于启动应用的脚本,比如关闭应用的脚本:stop.sh
#!/bin/bash
PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo "Application is already stopped"
else
echo kill $PID
kill $PID
fi
启动应用的脚本:start.sh
#!/bin/bash
nohup java -jar yourapp.jar --server.port=8888 &
整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh
查看本机的IP地址
hostname -I
更改主机名
hostnamectl set-hostname xxx
hostname xxx
更换aliyun源,解决下载一些资源缓慢问题
首先,备份原镜像:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
其次,更换为新的aliyun镜像:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装常用命令:yum install wget git telnet net-tools tree nmap sysstat lrzsz dos2unix tcpdump ntpdate -y
互联网同步时间:
yum install ntpdate
ntpdate ntp1.aliyun.com
关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
Linux scp命令
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
简易写法:
scp [可选参数] file_source file_target
参数说明:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
1、从本地复制到远程
复制文件
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
应用实例:
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
复制目录
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder #第1个指定了用户名,命令执行后需要再输入密码
或者
scp -r local_folder remote_ip:remote_folder #第2个没有指定用户名,命令执行后需要输入用户名和密码
应用实例:
scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
scp -r /home/space/music/ www.runoob.com:/home/root/others/
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
su和sudo命令的区别
1、su命令
su命令用来切换用户,substitute英文含义“代替”的意思
①su:不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变
②su - 或者su -l 或者 su --login:切换为root用户,同时变更工作目录,以及SHELL,USER,PATH,HOME,LOGNAME变量
③su username :切换为其他用户,目录不改变,SHELL,USER,PATH,HOME,LOGNAME变量改变
④su -, -l, --login username:切换到其他用户,变更工作目录,以及SHELL,USER,PATH,HOME,LOGNAME变量
⑤其他参数:
-m,-p或--preserve-environment:变更身份时,不要变更环境变量(preserve:保持的意思)。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
2、sudo命令
sudo命令:sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户
sudoers文件存放在etc目录下,我们可以直接输入命令visudo编辑sudoers文件,使用visudo命令编辑文件,会验证我们添加的信息是否有语法错误
sudo -l命令: 查看当前用户可以用sudo执行的命令都有哪些