Mac常用命令

命令行的艺术the-art-of-command-line
Shell操作整理
整理一些Git不常用但实用的命令

mac/linux 获取运行的shell脚本的位置

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"

获取当前路径的父路径
parentPath=$(dirname "/Users/xyz/abc/234")

shell:判断文件夹是不是存在,如果不存在则创建

if [ ! -d testgrid  ];then
  mkdir testgrid
else
  echo dir exist
fi

Linux 查看端口 & 系统版本命令
Linux查看系统版本

方式一:cat /proc/version
方式二:uname -a
方式三:lsb_release -a

linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
Linux Shell 截取字符串
shell 判断文件夹或文件是否存在
Mac nginx目录

#配置文件
/usr/local/etc/nginx
#默认站点地址1.15.7是安装的nginx版本号
/usr/local/Cellar/nginx/1.15.7/html/
#启动ngxin
#查看nginx的配置文件是否
ngxin -t
#重新加载配置
nginx -s reload
git 如何同步本地、远程的分支和tag信息

git 如何同步本地tag与远程tag

git tag -l | xargs git tag -d #删除所有本地分支
git fetch origin --prune #从远程拉取所有信息

查找并删除程序:

ps -ef|grep nginx
kill -int xxxx

将这个命令放入自定义操作
Mac下SourceTree自定义操作导出文件

查找文件:

#在/usr/文件夹下查找名字是以.png结尾的文件
find /usr/ -name "*.png"

查找文件安装路径

#查找vapor的安装路径
which vapor 

svn/git

