ls [选项] [文件或目录]
-a
: 显示所有文件,包括隐藏文件。-l
: 以长格式显示详细信息。-h
: 与 -l
一起使用时,以易读的格式显示文件大小(例如 KB、MB)。示例:
# 列出当前目录所有文件
ls -a
# 显示当前目录详细信息
ls -lh
cp [选项] 源文件 目标文件
-r
: 递归复制目录及其内容。-i
: 在覆盖文件前提示。-v
: 显示详细的复制信息。示例:
# 将文件复制到另一个目录
cp source.txt /path/to/destination/
# 递归复制整个目录
cp -r source_directory /path/to/destination/
mv [选项] 源文件 目标文件
-i
: 在覆盖文件前提示。-v
: 显示详细的移动信息。示例:
# 将文件移动到新位置
mv source.txt /path/to/destination/
# 重命名文件
mv oldname.txt newname.txt
rm [选项] 文件或目录
-r
: 递归删除目录及其内容。-f
: 强制删除,忽略不存在的文件,不提示。-i
: 删除前提示。示例:
# 删除单个文件
rm file.txt
# 递归删除目录
rm -r directory_name
mkdir [选项] 目录名
-p
: 创建目录时,如果必要,创建父目录。-v
: 创建目录时显示信息。示例:
# 创建单个目录
mkdir new_directory
# 创建目录及其父目录
mkdir -p path/to/new_directory
rmdir [选项] 目录
-p
: 当子目录被删除后,尝试删除父目录。示例:
# 删除空目录
rmdir empty_directory
touch [选项] 文件名
示例:
# 创建一个新文件(存在则更新现有文件的时间)
touch newfile.txt
top [选项]
-o
: 按指定列排序(如 cpu, mem)。-u
: 只显示特定用户的进程。-s
: 设置刷新间隔。示例:
# 显示所有进程,按 CPU 使用率排序
top -o cpu
# 每 5 秒刷新一次
top -s 5
ps [选项]
-e
: 显示所有进程。-f
: 显示完整格式。-u 用户名
: 显示特定用户的进程。示例:
# 显示所有进程
ps -e
# 显示特定用户的进程
ps -u username
kill [选项] 进程ID
-9
: 强制终止进程。-15
: 优雅地终止进程(默认)。示例:
# 优雅地终止进程
kill 1234
# 强制终止进程
kill -9 1234
system_profiler [选项]
-detailLevel [级别]
: 设置信息详细程度(mini, basic, full)。示例:
# 显示所有硬件和软件信息
system_profiler
# 显示基本信息
system_profiler -detailLevel basic
diskutil [命令] [选项]
list
: 显示所有磁盘。info 磁盘
: 获取磁盘信息。eraseDisk 格式 名称 磁盘
: 格式化磁盘。示例:
# 显示所有磁盘
diskutil list
# 格式化磁盘
diskutil eraseDisk JHFS+ NewDisk disk2
networksetup [选项] [参数]
-listallnetworkservices
: 列出所有网络服务。-setairportpower 服务 状态
: 开启或关闭无线网络。示例:
# 列出所有网络服务
networksetup -listallnetworkservices
# 关闭 Wi-Fi
networksetup -setairportpower Wi-Fi off
sudo [命令]
示例:
# 以 root 权限运行命令
sudo command_name
ping [选项] 主机名或IP地址
-c 数量
: 发送特定数量的 ping 请求。-t 存活时间
: 设置 IP 包的生存时间。示例:
# ping一个地址,发送 5 个请求
ping -c 5 www.example.com
# 设置生存时间为 10
ping -t 10 www.example.com
ifconfig [接口]
接口名 up/down
: 启用/禁用指定接口。接口名 inet 地址
: 设置指定接口的 IPv4 地址。示例:
# 显示所有接口的信息
ifconfig -a
# 启用一个接口
sudo ifconfig en0 up
netstat [选项]
-r
: 显示路由表。-s
: 显示网络统计数据。示例:
# 显示路由表
netstat -r
# 显示所有端口的统计信息
netstat -s
ssh [选项] 用户名@远程主机
-p 端口
: 指定远程主机的端口号。-i 密钥文件
: 指定用于认证的私钥文件。示例:
# 使用特定端口登录
ssh -p 2222 [email protected]
# 使用私钥文件登录
ssh -i /path/to/private_key [email protected]
scp [选项] 本地文件 用户名@远程主机:远程路径
-P 端口
: 指定远程主机的端口号。-r
: 递归地复制整个目录。示例:
# 将本地文件复制到远程服务器
scp /path/to/local/file [email protected]:/path/to/remote/
# 递归复制本地目录
scp -r /path/to/local/dir [email protected]:/path/to/remote/
nslookup [域名]
-type=类型
: 指定查询的 DNS 记录类型,如 A, MX, TXT 等。示例:
# 查询域名的默认 DNS 信息
nslookup example.com
# 查询域名的 MX 记录
nslookup -type=MX example.com
cat [选项] [文件...]
-n
: 显示行号。-b
: 只为非空输出行编号。示例:
# 显示文件内容
cat file.txt
# 显示多个文件内容
cat file1.txt file2.txt
# 显示内容并编号所有行
cat -n file.txt
grep [选项] 模式 [文件...]
-i
: 忽略大小写。-v
: 反转匹配,显示不匹配的行。-r
: 递归地搜索目录。示例:
# 在文件中搜索词汇
grep 'word' filename
# 递归搜索包含词汇的文件
grep -r 'word' /path/to/dir/
# 显示不包含指定词汇的行
grep -v 'word' filename
sed [选项] '命令' [文件...]
-e
: 允许多个命令。-i
: 直接编辑文件(非标准 sed 用法,需谨慎使用)。示例:
# 替换文本
sed 's/old/new/g' file.txt
# 删除行
sed '3d' file.txt
awk [选项] '程序' [文件...]
-F
: 指定字段分隔符。示例:
# 打印文件的第一列
awk '{print $1}' file.txt
# 按逗号分隔并打印第二列
awk -F, '{print $2}' file.csv
nano [文件]
示例:
# 编辑文件
nano file.txt
vi [选项] [文件...]
示例:
# 打开或创建文件进行编辑
vi file.txt
sort [选项] [文件...]
-n
: 按数字值排序。-r
: 反向排序。示例:
# 对文件内容排序
sort file.txt
# 数字排序
sort -n file.txt
chmod [选项] 权限 文件或目录
-R
: 递归地更改目录及其内容的权限。示例:
# 给文件设置读写执行权限
chmod 755 file.txt
# 递归地给目录设置权限
chmod -R 755 directory/
chown [选项] 用户[:组] 文件或目录
-R
: 递归地更改目录及其内容的所有者。示例:
# 更改文件的所有者
chown username file.txt
# 递归地更改目录所有者
chown -R username directory/
sudo [命令]
示例:
# 以超级用户身份运行命令
sudo command_name
su [选项] [用户名]
示例:
# 切换到 root 用户
su root
# 切换到特定用户
su username
passwd [选项] [用户]
示例:
# 更改当前用户的密码
passwd
# 更改指定用户的密码(需要管理员权限)
sudo passwd username
dscl [选项] [命令]
. -list /Users
: 列出所有用户。. -create /Users/用户名
: 创建新用户。示例:
# 列出所有用户
dscl . -list /Users
# 创建新用户
sudo dscl . -create /Users/newuser
groups [用户名]
示例:
# 显示当前用户的组
groups
# 显示指定用户的组
groups username
diskutil [命令] [选项]
list
: 列出所有磁盘和分区。info 磁盘
: 显示磁盘或分区的详细信息。eraseDisk 格式 名称 磁盘
: 格式化整个磁盘。eraseVolume 格式 名称 分区
: 格式化特定分区。mountDisk 磁盘
: 挂载磁盘上的所有分区。unmountDisk 磁盘
: 卸载磁盘上的所有分区。示例:
# 列出所有磁盘:
diskutil list
# 格式化磁盘:
diskutil eraseDisk JHFS+ NewDisk disk2
# 卸载磁盘:
diskutil unmountDisk /dev/disk2
df [选项] [文件...]
-h
: 显示易于阅读的格式(例如 GB 和 MB)。-i
: 显示 inode 信息而非块使用情况。示例:
# 显示所有磁盘使用情况:
df -h
# 显示指定文件所在磁盘的使用情况:
df -h /path/to/file
du [选项] [文件或目录...]
-h
: 显示易于阅读的格式。-s
: 仅显示总计。示例:
# 显示当前目录的磁盘使用情况:
du -h
# 显示指定目录的总磁盘使用量:
du -sh /path/to/directory
mount [选项] [设备] [目录]
示例:
# 显示所有挂载的文件系统:
mount
# 挂载一个设备
mount /dev/disk2s1 /mnt/disk2
umount [选项] [目录或设备]
示例:
# 卸载一个挂载点
umount /mnt/disk2
fsck [选项]
-y
: 在检查过程中自动修复问题。-f
: 强制检查即使文件系统似乎是干净的。示例:
# 修复特定的文件系统
fsck /dev/disk2s1
hdiutil [操作] [选项]
create
: 创建新的磁盘映像。attach
: 挂载磁盘映像。detach
: 卸载磁盘映像。示例:
# 创建磁盘映像
hdiutil create -size 500m -volname "MyVolume" -fs "HFS+" myimage.dmg
# 挂载磁盘映像
hdiutil attach myimage.dmg
find [路径...] [表达式]
-name 模式
: 按文件名搜索。-type 类型
: 按类型搜索(f 代表普通文件,d 代表目录)。-exec 命令 {} \;
: 对匹配的文件执行命令。示例:
# 在当前目录及子目录中查找所有 .txt 文件
find . -name "*.txt"
# 查找并删除特定文件
find . -name "temp.txt" -exec rm {} \;
grep [选项] 模式 [文件...]
-i
: 忽略大小写。-r
: 递归搜索目录。-l
: 只列出包含匹配行的文件名。示例:
# 在文件中搜索特定文本
grep "search term" file.txt
# 递归地在目录中搜索文本
grep -r "search term" /path/to/dir
locate [选项] 模式
-i
: 忽略大小写差异。-n 限制
: 限制显示的结果数量。示例:
# 查找名为 example.txt 的文件
locate example.txt
# 忽略大小写查找文件
locate -i Example.txt
mdfind [选项] 查询
示例:
# 搜索与查询匹配的文件
mdfind "search term"
# 查找特定种类的文件(例如 PDF)
mdfind "kMDItemContentType == 'com.adobe.pdf'"
which [程序名]
示例:
# 查找特定程序的位置
which python
whereis [程序名]
示例:
# 查找程序的相关文件
whereis python