zoukankan      html  css  js  c++  java
  • mac 系统常用小工具

    mac 系统自带了一些非常实用的小工具 能帮我们做大事  在这里收集记录下

    1、 sips    (mac下使用命令行工具sips实现单个或批量图片缩放、旋转、翻转和格式转换)

    例如 可以用它来做 ios app icon

    sips -z   40   40 icon.png --out icon-20@2x.png
    sips -z   60   60 icon.png --out icon-20@3x.png
    sips -z   29   29 icon.png --out icon-29.png
    sips -z   58   58 icon.png --out icon-29@2x.png
    sips -z   87   87 icon.png --out icon-29@3x.png
    sips -z   80   80 icon.png --out icon-40@2x.png
    sips -z  120  120 icon.png --out icon-40@3x.png
    sips -z   57   57 icon.png --out icon-57.png
    sips -z  114  114 icon.png --out icon-57@2x.png
    sips -z  120  120 icon.png --out icon-60@2x.png
    sips -z  180  180 icon.png --out icon-60@3x.png
    sips -z   20   20 icon.png --out icon-20-ipad.png
    sips -z   40   40 icon.png --out icon-20@2x-ipad.png
    sips -z   29   29 icon.png --out icon-29-ipad.png
    sips -z   58   58 icon.png --out icon-29@2x-ipad.png
    sips -z   40   40 icon.png --out icon-40.png
    sips -z   80   80 icon.png --out icon-40@2x.png
    sips -z   50   50 icon.png --out icon-50.png
    sips -z  100  100 icon.png --out icon-50@2x.png
    sips -z   72   72 icon.png --out icon-72.png
    sips -z  144  144 icon.png --out icon-72@2x.png
    sips -z   76   76 icon.png --out icon-76.png
    sips -z  152  152 icon.png --out icon-76@2x.png
    sips -z  167  167 icon.png --out icon-83.5@2x.png
    sips -z 1024 1024 icon.png --out icon-1024.png

    还有做 png 和 jpeg 的转换

    sips -s format jpeg test.png --out test.jpg

    2、使用预览可以去除 png 图片的 alpha 通道

    预览打开 =》 文件-》导出    如果 图片存在 Alpha 通道,会有一个去除 Alpha 通道的勾选,去掉保存就好了,长下面这样

    3、 Mac 系统自带了 easy_install

    sudo easy_install pip

     

    4、 Mac 系统自带了 Sqlite3

    sqlite3 demo.db;
    create table demotable(id integer primary key, name text);
    insert into demotable(id, name) values(1, 'lesten');
    select * from demotable;

     5、Mac 系统自带的 PlistBuddy 可以用来读写 plist 文件

    /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName ${GameName}" ${PLIST_FILE}

    以下 转载自 这里

    一、网络设置相关

    1、网卡的物理地址的动态重置

    出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址。不过,系统偏好设置是不能修改网卡物理地址的,这就是命令行的用武之地了。具体来说,若心中已有想修改的物理地址,例如 00:1f:3c:93:b5:99,可执行

    $ sudo ifconfig en1 ether 00:1f:3c:93:b5:99

    来临时修改网卡的物理地址;若没有物理地址,只是想临时启用尝试一下,可用 openssl 生成一个随机的物理地址:

    $ openssl rand -hex 6 | sed 's/(..)/1:/g; s/.$//'

    当然,用 openssl 生成的物理地址可能会与网络中的网卡地址有冲突,在启用随机生成的网卡地址之前,最好先确认一下是否已有 IP 地址已绑定该物理地址:

    $ arp -a

    2、主机名、计算机名的重置

    默认的主机名让人非常无语,特别是出现了一些与 locale 有关的特殊字符。通常情况下,这些并不可见,但是,频繁使用终端时,就会被这些莫名其妙的主机名恶心到了。因此,修改主机名成了当务之急,不过修改的方法很简单。顺次点击左上角的苹果图标->系统偏好设置->共享,接着修改主机电脑名与局域网主机名即可。话说回来,Unix 的命令行是强大的,因此,主机名与计算机名的修改也可以通过命令行修改。

    $ sudo scutil --set ComputerName newnameformacosx
    $ sudo scutil --set HostName newhostnameformacosx

    好了,查看一下修改是否成功:

    $ scutil --get ComputerName
    $ scutil --get HostName

    将主机名放入 /etc/hosts 文件

    $ echo 127.0.0.1 newhostnameformacosx >> /etc/hosts

    重启网络服务让上述修改立马生效:

    $ sudo dscacheutil -flushcache
    $ sudo killall -HUP mDNSResponder

    3、命令行下载工具的使用

    众所周知,wget 是大多是 *nix 系统中标准的命令行下载工具。不过 Mac OS X 中并不自带 wget,取而代之的是命令行下载工具 curl。下面来介绍一下 curl 的基本用法,例如直接下载

    $ curl -O http://wordpress.org/latest.zip

    若想将下载文件重命名

    $ curl -o wordpress-3.8.zip 'http://wordpress.org/latest.zip'

    若想在下载过程中显示进度,可执行

    $ curl -# -O http://wordpress.org/latest.zip

    如果下载的 url 链接需要重定向,可试试下述方式

    $ curl -L -o 'file.zip' 'http://example.com/download.php?fileID=foo'

    若想节省带宽,可执行

    $ curl -L -O --compressed 'http://example.com/large.report-tab.html'

    若下载链接需要输入用户名与密码,可试试

    $ curl ftp://james:123456@202.121.137.58:21/path/to/backup.tar.gz
    $ curl http://james:123456@202.121.137.58/file/path/data.tar.gz

    若下载的是带加密的链接,例如下载链接由 SSL/HTTPS/SFTP 提供,可试试

    $ curl --ftp-ssl -u james:123456 ftp://202.121.137.58:21/backups/07/07/2012/mysql.blog.sql.tar.gz
    $ curl -u james sftp://202.121.137.57/backups/data.tar.gz

    4、系统更新与 Xcode.app 的命令行工具安装

    通常,Mac OS X 上的软件更新是通过 App Store 完成,但是对于那些 geek 来说,可以试试下述命令:

    $ sudo softwareupdate --list

    会列出所有可能的更新,然后选择需要的更新进行安装

    $ sudo softwareupdate --install SomeApp

    若不想选择直接更新所有可能的更新,可执行

    $ sudo softwareupdate -i -a

    Xcode 是 Apple 推出的集成开发环境,它带有 Apple 改良过的 GCC 版本 llvm-gcc。安装它,非常容易,仅需去 App Store 下载 Xcode.app 即可。不过对于 Unix geek 来说,这是不能让人满意的。因为 Xcode.app 不自带命令行工具,需要单独安装它。在 Xcode 5.0 之前,命令行工具的安装非常简单,仅需打开 Xcode.app,然后点击偏好设置->下载->组件,然后选择 Xcode 命令行工具安装即可。但是自 Xcode 5.0 开始,安装 Xcode 的命令行工具,须在终端执行下述命令:

    $ xcode-select --install

    二、文件系统的相关操作

    1、HFS 文件系统的扩展属性

    在 Mac OS X 下的 hfs+ 文件系统上,文件经常会被附加上 Mac 专有的扩展属性。比如

    $ ls -l
    total 0
    -rw-r--r--@ 1 daniel  staff  0 16 jul 19:28 1.txt
    -rw-r--r--  1 daniel  staff  0 16 jul 19:28 2.txt

    会有 @ 标志。这个属性是用户在 Finder 里对文件进行任意操作时就会附加上的。比如右键查看 Get Info,然后在 spotlight commands 里写上几个字再删掉,此时,该文件就会附带有 @ 属性。如果想手动去除掉文件的 @ 属性,可以使用命令 xattr。例如

    $ xattr -l 1.txt
    com.apple.metadata:kmditemfindercomment
    $ xattr -d com.apple.metadata:kmditemfindercomment 1.txt
    $ xattr -l 1.txt
    $ ls -al 1.txt

    此时就没有特殊属性了。

    2、文件或文件夹的复制、打包与解包

    由于 Mac OS X 文件系统中的扩展属性,若将 Mac OS X 系统中的文件直接用打包释放到 Linux 系统中造成莫名奇妙的错误。这里就需要处理一下文件在复制、打包过程中的扩展属性。首先,Mac OS X 的 cp 命令有一个选项 -X,用它可在复制过程中忽略这些文件的扩展属性。因此,在打包前,先可复制出一份没有扩展属性的文件包,例如

    $ cp -Xr /path/to/src - | tar czvf src.tar.gz -

    当然,除去扩展属性之外,通常,文件直接打包作成中还会出现 Mac OS X 系统专有的隐藏文件,流入 _MACOSX、._Filename 与 .DS_Store 等。在打 zip 包时,可使用 -X 选项排除这些文件,例如

    $ zip -r -X archive_name.zip folder_to_compress

    不过,对于 *nix 系统中专有的打包命令 tar,可就没有 -X 选项这么好的东西了。好在 Mac OS X 还是提供了专门的方法,例如,在打 gzip 包时,可使用如下命令

    $ COPYFILE_DISABLE=1 tar -zcvf archive_name.tar.gz folder_to_compress

    打 bzip2 包也很简单:

    $ COPYFILE_DISABLE=1 tar -jcvf archive_name.tar.bz2 folder_to_compress

    对于其他格式的 tar 包照此处理。解包过程相对简单,这里附上一段与解包相关的 Bash 配置:

    $ echo "# ignore useless invisible files or extended attributes on Mac OS X for cp and tar
    export COPYFILE_DISABLE=true
    # extract: Extract most know archives with one command
    extract () {
       if [ -f $1 ] ; then
          case $1 in
            *.tar.bz2)	tar xjf $1	  ;;
            *.tar.gz)	 tar xzf $1	  ;;
            *.bz2)		 bunzip2 $1	  ;;
            *.rar)		 unrar e $1	  ;;
            *.gz)		  gunzip $1		;;
            *.tar)		 tar xf $1		;;
            *.tbz2)		tar xjf $1	  ;;
            *.tgz)		 tar xzf $1	  ;;
            *.zip)		 unzip $1		 ;;
            *.Z)			uncompress $1  ;;
            *.7z)		  7z x $1		  ;;
            *)	  echo "'$1' cannot be extracted via extract()" ;;
          esac
       else
          echo "'$1' is not a valid file"
       fi
    }" >> ~/.bashrc

    3、DMG 格式文件的制作以及 ISO 转换互转

    DMG 格式是 Mac OS X 中常用的打包格式,创建 DMG 格式的文件,可直接利用系统自带的磁盘工具(Disk Utils)完成。不过这里稍微介绍一下命令行 hdiutil 的用法。创建 DMG 格式的文件

    $ hdiutil create -size 100M -stdinpass -format UDZO -srcfolder folder_to_compress archive_name.dmg

    其中可以选用的 DMG 格式有 UDZO(压缩格式,默认)、UDRO(只读格式)、UDBZ(Better compressed image)、UDRW(可读写格式)UDTO(DVD 格式)。若想修改 DMG 文件的大小,可执行

    $ hdiutil resize 150M /path/to/the/diskimage

    若想修改 DMG 格式中的加密口令,可执行

    $ hdiutil chpass /path/to/the/diskimage

    挂载 DMG 格式的文件可用

    $ hdiutil attach archive_name.dmg

    它的挂载点在 /Volumes 目录的同名目录下

    $ ls -lah /Volumes/archive_name/

    卸载 DMG 文件的方法是:

    $ hdiutil eject /Volumes/archive_name/

    将 ISO 格式的文件转为 DMG 格式的文件

    $ hdiutil convert /path/imagefile.iso -format UDRW -o /path/convertedimage.dmg

    将 DMG 格式的文件转为 ISO 格式的文件

    $ hdiutil convert /path/imagefile.dmg -format UDTO -o /path/convertedimage.cdr
    $ hdiutil makehybrid /path/convertedimage.cdr -iso -joliet -o /path/convertedimage.iso

    4、文件系统的挂载

    大多数情况下,文件管理器 Finder 会自动发现诸如 USB 等外部设备,因此无须用户自行挂载分区;但是,有的时候,例如 Mac OS X 硬盘重新分区后,划出了 msdos 分区或者 ext4 等非 HFS 文件系统的分区,如果要读写这些分区,就需要手动挂载这些文件系统了。挂载文件系统的第一步是建立挂载点,例如

    $ sudo mkdir /Volumes/Foo
    $ sudo mkdir /Volumes/bar

    接着查看有哪些设备需要手动挂载并挂载它们

    $ ls /dev/disk*   
    $ sudo mount -t msdos /dev/disk1s1 /Volumes/Foo
    $ sudo mount -t hfs /dev/disk1s2 /Volumes/bar

    最后,卸载这些不在需要的分区

    $ diskutil eject /dev/disk1s1
    $ diskutil eject /dev/disk1s2

    4、文件或文件夹的隐藏属性

    通常,为了保护 Mac OS X 系统中的文件不会被用户随意修改,文件管理器 Finder 是不会显示带隐藏属性的文件与系统文件。但是,有些时候,需要操作这些文件(夹), 此时就需要让 Finder 找到这些文件,方法也很简单。在 Finder 的菜单栏中点击 Go -> Go to folder,与之对应的,可使用快捷键  shift+command+G 。 当然,如果对于 Mac OS X 自带的文件管理器不满意,可安装第三方文件管理器,例如 totalfinder。其实,单就隐藏文件来说,Mac OS X 还提供了其他方法,下面逐一介绍它们。 

    4.1 修改 Finder 配置文件 让 Finder 程序显示隐藏文件

    $ defaults write com.apple.finder AppleShowAllExtensions TRUE

    让 Finder 程序不显示隐藏文件

    $ defaults write com.apple.finder AppleShowAllExtensions FALSE

    Finder 的配置文件影响到整个文件系统,属于比较暴力的方法。

    4.2、开启或关闭某些文件或文件夹的隐藏属性 用下面命令可以解除文件夹的隐藏属性:

    $ chflags nohidden ~/Library

    恢复文件夹的隐藏属性:

    $ chflags hidden ~/Library

    事实上,HFS+ 文件系统中文件和目录的隐藏属性也可通过 SetFile 命令来修改。例如,执行

    $ mkdir -p ~/Sites
    $ SetFile -a V ~/Sites

    可开启文件夹 ~/Sites 的隐藏属性;而执行

    $ SetFile -a v ~/Sites

    可以关闭它的隐藏属性。

    三、杂项

    1、重置被遗忘的管理员密码

    首先,在系统开机还未进入登录界面时按下  command+S 进入单用户模式。然后输入 

    $ mount -rw /

    以读写方式挂载文件系统;接着重置管理员 james 的密码

    $ passwd james

    完成后,输入

    $ reboot

    重启开机即可。

    2、重建 Spotlight 数据库

    比较简单的办法是用鼠标顺次点击系统偏好-> Spotlight ->重建数据库;对于命令行发烧友来说,可以试试

    $ sudo mdutil -E /

    3、清理缓存

    $ sudo purge
  • 相关阅读:
    线程的等待与唤醒
    多线程start()与run()的区别
    Thread与Runnable
    关于i++和++i的一些见解
    Mysql优化(转)
    Java 注解
    Java 泛型(转)
    Java 中的CAS
    CAS ABA问题
    Java 线程池分析
  • 原文地址:https://www.cnblogs.com/lesten/p/13073861.html
Copyright © 2011-2022 走看看