基本命令
最后更新于:2022-04-02 05:44:50
[TOC]
# 基本命令
## 列出文件
~~~
ls 参数 目录名
~~~
例: 想看看根目录下有什么:
~~~
ls /
~~~
想看看驱动目录下有什么:
~~~
ls /System/Library/Extensions
~~~
参数 `-w` 显示中文,`-l` 详细信息, `-a` 包括隐藏文件
## 改变目录
~~~
cd 目录
~~~
例:想到驱动目录下溜达一圈
~~~
cd /System/Library/
~~~
## 建立新目录
mkdir 目录名
例:在驱动目录下建一个备份目录 backup
~~~
mkdir /System/Library/Extensions/backup
~~~
在桌面上建一个备份目录 backup
~~~
mkdir /User/用户名/Desktop/backup
~~~
## 创建文件 touch(推荐)
可以使用`touch`命令来轻松创建空文件:
~~~
touch test
~~~
touch命令创建了指定的新文件,并将当前用户名作为文件的属主。
创建的文件大小是零,`touch`命令只会创建一个空文件。
如果再次使用:`touch test`命令,当前已经存在test文件,该命令行会使已有文件的访问时间和修改时间进行改变,而不改变文件的内容。
1. `touch -a` :只修改访问时间;
2. `touch -m` :只改变修改时间;
默认情况下,touch使用当前时间,可以使用:
`touch -t` 参数加上特定的时间戳来制定时间
例如:
~~~
touch -t 201612251200 test
~~~
### 其他相关命令
1. `> ` 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);
2. `>>` 这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
直接输出到文件:
~~~
>> i.js
这些内容会输出到该文件。
这些内容会输出到该文件。
^C #结束
或者
echo xxx >> xxx.txt
~~~
~~~
mkfile -n size[b|k|m|g] 文件名
~~~
比如说,如果你想在桌面上创建文件名为“大容量测试文件”的1GB容量文件时,你只需使用下面的命令
~~~
mkfile -n 1g ~/Desktop/大容量测试文件
~~~
不过mkfile命令只支持Mac OS X。
**dd命令支持所有的unix和linux系统**。使用dd命令,我们需要定义文件名、区块尺寸和区块大小:
~~~
dd if=/dev/zero of=FileName bs=1024 count=1000
~~~
如果你想创建一个容量为100MB的文件,那么需要下面的命令。
~~~
dd if=/dev/zero of=LargeTestFile.img bs=1024 count=0 seek=$[1024*100]
~~~
## 拷贝文件
~~~
cp 参数 源文件 目标文件
~~~
例:想把桌面的Natit.kext 拷贝到驱动目录中:
~~~
cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions
~~~
参数R表示对目录进行递归操作,kext在图形界面下看起来是个文件,实际上是个文件夹。
把驱动目录下的所有文件备份到桌面backup:
~~~
cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup
~~~
## 删除文件
~~~
rm 参数 文件 (rm -rf 文件夹)
~~~
例:想删除驱动的缓存
~~~
rm -rf /System/Library/Extensions.kextcache
rm -rf /System/Library/Extensions.mkext
~~~
参数 `-rf` 表示递归和强制,千万要小心使用,如果执行了 `rm -rf / ` 你的系统就全没了
## 移动文件
~~~
mv 文件
~~~
例:想把AppleHDA.Kext 移到桌面
~~~
mv /System/Library/Extensions/AppleHDA.kext /User/用户名/Desktop
~~~
想把AppleHDA.Kext 移到备份目录中
~~~
mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/backup
~~~
## 更改文件权限
~~~
chmod 参数 权限 文件 (#add ch代表change)
~~~
例:把驱动目录下所有文件设定到root读写,其他用户只读
~~~
chmod -R 755 /System/Library/Extensions
~~~
参数R 表示递归,755表示各用户的权限
## 更改文件所有者
~~~
chown 参数 用户:组 文件
~~~
例:把驱动目录下的所有文件的属权改成根用户
~~~
chown -R root:wheel /System/Library/Extensions
~~~
参数R 表示递归操作
## 修复整个系统中文件的权限
~~~
diskutil repairpermissions /
~~~
严格的说这不是一个unix 命令,而是osx一个软件,记得修改或添加的驱动就执行一次。
## 文本编辑
~~~
nano 文件名
~~~
例:编辑natit Info.plist
~~~
nano /System/Library/Extensions/Natit.kext/Info.plist
~~~
编辑完成后 用 `Ctrl +O` 存盘,`Ctrl+X` 退出
另一个文本编辑软件是 vi,操作有些古怪,熟了是非常好用的,而且在所有类Unix系统中都它,走遍天下都不怕了。
## 运行脚本命令
~~~
sh 脚本文件名
~~~
例 修改驱动后所有需要的操作存成一个脚本,以后修改了驱动后只要运行一次这个脚本就可以了,方便吧
1. 终端中运行`nano /clean`
2. 把下列代码粘贴到 `nano` 中
~~~
rm -rf /System/Library/Extensions.kextcache
rm -rf /System/Library/Extensions.mkext
chown -R root:wheel /System/Library/Extensions
chmod -R 755 /System/Library/Extensions
diskutil repairpermissions /
kextcache -k /System/Library/Extensions/
~~~
3. `Ctrl +O` 存盘,`Ctrl+X` 退出
4. 以后只要动了驱动,就在终端中运行一次 `sh /clean`
';