当前位置:   article > 正文

一个技术人员的MacOS下环境装备_com.apple.metadata:_kmditemusertags

com.apple.metadata:_kmditemusertags

前言

苹果本是开发人员的首选本,颜值好,稳定,和unix深度融合,使用丝滑。那苹果本下的开发环境需要哪些装备呢?
说明一下:本文还在整理中,目前比较凌乱

办公套件

  • Pages, Numbers, Keynote OS X三件套。
  • MS Office在MacOS上已经非常好用了,当然再装一个WS Office也不嫌多。
  • Alfred 和Spotlight类似,可以快速启动应用程序和打开文件,但是比Spotlight体验好很多。
  • OmniGraffle 比较实用的画图工具,和Viso类似,但是定制和扩展性更强。
  • Evernote 印象笔记,一款非常好用的笔记工具,如果想使用Markdown来写笔记,可以结合一些第三方插件来使用。
  • The Unarchiver OS X下的解压神器。
  • Skitch OS X下的截屏神器,操作简单。

工程工具

Adobe Photoshop CS6 不解释,OS X下体验更佳。
Parallels Desktop OS X? 我花了500块钱买它,后来几乎不用它了。
Axure RP 比较好用的产品原型设计工具。
XMind 比较好用的一款思维导图工具。
astah professional 一款比较专业的UML画图工具。
DrawIO:流程图,UML

开发者必备

集成开发环境,JetBrains系列。
如果你是Java开发者(或者同时编辑Ruby,Python,PHP,JavaScript,Scala,Groovy,Clojure等程序),强烈建议你安装IntelliJ IDEA。如果你只做前端开发,那么WebStrom是不错的选择,另外,RubyMime,PyCharm,PhpStorm作为Ruby,Python,PHP的单项开发环境也不错。

如果你不想花钱,又不想使用盗版软件,那么Eclipse,NetBeans也可以凑合着用。

编辑器

  • vscode:宇宙第一编辑器
  • Sublime Text: 也是神器
  • vim: 你得掌握最基本的几个命令
  • TextWrangler 一种免费的文本编辑器,功能和NodePad++类似,可以直接在App Store上下载。
  • TextMate,个人用的比较顺手的一个,有各种扩展可以提高你的开发效率。

浏览器

Chrome 速度快,调试方便,目前是我开发主要使用的浏览器。
Firefox 有点笨重,但是作为开发调试工具还是不错的。
Safari,系统自带的默认浏览器,和OSX系统集成度高,可以实现在不同的Apple设备之间同步阅读进度。
Opera,App Store上提供直接下载,小巧,快速。

开发环境准备

选择合适的Terminal
相比原生的Terminal,我更喜欢使用 iTerm2,它提供了很多现代的特性,比如主题定制,分屏,自动完成等多种功能。
个人推荐SecureCRT,用了多少年了,方便

安装XCode

XCode可以直接从App Store上下载和更新,安装完以后,我们需要启动它一次,这个时候它会提示你去接受它的协议。 接下来,我们需要安装Command Line Tool。

xcode-select --install
安装oh-my-zsh
oh-my-zsh是一套开源,社区驱动的用于管理zsh配置的框架,可以使用如下的方式安装。

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
 
# Optionally, backup your existing ~/.zshrc file
cp ~/.zshrc ~/.zshrc.orig
 
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
 
# Set Zsh as your default shell:
chsh -s /bin/zsh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

接下来,重启你的命令行就可以发现oh-my-zsh已经配置好了。

如果你想更改zsh的配置,可以编辑~/.zshrc个性化你的配置。
比如我本地的配置为:

ZSH_THEME=“jameszhan”
plugins=(git svn mvn brew gem go lein npm node rails ruby rvm)

安装Homebrew

Homebrew是OSX下非常好用的包管理工具,类似于Ubuntu下的apt-get,用于替换OSX下的老牌包管理工具port。

