常用命令
who
在关机前需要先使用 who 命令查看有没有其它用户在线。
ligendeMacBook-Pro:~ ligen$ who
ligen console Aug 30 10:06
ligen ttys001 Aug 30 14:28
ligen ttys004 Aug 30 16:20
sync
为了加快对磁盘文件的读写速度,位于内存中的文件数据不会立即同步到磁盘,因此关机之前需要先进行 sync 同步操作。
shutdown
-a 使用 /etc/shutdown.allow 来验证身份。
-t sec 通知 init(8) 在转换到其它运行级别前,发送警告 (warning)
信号后延时 (sec) 秒数后再发送关闭 (kill) 信号。
-k 并非真正关机,只向所有人显示警告信息。
-r 重启。
-h 停机。
-n [DEPRECATED(不应再使用)] 不调用 init(8)
程序进行关机操作,而由自己进行。不建议用户使用这种关机方式,它的结果一般也不是你希望的那样。
-f 重启时跳过磁盘检测。
-F 重启时强制磁盘检测。
-c 取消运行中的 shutdown 进程。不可能为此选项指定 time
参数,但你可以在命令行输入一条解释消息来向所有用户说明。(一般的shut‐
down指令可以用按“+”号来进行中断)
sudo
sudo 允许一般用户使用 root 可执行的命令,不过只有在 /etc/sudoers 配置文件中添加的用户才能使用该指令。
su
切换用户,su 需要被切换用户的密码,
su [OPTION]... [-] [USER [ARG]...]
find
用途:递归地在层次目录中处理文件
重定向指的是使用文件代替标准输入、标准输出和标准错误输出。
1 | 代码 | 运算符 |
---|---|---|
标准输入 (stdin) | 0 | < 或 << |
标准输出 (stdout) | 1 | > 或 >> |
标准错误输出 (stderr) | 2 | 2> 或 2>> |
其中,有一个箭头的表示以覆盖的方式重定向,而有两个箭头的表示以追加的方式重定向。
可以将不需要的标准输出以及标准错误输出重定向到 /dev/null,相当于扔进垃圾箱。
如果需要将标准输出以及标准错误输出同时重定向到一个文件,需要将某个输出转换为另一个输出,例如 2>&1 表示将标准错误输出转换为标准输出。
参数
-amin n
对文件的最近一次访问是在 n 分钟之前。
-anewer file
对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow 在 -anewer 之前,(也只有在这种情况下) -anewer 会受 -follow 的影响。
-atime n
对文件的最近一次访问是在 n*24 小时之前。
-cmin n
对文件状态的最近一次修改是在 n 分钟之前。
-cnewer file
对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -cnewer 之前,(也只有在这种情况下) -cnewer 会受 -follow 的影响。
-ctime n
对文件状态的最近一次修改是在 n*24 小时之前。
-empty 文件是空的普通文件或者空目录。
-false 总是false。
-fstype type
文件处于 type 类型的文件系统之上。有效的文件系统类型在不同版本的Unix中是不同的;一些Unix中的不完全的文件系统类型列表是这样:ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. 你可以用 -printf 加上 %F 指令来查看你的文件系统的类型。
-gid n 文件的数字形式的组ID是 n。
-group gname
文件属于 gname (也允许使用数字形式的组ID).
-ilname pattern
和 -lname 类似,但是匹配时是不区分大小写的。
-iname pattern
和 -name 类似,但是匹配时是不区分大小写的。例如,`fo*' and `F??' 模式与文件名 `Foo', `FOO', `foo', `fOo' 等等相匹配。
-inum n
文件的 i 结点数是 n。
-ipath pattern
和 -path 类似,但是匹配时是不区分大小写的。
-iregex pattern
和 -regex 类似, 但是匹配时是不区分大小写的。
-links n
文件有 n 个链接。
-lname pattern
文件是一个与pattern 匹配的符号链接。元字符不会对`/' 或 `.' 做特殊处理。
-mmin n
对文件数据的最近一次修改是在 n 分钟之前。
-mtime n
对文件数据的最近一次修改是在 n*24 小时之前。
-name pattern
基本的文件名(将路径去掉了前面的目录)与shell模式pattern相匹配。元字符(`*', `?', 还有`[]' ) 不会匹配文件名开头的`.' 。使用 -prune 来略过一个目录及其中的文件。查看 -path 的描述中的范例。
-newer file
对文件的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -newer 之前,(也只有在这种情况下) -newer 会受 -follow 的影响。
-nouser
没有符合文件的数字形式的用户ID的用户。
-nogroup
没有符合文件的数字形式的组ID的组。
-path pattern
文件名与shell模式pattern相匹配。元字符不会对`/' 或 `.' 做特殊处理。因此,例如:
find . -path './sr*sc'
如果存在 './src/misc' 的话,会将它打印出来。想要忽略一个完整的目录树,应当使用-prune 而不是检查目录树中所有的文件。例如:要跳过 'src/emacs' 目录和其中所有的文件和子目录,把其他找到的文件打印出来,应当这样:
find . -path './src/emacs' -prune -o -print
-perm mode
文件的权限位恰好是 mode (八进制或符号)。 Symbolic modes use mode 0 as a point of departure.
-perm -mode
所有的权限位 mode 都被设置了的文件。
-perm +mode
任何权限位 mode 被设置了的文件。
-regex pattern
文件名与正则表达式 pattern 匹配。这是对整个路径的匹配,不是搜索文件。例如,要匹配名为`./fubar3' 的文件,可以使用正则表达式 `.*bar.' 或者 `.*b.*3',但是不能用`b.*r3'。
-size n[bckw]
文件使用了 n 单位个存储单元。默认的单位是512字节的块,也可以用n后面加上 `b' 来指定这个值。其他的单位是字节,如果在 n 后面加上 `c' ;千字节(kB),如果在 n 后面加上`k' ;两字节的字,如果在 n 后面加上 `w' 。大小不会计入 indirect
blocks,但是会计入没有真正分配空间的疏松文件中的块。
-true 总是true。
-type c
文件是 c 类型的。类型可取值如下:
b 特殊块文件(缓冲的)
c 特殊字符文件(不缓冲)
d 目录
p 命名管道 (FIFO)
f 普通文件
l 符号链接
s 套接字
D 门 (Solaris 特有)
-uid n 文件的数字形式的用户ID是 n 。
-used n
文件最后一次存取是在最后一次修改它的状态的 n 天之后。
-user uname
文件的所有者是 uname (也可以使用数字形式的用户ID).
-xtype c
和 -type 相同,除非文件是一个符号链接。对于符号链接:如果没有给出 -follow ,如果文件是一个指向 c 类型文件的链接,那么返回true;如果给出了 -follow ,如果 c 是 `l' 那么返回true。换句话说,对于符号链接,-xtype 检查那些 -type
不检查的文件。
find ~/ -name filename
#在某个目录下查找 指定文件名的文件
find ./ -atime 2
# 查询目录下 2天内修改的文件