Mac 终端命令大全

目录操作

命令名 功能描述 使用举例
mkdir 创建一个目录 mkdir dirname
rmdir 删除一个目录 rmdir dirname
mvdir 移动或重命名一个目录 mvdir dir1 dir2
cd 改变当前目录 cd dirname
pwd 显示当前目录的路径名 pwd
ls 显示当前目录的内容 ls -la
dircmp 比较两个目录的内容 dircmp dir1 dir2

文件操作

命令名 功能描述 使用举例
cat 显示或连接文件 cat filename
pg 分页格式化显示文件内容 pg filename
more 分屏显示文件内容 more filename
od 显示非文本文件的内容 od -c filename
cp 复制文件或目录 cp file1 file2
rm 删除文件或目录 rm filename
mv 改变文件名或所在目录 mv file1 file2
ln 联接文件 ln -s file1 file2
find 使用匹配表达式查找文件 find . -name "*.c" -print
file 显示文件类型 file filename
open 使用默认的程序打开文件 open filename

选择操作

命令名 功能描述 使用举例
head 显示文件的最初几行 head -20 filename
tail 显示文件的最后几行 tail -15 filename
cut 显示文件每行中的某些域 cut -f1,7 -d: /etc/passwd
colrm 从标准输入中删除若干列 colrm 8 20 file2
paste 横向连接文件 paste file1 file2
diff 比较并显示两个文件的差异 diff file1 file2
sed 非交互方式流编辑器 sed "s/red/green/g" filename
grep 在文件中按模式查找 grep "^[a-zA-Z]" filename
awk 在文件中查找并处理模式 awk '{print 11}' filename
sort 排序或归并文件 sort -d -f -u file1
uniq 去掉文件中的重复行 uniq file1 file2
comm 显示两有序文件的公共和非公共行 comm file1 file2
wc 统计文件的字符数、词数和行数 wc filename
nl 给文件加上行号 nl file1 >file2

安全操作

命令名 功能描述 使用举例
passwd 修改用户密码 passwd
chmod 改变文件或目录的权限 chmod ug+x filename
umask 定义创建文件的权限掩码 umask 027
chown 改变文件或目录的属主 chown newowner filename
chgrp 改变文件或目录的所属组 chgrp staff filename
xlock 给终端上锁 xlock -remote

编程操作

命令名 功能描述 使用举例
make 维护可执行程序的最新版本 make
touch 更新文件的访问和修改时间 touch -m 05202400 filename
dbx 命令行界面调试工具 dbx a.out
xde 图形用户界面调试工具 xde a.out

进程操作

命令名 功能描述 使用举例
ps 显示进程当前状态 ps u
kill 终止进程 kill -9 30142
nice 改变待执行命令的优先级 nice cc -c *.c
renice 改变已运行进程的优先级 renice +20 32768

时间操作

命令名 功能描述 使用举例
date 显示系统的当前日期和时间 date
cal 显示日历 cal 8 1996
time 统计程序的执行时间 time a.out

网络与通信操作

命令名 功能描述 使用举例
telnet 远程登录 telnet hpc.sp.net.edu.cn
rlogin 远程登录 rlogin hostname -l username
rsh 在远程主机执行指定命令 rsh f01n03 date
ftp 在本地主机与远程主机之间传输文件 ftp ftp.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

Korn Shell 命令

命令名 功能描述 使用举例
history 列出最近执行过的 几条命令及编号 history
r 重复执行最近执行过的 某条命令 r -2
alias 给某个命令定义别名 alias del=rm -I
unalias 取消对某个别名的定义 unalias del

其它命令

命令名 功能描述 使用举例
uname 显示操作系统的有关信息 uname -a
clear 清除屏幕或窗口内容 clear
env 显示当前所有设置过的环境变量 env
who 列出当前登录的所有用户 who
whoami 显示当前正进行操作的用户名 whoami
tty 显示终端或伪终端的名称 tty
stty 显示或重置控制键定义 stty -a
du 查询磁盘使用情况 du -k subdir
df 显示文件系统的总空间和可用空间 df /tmp
w 显示当前系统活动的总信息 w

命令行编辑快捷键

快捷键 操作
control + k 删除从光标到行尾
control + u 删除从光标到行首
control + w 从光标向前删除一个单词
option + d 从光标向后删除一个单词
control + d 删除光标下一个字母
control + h 删除光标前一个字母
control + y 粘贴上一次删除的文本
control + t swap(将当前字母,上一个字母进行交换)
option + t swap(将当前单词,上一个单词进行交换)
option + u 大写从当前光标到单词尾,并移动光标到单词尾
option + c 当前字母大写,之后该单词所有字母小写,并移动光标到单词尾
control + r 向后搜索历史命令
control + g 退出搜索
control + p 历史中上一个命令
control + n 历史中下一个命令
option + . 上一个命令的最后一个单词
control + l 清屏
command + k 清屏,等同于control + l
control + s 停止输出(在zsh中为向前搜索历史命令)
control + q 继续输出
control + c 终止当前命令
control + z 挂起当前命令
control + d 结束输出(产生一个EOF)
control + a 移动光标到行首
control + e 移动光标到行尾
option + b 移动光标后退一个单词(词首)
option + f 移动光标前进一个单词(词首)
control + b 光标前进一个字母
control + f 光标后退一个字母
control + xx 当前位置与行首之间选中
control + - 撤销
option + r 取消更改,并恢复历史记录中的行(还原)
esc + t 交换光标前的最后两个单词
option + 方向键 光标以单词为单位移动(使用iTerm无效)
fn + delete 删除光标后的一个字符
command + fn + 左箭头 滚动到顶部
command + fn + 右箭头 滚动到底部
command + fn + 上箭头 上一页
command + fn + 下箭头 下一页
optional + command + fn + 上箭头 上一行
optional + command + fn + 下箭头 下一行

