每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)
-rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位表示文件所有者的权限,u权限
5-7位表示文件所有者所属组成员的权限,g权限
8-10位表示所有者所属组之外的用户的权限,o权限
2-10位的权限总和有时称为a权限
查询系统信息:
查询内核版本:cat /proc/version
查询发行版:cat /etc/redhat-release
【linux】查看Linux系统版本信息的几种方法_老马农的博客-CSDN博客_linux查看系统版本
curl -l 访问地址 可以验证访问服务通不通
递归更改文件所属用户:chown -R 用户名 文件名或目录名
递归更改文件所属用户组:chown -R :用户组名 文件名或目录名
上述更改必须基于root用户
切换到root用户:sudo -i,切回普通用户:exit
切换用户su username ,root切换到普通用户不需要密码
使用堡垒机登录另一台机器:先用sudo -i 提权,再ssha 目标主机IP
查看文件大小 ls -lh filepath
Linux查看文件大小的几种方法_天糊土的博客-CSDN博客_linux查看文件大小
查看JVM情况:jmap -heap pid
生成dump文件:记一次JVM内存满了的问题处理经过_普通网友的博客-CSDN博客_jvm内存满了
查看端口被哪个进程占用,获得pid: sudo lsof -i 端口号
查看进程:ps -ef|grep pid
查看所有环境变量:env
#!/bin/bash是指此脚本使用/bin/bash来解释执行,#!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释,当前面命令执行有问题时,bash继续执行下面命令
#!/bin/sh:当前面命令执行有问题时,bash不执行下面命令
https://blog.csdn.net/weixin_41783910/article/details/108005170
echo:打印
usage()函数用法:https://zhuanlan.zhihu.com/p/173740752,$0是运行的命令名,$1,……是参数
cat命令表示查看,而cat <<EOF命令表示将进行输入,直到以EOF终止符来结束输入(最后的新行)。EOF必须写在一行的头部
# 获取shell脚本所在目录的绝对路径:DIR=$(cd "$(dirname "$0")";pwd)
& 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'
| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l,再如ps aux | grep nginx
|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"
pwd -L,--logical,显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式)
pwd -P,--physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件。 当包含多层连接文件时,显示连接文件最终指向的文件
pushed--popd 压入、取目录栈
$@ 表示所有参数
export可用于查看或者设置环境变量,但仅在当前登录终端有效
如 export name="John"
unzip /package/../...zip 目标目录 //解压到目标目录,不加目标目录则解压到当前目录
启动jar包并传参:java -cp 绝对路径.....jar com.ibm....入口类 args[0] args[1]……
拷贝远程文件:scp -r file 远程用户名@远程机器ip:远程文件路径
[ -f FILE ]
如果 FILE 存在且是一个普通文件则返回为真
$JAVA_HOME,是指JAVA_HOME的环境变量,取shell中定义的变量时也要用$
Linux中$()和${}区别
$( )中放的是命令,相当于` `,例如todaydate=$(date +%Y%m%d)意思是执行date命令,返回执行结果给变量todaydate,也可以写为todaydate=`date +%Y%m%d`;
${ }中放的是变量,例如echo ${PATH}取PATH变量的值并打印,也可以不加括号比如$PATH
a=/home/wls/.....
echo ${b:-$a} //如果b为空就返回a
export a //设置或者显示环境变量
top //动态查看CPU资源运行情况
top -b -n >> a.txt 记录n次top写到a.txt中
Mem 物理内存,根据PID可查看是哪个程序占用大 VIRT RES
一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围
${a/b/c} //将变量a中的b全部替换为c,开头一个正斜杠为只匹配第一个字符串,两个正斜杠为匹配所有字符
zip -d 压缩文件路径 文件 //从压缩文件内删除指定文件
结构体
if [ ..... ]; then
fi
sh a.sh //启动脚本
. /vars.sh //加载脚本,说明说下
shell脚本查询pid进程并杀掉(注意使用双引号不要用单引号):Linux-shell 脚本获取pid,并kill_飘然渡沧海的博客-CSDN博客
执行a.shell时先加载b.shell可以如下使用,比如定义一些会话级的环境变量
在linux下,.(点)+(空格)+可执行文件 == source+(空格)+可执行文件,表示在当前shell环境执行后面的命令或脚本,不加点号默认是新开一个shell执行的。它从指定的shell 文件中读入所有命令语句并在当前进程中执行。
如:. /home/test.sh 等同于 source /home/test.sh。
用source执行的脚本所做的任何改变会影响当前shell(如其中有用cd改变目录,脚本执行完后目录就变掉了),如果没用source,就不会影响当前shell。
如果不想更改文件的执行权限,又想执行此文件,可以采用(点号+空格+可执行文件名)的形式来执行一个脚本(当然,只有root用户才可以这么做)
rm -rf 路径/* 删除路径下所有文件
删除shell脚本整行:dd
Esc+u表示回退一步 https://www.csdn.net/tags/MtzakgysNzczMTMtYmxvZwO0O0OO0O0O.html
cp 源路径 目标路径
cp -r 的作用是递归,可复制目录,如果复制目录必须加此选项。
cp -R 的作用仅仅是复制目录。
不过cp -r 和-R命令功能上是等价的。不加-r或者-R的时候,只输入命令cp时只拷贝文件,不拷贝文件夹
复制并创建目录
mkdir -p /data/beifen/2021/07/20 && cp -r seeyon /data/beifen/2021/07/20
遍历文件
cd .....某个目录
for fileName in 'ls'
do
....
done
sed -i '1d' file.txt //删除第一行
linux调用入参太多怎么处理?
可以使用类似
neo4j-admin import --force \
--id-type=INTEGER \
--a=a1 \
....
--delimiter '|'
dev/null的用法 linux /dev/null 的用法详解 - 叶新东博客 chn520.cn
BASH_SOURCE用法:linux shell dir,Bash Shell 常见脚本命令: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"详解..._不训的黑暗的博客-CSDN博客
tr 命令用于转换或删除文件中的字符Linux tr命令 | 菜鸟教程
expr命令:Linux expr命令 | 菜鸟教程
echo ${#array[@]} # 获取数组中的元素个数linux数组操作,shell数组使用_Nerd Muscle的博客-CSDN博客
获取当前文件所在目录路径:basepath=$(cd `dirname $0`; pwd)
https://www.csdn.net/tags/MtjaAg5sNDYxMzYtYmxvZwO0O0OO0O0O.html
windows编辑的shell脚本换行和linux不一样,需要通过ue做转换 dos--unix
启动jar包传参并且指定日志输出目录
nohup java -jar xxx.jar > xxx.log 2>&1 & --运行jar包并将日志写入到xxx.log中
tail -f xxx.log --查看日志文件
linux启动jar包指定日志输出目录下,linux 启动jar包 指定yml配置文件和输入日志文件..._weixin_35662019的博客-CSDN博客
查看日志前10行,后10行
head -10 filename tail -10 filename
Linux下查看日志常用命令_qq_39935684的博客-CSDN博客_linux查看日志文件最新10行
查找关键字 Linux命令--日志文件里面查找关键字_普通网友的博客-CSDN博客_linux查询关键字
grep -i “train” log.log|head -10 //包含关键字的只取前十个
kill -9杀不掉进程怎么办,可以杀掉父进程:linux中kill命令杀不掉进程怎么办-linux运维-PHP中文网
Ctrl+z和Ctrl+c的区别,以及如何恢复暂停、进程
Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别_l841209的博客-CSDN博客_linux任务管理器快捷键
启动jar包参数太多换行 用 \
shell 参数换行 & shell 输出换行的方法_51CTO博客_shell 换行
df -h 查看磁盘空间
chmod -R 777 xxx 表示 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
批量修改文件名:Linux下批量修改文件名方法 (转) - 知乎
查看文件行数:wc 文件名
替换文本中所有字符串:sed -i 's/<search_str>/<target_str>/g' <file_path>
替换第一行内容:https://www.csdn.net/tags/MtzakgzsOTQ2MzktYmxvZwO0O0OO0O0O.html
Shell中的查找和替换的sed命令_神云瑟瑟的博客-CSDN博客_sed 查找替换
1个shell脚本启动多个jar