1.了解什么是绝对路径和相对路径
来自百度经验中的一段解释:
1> 什么是绝对路径:
大家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website/img/photo.jpg我们就知道photo.jpg文件是在c盘的website目录下的img子目录中。这样完整的描述文件位置的路径就是绝对路径。我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。(也可以认为以"/"开头的都为绝对路径)
2> 什么是相对路径:
所谓相对路径,顾名思义就是自己相对与目标位置。不论将这些文件放到哪里,只要他们的相对关系没有变,就不会出错。
另外我们使用“../”来表示上一级目录,“../../”表示上上级的目录,以此类推。(也可认为不是以"/"开头的都是相对路径)
3> 举例说明
(1) 示例一
比如说你的C盘ABC文件夹下有两个文件1和2(它们都在ABC文件下),如果要文件1说出文件2的位置(也就是路径),那么它有两种表示方法:
* 绝对路径: C:\ABC\2
因为它指明2文件在C盘ABC文件下,从最大的目录C盘开始表示出来.
* 相对路径: 2
因为1文件和2文件都在C:\ABC下,所以它们的路径前面"C:\ABC"都是一样,就不用表示出来了.
(2)示例二
比方C盘ABC文件夹有个1文件,还有一个DEF文件夹,而DEF文件下有个2文件.
那1和2的文件路径分别为:(都是绝对路径)
C:\ABC\1
C:\ABC\DEF\2
如果让1文件来表示2文件的路径
* 绝对路径: C:\ABC\DEF\2
* 相对路径: DEF\2 (因为1和2文件前面的C:\ABC这段路径相同就不用写出来了)。
2.终端自动补全的配置
打开终端,输入 : nano .inputrc
在文件里面写上:
set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete
ctrl + o ,回车,重启终端,自动补全按tap键就ok
3.常用mac终端操作命令符
-
1)显示当前目录的路径(让你实时查看当前所处的路径)
pwd
-
2)查看当前目录下的内容(让你实时查看当前路径下的内容)
ls 参数 目录名 参数: -w 显示中文,-l 详细信息, -a 包括隐藏文件,每一行开头是 “d” 则为文件夹,开头是 “-” 则为文件。 ls 显示在当前目录下的所有文件或文件夹 ls + 目录 显示在该目录下的所有文件或文件夹 ls + 空格 + -a 显示当前目录下隐藏文件 ls + 空格 + -l 显示当前目录下详细信息 ls + 空格 + -R 显示当前目录下子目录文件 ls + 空格 + -w 显示当前目录下中文文件 ls + 空格 + -la 显示所有文件 ls + 空格 + -G 带颜色显示 例: 看看驱动目录下有什么:ls /System/Library/Extensions
-
3) 切换路径(也可称为转化目录) 就是将从一个路径中,进入到另外一个路径
cd 目录名 cd . 表示当前目录 cd .. 表示返回上一级目录 cd ../.. 表示返回上两级 cd ../.. /.. 表示返回上三级目录 cd + 空格 + 下一目录 表示将从当前路径进入到下一目录 cd + 空格 + 〜 表示从当前目录进入到用户根目录 cd + 空格 + / 表示从当前目录进入根目录 cd + 空格 + ./ 表示从当前目录进入到当前目录(一个点"." 表示当前) 例:想到驱动目录下溜达一圈:cd /System/Library/Extensions
-
4)建立新目录(也可理解为创建文件夹)
mkdir 目录名 mkdir + 空格 +文件夹名 表示创建一个文件夹 mkdir + 空格 + 绝对路径 表示创建一个文件夹和上面的功能相同,只不过上面是通过相对路径创建, 下面是通过绝对路径创建. 例:在驱动目录下建一个备份目录 backup:mkdir /System/Library/Extensions/backup
-
5) 删除目录(也可理解为删除文件夹)
-
rmdir 目录名 rmdir + 空格 + 文件夹名 表示删除一个文件夹 rmdir + 空格 + 绝对路径 表示删除一个文件夹和上面的功能相同,只不过上面是通过相对路径删除,下面是通过绝对路径删除 例:在桌面删除一个叫new的文件 MacBook-Air:Desktop admin$ rmdir new
- 6)建立新文件
-
touch 文件名 例:在当前目录下建一个备份文件 backup:touch backup.txt
-
7)删除文件
rm 参数 文件 参数-rf 表示递归和强制,千万要小心使用,如果执行了 rm -rf / 你的系统就全没了 rm + 空格 + 文件名和格式 表示删除一个文件 rm + -r + 文件夹 表示强制删除文件夹中包含文件的文件夹(当文件夹中包含有文件, 通过"rmdir + 空格+ 文件夹名"的方式 是删不掉文件夹的,只有通过"rm + -f + 文件夹名",进行强制删除) rm + -rf + 文件夹 表示强制删除文件夹中包含文件的文件夹(和"rm + -r + 文件夹名" 功能相同) 注意: rm 可以删除多个文件而不止一个文件 ,但是两个文件的路径必须用空格隔开. 例:想删除驱动的缓存:rm -rf /System/Library/Extensions.kextcache rm -rf /System/Library/Extensions.mkext
-
8)拷贝
-
cp 参数 源文件 目标文件 例:想把桌面的 Natit.kext 拷贝到驱动目录中 cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions 参数 R 表示对目录进行递归操作,kext 在图形界面下看起来是个文件,实际上是个文件夹。 把驱动目录下的所有文件备份到桌面 backup:cp -R /System/Library/Extensions/ /User/用户名/Desktop/backup
-
9)移动文件和重命名文件
mv 源文件 目标文件 mv + 需要移动的文件或文件夹 + 空格 + 移动到的路径 (这里路径可以是相对路径,也可以是绝对路径); mv + a.c + 空格 +b.c 表示将a.c 重命名为b.c 例:想把 AppleHDA.Kext 移到桌面:mv /System/Library/Extensions/AppleHDA.kext /User/用户名/Desktop
-
10)文本编辑
nano 文件名 nano + 文件名 表示编辑文件内容 例: nano /System/Library/Extensions/Natit.kext/Info.plist 编辑完成后 用 Ctrl +O 存盘,Ctrl+X 退出 注意: * 在默认的"指令模式"下按 i 进入编辑模式 * 在非指令模式下按 ESC 返回指令模式 * 在"指令模式"下输入: :w 保存当前文件 :q 退出编辑,如果文件为保存需要用强制模式 :q! 强制退出不保存修改 :wq 组合指令, 保存并退出 * 在"指令模式"下移动: h 左 j 下 k 上 l 右
-
11)清屏
clear
-
12)打开某个文件,文件夹或应用
open * 如果是open .则是打开当前命令里的目录,如果要打开指定的文件夹或者文件则格式为open 要打开的路径即可。(这里绝对路径或相对路径都可以) * open命令可以在终端中开启应用,使用-n可以开启多个相同应用。比如你可以使用下面的命令开启新Safari窗口 open -n /Applications/Safari.app/
-
12)编译(比如.c文件 a.c
cc -c +a.c(需要编译的文件) 它的作用是编译将要编译的文件, 其中-c的意思就是Compile(编译的意思),它生成的结果是a.o的一个编译之后的目标文件.
cc a.o 它的作用是生成可执行文件a.out
. /a.out 它的作用就是运行一个可执行a.out文件.打印出想要的结果.(注意"./a.out"前面没有 cc);
-
13) 更改文件权限
chmod 例:把驱动目录下所有文件设定到root读写,其他用户只读 chmod -R 755 /System/Library/Extensions 参数R 表示递归,755表示各用户的权限
-
14)脚本文件名
sh 例:把驱动目录下所有文件设定到root读写,其他用户只读 chmod -R 755 /System/Library/Extensions 参数R 表示递归,755表示各用户的权限
-
15)权限管理
sudo 为了防止误操作破坏系统,再用户状态下时没有权限操作系统重要文件的,所以先要取得root权限:“sudo -s” 然后输入密码,输入密码时没有任何回显,连星号都没有,只管输完回车就行了。 以下是一些常用命令~清理系统-----使用以下命令: sudo periodic daily 然后回车,输入管理员密码即可。 suod periodic weekly 然后回车,运行的是每周清理。 suod periodic monthly 然后回车,运行的是每月清理 sudo periodic daily weekly monthly 然后回车,表示三个清楚一起做了 注意: sudo命令:任何命令前都可以加上sudo,sudo表示是管理员权限,可直接管理系统中较重要的文件,一般使用需要询问密码。输入管理员密码后,才能完成操作。
-
16)brew
brew 解释: 这个严格上说不是一个本地命令。但是没有一个OS X高级用户会离得开Homebrew。它的官网将它定义为“OS X上丢失的包管理工具”,它说的很正确。如 果你在Linux系统上使用过apt-get命令,你会在Homebrew中有找到组织的感觉。 brew 让你轻松的从开源社区获取成千上万的开放的实用工具和软件库。 例如,brew install imagemagick 命令会为你安装ImageMagick工具,它使一个功能强大的工具包,它可以从事任何从GIF动画到几十种不同类型的图片转 换任务。brew install node 命令会为你安装NodeJS,它是一个最新的热门的在服务器端开发和运行JavaScript程序的工具。 你同样也可以用Homebrew来获得乐趣:brew install archey 命令会为你安装 Archey,它是一个很酷的脚本,用来在一个多彩的Apple Logo显示你的Mac的配置。Homebrew的可选内容很广泛,同时它很容易创建新规则,一直都会有新的包被添加进来。
-
17)合并静态库
lipo lipo –create Release-iphoneos/libiphone.a Debig-iphonesimulator/libiphone.a –output libiphone.a * 解释: 很简单,我将模拟器和设备的静态库文件合并成一个文件输出了,以后在发布可以库的时候不用发一个模拟器版的和一个真机版的了,这样子的一个库 可以在编译的时候自动识别需要连接的库。 * 那lipo到底是什么呢? lipo源于mac系统要制作兼容powerpc平台和intel平台的程序。 lipo 是一个在 Mac OS X 中处理通用程序(Universal Binaries)的工具。现在发售或者提供下载的许多(几乎所有)程序都打上了“Universal”标志,意 味着它们同时具有 PowerPC 和 Intel 芯片能够处理的代码。不过既然你可能不在意其中的一个,你就能够使用 lipo 来给你的程序“瘦身”。比如你想 让“便笺”应用程序只包含 Intel(i386)的代码: cd /Applications lipo Stickies.app/Contents/MacOS/Stickies -thin i386 -output Stickies.app/Contents/MacOS/Stickies.i386 cd Stickies.app/Contents/MacOS/ rm Stickies mv Stickies.i386 Stickies
-
18)目录操作:
命令名 功能描述 使用举例 mkdir 创建一个目录 mkdir dirname rmdir 删除一个目录 rmdir dirname mvdir 移动或重命名一个目录 mvdir dir1 dir2 cd 改变当前目录 cd dirname pwd 显示当前目录的路径名 pwd ls 显示当前目录的内容 ls -la -
19)文件操作:
命令名 功能描述 使用举例 cat 显示或连接文件 cat filename od 显示非文本文件的内容 od -c filename cp 复制文件或目录 cp file1 file2 rm 删除文件或目录 rm filename mv 改变文件名或所在目录 mv file1 file2 find 使用匹配表达式查找文件 find . -name "*.c" -print file 显示文件类型 file filename -
20)选择操作:
命令名 功能描述 使用举例 head 显示文件的最初几行 head -20 filename tail 显示文件的最后几行 tail -15 filename cut 显示文件每行中的某些域 cut -f1,7 -d: /etc/passwd colrm 从标准输入中删除若干列 colrm 8 20 file2 diff 比较并显示两个文件的差异 diff file1 file2 sort 排序或归并文件 sort -d -f -u file1 uniq 去掉文件中的重复行 uniq file1 file2 comm 显示两有序文件的公共和非公共行 comm file1 file2 wc 统计文件的字符数、词数和行数 wc filename nl 给文件加上行号 nl file1 >file2 -
21)进程操作:
命令名 功能描述 使用举例 ps 显示进程当前状态 其选项说明如下:
-a 列出包括其他 users 的 process 状况。
-u 显示 user - oriented 的 process 状况 。
-x 显示包括没有 terminal 控制的 process 状况 。
-w 使用较宽的显示模式来显示 process 状况 。kill 终止进程 kill -9 30142 -
22)编程操作
命令名 功能描述 使用举例 make 维护可执行程序的最新版本 make touch 更新文件的访问和修改时间 touch -m 05202400 filename dbx 命令行界面调试工具 dbx a.out xde 图形用户界面调试工具 xde a.out -
23)时间操作:
命令名 功能描述 使用举例 date 显示系统的当前日期和时间 date cal 显示日历 cal 8 1996 time 统计程序的执行时间 time a.out -
24)网络与通信操作:
命令名 功能描述 使用举例 telnet 远程登录 telnet hpc.sp.net.edu.cn rlogin 远程登录 rlogin hostname -l username rsh 在远程主机执行指定命令 rsh f01n03 date ftp 在本地主机与远程主机之间传输文件 ftpftp.sp.net.edu.cn rcp 在本地主机与远程主机 之间复制文件 rcp file1 host1:file2 ping 给一个网络主机发送 回应请求 ping hpc.sp.net.edu.cn mail 阅读和发送电子邮件 mail write 给另一用户发送报文 write username pts/1 mesg 允许或拒绝接收报文 mesg n -
25)安全操作:
命令名 功能描述 使用举例 passwd 修改用户密码 passwd chmod 改变文件或目录的权限 chmod ug+x filename umask 定义创建文件的权限掩码 umask 027 chown 改变文件或目录的属主 chown newowner filename chgrp 改变文件或目录的所属组 chgrp staff filename xlock 给终端上锁 xlock -remote -
26)Korn Shell 命令:
命令名 功能描述 使用举例 history 列出最近执行过的 几条命令及编号 history r 重复执行最近执行过的 某条命令 r -2 alias 给某个命令定义别名 alias del=rm -i unalias 取消对某个别名的定义 unalias del -
27)其它命令:
命令名 功能描述 使用举例 uname 显示操作系统的有关信息 uname -a clear 清除屏幕或窗口内容 clear env 显示当前所有设置过的环境变量 env who 列出当前登录的所有用户 who whoami 显示当前正进行操作的用户名 whoami tty 显示终端或伪终端的名称 tty stty 显示或重置控制键定义 stty -a du 查询磁盘使用情况 du -k subdir df 显示文件系统的总空间和可用空间 df w 显示当前系统活动的总信息 w man 查看帮助相关命令符的用法 man ls purge 释放内存(purge命令可以清除内存和硬盘的缓存,与重启Mac的效果差不多。purge命令可以让不活跃的系统内存转变为可以使用的内存。
你只需在终端中输入下面的命令即可)purge caffeinate 阻止Mac运行屏幕保护和睡眠 caffeinate -t 3600 chflags 隐藏文件或文件夹 chflags hidden ~/Desktop/macx 隐藏
chflags nohidden ~/Desktop/macx 显示zip 创建有密码保护的压缩文件 zip -e protected.zip ~/Desktop/macx.txt