这些命令是本人工作这么多年来,经常使用到的,并记录下来的,今天分享给大家一起使用,希望对你们有所帮助。
对于不懂的,有疑问的,可以在下方点赞、留言,我会及时给你们解答。
shell
脚本命令:nohup start.sh > trace.log 2>&1 &
语法:nohup Command [arg...][&]
操作系统中有三种常用的流:
0:标准输入流
1:标准输出流
2:标准错误流
”&“的意思是:即使终端关闭,或者电脑死机脚本依然运行
”2>&1“的意思是:把标准输出流和标准错误流都导入到trace.log文件中
SCAN cursor [MATCH pattern] [COUNT count]
基于游标的迭代器,需要基于上一次的游标延续之前的迭代过程
以0作为游标开始一次新的迭代,直到命令返回游标0完成一次遍历
不保证每次执行都返回某个给定数量的元素,支持模糊查询
一次返回的数量不可控,只能是大概率符号count参数
eg:scan 0 match member* count 10
du -sh *
history N 显示最近的N条命令,例如history 5
history -d N 删除第N条命令,这个N就是前面的编号,例如history -d 990
history -c 清空命令历史
sudo su -
lsof -i:1017
或者
netstat -nap | grep 1017
ll
命令无效vim ~/.bash_profile文件下添加 alias ll="ls -alF",
然后编译一下`source ~/.bash_profile
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
http请求:
curl -X POST http://xxx:1080/expressApp/packageInformation/queryPackageInformation -H 'content-type: application/json' -H 'msgid: zuohltz_dasfkajfasfasdfasdfasdffds' -d '{"distance":"500","waybillNo":"896000064463"}'
webservice请求:
curl -H 'content-type: application/xml' -d '["153006429509"] Cxxx ["30", "50", "70", "80", "99", "125", "603", "204"] ' http://fvp-query-2.int.sfdc.com.cn:1080/fvp-query/fvp/wsservice/wsRun/originalBarQueryService?wsdl
语法:grep -c 关键字 文件
grep -c "00000000000000000000800270819632" EGMAS_RDB_an.txt
gzip -dc tc-admin.2020-06*log.gz grep 'golden@admin' | grep 'export' > golden.log
语法:grep 关键字 文件 > test1.txt
grep "MEMBER_QUERY_NUMBER_LIMIT" EGMAS_RDB_an.txt > test1.txt
grep -o '【DOMAIN-EVENT—BUS】success' photon-ecp.log |wc -l
语法:sort 【-r(降序)】 文件
sort test1.txt
awk '{print length($0) " " $0}' order.txt | sort -n | cut -c 3- > order1.txt
或者
awk '{print length($0) " " $0}' order.txt | sort -n | awk 'sub($1,"")'
语法:vi 文件名,按i进入插入模式,:wq保存并退出;:q!退出;
vi a1.txt
df -lh
du -s /usr/* | sort -rn
du -sh /usr/* | sort -rn
du -s /usr/* | sort -rn | head
du -s /usr/* | sort -rn | tail
zcat system.log.2018-08-22.gz |grep -a 123456
systemctl stop firewalld
/app/redis/bin/redis-cli -h 10.0.0.0 -p 8080 -a admin.123
su root
:%s/^/要添加的内容 //在每行【前面】添加内容(vi进入命令行操作)
:%s/$/要添加的内容 //在每行【后面】添加内容(vi进入命令行操作)
vi a1.txt//创建文本(语法:vi 文件名,按i进入插入模式,:wq保存并退出;:q!退出;)
gg 表示移动到文本开头;
G表示移动到文本结尾;
命令语法:wc -[选项] 文件
命令选项参数(可以多个一起使用,例如:-lcw):
awk '{if(length(max)$0 }END{print max}' mobile500.txt
printf "%x" 32421 ----得到十六进制
sort b.txt |uniq -c | sort -rn
grep -o 'method\":\".*\",\"r' test.log >> b.txt
或者
grep -o 'test' test.log >> b.txt
2,4 copy 5//复制多行数据(将2至4行的数据复制到第5行)
%s/\",\".*// //替换","后面所有的字符串
%s/method\":\"// //替换method":"开头的关键词
find / -name 'redis*'|more
*Exception NOT NullPointerException //查询除了空指针以外的其他异常日志
yum install -y lrzsz
scp [email protected]:/app/test/xxx.jar .
0 12 * * * /bin/bash /mnt/test_script/del_log.sh >/tmp/crontab.log
#!/bin/sh -e
# 置空前一年以内的日志文件,只置空,不删除
#source /etc/profile
path_list=(tc-project-name)
function clearing_log(){
for i in ${path_list[@]}
do
for ii in `seq 1 365`
do
get_date=$(date -d "- $ii day" +%Y-%m-%d)
path="/tonder/app/$i/logs"
echo $i
name="$i."$get_date".log"
echo $name
cd $path
echo "当前路径"$(pwd)
echo $i
if [[ -f "$name" ]] #其他服务的日志文件,判断是否存在,存在就清空,不存在什么都不做
then
echo "">$name
echo "$name 文件已清空"
else
echo "$name 不存在,什么都不做."
continue
fi
done
done
echo "end"
}
#调用
clearing_log
docker images//查看docker安装的镜像
docker ps//查看docker进程
docker exec 容器名(eg:redis) -i //查看容器id
docker exec -it redis /bin/bash(进入之后输入命令redis-cli)//连接redis服务
docker restart containerID//重启容器
docker run -d -p 2181:2181 -v /opt/docker/zookeeper/data/:/data/ --name=zookeeper --privileged=true zookeeper//运行zookeeper容器
docker run -itd --name redis -p 6379:6379 redis//运行redis容器
sed -n '100p' /var/member.log //查看第100行日志
sed -n '100,200p' /var/member.log //查看第100至200行日志
git reset --hard commitID//git回滚指定提交ID的代码
git reset --hard HEAD^//git回滚上一次提交的代码
git branch -d 分支名 //删除本地分支
cat ~/.ssh/id_rsa.pub //打开git公钥key
git commit --amend // 修改已提交代码的文案
Linux/Unix 的文件调用权限分为三级:文件拥有者、群组、其他。利用chmod可以控制文件如何被他人所调用。
语法:chmod [-cfvR][--help] [--version] mode file...
mode:权限设定子串,格式为:[ugoa...][[+-=][rwxX]...][,...]
参数说明:
- u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群组,o表示其他以外的人,a表示这三者皆是。
- +表示增加权限,-表示取消权限,=表示唯一设定权限
- r表示可读取,w表示可写入,x表示可执行,X表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
- -c:若该文件权限确实已经更改,才显示其更改动作
- -f:若该文件权限无法被更改也不要显示报错信息
- -v:显示权限变更的详细资料
- -R:对当前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
- --help:显示辅助说明
- --version:显示版本号
----------------------------------------------------------------------------------------
案例:
将文件file.txt设为所有人皆可读取:chmod ugo+r file.txt或chmod a+r file.txt
将文件file1.txt 与file2.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:chmod ug+w,o-w file1.txt file2.txt
将start.sh设定为只有该文件拥有者可以执行:chmod u+x start.sh
将当前目录下的所有文件与子目录都设为任何人可读取:chmod -R a+r *
----------------------------------------------------------------------------------------
此外chmod也可以用数字来表示权限,如:chmod 777 file
语法:chmod abc file
其中,abc各位一个数字,分别表示User、Group、Other的权限
r=4,w=2,x=1
- 若要rwx属性则4+2+1=7
- 若要rw-属性则4+2=6
- 若要r-x属性则4+1=5
----------------------------------------------------------------------------------------
案例:
1.chmod a=rwx file 等同于 chmod 777 file
2.chmod ug=rwx,o=x file 等同于 chmod 771 file
3.若用chmod 4755 filename 可使此程序具有root权限