什么是Homebrew?

Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。

官方网站:又提示缺少套件啦?别担心,Homebrew 随时守候。Homebrew —— OS X 不可或缺的套件管理器。

安装Homebrew

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`

#验证是否安装成功
brew doctor

#查看brew版本
brew -v

#查看brew帮助文档
brew –help

#更新Homebrew
brew update

使用Homebrew

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#安装包
brew install <packageName>

#卸载软件
brew uninstall <packageName>

#搜索软件
brew search <packageName>

#查看已安装软件列表
brew list

#更新包
brew upgrade # 更新全部包
brew upgrade $FORMULA # 更新指定包
brew outdated # 查看可更新的包

#清理旧版本和缓存文件
brew cleanup # 清理所有包的旧版本
brew cleanup $FORMULA # 清理指定包的旧版本
brew cleanup -n # 查看可清理的旧版本包,不执行实际操作

#查看包信息
brew info <packageName>

标签

  • 新建标签:command + t
  • 关闭标签:command + w
  • 切换标签:command + 数字 command + 左右方向键
  • 切换全屏:command + enter
  • 查找:command + f

分屏

  • 垂直分屏:command + d
  • 水平分屏:command + shift + d
  • 切换屏幕:command + option + 方向键 command + [ 或 command + ]
  • 查看历史命令:command + ;
  • 查看剪贴板历史:command + shift + h

其他

  • 清除当前行:ctrl + u
  • 到行首:ctrl + a
  • 到行尾:ctrl + e
  • 前进后退:ctrl + f/b (相当于左右方向键)
  • 上一条命令:ctrl + p
  • 搜索命令历史:ctrl + r
  • 删除当前光标的字符:ctrl + d
  • 删除光标之前的字符:ctrl + h
  • 删除光标之前的单词:ctrl + w
  • 删除到文本末尾:ctrl + k
  • 交换光标处文本:ctrl + t
  • 清屏1:command + r
  • 清屏2:ctrl + l

自带有哪些很实用的功能/快捷键

  • ⌘ + 数字在各 tab 标签直接来回切换
  • 选择即复制 + 鼠标中键粘贴,这个很实用
  • ⌘ + f 所查找的内容会被自动复制
  • ⌘ + d 横着分屏 / ⌘ + shift + d 竖着分屏
  • ⌘ + r = clear,而且只是换到新一屏,不会想 clear 一样创建一个空屏
  • ctrl + u 清空当前行,无论光标在什么位置
  • 输入开头命令后 按 ⌘ + ; 会自动列出输入过的命令
  • ⌘ + shift + h 会列出剪切板历史
  • 可以在 Preferences > keys 设置全局快捷键调出 iterm,这个也可以用过 Alfred 实现

我常用的一些快捷键

  • ⌘ + 1 / 2 左右 tab 之间来回切换,这个在 前面 已经介绍过了
  • ⌘← / ⌘→ 到一行命令最左边/最右边 ,这个功能同 C+a / C+e
  • ⌥← / ⌥→ 按单词前移/后移,相当与 C+f / C+b,其实这个功能在Iterm中已经预定义好了,⌥f / ⌥b,看个人习惯了

设置方法如下

当然除了这些可以自定义的也不能忘了 linux 下那些好用的组合

  • C+a / C+e 这个几乎在哪都可以使用
  • C+p / !! 上一条命令
  • C+k 从光标处删至命令行尾 (本来 C+u 是删至命令行首,但iterm中是删掉整行)
  • C+w A+d 从光标处删至字首/尾
  • C+h C+d 删掉光标前后的自负
  • C+y 粘贴至光标后
  • C+r 搜索命令历史,这个较常用

选择喜欢的配色方案。

在Preferences->Profiles->Colors的load presets可以选择某个配色方案。也可以自己下载。在网站http://iterm2colorschemes.com/,几乎可以找到所有可用的配色方案。

选中即复制

iterm2有2种好用的选中即复制模式。

  • 一种是用鼠标,在iterm2中,选中某个路径或者某个词汇,那么,iterm2就自动复制了。
  • 另一种是无鼠标模式,command+f,弹出iterm2的查找模式,输入要查找并复制的内容的前几个字母,确认找到的是自己的内容之后,输入tab,查找窗口将自动变化内容,并将其复制。如果输入的是shift+tab,则自动将查找内容的左边选中并复制。

屏幕切割

  • command+d:垂直分割;
  • command+shift+d:水平分割

自动完成

输入打头几个字母,然后输入command+; iterm2将自动列出之前输入过的类似命令。

剪切历史

输入command+shift+h,iterm2将自动列出剪切板的历史记录。如果需要将剪切板的历史记录保存到磁盘,在Preferences > General > Save copy/paste history to disk.中设置。

全屏切换

command+enter进入与返回全屏模式

Exposé所有Tab

command+option+e,并且可以搜索

系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
arch 显示机器的处理器架构(1) 
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS

关机 (系统的关机、重启以及登出 )

1
2
3
4
5
6
7
8
shutdown -h now 关闭系统(1) 
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销

文件和目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
cd /home 进入 '/ home' 目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 创建一个叫做 'dir1' 的目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 'file1' 的文件
rmdir dir1 删除一个叫做 'dir1' 的目录
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/ * . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)

文件搜索

1
2
3
4
5
6
7
8
9
10
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径

文件的权限 - 使用 “+” 设置权限,使用 “-“ 用于取消

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ls -lh 显示权限 
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位

打包和压缩文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 
bzip2 file1 压缩一个叫做 'file1' 的文件
gunzip file1.gz 解压一个叫做 'file1.gz'的文件
gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包

APT 软件工具 (Debian, Ubuntu 以及类似系统)

1
2
3
4
5
6
7
8
apt-get install package_name 安装/更新一个 deb 包 
apt-cdrom install package_name 从光盘安装/更新一个 deb 包
apt-get update 升级列表中的软件包
apt-get upgrade 升级所有已安装的软件
apt-get remove package_name 从系统删除一个deb包
apt-get check 确认依赖的软件仓库正确
apt-get clean 从下载的软件包中清理缓存
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

查看文件内容

1
2
3
4
5
6
7
cat file1 从第一个字节开始正向查看文件的内容 
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 file1 查看一个文件的前两行
tail -2 file1 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容

网络配置管理

1
2
3
4
5
6
7
8
9
10
11
12
ifconfig ‐a //查ip信息 
ping ‐C 4 192.168.xxx.xxx //ping4次
setup //配置ip、防火墙、服务等,需要root用户执行
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 //临时设置ip
vi /etc/sysconfig/network‐scrippts/ifcfg‐eth0 //永久设置ip
dhclient eth0 //启用dhcp模式
service network restart //重启网络服务[stop、start]
service iptables stop //关闭防火墙,[start]开启,[status]查看状态
hostname //查看主机名
netstat ‐an //查看所有端口
lsof ‐i :8080 //查看具体端口号运行的程序12.
nmap 10.1.252.121 //扫描端口

VI底行模式

1
2
3
4
5
6
7
8
9
:set nu    //显示行号
:set nonu //不显示行号
:n //跳转到指的第n
:w file //另存为
:n1,n2 s/string1/string2/g //从n1行到n2行将string1替换为string2
:%s/string1/string2/g //将所有行string1替换为string2%代表所有行,g表示所有string1
:%s+/usr/local/bin+/usr/bin+g //替换的字符中含有“/”时,用+来代替/
:wq //保存并退出
:q! //强制退出,不保存

VI命令模式

1
2
3
4
5
6
7
G      //到末行
gg //到首行
dd //删除行
u //撤销
yy //复制一行
nyy //复制n行
p //粘贴

nmon性能测试监控工具

1
2
3
4
5
6
1、./ nmon -f -t -s 30 -c 180
-f:按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon;
-t:输出中包括占用率较高的进程;
-s 30:每30秒进行一次数据采集
-c 180:一共采集180
2、sort -A test.nmon > test.csv //通过sort命令可以将nmon结果文件转换为csv文件

其他

1
2
3
4
5
6
7
8
ctrl+u   //从光标处向前批量删除命令串  
ctrl+k //从光标处向后批量删除命令串
ctrl+a //将光标移动到最前
ctrl+e //将光标移动到最后
rz //运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器
sz file //将选定的文件file发送到本地机器
vifm、ranger //图形的文件管理操作
dos2unix file //将DOS格式的文本文件转换成UNIX格式

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment