tail -f -n 100 日志文件名
将文件中下的若干子文件夹中的mp4视频提取出来,然后删除子文件夹
find . -type f \( -iname "*.mp4" -o -iname "*.MP4" \) -exec sh -c 'mv "$@" "./"' _ {} +
find /path/to/search # 在指定目录搜索
-type f # 只查找文件(不包括目录)
( # 开始组合条件
-iname “.mp4" # 查找.mp4文件(不区分大小写)
-o # 或
-iname ".MP4” # 查找.MP4文件(不区分大小写)
) # 结束组合条件
-exec # 对找到的文件执行命令
mv -t /path/to/target # 移动文件到目标目录
{} + # 一次性传递所有结果(高效处理大量文件)
sh -c:启动子shell执行命令
“$@”:接收所有找到的文件路径
_:占位符(表示$0)
{} +:批量传递文件路径
dd
<<:表示开启 Here Document,将后续的文本块作为输入。
EOF:用户自定义的结束标记(End Of File 的缩写,但可替换为其他字符如 END、`STOP`` 等),标记文本块的结束位置
符号 << EOF 和 EOF 表示一种称为 Here Document(或 Here-Doc)的输入重定向方式。其作用是:将两个标记(这里是 EOF)之间的多行文本内容,作为标准输入传递给前面的命令
ssh 192.168.112.14 << EOF
/opt/cloud2x/cloud-backend/run.sh restart
echo "Rebuild successful"
EOF
将两个 EOF 之间的内容(即两行命令)通过 SSH 发送到远程服务器 192.168.112.14 执行
结束标记必须独占一行:EOF 必须单独一行且顶格写,前后不能有其他字符。
测试-curl调用60次,验证结果分析
# 发起61次请求并保存所有状态码
resp=$(seq 61 | xargs -I{} curl --location --request POST 'https://cloud-test2.gl-inet.cn:9443/cloud-basic/cloud/v2/device' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: cloud-test2.gl-inet.cn:9443' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--data-raw '{
"delFlag": "@name",
"enableStatus": "@name",
"description": null,
"mac": "@name",
"sn":"@name",
"ddns": "@name",
"name":"@name",
"lat": "@name",
"lng": "@name",
"position":"@name"
}' -o /dev/null -s -w "%{http_code}\n") && \
count_500=$(echo "$resp" | grep -c '500') && \
count_201=$(echo "$resp" | grep -c '201') && \
echo "500: $count_500, 201: $count_201"
–seq 5:生成数字1到5,每个数字占一行。即输出5行,分别是1、2、3、4、5。这个命令通常用于生成序列,通常作为循环的次数或者其他需要迭代的情况。
在这里,用户试图用seq来发起5次curl请求
-o /dev/null:将输出结果(如响应体)重定向到/dev/null,即不保存响应内容。
-s:静默模式,不显示进度或错误信息。
-w “%{http_code}\n”:输出HTTP状态码,并在后面加换行符
ping命令用来测试主机之间网络的连通性
# 尝试确认主机服务器的某个端口是否可用
telnet 192.168.7.42 8080
快捷方式 ->
是一个符号链接(Symbolic Link),类似于快捷方式。
创建链接
ln -s /etc/nginx/sites-available/api-cloud-test.gl-inet.cn /etc/nginx/sites-enabled/
删除链接
rm /etc/nginx/sites-enabled/api-cloud-test.gl-inet.cn
cp
cp -r 递归地向下拷贝所有子目录和文件
递归创建
mkdir -pv a/b/c
用户的新建
前提 需要在root下进行
useradd lihua
passwd lihua
useradd -G wheel wanglei && echo "1qaz2wsx" | passwd --stdin wanglei
切换用户
中间的斜杠不能去掉,不然有些预加载配置不能生效
su - root
sudo的正确理解
sudo是使用其他用户的身份执行命令
例如,root权限付一下全给普通用户lihua,让其可以关机(正常情况下,普通用户是没有关机的权限的)
赋权:
visudo
编辑添加 lihua ALL=/sbin/shutdown -c
验证是否有某个用户
id lihua
彻底删除某个用户
userdel -r lihua
-r代表的是彻底删除
启动你的jar
java -jar chat-ai-admin.jar \
--server.port=8001 \
--spring.config.name=application,application-druid \
--spring.config.location=./resources/ &
nohup java -jar xx.jar >> running.log &
nohup java -jar ..jar &
nohup java -jar ivr-ce-1.0-SNAPSHOT 2>/dev/null &
nohup java -jar miner-job-executor-0.0.1.jar 2>/dev/null >>./miner-job-executor.log &
nohup java -jar
nohup java -jar -Xbootclasspath/a:`dirname $0`/conf/ `dirname $0`/bin/devSimulator.jar 2>/dev/null >> `dirname $0`/log/running.log
classpath的设置方法
// -Xbootclasspath/a: 后缀在核心class搜索路径后面.常用!!
// dirname $0,获取当前Shell程序的路径
nohup java -jar XXX.jar > /dev/null 2>&1 &
标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。屏蔽输出,起到禁止输出作用:/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是/dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
“> Log.log 2>&1” :表示将 stdout 和 stderr 合并后重定向到 Log.log
禁止输出,他就自动跑起来了,不用ctrl +c 结束;
手动指定 application.yml
通过 --spring.config.location 参数可以指定配置文件的位置。
java -jar /abc/xxx.jar --spring.config.location=/abc/application.yml
查看那些隐藏的文件
ls -la
a 代表查看隐藏的文件,隐藏文件的特征是前面带一个点
英语
一般 Abort 都是代表出现了异常
看linux的物理内存条大小
free -h
shell是什么
本质就是一种命令解释器,
他的设计哲学是一条命令就做一件事
普通三步走
vim xxx.sh
#!/bin/bash
chmod u+x xxx.sh
./xxx.sh
内建命令和外部命令
如何查看是内还是外
type cd
内建命令举例:
cd history exit kill alias break echo enable eval exec export false true fc fg pwd read
外部命令距离:
more less cat wget ls
输出的分类
各种命令都是和输出输入关联的,命令可能正确执行了,也可能就因为一些原因,失败了;
so 我们将输入输出分为三种,一种是标准输入,第二种是标准输出,第三者是错误输出
输出的一些符号 > >> &>;建议多使用&>,可以将错的和对的都输入到某个文件,这样就方便进行
echo " It's your message" > a.txt
echo "It's your message " >> a.txt
echo"It's your message " &> b.txt
wc
wc 是 Linux/Unix 系统中的 文本统计工具(Word Count),用于计算文件的行数、单词数和字节数。
wc -l < /etc/passwd
该命令会输出 /etc/passwd 文件的总行数
l代表统计行数, < 表示的是输入符号
touch
建立一个文件
touch {1..5}.txt
一句特别哲学的话: file means = files + direction
vim 1.txt
cat > a.txt
变量
001 定义
aa=$1
重点是等号两边不能有空格
002 将命令结果赋值给变量
$() ``
eg: aa=$(ls -la/etc)
003引用
“” 当字符串中有双引号,外围用单引号
‘’ 当字符串中有单引号,外围用双引号
eg:
echo " I'm a hansome man"
004变量的引用
${}
005子进程获取父进程的信息
export aa="hello"
006 如何查看环境变量
env
echo $USER
echi $PATH
命令如果不在path中,那么需要使用绝对路径
007如何添加PATH
PATH=$PATH:/root
冒号杠绝对路径就是你添加的path
008 几个变量
one
$? 上一条命令返回的结果
echo $?
function result(){
if [ 0 -eq $? ] ; then
echo " good result ==== 0"
else
echo " bad result"
fi
}
two
$$当前线程的pid
echo "$$"
three
$0 当前进程的名称
echo "$0"
four
$1 - $2 -------- $n
$1=${-nothing}
上面的技巧用于参数的替换
009环境变量的配置文件
按照一般的加载顺序进行罗列
/etc/profile
~/.bash.profile
~/.bashrc
so,我们我该的话,一般是改 /etc/profile
数组
定义(默认用空格作为分隔符)
aa=(111 222 333)
显示所有的元素
echo ${aa[@]}
显示个数
echo ${#aa[@]}
显示第一个指
echo ${aa[0]}
运算
shell的运算只能支持整数
eg:
aa=$(expre 4 + 5)
((bb=5+6))
显然第二种方式更加优秀,加号两边不用空格,而第一种,加号两边都必须有空格
逻辑判断
-eq 等于
-ne 不等于 no equal
-le 小于 less
-gt 大于 greater
技巧 大于小于可以使用加强版测试表达式 [[]] ,使用 <(小于) >(大于)
测试判断符
[]
加强版的测试判断符号 [[]],可以使用 && || > <
备注 测试分三种:数字 字符串 文件
one 测试是否相等
aa="rr"
if [ ${aa} = "rr" ];then #测试符的等号左右有空格
echo "as you see It's equal"
else
echo " not equal"
fi
[[ -z “$result” ]] 为什么要两对中括号
在 Bash 脚本中,双方括号 [[ ... ]] 是一种条件测试语法。相比于单方括号 [ ... ],双方括号提供了更多的功能和灵活性。
双方括号内的表达式可以进行更复杂的条件判断,并且支持字符串比较、模式匹配、正则表达式等功能。此外,使用双方括号时,不需要像单方括号那样对变量进行引用或转义。
在您提供的例子中,[[ -z "$result" ]] 是一个条件判断语句,用于检查变量 $result 是否为空。这个条件判断的意思是:如果 $result 是空字符串或未定义,则条件为真。
而使用双方括号 [[ ... ]] 作为条件判断的主要优势是,它可以避免由于变量为空时的意外行为。在使用双方括号时,不会出现由于变量未定义而导致执行错误的情况。
-z 检测字符串长度是否为0,为0返回 true。 StringUtil.isBlank()
other 添加链接描述
文件的测试
-e 文件夹是否存在
-d 文件存在且为路径
-f 文件是否存在,且为常规文件
文件的测试
-e 文件夹是否存在
-d 文件存在且为路径
-f 文件是否存在,且为常规文件
nowdate=$(date +%Y:%m:%d--%H:%M:%S)
Log_File_Place=/opt/app/log
function direction(){
if [ ! -d $1 ];then
mkdir -p $1
fi
}
direction $Log_File_Place
LogFile=$Log_File_Place/${nowdate}.log
echo "tell me what content that you want to save" >>$LogFile
范围输出
{}
eg:
touch {1..10}.txt
{}的内两端无空格
case玩法
case “$变量” in
"qingkuang one ")
....;;
"qingkuang two" )
....;;
*)
....
;;
esac
cd
回家
cd ~
回到上次目录
cd -
if
if [[ ]];then
.....
elif [[ ]];then
...
else
...
fi
for
for 的作用
for遍历 命令执行结果/变量/文件内容/
for 参数 in
do
done
c语言风格的for
for(( i=1; i<=10;i++))
do
echo "It's the $i time that you do "
done
心得
for 配合if,配合break 配合contiue完成逻辑
函数
$0 代表脚本名称
$* 和 $@ 代表所有位置参数
$# 代表位置参数的数量
local 修饰为本函数里的变量
find
查文件 find . -name “单机*” -print 单机后面的星号特别重要
这个点 路径
删除所有 .DS_Store 文件
find . -name “.DS_Store” -type f -delete
eg
find /Users/wl/maven -name “*.xml” -print
systemctl
最常用的: systemctl restart S17-sms
还有 stop start state
vim
替换--------%s/old/new/g
撤销 u
恢复 ctrl+r
rz sz
apt-get update
apt-get install lrzsz
C:\Users\Administrator\Downloads
此处我用的是SecureCRT,具体的更改 rz上传/sz下载 的默认的路径的方法:
右键点击当前会话session -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories :
rz的下载路径你要看一下,不然,就不晓得下载到哪里去了
看大小
ls -lht看文件大小
du -sh *看文件大小
du -sh /home 看对应目录下文件大小
传递 scp
scp root@192.168.132.128:/home/simulator20200306/conf/a.dump ./
scp 没有权限,将这个文件夹给到这个账户
sudo chown -R wanglei:wanglei /var/local/roots/
传递这个文件夹
scp -r wanglei@50.19.156.121:/var/local/roots/ /var/local
压缩:tar -zvfc ./aa.tar.gz ./dcs
解压缩 tar -zvfx aa.tar.gz
-z:使用 gzip 压缩归档文件
-v:显示详细操作过程
f 指定归档文件的名称
x 解压归档文件
c 创建一个新的归档文件
rsync不支持远程到远程的拷贝,但scp支持
rsync
rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),
查询部署文件的位置
查询模拟器的为,44629 模拟器的pid
lsof -p 44629 |grep dev
查看某个端口建立了多少TCP链接
netstat -anp |grep 21852 -wc
21852 是端口

grep
查文件中内容: grep -rn “fix_Bug_Store” *
r是递归查询 *表示当前目录下的所有文件
能通过grep的方式查关键字,具体用法是, grep 关键字 文件名,如果要两次在结果里查找的话,就用grep 关键字1 文件名 | 关键字2 --color。最后–color是高亮关键字。
grep -n -A 3 -H "upstream" ./*
-n 显示行号
-A 多显示几行
-H显示文件名
linux使用ftp传递文件
ftp 192.168.26.66
输入账户密码 ,连接成功。
得到文件 get/111/a.txt a.txt ------下载111文件夹下面的a.txt文件
上传文件 post/111/b.txt ------上传b.txt到111文件夹
如果您觉得我的付出对您有帮助,还请关注+点赞哦
本文提供了一系列Linux常用命令的快速查阅指南,包括文件操作、用户管理、进程控制、系统监控及网络管理等关键功能。深入解析了如cp、mkdir、useradd、su、sudo等命令的使用方法,并介绍了如何启动jar包、设置环境变量、使用vim编辑器、执行shell脚本等高级技巧。
394





