前端常用shell(Mac OS)

作者:ManfredHu
链接:http://www.manfredhu.com/2018/08/28/33-mac-shell/index.html
声明:版权所有,转载请保留本段信息,谢谢大家

shell

常常有写shell平时用不到,参数记忆比较模糊。但是用到的时候又想找个地方查一下。这个时候就很蛋疼了,故作笔记记录下,方便翻阅。

端口占用

不知道大家有没有遇到过端口占用的情况。
解决方法分两步

  1. 找到是哪个进程占用了这个端口
  2. kill掉这个进程

对应的命令

  1. lsof -i:4000 查找占用4000端口的进程
  2. kill 13219

如下为lsof -i:4000输出的结果,我们第二步根据PID(进程id)来kill掉进程.

1
2
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node 13219 pphu 28u IPv4 0xbca6de3c7141352d 0t0 TCP *:terabase (LISTEN)

alias

这个是常用的提高效率的方法,一般跟两个文件有关

  • ~/.bash_profile 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
    文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
  • ~/.bashrc 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
    该文件被读取.

如果没有这两个文件可以自己新建一个

  • cd ~
  • touch .bashrc
  • touch .bash_profile

所以可以在两个文件随便一个设置alias

  1. cd ~
  2. ll -a
  3. vi .bashrc
1
2
3
4
5
6
7
8
9
10
alias i="install"
alias wb="wbuild server"
alias st="status"
alias co="checkout"
alias ci="commit"
alias br="branch"
alias gst="git status"
alias gco="git checkout"
alias gbr="git branch"
alias gci="git commit"

ps: 有遇到过重启启不生效的情况,所以最好将

1
source ~/.bashrc

这句加在~/.bash_profile最后,这样每次都会执行.bashrc文件的alias
最后,如果你用的是zsh,比如mac标配iterm2+zsh。那么iterm2生效的配置就不是.bash_profile而是~/.zshrc了。
所以要把

1
source ~/.bash_profile

这句加在~/.zshrc最后。

ls -alh

ls查看文件大家都知道了就不多说了;
ls -a可以查看隐藏的一些以.开头的文件;
ls -al可以以列表形式显示文件信息;
但是很蛋疼,这里显示的是字节,我们更直观的是显示多少K,多少M。
这个时候ls -alh就可以满足你的诉求了

权限问题

如何看一个文件的权限?

1
2
3
4
5
6
7
8
➜  .ssh ll
total 56
-rw-r--r-- 1 manfredhu ***** 778B 10 22 15:04 config
-rw------- 1 manfredhu ***** 1.6K 3 11 2018 id_rsa
-rw-r--r-- 1 manfredhu ***** 398B 3 11 2018 id_rsa.pub
-rw-r--r-- 1 manfredhu ***** 5.6K 10 17 19:54 known_hosts
-rwxr-xr-x 1 manfredhu ***** 301B 7 25 15:58 login.exp
-rwxr-xr-x 1 manfredhu ***** 1.1K 3 16 2018 ssh.m2.expect

这里ssh.m2.expect前面的-rwxr-xr-x,第一位是d(目录)或者-(文件)。
之后是三组rwx,分别代表read读取,write写入,exec执行。

1-3位数字代表文件所有者的权限
4-6位数字代表同组用户的权限
7-9数字代表其他用户的权限

所以这里ssh.m2.expect的权限是文件所有者可以读写执行,同组用户和其他用户可以读和执行。

权限计算的方式

读取的权限等于4,用r表示
写入的权限等于2,用w表示
执行的权限等于1,用x表示

所以这里ssh.m2.expect的权限用数据表示就是755。

授权

如果你想要让所有用户拥有这个文件的读写执行,那么就可以用

1
chmod 777 ssh.m2.expect

更改文件的授权

curl

很多时候要测试接口的调取可以命令行直接测试。

比如你想模拟MacOS的UA就可以用下面这个,类似的iphone,ipad巴拉巴拉的UA

1
curl -A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' www.qq.com

Copyright © 2015 - 2019 ManfredHu胡文峰的个人博客

All rights reserved. Designed and powered by ManfredHu.

粤ICP备18133029号