更新:svn upgrade 文件夹路径
添加文件:svn add 文件夹路径/* --no-ignore --force
清空:svn cleanup 文件夹路径
返回:svn revert 文件夹路径 --recursive

Mac 删除git文件夹,删除svn文件夹
cd到该文件夹


#将当前文件夹下所有为添加文件都添加到工作空间
svn upgrade ./
svn add ./* --no-ignore --force

#svn commit之前,add的东西都可以取消。
#通过先执行
svn cleanup ./
#再执行
svn revert ./ --recursive

#删除文件夹下的所有 .svn 文件
find . -name ".svn" | xargs rm -Rf

#删除文件夹下的所有 .git 文件
 find . -name ".git" | xargs rm -Rf


mac系统命令行curl详解

shell 拆分字符串变为数组

str="192.168.31.65"
array=(${str//\./ })
for i in "${!array[@]}"; do
    echo "$i=>${array[i]}"
done

判断文件夹是否存在

# 判断/User/admin/code/test这个文件夹是否存在,不存在就创建文件夹
if [ ! -d /Users/admin/code/test  ];then
  mkdir -p /Users/admin/code/test
else
  echo dir exist
fi

zip/unzip 压缩与解压命令

zip -q -r -e -m -o [yourName].zip someThing

#-q 表示不显示压缩进度状态
#-r 表示子目录子文件全部压缩为zip  //这部比较重要,不然的话只有something这个文件夹被压缩,里面的没有被压缩进去
#-e 表示你的压缩文件需要加密,终端会提示你输入密码的
#还有种加密方法,这种是直接在命令行里做的,比如
zip -r -P Password01! modudu.zip SomeDir,
#就直接用Password01!来加密modudu.zip了。
#-m 表示压缩完删除原文件
#-o 表示设置所有被压缩文件的最后修改时间为当前压缩时间
zip -q -r -o [yourName].zip someThing

#当跨目录的时候是这么操作的
zip -q -r -e -m -o '\user\someone\someDir\someFile.zip' '\users\someDir'
#解压文件
#将压缩文件text.zip在当前目录下解压缩。
unzip text.zip
#将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n text.zip -d /tmp 
#查看压缩文件目录,但不解压。
unzip -v text.zip

本文主要是讲 linux 系统的命令操作。会尽量保持命令与 mac 兼容。因为两者的使用本来就差不多。

cd 进入某个目录

#cd 是英文 change directory 的缩写,更改目录的意思。
#例如,我们要进入我们的家目录,可以输入下面的命令:
cd ~
#再例如,我们要进入下载目录,就是这样的命令:
cd ~/Downloads/
#要输入这样的命令,是不是感觉有点长呢?其实大可不必,我们可以用 tab 键快#如果需要返回上级目录,则是使用
cd ..
#在 linux 系统中 . 代表当前目录,..代表上级目录。如果是上级的上级目录,就是 ../..。

ls展示当前目录下的文件

#ls 是英文 list 的缩写
ls
#然后我们就可以看到这个目录的文件了。
#这里,我们只能看到文件或者文件夹的名字,如果我们想要看到更多的内容,就可以加上 -l 参数。
#这样,就会以一个列表的形式,把所有的内容全部输出出来。
ls -l
#如果你还想要看看隐藏的文件,可以输入
ls -a
#当然,聪明的你肯定想要了,这命令可以组合起来吗?当然可以,如下:
ls -la
#linux/mac 系统和 windows 系统有一个很大的区别,就是,隐藏文件。
#在 linux 其中中,只要一个文件或者文件夹的名字第一个字符是 . 就表示这是一个隐藏文件。
#而 windows 系统是用文件的属性来设置的。
#所以,使用 linux 系统,你如果想要给某个文件夹或者文件隐藏,右击属性什么的,是做不了什么的。
#只需要重命名文件,加个 . 就可以了。

mv 移动,重命名文件
在 linux 系统中,没有 重命名 这个概念。只有一个概念,叫移动文件。把 a 文件重命名为 b 文件这个操作,要理解为——把 a 文件移动到 b。

#mv 是英文 move 的缩写,如下命令就是把 a 文件重命名为 b。
mv a b
#当然,这本来就是移动文件,也就是剪切文件。我们可以这样操作,如下命令表示:把下载目录下的 love.txt 文件,移动到文档目录中
mv ~/Downloads/love.txt ~/Documents/

cp 复制文件和文件夹
复制文件也是一个很常见的操作。最简单的,把 a 文件复制为 b 文件,执行下面的命令

#cp 是英文 copy 的缩写
cp a b
#当然,和 mv 命令一样,也是可以跨目录复制的。
cp ~/Downloads/love.txt ~/Documents/
#如果你需要保留文件所有的权限属性之类的,可以加上参数 -a。
cp -a a b
#如果你复制的不是文件,而是文件夹,则要加上一个递归的参数 -r
cp -r a b
#当然,复制文件夹,并且要保留所有的权限属性,加上参数 -ra
cp -ra a b
#另外,如果你复制的文件夹里面有很多内容,你想看到实时进度的话,可以用 -v 参数
cp -rav a b

#如上命令,你就可以把 a 目录的所有内容原封不动的复制到 b 目录去,并且可以看到实时的复制过程。

rm删除文件或文件夹
请注意, rm 命令进行的删除操作,是不会放到系统的回收站里面去的。而是直接删除,如果你希望通过软件把文件找回来的话,也是很困难的。所以,在输入 rm 命令的时候一定要头脑清晰哦!

#rm 是英文 remove 的缩写,我们想要删除某个文件,可以输入:
rm a
#命令进入删除。但是删除的时候,一般 linux 会给你提示,你需要输入 yes 同意,才能删除。但是 mac 不会给提示,直接就删除掉了。
当然,如果你不想看到这个提示,而是希望直接就删除掉,可以加上一个参数 -f,这样,就会直接删除掉,不会再要求你输入 yes 了。
rm -f a
#如果删除的是某个目录,直接用上面的命令是不行的。删除目录必须进行递归操作,所以需要加上参数 -r ,另外,你可能也不想确认,所以,命令就是:
rm -rf a
#最后,删除操作一定要谨慎。

touch 新建文件
我们可以新建一个任意的文件。命令是 touch 至于为什么是这个命令,我不太清楚,我联系不上 触摸 和 新建 之间的关系。
但是这个单词是一个非常简单的单词,我们可以轻松的记住。

#创建一个文件
touch a
#创建多个文件,如下命令就可以创建 a b c d 这四个文件了。
touch a b c d
#我们可以创建任意文件。只需要加上不同的后缀就可以了。
touch a.txt b.jpg c.doc d.pdf
#创建并进入编辑
vim a

mkdir 新建文件夹
新建文件夹的命令是 mkdir 应该能够看出来,这个命令是英文 make directory 的缩写。

#新建一个文件夹
mkdir a
#新建多个文件夹
mkdir a b c d
#新建多个层级的目录,这就需要加上参数 -p 了。
mkdir -p res/style/scss

less 查看文本文件
如果我们需要简单的查看一个文件的内容,可以使用 less 命令。这个单词是少的意思。同样,多的英文 more 也可以用来查看文件。
不过一般情况下,我们使用 less 命令。如下:

#如果文件比较长,可以使用 ctrl + f 往下翻页,也可以使用 ctrl+b 向上翻页。
less index.html

pwd看看自己在哪个目录下
如果你的目录层级比较多,你导出溜达着,忘记你在哪里了,怎么办?或者,你需要把你当前的目录路径给复制出来,怎么办?
没关系,我们可以使用 pwd 命令,迅速输出你的当前目录路径。

#查看当前所在的文件目录,这里会返回完整的路径,而不是 ~/xxx 这样的缩写路径。
pwd

man 查看某个命令的详情
如果你看到一个命令,不清楚这是干啥的,就可以用 man 命令来看看这个命令的详细介绍:

#就可以看 cp 命令的详情
man cp

不过,这个命令输出的内容是英文的。如果你英文不行,可以到一个中文网站来看。网址是:http://man.linuxde.net/

需要注意的是,中文内容不一定是准确的,或者是最新的。

小结
好,掌握以上日常使用的命令,基本上你就可以愉快的使用命令行了。需要更多的内容,基本上可以使用搜索引擎来解决,你只需要提出正确的问题,基本上都能得到解答的。

Mac OS/Linux命令查询网络端口占用情况

netstat命令

netstat -an | grep 3306

3306替换成需要grep的端口号

lsof命令

lsof -i :端口
kill -9 进程ID
通过list open file命令可以查看到当前打开文件,在linux中所有事物都是以文件形式存在,包括网络连接及硬件设备。

lsof -i:80

-i参数表示网络链接,:80指明端口号,该命令会同时列出PID,方便kill

查看所有进程监听的端口

sudo lsof -i -P | grep -i "listen"

MAC下启动和停止jenkins的方式

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist


redis:
config set requirepass 密码
auth 密码
config get requirepass
本地登录:redis-cli
远程登录:redis-cli -h xxxx.xx.xxx.xx -p xxxx -a 密码


删除none的镜像

删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。

docker images

docker rmi $(docker images | grep "none" | awk '{print $3}')
直接删除带none的镜像,直接报错了。提示先停止容器。

docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')//停止容器

docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器

docker rmi $(docker images | grep "none" | awk '{print $3}')//删除镜像

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容