unix 命令
TIP
苹果的OS X系统源自于Free BSD的源代码,从本质上来说OS X也是UNIX系统的分支。
这些命令允许您创建目录和处理文件已经管理系统用户和权限。
| 命令 | 描述 |
|---|---|
| cat | 显示文件内容 |
| cd | 更改目录到目录名 |
| chmod | 更改权限 |
| cp | 复制源文件到目的地 |
| file | 确定文件类型 |
| find | 查找文件 |
| ll | 显示文件的详细信息(包括文件权限),相当于ls -l |
| ls | 显示有关文件类型的信息 |
| mkdir | 创建一个新的目录目录名 |
| open | 打开文件 或文件夹 |
| mv | 移动(重命名)使用oldName为newname |
| pwd | 打印当前工作目录 |
| rm | 删除(删除)文件名 |
| rmdir | 删除现有的目录,只要它是空的 |
| touch | 更新文件的访问和修改时间(相当于打开了一下文件,如果文件不存在,则创建一个文件) |
| vi,vim | 文本编辑器 打开一个文件进行编辑 |
| gzip | 压缩文件 |
| who | 显示当前登录用户信息 |
| whoami | 显示当前用户名 |
| uname | 显示系统信息 |
| uptime | 显示系统运行时间 |
| df | 显示磁盘空间使用情况 |
| du | 显示文件夹大小 |
| free | 显示内存使用情况 |
| ps | 显示进程信息 |
| top | 显示系统中所有进程的详细信息 |
| kill | 终止进程 |
常用的文件操作流程
查看文件
- 切换到一个目录
cd /doc - 查看当前目录下的文件和目录
ls - 查看文件内容
cat 文件名
新建文件
- 查看当前目录下的文件和目录
ls - 切换到一个目录
cd <file/dir> - 新建一个文件
touch 文件名或cat > 文件名或echo "内容" >>/> 文件名或vim/vi 文件名
编辑文件
- 切换到一个目录
cd <file/dir> - 查看当前目录下的文件和目录
ls - 编辑一个文件
vi 文件名
打开文件
- 切换到一个目录
cd <file/dir> - 查看当前目录下的文件和目录
ls - 打开一个文件
open 文件名
TIP
open . 打开当前目录
关于权限和环境变量
permission denied
在 mac 中使用命令遇到 permission denied 的错误,通常是因为权限不足,需要使用 chmod 命令来修改文件的权限,或者在命令前加上 sudo 输入登录密码来获取更高的权限。
环境变量
查看环境变量
bash
echo $PATHmac设置环境变量
- 打开终端(Terminal)。
- 输入以下命令来编辑你的shell配置文件。如果你使用的是bash,那么文件是.bash_profile;如果是zsh,则是.zshrc。如果你不确定使用的是哪个shell,可以通过在终端输入echo $SHELL来查看。
- 对于bash:
nano ~/.bash_profile - 对于zsh:
nano ~/.zshrc
- 在打开的文件中,在文件末尾添加你需要的环境变量。例如,设置PATH变量:
export PATH=$PATH:/your/new/directory
$PATH : 表示原来的环境变量参数,这里将新的环境变量接在后面 或者设置一个新的环境变量: export MY_VARIABLE="some_value" 4. 保存并关闭文件。如果你使用的是 nano (也可以使用 vi,vim),可以按 Ctrl + X,然后按 Y 确认保存,最后按 Enter 键。 5. 最后重新打开终端生效
查看设备 ip 地址
mac/linux:
bash
#查看ip完整信息
ifconfig
#查看en0 接口的 IP 地址(通常是 Wi-Fi 接口)
ipconfig getifaddr en0windows:
bash
ipconfig解除端口占用
mac/linux:
bash
# 查看端口的进程信息,找到对应的进程id,然后使用 kill 命令杀死进程
lsof -i:<端口号>
kill -9 <进程pid>window(powershell):
powershell
# 查看端口的进程信息,找到对应的进程id,然后使用 kill 命令杀死进程
netstat -aon | findstr <端口号>
kill <进程pid>管道符 |
管道符 | 用于将一个命令的输出作为另一个命令的输入。
基本使用: 命令A | 命令B
bash
# 查找包含nginx的进程
ps aux | grep "nginx"
# 统计当前目录下文件和目录数
ls -l | wc -l
# 排序并去重
cat file.txt | sort | uniq
# 分页查看
cat long_file.txt | less注意
- 管道只处理前一个命令的标准输出(Stdout),不处理标准错误(Stderr)。
- 若需处理标准错误,可使用
|&。 - 部分命令(如 rm, cat)不支持管道直接传递参数,需配合
xargs使用。
管道符参数化
xargs 用于将管道符的输出作为另一个命令的输入,并将其参数化。
-n参数:指定每个命令的参数数量。-I参数:指定一个字符串,用于替换每个命令的参数,默认为{}。
bash
#
cat file.txt | xargs echo使用示例
- 批量删除文件
bash
find . -name "*.tmp" | xargs rm -f- 处理带空格的文件名
bash
find . -name "*.txt" -print0 | xargs -0 rm区分 | 和 | xargs
- 直接用管道
|:传递输入、输出流(stdin、stdout)。相当于你把纸条塞进碎纸机,如果后一个命令不支持 stdin,它会直接忽略这张纸。 - 配合
xargs:传递 命令行参数 (Arguments),泛用性更强。相当于你把纸条上的文字读出来,作为指令传达。