置顶常用的Linux命令(建议收藏)
Posted 胡金水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了置顶常用的Linux命令(建议收藏)相关的知识,希望对你有一定的参考价值。
这些命令是本人工作这么多年来,经常使用到的,并记录下来的,今天分享给大家一起使用,希望对你们有所帮助。
对于不懂的,有疑问的,可以在下方点赞、留言,我会及时给你们解答。
1.后台运行shell
脚本
命令:nohup start.sh > trace.log 2>&1 &
语法:nohup Command [arg...][&]
操作系统中有三种常用的流:
0:标准输入流
1:标准输出流
2:标准错误流
”&“的意思是:即使终端关闭,或者电脑死机脚本依然运行
”2>&1“的意思是:把标准输出流和标准错误流都导入到trace.log文件中
2.模糊查询redis key
SCAN cursor [MATCH pattern] [COUNT count]
基于游标的迭代器,需要基于上一次的游标延续之前的迭代过程
以0作为游标开始一次新的迭代,直到命令返回游标0完成一次遍历
不保证每次执行都返回某个给定数量的元素,支持模糊查询
一次返回的数量不可控,只能是大概率符号count参数
eg:scan 0 match member* count 10
3.查看每个文件大小
du -sh *
4.查看历史命令
history N 显示最近的N条命令,例如history 5
history -d N 删除第N条命令,这个N就是前面的编号,例如history -d 990
history -c 清空命令历史
5.Mac下su命令提示su:Sorry的解决办法
sudo su -
6.查看端口号
lsof -i:1017
或者
netstat -nap | grep 1017
7.Mac下ll
命令无效
vim ~/.bash_profile文件下添加 alias ll="ls -alF",
然后编译一下`source ~/.bash_profile
8.安装brew命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
9.使用curl命令调用接口:
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 '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://xxxxxx.com/"><soapenv:Header/><soapenv:Body><ser:queryOriginalBarRecord><arg0>["153006429509"]</arg0><arg1>Cxxx</arg1><arg2>["30", "50", "70", "80", "99", "125", "603", "204"]</arg2></ser:queryOriginalBarRecord></soapenv:Body></soapenv:Envelope>' http://fvp-query-2.int.sfdc.com.cn:1080/fvp-query/fvp/wsservice/wsRun/originalBarQueryService?wsdl
10.查询匹配结果的行数:
语法:grep -c 关键字 文件
grep -c "00000000000000000000800270819632" EGMAS_RDB_an.txt
11.如何使用grep检索.gz包的日志:
gzip -dc tc-admin.2020-06*log.gz grep 'golden@admin' | grep 'export' > golden.log
12.将查询匹配结果放在一个新的文件:
语法:grep 关键字 文件 > test1.txt
grep "MEMBER_QUERY_NUMBER_LIMIT" EGMAS_RDB_an.txt > test1.txt
13.统计关键词出现的次数:
grep -o '【DOMAIN-EVENT—BUS】success' photon-ecp.log |wc -l
14.排序文件:
语法:sort 【-r(降序)】 文件
sort test1.txt
15.根据文件每行字符串长度排序:
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,"")'
16.创建文本:
语法:vi 文件名,按i进入插入模式,:wq保存并退出;:q!退出;
vi a1.txt
17.查看整个磁盘空间大小
df -lh
18.按字节排序
du -s /usr/* | sort -rn
19.按兆(M)来排序
du -sh /usr/* | sort -rn
20.选出排在前面的10个
du -s /usr/* | sort -rn | head
21.选出排在后面的10个
du -s /usr/* | sort -rn | tail
22.查询gz文件内容:
zcat system.log.2018-08-22.gz |grep -a 123456
23.关闭防火墙
systemctl stop firewalld
24.连接redis客户端:
/app/redis/bin/redis-cli -h 10.0.0.0 -p 8080 -a admin.123
25.Linux 切换用户
su root
26.使用vi命令给文本前后添加内容:
:%s/^/要添加的内容 //在每行【前面】添加内容(vi进入命令行操作)
:%s/$/要添加的内容 //在每行【后面】添加内容(vi进入命令行操作)
vi a1.txt//创建文本(语法:vi 文件名,按i进入插入模式,:wq保存并退出;:q!退出;)
27.移动到文本开头或结尾(适合大范围移动):
gg 表示移动到文本开头;
G表示移动到文本结尾;
28.查看文件的行数:
命令语法:wc -[选项] 文件
命令选项参数(可以多个一起使用,例如:-lcw):
- -c 统计字节数
- -l 统计行数
- -w 统计字数
- -m 统计字符数
29.打印文件中最长的一行信息:
awk '{if(length(max)<length()) max=$0}END{print max}' mobile500.txt
30.将十进制转十六进制
printf "%x" 32421 ----得到十六进制
31.排序重复的次数:
sort b.txt |uniq -c | sort -rn
32.打印匹配出来的关键字:
grep -o 'method\\":\\".*\\",\\"r' test.log >> b.txt
或者
grep -o 'test' test.log >> b.txt
33.vim相关命令
2,4 copy 5//复制多行数据(将2至4行的数据复制到第5行)
%s/\\",\\".*// //替换","后面所有的字符串
%s/method\\":\\"// //替换method":"开头的关键词
34.查询文件名
find / -name 'redis*'|more
35.Kibana 排除关键字语法
*Exception NOT NullPointerException //查询除了空指针以外的其他异常日志
36.安装szrz命令
yum install -y lrzsz
37.将服务器jar包下载到本地
scp root@1.1.1.1:/app/test/xxx.jar .
38.定时执行shell脚本
0 12 * * * /bin/bash /mnt/test_script/del_log.sh >/tmp/crontab.log
39.清理日志脚本
#!/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
40.docker相关命令
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容器
41.使用sed命令查看指定行的日志
sed -n '100p' /var/member.log //查看第100行日志
sed -n '100,200p' /var/member.log //查看第100至200行日志
42.git相关命令
git reset --hard commitID//git回滚指定提交ID的代码
git reset --hard HEAD^//git回滚上一次提交的代码
git branch -d 分支名 //删除本地分支
cat ~/.ssh/id_rsa.pub //打开git公钥key
git commit --amend // 修改已提交代码的文案
43.chmod相关命令
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权限
以上是关于置顶常用的Linux命令(建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章
❤️万字总结《Linux系统常用命令》❤️——常用的Linux操作指令详解及案例!(建议收藏)