安装Homebrew之前,你必须要有GitHub账户,并已经配置好了你的SSH keys。

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
通过Homebrew安装一些实用工具
brew update
brew install curl wget tree gnu-sed gawk rename
通过Homebrew安装一些常用服务
brew update
brew install redis mysql postgresql mongodb sqlite nginx
brew install grails

视频格式转换

在Windows下,我们有很多视频格式转换的工具,尽管良莠不齐,但是只要有耐心,总是可以达到转换的要求,在OS X下,App Store上也可以找到一些转码工具,但是一般都价格不菲。事实上,绝大部分视频转码工具底层都用到了FFmpeg,而FFmpeg是完全开源和免费的,既然如此,我们为何不直接使用ffmpeg来进行视音频的转码处理呢。

查看ffmpeg的安装选项,可以按照你自己的要求选装
brew info ffmpeg

安装FFmpeg

brew install ffmpeg --with-fdk-aac --without-faac

#列出支持的编解码器
ffmpeg -codecs

#列出支持的滤镜
ffmpeg -filters

#列出支持的格式
ffmpeg -formats

把光驱DVD格式文件转成MP4格式

cat VIDEO_TS.VOB VTS_01_0.VOB VTS_01_1.VOB VTS_01_2.VOB | ffmpeg -i - ~/mika_01.mp4

抽取flv视频中的音频

ffmpeg -i INPUT.flv -acodec libmp3lame -ab 128k OUTPUT.mp3

把AVI格式转换成MP4格式

ffmpeg -i INPUT.avi -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 192 -s 320x240 -aspect 4:3 OUTPUT.mp4
注:FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。

Extended Attributes (EAs)
当我们使用ls -l查看文件目录时,细心的同学会发现有些文件的ACL后面都多一个@,这个就是我们这节要讨论的扩展属性。

-rw-r–r–@ 1 james admin 3409417 Oct 21 22:54 CoRD.zip
-rw-r–r–@ 1 james admin 755402 Oct 21 22:54 HexFiend.zip
在UNIX/Linux当中,文件可以拥有rwx之外的扩展属性,在本例中,测试的几个文件打上了颜色的tag,要查看扩展属性的详情,可以使用命令ls -l@查看。

-rw-r–r–@ 1 james admin 3409417 Oct 21 22:54 CoRD.zip
com.apple.FinderInfo 32
com.apple.metadata:_kMDItemUserTags 53
-rw-r–r–@ 1 james admin 755402 Oct 21 22:54 HexFiend.zip
com.apple.FinderInfo 32
com.apple.metadata:_kMDItemUserTags 53
可以使用xattr命令来操作扩展属性。

xattr -d com.apple.metadata:_kMDItemUserTags CoRD.zip
xattr -w hello world CoRD.zip
ls -l@ CoRD.zip结果如下:

-rw-r–r–@ 1 james admin 3.3M Oct 21 22:54 CoRD.zip
hello 5B
使用xattr -cr TARGET可以清空目标文件所有的扩展属性信息,这个对于从TimeMachine拷贝出来的文件批量清除扩展属性特别有效。

另外,在复制文件的过程中,cp指定-X可以取消复制EAs。

常用的命令

列出当前所有硬盘信息

diskutil list

diskN 一般代表第N个硬盘,diskNS1一般表示EFI分区信息,diskNS2一般表示我们的目标分区卷。

列出指定硬盘的详细信息,这里面我们可以得到它的UUID信息

diskutil info /Volumes/HHD

#如果挂载点目录不存在,需要先创建它

sudo mkdir /opt

把第二块硬盘加载到/opt目录

diskutil mount -mountPoint /opt/ /dev/disk2s2

注意,如果你的硬盘已经挂载到了具体目录,比如/Volumes/HDD,在挂载前,你必须先卸载它。
diskutil unmount /dev/disk2s2
通过以上的命令,我们确实可以做到把硬盘挂载到具体目录,然后当我们机器重启后,通过刚刚命令修改的配置就会失效。如果我们想固定把硬盘加载到某个目录(尤其当我们第二块硬盘也是内置硬盘)时,又当如何处理呢?事实上,非常简单,执行如下命令,在fstab中加入一条记录即可。

