Skip to content

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终止进程

常用的文件操作流程

查看文件

  1. 切换到一个目录 cd /doc
  2. 查看当前目录下的文件和目录 ls
  3. 查看文件内容 cat 文件名

新建文件

  1. 查看当前目录下的文件和目录 ls
  2. 切换到一个目录 cd <file/dir>
  3. 新建一个文件 touch 文件名cat > 文件名echo "内容" >>/> 文件名vim/vi 文件名

编辑文件

  1. 切换到一个目录 cd <file/dir>
  2. 查看当前目录下的文件和目录 ls
  3. 编辑一个文件 vi 文件名

打开文件

  1. 切换到一个目录 cd <file/dir>
  2. 查看当前目录下的文件和目录 ls
  3. 打开一个文件 open 文件名

TIP

open . 打开当前目录

关于权限和环境变量

permission denied

在 mac 中使用命令遇到 permission denied 的错误,通常是因为权限不足,需要使用 chmod 命令来修改文件的权限,或者在命令前加上 sudo 输入登录密码来获取更高的权限。

环境变量

查看环境变量

bash
echo $PATH

mac设置环境变量

  1. 打开终端(Terminal)。
  2. 输入以下命令来编辑你的shell配置文件。如果你使用的是bash,那么文件是.bash_profile;如果是zsh,则是.zshrc。如果你不确定使用的是哪个shell,可以通过在终端输入echo $SHELL来查看。
  • 对于bash: nano ~/.bash_profile
  • 对于zsh: nano ~/.zshrc
  1. 在打开的文件中,在文件末尾添加你需要的环境变量。例如,设置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 en0

windows:

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),泛用性更强。相当于你把纸条上的文字读出来,作为指令传达。