Mac命令行工具及其问题收录
问题集
OSX使用oh-my-zsh后.bash_profile自定义失效
原因:oh-my-zsh的配置文件为.zshrc,而默认shell(bash)的配置文件为.bash_profile
解决:将.bash_profile的配置移到.zshrc中去。在.zshrc添加source ~/.bash_profile会产生打开终端初始化过久的问题。
使用brew安装命令行工具时,提示”Error: undefined method `sdk_path_if_needed’ for OS::Mac:Module”
原因:brew版本过老
解决:运行 brew update-reset 去更新brew
更新Cocoapods报错”Operation not permitted”
更新gem,sudo gem update –system
sudo gem install cocoapods
报错:Operation not permitted - /usr/bin/xcodeproj
解决:sudo gem install -n /usr/local/bin cocoapods
功能集
字符操作类
匹配字符
当前目录下 查找”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 ‘<man’ * 匹配‘manic’和‘man’,但不是‘Batman’,
grep ‘<man>‘ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行尾,
文件字符转码
iconv -f UTF8 -t GB18030 a.csv >b.csv
io类
给文档插入字符串
sed ‘1i 添加的内容’ file #在第一行前添加字符串(sed以行为单位操作)
sed ‘$i 添加的内容’ file #在最后一行行前添加字符串
sed ‘$a 添加的内容’ file #在最后一行行后添加字符串
文件操作类
查找文件
find /Applications/Xcode.app -name stdio.h
find / -name ‘xx*’
复制文件
cp -r src_dir des_dir #复制文件夹到另一文件夹内
cp -r src_dir/. des_dir #只复制文件夹内的文件到另一文件夹内
压解文件
unzip -o -d /home/sunny myfile.zip #-o:不提示的情况下覆盖文件 -d:将文件解压缩到指定目录
zip -d myfile.zip smart.txt # 删除压缩文件的文件
zip -m myfile.zip ./rpm_info.txt # 向压缩文件内添加文件
zip -r filename.zip filesdir
tar -czvf zip_file_path –exclude=*.git .
查看文件大小分布
du -sh *
du -d 1 h
(Xcode的缓存和各版本的iOS SDK占用量极大,会造成系统占用磁盘比例极高)
stat file_path
.sqlite3数据库查看
$ ss //打开数据库文件
sqlite>.help //帮助
sqlite>.quit //退出
sqlite>.tables //查所有表
sqlite>.show //查配置
sqlite>.mode list/line/column //设置查询结果排列格式
sqlite>.headers on //是否显示头
sqlite>select * from xx_table //查表语句执行
当然可以下载以下工具应用使用代替
- Sqlite Database brower
- Datum
- Sqlite Professional mac
系统管理类
查进程
ps aux | xxinfo
ps -ef|grep uwsgi
根据占用端口杀进程
lsof -i:端口号
kill -9 PID
查看cpu和内存使用情况
top -u 用户名
关机
shutdown -h # 关闭计算机及电源
shutdown -r now # 重启
shutdown -h +1 “1 minute after shutdown” # 定时关机
shutdown -c # 取消关机
权限
- d 代表目录
- r 代表用户是否有读取权限
- w 代表用户是否有写入权限
- x 代表用户是否有执行权限
- 代表此项为空,也就是没有此项权限的意思
drwxrwxrwx
位置 | 属性 | 含义 |
---|---|---|
第1位 | d | 代表是否为文件夹 |
第2-4位 | rwx | 代表所属用户的读 写 执行权限 |
第5-7位 | rwx | 代表所属用户组的读 写 执行权限 |
第8-10位 | rwx | 代表其他用户的读 写 执行权限 |
chmod [选项] [权限操作] [文件名]
选项:
- -R [递归到子文件及文件夹]
权限操作:(用户标识、操作符、值)
u [代表所属用户]
g [代表所属用户组]
o [代表其他用户]
a [代表以上所有三个]
- [代表删除权限]
- [代表增加权限]
= [代表将权限设置为]
rwx=7
-wx=3
r-x=5
rw-=6
软件类
vim
# 分屏
vim -on file1_path file2_path
执行Xcode功能(xcrun)
# 截图
xcrun simctl io booted screenshot /pictures/test.png
# 录屏
xcrun simctl io booted recordVideo /videos/test.mp4
# 查看已安装设备
xcrun simctl list
xcrun instruments -s
# 启动模拟器
(Xcode9以下)
xcrun simctl boot $UUID
xcrun instruments -w "iPhone 8(11.2)"
xcrun simctl boot "iPhone 8(11.2)"
(Xcode9或以上)
open -a 'Simulator' --args -CurrentDeviceUDID <device_udid_here>
# 关闭模拟器
xcrun simctl shutdown $UUID
# 重置模拟器
xcrun simctl erase $UUID
# 安装指定app
xcrun simctl install booted <app路径>
xcrun simctl install <device> <app路径>
# 运行指定app
xcrun simctl launch booted <bundle identifier>
xcrun simctl launch <device> <bundle identifier>
# 关闭app
xcrun simctl terminate booted <bundle identifer>
xcrun simctl terminate <device> <bundle identifier>
# 卸载app
xcrun simctl uninstall booted <bundle identifer>
xcrun simctl uninstall <device> <bundle identifier>
# 模拟器与Mac之间复制粘贴
pbcopy
pbpaste
xcrun simctl pbcopy booted
xcrun simctl pbpaste booted
xcrun simctl pbsync sourceDevice destDevice
# 帮助
xcrun simctl -h
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 mingfungliu@gmail.com
文章标题:Mac命令行工具及其问题收录
文章字数:1.3k
本文作者:Mingfung
发布时间:2018-02-22, 17:10:00
最后更新:2021-11-05, 13:09:24
原始链接:http://blog.ifungfay.com/工具/Mac命令行工具及其问题收录/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。