Mac终端常用的基本命令

2016-06-19 » iOS开发进阶
作为一个iOS开发程序员,Mac终端是日常使用最频繁的工具。简单整理了一下在开发中比较常用的一些内容。写一篇小抄,忘记了就来看一眼。

Mac终端常用的基本命令

很多简单的像 cd目录这种,也就不再记录,这里记录一些比较少用,需要的时候又半天记不起来的内容,也可以自己写一写alias在机器上,方便使用。

命令名 功能 使用
find 使用匹配表达式查找文件 find . -name “*.c” -print
file 显示文件类型 file filename
diff 比较并显示两个文件的差异 diff file1 file2
uniq 去掉文件中的重复行 uniq file1 file2
ps 显示当前进程状态 ps u
kill 终止进程 kill -9 30142(进程pid)
date 显示系统的当前日期和时间 date
cal 显示日历 cal 8 2017
telnet 远程登录 telnet xxx.net
ping 给一个网络主机发送请求回应 ping www.baidu.com
sudo vi /etc/hosts 开启host sudo vi /etc/hosts /// echo 127.0.0.1 newhostnameformacosx » /etc/hosts
  显示当前正在进行操作的用户名 whoami
lsof -i :端口 查看端口占用 lsof -i :端口
touch 修改文件或者目录的时间属性,若文件不存在,新建文件 touch testfile
history 列出最近的10条历史命令 history 10
grep 在文本文件中查找某个字符串  
ssh 以root账号远程连接222服务器 ssh root@192.168.1.222
     
     
     
     

扩展 :

1、ftp的使用

1、连接服务器  ftp [hostname 或者 ip]
ftp 10.2.1.20/xxx.net

2、下载文件,将单个文件从远程主机下载到本地
get [remote-file][local-file]
ftp> cd /dir 
ftp> get a.rb b.rb

3、下载多个文件,将多个文件从远程主机下载到本地
mget [remote-files]
例如:获取dir目录下面的所有文件
ftp> cd /dir 
ftp> mget *.*

4、上传文件,将本地主机单个文件上传至远程主机
put [local-file][remote-file]
ftp> cd /dir 
ftp> put b.rb a.rb

5、上传多个文件,将本地主机多个文件上传至远程主机
例如:将本地当前目录中的所有文件上传至服务器doc目录下

ftp> cd /doc
ftp> mput *.*

6、断开连接
ftp> bye

2、部署alias

1.创建一个 ~/.bash_aliases 文件,专门用来管理alias 例如内部加上如下几个别名是我日常常用命令:

alias status='git status'
alias install='pod install'
alias update='pod update --no-repo-update'
alias tag='/Users/young/shell/addtag.sh'
alias push='/Users/young/shell/fastpush.sh'
alias host='sudo vi /etc/hosts'
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
alias glog="git log --color --graph --pretty=format:'%Cred%H%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
alias size='du -d 1 -h' //列出当前目录下的文件size,用于清理mac的时候常用


2.在 ~/.bash_profile 中编译这个文件 : 加入下面代码
test -f ~/.bash_aliases && source ~/.bash_aliases

3.重启终端

这样操作方便管理,同时 如果更换电脑也不需要一个个重新设置

3、tree命令的实现

alias tree="find . -print | sed -e 's;/*/;|;g;s;|; |;g'" 

4、mac设置快捷锁屏

第一步,找到“系统偏好设置”下的“安全性与隐私”,在“通用”页里勾上“进入睡眠或开始屏幕保护程序后立即要求输入密码”。

第二步,要用快捷键启动屏幕保护程序,相对复杂一点。在“应用程序”里找到“Automator”。新建一个服务,在“操作”下的“实用工具”里找 到“启动屏幕保护程序”,并把此操作拖动到右边,并且选择“没有输入”和位于“任何应用程序”。然后把服务保存为自己定义的名字。

最后,在“系统偏好设置”里找到“键盘”,然后为刚才定义的服务配置快捷键,我设成了Command+Control+X。

Git常用命令

Git的使用基本上是烂大街了,这里准备整理一些细节性的和经常忽略掉的部分,同时也整理一份命令集方便查找,毕竟还是经常有时候忘记怎么敲一些不常用的命令。

ls 列表
cd 转换目录
pwd 当前路径

