切换当前工作目录
cd [目录路径]
(请注意:实际使用时需删除反引号之间的空格,此处为展示语法而添加)
cd 命令用于切换当前工作目录到指定的目录。如果不指定目录路径,则切换到用户的主目录 (~)。
切换到用户主目录:
cd
# 或
cd ~
切换到特定目录:
cd /Users/fumimutsumi/Desktop/golang
切换到上一级目录:
cd ..
切换到上一次所在的目录:
cd -
列出当前目录下的文件和子目录
ls [选项] [目录路径]
| 选项 | 描述 |
|---|---|
-a |
列出所有文件,包括以 . 开头的隐藏文件。 |
-l |
使用长格式列出详细信息(权限、所有者、大小、修改时间)。 |
-h |
与 -l 合用,将文件大小转换为易读的单位(KB, MB)。 |
-t |
按修改时间排序,最新的在前。 |
-r |
反向排序。 |
-S |
按文件大小排序。 |
如果不指定 目录路径,则默认列出当前目录的内容。
列出当前目录所有内容(含隐藏文件)的详细信息:
ls -la
按时间倒序列出文件:
ls -lt
按大小倒序列出文件:
ls -lSh
显示当前工作目录的路径
pwd
pwd 命令会打印出当前所在目录的绝对路径。
pwd
# 输出示例:/Users/fumimutsumi/Desktop/golang
复制文件或目录
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
| 选项 | 描述 |
|---|---|
-r 或 -R |
递归复制,用于复制目录及其全部内容。 |
-i |
交互模式,覆盖前会询问确认。 |
-v |
显示过程,输出正在复制的文件名。 |
-n |
不覆盖,如果目标已存在,则跳过。 |
复制时,如果 目标 是一个已存在的目录,则 源文件 会被复制到该目录下。
复制文件:
cp notes.txt notes_backup.txt
复制目录(必须加 -r):
cp -r old_project/ new_project/
交互式复制到目录:
cp -i *.txt ~/Documents/backups/
移动或重命名文件或目录
mv [选项] 源文件 目标文件
mv [选项] 源文件... 目标目录
| 选项 | 描述 |
|---|---|
-i |
交互模式,覆盖前询问。 |
-v |
显示过程。 |
-n |
不覆盖已存在的文件。 |
源 和 目标 在同一目录时,操作为重命名。目标 是一个目录时,操作为移动。重命名文件:
mv draft.txt final_report.txt
移动文件到目录:
mv final_report.txt ~/Documents/
移动多个文件:
mv file1.jpg file2.png ~/Pictures/
创建新目录
mkdir [选项] 目录名...
| 选项 | 描述 |
|---|---|
-p |
递归创建,自动创建路径中不存在的父目录。 |
-v |
显示过程。 |
创建单个目录:
mkdir new_folder
创建多级目录(父目录不存在也会自动创建):
mkdir -p project/src/components
删除文件或目录
rm [选项] 文件或目录...
| 选项 | 描述 |
|---|---|
-r 或 -R |
递归删除,用于删除目录及其内容。 |
-f |
强制删除,忽略不存在的文件,不作任何提示。 |
-i |
交互模式,删除前逐一询问确认。 |
-v |
显示过程。 |
rm -rf 命令威力巨大且不可逆,请务必再三确认路径后再执行,尤其是在根目录或家目录下。
删除文件:
rm temp.txt
删除目录(必须加 -r):
rm -r old_cache/
强制删除(无警告):
rm -rf node_modules/
清屏
clear
清除当前终端屏幕的所有输出,将光标移至左上角。也可使用快捷键 Command + K 实现同样效果。
查看、连接或创建文件
cat [选项] [文件...]
| 选项 | 描述 |
|---|---|
-n |
显示所有行的行号。 |
-b |
仅对非空行显示行号。 |
cat 适合查看小型文本文件。对于大文件,建议使用 less 命令(可按页浏览)。
查看文件:
cat config.yaml
查看文件并显示行号:
cat -n server.log
合并多个文件:
cat part1.txt part2.txt > complete.txt
快速创建小文件:
cat > note.txt
# 接着输入内容,按 Ctrl + D 保存退出
在macOS中打开文件、目录或URL
open [选项] [文件/目录/URL...]
| 选项 | 描述 |
|---|---|
-a <应用程序名> |
使用指定的应用程序打开。 |
-e |
使用 TextEdit 应用程序打开。 |
-R |
在 Finder 中显示该文件/目录,但不打开。 |
这是macOS特有命令,使用系统默认应用打开目标。
用默认应用打开:
open resume.pdf
用指定应用打开:
open -a "Visual Studio Code" index.html
在Finder中显示:
open -R /path/to/important_file
打开网址:
open https://www.apple.com
在文件中搜索文本模式
grep [选项] '搜索模式' 文件...
| 选项 | 描述 |
|---|---|
-i |
忽略大小写。 |
-n |
显示匹配行的行号。 |
-r 或 -R |
递归搜索子目录。 |
-l |
仅打印包含匹配项的文件名,不显示具体行。 |
-v |
反向搜索,打印不匹配的行。 |
在文件中搜索:
grep -n "error" server.log
递归搜索目录(忽略大小写):
grep -ri "TODO" ./src/
结合管道使用:
ls -la | grep ".txt"
在目录树中查找文件
find 起始目录 [选项] [操作]
| 表达式 | 描述 |
|---|---|
-name "模式" |
按文件名查找(支持通配符 *, ?)。 |
-type f |
只查找普通文件。 |
-type d |
只查找目录。 |
-mtime +n |
查找n天前修改过的文件。 |
-exec 命令 {} \; |
对找到的文件执行命令。 |
查找当前目录下所有 .html 文件:
find . -name "*.html"
查找大于 10MB 的文件:
find . -type f -size +10M
查找 7 天内修改过的文件并删除(谨慎):
find ./cache -type f -mtime -7 -exec rm {} \;
更改文件或目录的权限
chmod [选项] 权限模式 文件...
权限用三位数字或字母表示(u用户,g组,o其他):
r = 读 (4)w = 写 (2)x = 执行 (1)数字模式(最常用):
chmod 755 script.sh # 用户:rwx,组和其他:r-x
chmod 644 config.json # 用户:rw-,组和其他:r--
字母模式:
chmod u+x script.sh # 给文件所有者添加执行权限
chmod a-w file.txt # 移除所有用户的写权限(a代表all)
组合多个命令
|将前一个命令的输出作为后一个命令的输入。
# 查看进程并搜索
ps aux | grep "node"
# 统计文件行数
cat file.txt | wc -l
&&只有前一个命令成功执行(返回状态码0),才执行后一个命令。
# 进入目录,成功后再列出文件
cd ~/project && ls -la
# 编译成功后再运行
go build main.go && ./main
||只有前一个命令执行失败,才执行后一个命令。
# 尝试用code打开,失败则用vim打开
code file.txt || vim file.txt
;无论前一个命令成功与否,都顺序执行下一个命令。
echo "开始清理"; rm -f *.tmp; echo "清理完成"
编译并运行 Go 程序
go run [选项] Go源文件...
go run 会快速编译代码并在内存中运行,不会在磁盘上留下可执行文件。适合快速测试。
go run main.go
go run . # 运行当前包
编译 Go 程序并生成可执行文件
go build [选项] [包路径]
go build 会在当前目录生成一个以包名命名的可执行文件(Windows下加 .exe)。
go build # 编译当前包,生成可执行文件
go build -o myapp # 编译并将输出文件命名为 `myapp`
在一个系统上编译出能在其他系统运行的程序
GOOS=目标操作系统 GOARCH=目标架构 go build -o 输出文件名 包路径
目标系统 (GOOS) |
目标架构 (GOARCH) |
输出文件说明 |
|---|---|---|
windows |
amd64 |
64位Windows可执行文件 (.exe) |
linux |
amd64 |
64位Linux可执行文件 |
darwin (macOS) |
arm64 |
Apple Silicon Mac可执行文件 |
编译为64位Windows程序:
GOOS=windows GOARCH=amd64 go build -o myapp.exe
编译为64位Linux程序:
GOOS=linux GOARCH=amd64 go build -o myapp-linux
编译为Apple Silicon Mac程序:
GOOS=darwin GOARCH=arm64 go build -o myapp-mac