如果你想在当前目录下 查找"hello,world"字符串,可以这样:
grep -rn "hello,world" *
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
下面是一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
这里还有些用于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
'^':指匹配的字符串在行首,
'$':指匹配的字符串在行尾,
2,xargs配合grep查找
find -type f -name '*.php'|xargs grep 'GroupRecord'
二、
文档开头或末尾—linux vim命令跳转到文档开头或末尾
gg:命令将光标移动到文档开头
G:命令将光标移动到文档末尾
:set number 显示行号:set nonmember 关闭行号显示
:set list 查看tab键回车等字符
三、
四、Git
Git log 按q 退出
git blame 文件|grep "hello" 查该文件中hello的提交记录
it fetch origin master && git reset --hard origin/master
git blame build.sh | grep "function retry_functio" | awk '{print $2}' | awk -F "(" '{print $2}'
git add 修改的文件,例如git add file
删除文件,则git rm 修改的文件
git commit -m "新增权限管理页面、跳转、更新fe环境部署文件"
git push origin master:refs/for/master
git push origin HEAD:refs/for/branch-name
git commit --amend -m "new comment"
只下载某个文件
git archive --format=tar --prefix=./ --remote=下载地址 分支 路径/要下载的文件 | tar xf -
五、
输入yw就复制了,再按下p就是 粘贴
应用:vi 复制粘贴_duowan110ss110ss的博客-优快云博客
六、
查看服务器iP地址:hostname -i
七、删掉进程号:
ps aux | grep agent.jar | grep d3xxxx | awk '{print $2}' | xargs kill
八、tar命令
解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
例如:tar czvf resultReport1.tar resultReport1
解压:
tar -zxvf ./text.tar.gz -C /home/app/test/
将text.tar.gz 解压到 /home/app/test/ (绝对路径)下
Linux下的压缩解压缩命令详解及实例
实例:压缩服务器上当前目录的内容为xxx.zip文件
zip -r xxx.zip ./*
解压zip文件到当前目录
unzip filename.zip
九、
修改profile文件,指向新的python版本
在终端中输入:open ~/.bash_profile
此时会弹出.bash_profile文件,在该文件的最后面添加以下代码:alias python="/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7"
原文链接:https://blog.youkuaiyun.com/u011368551/article/details/99968325
十、软链接:https://www.jianshu.com/p/853ffec37540
linux下的软链接类似于windows下的快捷方式
ln -s a b中的 a 就是源文件,b是链接文件名,其作用是当进入b目录,实际上是链接进入了a目录
如上面的示例,当我们执行命令 cd /gamestat/的时候 实际上是进入了 /home/gamestat/
值得注意的是执行命令的时候,应该是a目录已经建立,目录b没有建立。我最开始操作的是也把b目录给建立了,结果就不对了
删除软链接:
rm -rf b 注意不是 rm -rf b/
ln a b 是建立硬链接
十一、
1、查看时间 date命令
修改系统时间
date -s 09:38:40 :设置当前时间
date -s "2020-01-18 14:00:00"
2、安装ntp
yum install ntp
3、ntp 命令
ntpdate -u ntp.api.bz :网络时间同步命令
注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
ntp常用服务器:
中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
十二、检查端口占用
当前展示的端口
/usr/sbin/lsof -i
netstat -nultp(此处不用加端口号)
netstat -anp |grep 端口号
进程:
ps -aux |grep 进程名
ps -ef |grep ..
十三、sed
删掉单引号:
sed -i $'s/\'//g'
双引号
操作 sed -i 's/"//g'
# 修改SDK版本号
sed -in 's/versionName\ '\"'.*/versionName\ '$BUILD_VERSION'/g' build.gradle
包含双引号和变量,则双引号加转义再外加一对单引号’\”’,变量外加一对单引号 ‘$a’
sed -in 's/v\ .*/v\ '\"''$B''\"'/g' file.log
十四、自动杀掉进程
ID=`ps -ef | grep "hello" | grep -v "grep" | awk '{print $2}'`
for id in $ID
do
kill -9 $id
echo "killed $id"
done
十五、修改配置后,Nginx重启:
cd ~/nginx/sbin
./nginx -s reload