Mac/Linux 常用命令整理

Posted by Xsp on March 22, 2017

find 文件查找

查找所有后缀是.js的文件

find . -name "*.js"

查找所有.DS_Store 并删除

find . -name *.DS_Store -delete

ifconfig / ipconfig 查看本机IP

ifconfig 是Mac/Linux的,ipconfig 是Win的,以前总是搞混了,不过多用几次就记住了,然后想着可以这样记,两个的差别就只是if/ip 写代码写if比较多啊,写代码当然是mac比较舒服啊,那就是ifconfig了

which 查找软件安装位置

which 指令会在环境变量$PATH设置的目录里查找符合条件的文件。 比如查找mysql 的安装位置

which mysql

好像还有whereis、locate

ps 查看进程

ps au显示当前用户的进程 ps aux 显示所有包含其他使用者的进程(没太懂,不过一般还是用au就够了)

grep 过滤

文档解释是 用于查找文件里符合条件的字符串。我理解是过滤的意思吧,例如找到当前的node 进程

ps au | grep node

觉得比较有用的一个参数是 -v (–revert-match) 反转查找,就是取非,例如不显示node进程

ps au | grep -v node

kill 查杀进程

一般遇到的情况是想找到某个进程然后kill掉,在上面的 ps au 找到对应程序的PID,然后直接kill PID就好了

另外还可以用killall 直接指定进程名,如killall node

tar 压缩/解压

压缩

//压缩 test.js 文件为test.tar.gz
tar -czvf test.tar.gz test.js
  • -c,–create,建立新的备份文件
  • -z,–gzip或–ungzip,通过gzip指令处理备份文件
  • -v,–verbose,显示指令执行过程。
  • -f,或–file=<备份文件>,指定备份文件

解压

tar -xzvf test.tar.gz
  • -x,–extract或–get,从备份文件中还原文件

还有zip

mv 文件重命名

若a、b都是文件名,那当时直接将a重命名为b了,若b是目录就把a直接移入b(b不存在会新建)。

mv a b

还有rename,ubuntu可以用,但是mac好像没有rename ,在ubuntu输入man rename 可以看到一些使用说明。例如执行

//利用正则,把文件名中的AA替换成aa
rename "s/AA/aa/" *

chmod 777 添加权限

之前有遇到无权访问本地mongodb数据库的问题,随手chmod 777 -R /data就可以解决。需要注意 -R不能忘记加了,它代表 —recursive 递归整个目录修改权限。

7的含义:r=4,w=2,x=1,r表示可读取,w表示可写入,x表示可执行。7即代表可读、写、执行。

777的含义:分别代表文件拥有者、群组、其他用户的权限。

chmod 777 就代表所有人都可读、写、执行了。执行ll 看下权限

可看到上图最左侧一列即代表权限,这一列有11位,第一位字母表示文件类型,d是目录文件,l是链接文件,-是普通文件。中间9位就代表文件权限的那几位了。最后一位ubuntu上没有,查了一下具体解释戳这里。图里还有个wheel,查了一下大概是管理员用户的意思。

lsof查看端口号占用

lsof -i:8080

cp

更多Linux命令»