分屏

快捷键 操作
command + d 分屏 1.在mac默认终端Terminal下是上下分屏,显示内容一致。 2.在iTerm下是横向分屏相当于多个终端
command + shift + d 1.在mac默认终端Terminal下是取消分屏。 2.在iTerm下是纵向分屏

标签&窗口

快捷键 操作
command + t 新建标签
command + w 关闭标签
command + shift + 左右箭头/control + tab/control + shift + tab 选择标签
command + n 新建窗口
shift + command + t 显示或隐藏标签页栏
shift + command + n 新建命令(Terminal下有效
shift + command + k 新建远程连接(Terminal下有效)
command + i 显示或隐藏检查器(Terminal下有效)
command + +/- 放大/缩小字体
command + 重音符/command + shift + 重音符 下/上一个窗口,重音符(`)

检索文件数

  • 统计当前目录下文件的个数(不包括目录)
$ ls -l | grep "^-" | wc -l
  • 递归统计当前目录下文件的个数(包括子目录)
$ ls -lR| grep "^-" | wc -l
  • 查看某目录下文件夹的个数(不包括子目录)
$ ls -l | grep "^d" | wc -l
  • 递归查看某目录下文件夹的个数(包括子目录)
$ ls -lR | grep "^d" | wc -l
  • 查看某目录下文件夹和文件的个数(不包括子目录)
$ ls -l | grep "^[-|d]" | wc -l
  • 递归查看某目录下文件夹和文件的个数(包括子目录)
$ ls -lR | grep "^[-|d]" | wc -l

参数说明:
ls -l:长列表输出该目录下文件信息,每一行对应一个文件或目录,ls -lR 是递归列出所有文件,包括子目录。
grep "^-":过滤ls的输出信息,一般文件是"-"开头的,目录是"d"开头的。
wc -l:统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。
值得注意的是:文件是有类型的,我们统计的时候,通过正确的命令才能获得我们想要的结果。我们可以使用以下命令查看文件类型。

ls -l path

在显示文件的属性通常会以如下形式进行显示:

drwxr-xr-x

第1个字母:代表文件类型
第2~4字母:代表用户的权限
第5~7字母:代表用户组的权限
第8~10字母:代表其他的用户的权限

常见的文件类型有7种,分别如下所示:

文件属性 文件类型
- 常规文件,即file
d 目录文件
b block device 即块设备文件,如硬盘;支持以block为单位进行随机访问
c character device 即字符设备文件,如键盘支持以character为单位进行线性访问
l symbolic link 即符号链接文件,又称软链接文件
p pipe 即命名管道文件
s socket 即套接字文件,用于实现两个进程进行通信
  • cd到指定目录,运行一下代码检测是否包含idfa:
grep -r advertisingIdentifier .
  • 剥离SDK中的某个架构,以‘armv7s’为例:
mkdir armv7s
lipo libx.a -thin armv7s -output armv7s/libgt-armv7s.a
cd armv7s
ar xv libgt-armv7s.a
rm Pods-GDTMobSDK-dummy.o
rm libgt-armv7s.a
ar crv libgt-armv7s.a *.o
cd ..
  • 直接删除某个架构
lipo -remove "armv7s" Demo.framework/Demo -output Demo.framework/Demo
  • 合成xcframework
xcodebuild -create-xcframework -framework iphonesimulator.framework -framework iphoneos.framework -output Demo.xcframework
  • 合并framework
//.framework文件
lipo -create demo1.framework/demo1 demo2.framework/demo2 -output demo.framework/demo
//.a文件
lipo -create demo1.a demo2.a -output demo.a
  • 软件损坏打不开
sudo xattr -d com.apple.quarantine /Applications/应用名字.app
  • 打不开 xxx,因为它来自身份不明的开发者
sudo spctl --master-disable
  • 安装Command Line Tools 工具
xcode-select --install
  • TNT和谐软件应用闪退,需重新签名
codesign --force --deep --sign - /Applications/name.app
  • 开启隐藏文件
defaults write com.apple.finder AppleShowAllFiles -bool true 
killall Finder
  • 关闭隐藏文件
defaults write com.apple.finder AppleShowAllFiles -bool false 
killall Finder
  • 显示Xcode Build的时间
defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容