日期:2014-05-16  浏览次数:20695 次

linux日常命令备忘1
经常有些日常需要用到的命令,虽然一般的选项都OK,但需要深入一点的就会忘记
比如find命令,太难记了.
这里主要是记录比较少用或难用的选项
1.find
# find [PATH] [option] [action]

(1).与时间有关的参数
   -atime n : 在n天之前的"一天之内"访问(action)过的文件
   -ctime n : 在n天之前的"一天之内"修改(change)过'状态'的文件
   -mtime n : 在n天之前的"一天之内"修改(modification)过的文件
   -newer file : 比file还新的文件
(2).与用户有关的参数
   -uid n : 查找uid=n的文件
   -gid n : 查找gid=n的文件
   -user name : 查找用户名为name的文件
   -group name : 查找组名为name的文件
   -nouser : 查找文件拥有者不在/etc/passwd中的文件
   -nogroup : 查找文件组拥有者不在/etc/group中的文件
   在自行安装的软件中,很可能该软件的属性中并没有文件拥有者
(3).与文件权限及名称有关的参数
   -name filename : 查找文件名为filename的文件
   -size [+-]SIZE : 查找比SIZE还要大(+)或小(-)的文件,这个SIZE的规格有:
                    c:表示byte, k:1024bytes
   -type TYPE : 查找文件类型为TYPE的文件, 类型主要有: 一般正规文件(f),
                设备文件(b,c),目录(d), 连接文件(l),套接字(s)等
   -perm mode : 查找文件属性"刚好等于"mode的文件,比如-rwsr-xr-x的属性为4755
   -perm -mode: 查找文件属性"必须全部包括mode的属性"的文件,
   -perm +mode: 查找文件属性"包含任一mode的属性"的文件
(4).Action附加操作
   -exec command : command 为其他命令
   -print : 将結果打印出来,这是默认动作

例子 # find / +7000 -exec ls -l {} \;
注意-exec后面的ls -l 就是其他命令,{}表示find搜索到的結果
\;表示-exec命令结束, -exec最后一定要以\;结束才行



2.shutdown
# shutdown [options] time [message]

time有多种格式:now, +30(分钟),HH:mm(24小时制),
options:
-r: 重启restart
-h: 挂起或关机(halt or power off)
-H: 挂起
-P: 关机
-c: 取消发出的关机命令(cancel)
-k: 只是发出message警告, 并不是真正关机


2.修改文件权限chgrp, chown, chmod
# chown [-R] user:group file/dir

-R: recursive(递归循环目录)

# chmod: 修改九个属性r(4),w(2),x(1)
# chmod [-R] xyz file/dir
x,y,z分别用户,用户组,其他人r,w,x相加
也可以:
# chmod [-R] [ugoa] [+-=] [rwx] file/dir

注: rwx权限对于[b]目录(dir)
的意义[/b]
-r: 具有读取目录结构清单的权限, ls命令可以将目录的内容列出来
-w: 拥有更改该目录结构清单的权限,也就是:
    a.建立新的文件与目录
    b.删除已经存在的文件与目录(不论该文件是属于谁的)
    c.重命名文件或目录
    d.移动目录内的文件,目录的位置
-x: x与能否进入该目录有关

3.pwd [-P] 显示当前所在的目录
-P: 显示出实际的路径, 而非使用连接(link)路径

4. mkdir [-mp] 目录名
-m: 直接设置权限(类似于744), 而不使用默认的权限
-p: 建立目录递归

5. rmdir (删除"空目录")
# rmdir [-p] dir
-p: 递归删除"空"目录

6. 查看文件和目录: ls
# ls [-aAdrFhilRS] 目录名
# ls [--color={none, auto, always}] 目录名
# ls [--full-time] 目录名
-a: 全部文件, 包括隐藏文件
-A: 全部文件和隐藏文件, 但不包括 . 和 .. 这两个目录
-d: 仅列出目录本身, 而不是列出目录内的文件数据
-f: 列出結果不排序(默认以文件名排序)
-F: 根据文件,目录等信息, 附加数据结构,如 *表示可执行文件, /表示目录, =表示套接字文件, |表示FIFO文件
-h: 用(GB,KB等列出文件大小
-i: 列出inode位置, 而非列出文件的属性
-l: 列出长数据串
-n: 列出UID,GID而非用户名称
-r: 将排序結果反向输出
-R: 与子目录内容一起列出来
-S: 按文件大小排序
-t: 按时间排序
--time={atime,ctime}, 默认列出mtime

7.cp 复制文件或目录

# cp [-adfilprsu] 源文件 目录文件
# cp [options] source1 source2 ... direcotry
-a: 相当于 -pdr选项
-d: 如果源文件是连接文件(link file), 则复制连接文件属性而非文件本身
-f: 强制复制
-i: 若出现重复, 询问是否覆盖
-l: 建立硬连接(hard link), 而非复制文件本身
-s: 复制成符号连接文件(symbolic link)
-p: 与文件的属性一起复制, 而非使用默认属性
-r: 递归持续复制, 用于目录
-u: 若目录文件比源文件旧, 更新目录文件

8. rm 删除文件或目录
# rm [-fir] 文件或目录

9. mv 移动文件与目录, 或重命名
# mv [-fiu] source desination
# mv [options] src1 src2 ... directory

10. 单一文件或目录的最大允许文件名为255个字符
包含完整路径名称及目录(/)的完整文件名为4