touch 创建文件  (vim 也可以创建文件,但是会在终端打开输入 i 为进入编辑模式 在编辑模式下面 esc 再 :wq回车就是保存关闭)
mkdir ——创建新目录   rmdir ——删除一个目录     
mv 文件路径加文件名    文件要去的目录 ——移动文件
mvdir —— 移动或者重命名一个目录
cp 原文件名(路径带文件名)   新文件名(路径带文件名) ——拷贝文件  不支持目录拷贝
rm 参数  文件  —— 删除文件
cat  ——显示或者连接文件

1、git 修改config :

git config --global user.name “xxx”
git config --global user.email “xxx”
git diff  查看当前文件和最近一次提交的文件对比  vimdiff 可以以 vim 的方式开启 diff
git remote add origin gitlab@ip:root/test.git   添加git远程地址
git remote set-url origin  https://github.com/xilankong/JFZPodsDemo.git  重新设置远程
git push -u origin master  提交到master分支 
git push    提交所有到当前分支  默认master
git checkout  +  需要恢复的文件名 恢复到最后一次提交的改动  后跟branch 则切换到那个branch

2、恢复 数据,版本,commit

git restore README.md 如果修改已经被 git add README.md 放入暂存队列,那就要
git unstage README.md
git reset --hard {版本号}  commit 版本回退
git tag -d 0.0.1 删除本地版本号
git push origin :refs/tags/0.0.1 移除远程上得版本号
git tag 0.0.1 创建本地版本号
git push origin 0.0.1 提交远程版本号

查看分支
git branch   或者   git branch -v

创建分支
git branch mystudygit1.0

删除分支
git branch -d mystudygit1.0  //如果该分支没有合并到主分支会报错 可以强制删掉

或者
git branch -D mystudygit1.0   //强制删除

分支合并
比如,如果要将开发中的分支(develop),合并到稳定分支(master)
首先切换的master分支:git checkout master。
然后执行合并操作:git merge develop。
如果有冲突,会提示你,调用git status查看冲突文件。
解决冲突,然后调用git add或git rm将解决后的文件暂存。

3、拉取远程分支到本地
我们需要:git fetch origin dev 命令来把远程分支拉到本地
然后使用:git checkout -b dev origin/dev在本地创建分支dev并切换到该分支
最后使用:git pull origin dev就可以把某个分支上的内容都拉取到本地了

4、推送本地分支到远程 
git push origin local_branch:remote_branch

git获取远程服务器的指定分支

$ git pull <远程库名> <远程分支名>:<本地分支名>

比如,取回远程库中的online分支,与本地的online分支进行merge,要写成:

git pull origin online:online

Docker

brew

homebrew,是mac下类似apt-get的软件管理工具。

通常情况下brew安装的软件都会在brewprefix返回的目录中,不会在额外创建文件。

安装

没啥说的,直接安装官方提供的方式,终端下运行:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

使用

安装完brew之后,执行brew updatebrew doctor,然后按照提示稍微设置下,需要我们将/usr/local/bin添加到PATH路径的最前面,保证系统优先调用到的是brew下载的。在命名行下输入:

echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile。

常用软件:

zsh、mysql等的安装。

删除

Uninstall

WARNING: Before copying and pasting these commands on your shell, make sure the first one (brew –prefix) returns the path where homebrew was installed properly. If not, you might ending up removing stuff from your computer you did not intend to remove.

cd `brew --prefix`
rm -rf Cellar
brew prune
rm -rf Library .git .gitignore bin/brew README.md share/man/man1/brew
rm -rf ~/Library/Caches/Homebrew
http://superuser.com/questions/203707/how-to-uninstall-homebrew-osx-packet-> manager

Reinstall

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
https://github.com/mxcl/homebrew/wiki/Installation

也许第一次删除安装还是会出问题,那就结合官方提供的shell里的路径,全部删除,再次重启。

特别说明

我这里删除再安装之后,可以通过brew install安装软件,比如git。但是执行brew doctor时,会报告link的错误: You have unlinked kegs in your Cellar,执行brew link git 之后,会提示 could not symlink opt is not writable。

此问题是 /usr/local 目录缺少权限,执行 sudo chmod -R g+w /usr/local,再次 brew link git 即可。

参考