sudo vifs
我的电脑配置记录如下:

UUID=DE74EC97-3EFC-3197-AC0E-AC596773D738 /opt hfs rw 1 0
注意:UUID即为命令diskutil查看该卷详情得到的Volume UUID,在挂载前,必须保证挂载的目录已经存在.

Finder显示默认隐藏的文件

显示所有隐藏文件

defaults write com.apple.finder AppleShowAllFiles -bool YES
killall Finder

取消显示所有隐藏文件

defaults write com.apple.finder AppleShowAllFiles -bool NO
killall Finder
TimeMachine中命令行操作权限问题
删除指定的目录
Before OSX 10.9

sudo /System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass rm -frv 2011-10-16-232226/Macintosh\ HD/opt/ 
  • 1

After OSX 10.10

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass rm -frv 2011-10-16-232226/Macintosh\ HD/opt/ 
  • 1
DELETE All .DS_Store

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass find . -name ‘.DS_Store’ -print -delete
重装完系统,特别是在有第二块硬盘的情况下,在使用TimeMachine的时候,会发现整个硬盘很有可能要重新备份,而不是在原来的基础上增量备份,这无疑是对备份空间的巨大浪费,如果你之前已经备份了该磁盘的话,可以强制把TimeMachine中的对应备份强制恢复到该分区即可解决这个问题。

删除所有.DS_Store文件

sudo find / -name ‘.DS_Store’ -print -delete

删除当前目录下所有空子目录

find . -type d -empty -delete -print

找出目录下大于100M的文件

find . -type f -size +100000k
find . -type f -size +100000k -exec ls -lh {} ; | awk ‘{ print $5 " => " $9 " " $10 }’

使用tail实时监控日志

tail -fn 500 /var/log/messages #参数-f使tail不停地去读最新的内容,这样有实时监视的效果

分割和合并文件

split -b 300m BIGFILE PREFIX
cat PREFIX* > BIGFILE

查看目录大小

du -sh /opt

查看本地磁盘使用信息

df -h

查看当前使用的SHELL名称

echo $SHELL
echo $0
env | grep SHELL
cat /etc/passwd | grep USERNAME

SCP常用操作

获取远程服务器上的文件

scp -P 22 admin@192.168.1.96:/home/admin/test.tar.gz ~/test.tar.gz

获取远程服务器上的目录

scp -P 22 -r admin@192.168.1.96:/home/admin/test/ ~/test

将本地文件上传到服务器上

scp -P 22 /home/james/test.tar.gz admin@192.168.1.96:/home/admin/test.tar.gz

将本地目录上传到服务器上

scp -P 22 -r /home/james/test/ admin@192.168.1.96:/home/admin/test

批量重命名文件

本例演示了把当前目录下的所有MP3文件的名称去除多余的字符,只保留序号。
rename ‘s/.+(\d+).mp3/$1.mp3/’ *.mp3

批量下载整个网站

wget -r -np http://www.sandpile.org/

批量Unlock文件

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/

一些查看用户和系统信息的命令

id
finger
uname -a
ulimit -a

一些小工具

  • CoRD 一款远程桌面工具,连远程Windows桌面效果还不错。
  • HexFriend, 0xED 比较实用的二进制编辑工具。
  • MacDjView 如果你有djvu格式的图书,这个工具可以帮到你。

其它

Development

Homebrew
iTerm2
oh-my-zsh
Powerlevel10k
Zsh syntax highlighting and autosuggestions
Fuzzy Finder
tldr
asdf
SDKMAN!
bat
Git
Docker
Colima
HTTPie
Postman

Editors and IDEs

IntelliJ
Visual Studio Code

Utilities

Cheatsheet
Magnet
CleanShotX
Macs Fan Control
SoundSource
AppCleaner
Google Drive
Cyberduck
KeePassXC
Choosy

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/530687
推荐阅读
相关标签
  

闽ICP备14008679号