常用的Shell命令合集

如果你想在当前目录下 查找"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 '\

grep '\' 只匹配‘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就是 粘贴

应用:https://blog.csdn.net/duowan110ss110ss/article/details/30056693?utm_source=blogxgwz2

六、

查看服务器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.csdn.net/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 

你可能感兴趣的:(Linux命令)