Red Hat linux 6.5 学习使用笔记《二》文件系统及命令详解

《二》文件系统及命令详解
1.linux文件系统根目录下存放诸多目录(FHS标准)

[root@localhost /]# ls
bin   dev  home  lib64       media  mnt  opt   root  selinux  sys  usr
boot  etc  lib   lost+found  misc   net  proc  sbin  srv      tmp  var

	/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
	/dev: 设备文件
		设备文件:
			块设备:随机访问,数据块
			字符设备:线性访问,按字符为单位
	    设备文件不存储为数据,而是元数据,设备文件没有大小,而是存储为设备号
			设备号:主设备号(major)和次设备号(minor)
	/etc:(etcetera )配置文件
	/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
	/root:管理员的家目录;
	/lib:库文件
		静态库,  .a(封装在应用中)
		动态库, .dll, .so (shared object)(动态调用)
		/lib/modules:内核模块文件
	/media:挂载点目录,移动设备
	/mnt:挂载点目录,额外的临时文件系统
	/opt:可选目录,第三方程序的安装目录
	/proc:伪文件系统,内核映射文件
	/sys:伪文件系统,跟硬件设备相关的属性映射文件
	/tmp:临时文件, /var/tmp
	/var:可变化的文件
	/bin: 可执行文件, 用户命令
	/sbin:管理命令
	
/usr:shared, read-only(偏向于用户类型文件)
	/usr/bin
	/usr/sbin
	/usr/lib
	
/usr/local:(第三方软件类型文件)
	/usr/local/bin
	/usr/local/sbin
	/usr/local/lib

2.文件名命名规则

1、长度不能超过255个字符;
2、不能使用/当文件名
3、严格区分大小写

3.file命令详解

[root@localhost /]# file --help

Usage: file [OPTION…] [FILE…]
Determine type of FILEs.

–help display this help and exit
-v, --version output version information and exit
-m, --magic-file LIST use LIST as a colon-separated list of magic number files【指的是那些具有特殊文件格式的文件】

引用博客:file命令及magic file
http://blog.csdn.net/sin90lzc/article/details/8575022

-z, --uncompress try to look inside compressed files【尽量显得是一个压缩文件】

[root@localhost ~]# file -z install.log
install.log: UTF-8 Unicode text

-b, --brief do not prepend filenames to output lines【不预先考虑文件名输出】

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
[root@localhost ~]# file -b install.log
UTF-8 Unicode text

-c, --checking-printout print the parsed form of the magic file, use in conjunction with -m to debug a new magic file before installing it【打印magic文件的解析形式】
-e, --exclude TEST exclude TEST from the list of test to be performed for file. Valid tests are: ascii, apptype, compress, elf, soft, tar, tokens, troff【从列表中排除TEST的测试执行的文件】
-f, --files-from FILE read the filenames to be examined from FILE【从文件读取文件名检查】
-F, --separator STRING use string as separator instead of `:’
-i, --mime output MIME type strings (–mime-type and -mime-encoding)
–apple output the Apple CREATOR/TYPE
–mime-type output the MIME type
–mime-encoding output the MIME encoding
-k, --keep-going don’t stop at the first match
-L, --dereference follow symlinks (default)【遵循符号链接】
-h, --no-dereference don’t follow symlinks【不遵循符号链接】
-n, --no-buffer do not buffer output
-N, --no-pad do not pad output
-0, --print0 terminate filenames with ASCII NUL
-p, --preserve-date preserve access times on files【保存文件的访问时间】
-r, --raw don’t translate unprintable chars to \ooo
-s, --special-files treat special (block/char devices) files as ordinary ones【对待特殊(块/字符设备)文件作为普通文件】
-C, --compile compile file specified by -m【通过-m指定编译文件】
-d, --debug print debugging messages

4.mkdir命令详解

[root@localhost ~]# mkdir --help

用法:mkdir [选项]… 目录…
若指定目录不存在则创建目录。

长选项必须使用的参数对于短选项时也是必需使用的。
-m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask
-p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
-v, --verbose 每次创建新目录都显示信息
-Z, --context=CTX 将每个创建的目录的SELinux 安全环境设置为CTX
–help 显示此帮助信息并退出
–version 显示版本信息并退出

[root@localhost ~]# mkdir -m 221 new5
[root@localhost ~]# ls -l
总用量 100
d-w--w---x. 2 root root  4096 12月  5 11:15 new5

[root@localhost ~]# mkdir -p fk/a/b/c
[root@localhost ~]# ls
anaconda-ks.cfg  fk           install.log.syslog  newk1  newk3  newk6
date.txt         install.log  new5                newk2  newk4
[root@localhost ~]# ls -R
.:
anaconda-ks.cfg  fk           install.log.syslog  newk1  newk3  newk6
date.txt         install.log  new5                newk2  newk4

./fk:
a

./fk/a:
b

./fk/a/b:
c

[root@localhost ~]# mkdir -v {newk1,newk2,newk3}
mkdir: 已创建目录 "newk1"
mkdir: 已创建目录 "newk2"
mkdir: 已创建目录 "newk3"
[root@localhost ~]# ls -l
drwxr-xr-x. 2 root root  4096 12月  5 11:12 newk1
drwxr-xr-x. 2 root root  4096 12月  5 11:12 newk2
drwxr-xr-x. 2 root root  4096 12月  5 11:12 newk3

5.rmdir命令详解

[root@localhost ~]# rmdir --help

用法:rmdir [选项]… 目录…
删除指定的空目录。

–ignore-fail-on-non-empty
忽略仅由目录非空产生的所有错误
-p, --parents 删除指定目录及其上级文件夹,例如"rmdir -p a/b/c’"
与"rmdir a/b/c a/b a’" 基本相同
-v, --verbose 输出处理的目录详情
–help 显示此帮助信息并退出
–version 显示版本信息并退出

[root@localhost ~]# ls
anaconda-ks.cfg  fk     
[root@localhost ~]# rmdir -p -v fk/a/b/c
rmdir: 正在删除目录 "fk/a/b/c"
rmdir: 正在删除目录 "fk/a/b"
rmdir: 正在删除目录 "fk/a"
rmdir: 正在删除目录 "fk"
[root@localhost ~]# ls
anaconda-ks.cfg  install.log   

6.命令行展开:

(a+d)(b+c) = ab+ac+db+dc
{a,d}_{b,c} = a_b a_c d_b d_c

[root@localhost ~]# mkdir {a,d}_{b,c}
[root@localhost ~]# ls -l
总用量 120
drwxr-xr-x. 2 root root  4096 12月  5 11:41 a_b
drwxr-xr-x. 2 root root  4096 12月  5 11:41 a_c
-rw-------. 1 root root  1537 12月  4 23:11 anaconda-ks.cfg
-rw-r--r--. 1 root root    20 12月  4 20:16 date.txt
drwxr-xr-x. 2 root root  4096 12月  5 11:41 d_b
drwxr-xr-x. 2 root root  4096 12月  5 11:41 d_c

[root@localhost ~]# rmdir {a,d}_{b,c}
[root@localhost ~]# ls
anaconda-ks.cfg  install.log         new5   newk2  newk4
date.txt         install.log.syslog  newk1  newk3  newk6

[root@localhost ~]# rmdir new*
You have new mail in /var/spool/mail/root
[root@localhost ~]# ls
anaconda-ks.cfg  date.txt  install.log  install.log.syslog

7.stat命令详解

[root@localhost ~]# stat --help

用法:stat [选项]… 文件…
显示文件或文件系统状态。

-L, --dereference follow links
-Z, --context print the SELinux security context
-f, --file-system display file system status instead of file status
-c --format=格式 使用指定输出格式代替默认值,每用一次指定格式换一新行
–printf=格式 类似 --format,但是会解释反斜杠转义符,不使用换行作
输出结尾。如果您仍希望使用换行,可以在格式中
加入"\n"
-t, --terse 使用简洁格式输出
–help 显示此帮助信息并退出
–version 显示版本信息并退出

8.touch命令详解

[root@localhost ~]# touch --help

用法:touch [选项]… 文件…
将每个文件的访问时间和修改时间改为当前时间。

不存在的文件将会被创建为空文件,除非使用-c 或-h 选项。

如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间。

长选项必须使用的参数对于短选项时也是必需使用的。
-a 只更改访问时间
-c, --no-create 不创建任何文件
-d, --date=字符串 使用指定字符串表示时间而非当前时间
-f (忽略)
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
-m 只更改修改时间
-r, --reference=文件 使用指定文件的时间属性而非当前时间
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间
–time=WORD 使用WORD 指定的时间:access、atime、use 都等于-a
选项的效果,而modify、mtime 等于-m 选项的效果
–help 显示此帮助信息并退出
–version 显示版本信息并退出

[root@localhost ~]# date
2016年 11月 11日 星期五 11:16:49 CST
[root@localhost ~]# stat install.log
	Access: 2016-12-05 11:47:03.310006237 +0800
	Modify: 2016-12-04 23:11:24.184999952 +0800
	Change: 2016-12-05 11:47:03.310006237 +0800
[root@localhost ~]# touch -a install.log
[root@localhost ~]# stat install.log
	Access: 2016-11-11 11:15:42.612999923 +0800
	Modify: 2016-12-04 23:11:24.184999952 +0800
	Change: 2016-11-11 11:15:42.612999923 +0800
[root@localhost ~]# touch -m install.log
[root@localhost ~]# stat install.log
	Access: 2016-11-11 11:15:42.612999923 +0800
	Modify: 2016-11-11 11:16:39.014999727 +0800
	Change: 2016-11-11 11:16:39.014999727 +0800
[root@localhost ~]# touch -t 1212121212 install.log
[root@localhost ~]# stat install.log
	Access: 2012-12-12 12:12:00.000000000 +0800
	Modify: 2012-12-12 12:12:00.000000000 +0800
	Change: 2016-11-11 11:18:31.216999706 +0800

9.nano命令简介
namo是一个小的,自由的和友好的编辑器,旨在取代Pico

[root@localhost ~]# nano --help

用法: nano [选项] [[+行,列] 文件名称]…

选项 GNU 长选项 意义
-h, -? --help 显示此讯息
+行,列 从所指列数与行数开始
-A --smarthome 开启智慧型 HOME 按键功能
-B --backup 储存既有文件的备份
-C <目录> --backupdir=<目录> 用以储存独一备份文件的目录
-D --boldtext 用粗体替代颜色反转
-E --tabstospaces 将已输入的跳格符号转换为空白
-F --multibuffer 开启多重文件缓冲区功能


10.rm命令详解

[root@localhost ~]# rm --help

用法:rm [选项]… 文件…
删除 (unlink) 文件。

-f, --force 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-I 在删除超过三个文件或者递归删除前要求确认。此选项比-i 提
示内容更少,但同样可以阻止大多数错误发生
–interactive[=WHEN] 根据指定的WHEN 进行确认提示:never,once (-I),
或者always (-i)。如果此参数不加WHEN 则总是提示
–one-file-system 递归删除一个层级时,跳过所有不符合命令行参
数的文件系统上的文件
–no-preserve-roo 不特殊对待"/"
–preserve-root 不允许删除"/"(默认)
-r, -R, --recursive 递归删除目录及其内容
-v, --verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 显示版本信息并退出

[root@localhost ~]# ls
11111111  anaconda-ks.cfg  date.txt  f1  f2   install.log  install.log.syslog
[root@localhost ~]# rm -i -v {f1,f2}
rm:是否删除普通空文件 "f1"?y
已删除"f1"
rm:是否删除普通空文件 "f2"?y
已删除"f2"

11.cp命令详解

[root@localhost ~]# cp --help

用法:cp [选项]… [-T] 源文件 目标文件
 或:cp [选项]… 源文件… 目录
 或:cp [选项]… -t 目录 源文件…
将源文件复制至目标文件,或将多个源文件复制至目标目录。
【只能有一个目标文件/目录】
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive 等于-dR --preserve=all【归档】
–backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似–backup 但不接受参数
–copy-contents 在递归处理是复制特殊文件内容
-d 等于–no-dereference --preserve=links
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项
存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, --link 链接文件而不复制
-L, --dereference 总是跟随符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 不跟随源文件中的符号链接
-p 等于–preserve=模式,所有权,时间戳
–preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-c same as --preserve=context
–sno-preserve=属性列表 不保留指定的文件属性
–parents 复制前在目标目录创建来源文件路径中的所有目录
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
–reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如。
–remove-destination 尝试打开目标文件前先删除已存在的目的地
文件 (相对于 --force 选项)
–sparse=WHEN 控制创建稀疏文件的方式
–strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠
-s, --symbolic-link 只创建符号链接而不复制文件
-S, --suffix=后缀 自行指定备份文件的后缀
-t, --target-directory=目录 将所有参数指定的源文件/目录
复制至目标目录
-T, --no-target-directory 将目标目录视作普通文件
-u, --update copy only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, --verbose explain what is being done
-x, --one-file-system stay on this file system
-Z, --context=CONTEXT set security context of copy to CONTEXT
–help 显示此帮助信息并退出
–version 显示版本信息并退出

12.mv命令详解

[root@localhost ~]# mv --help

用法:mv [选项]… [-T] 源文件 目标文件
 或:mv [选项]… 源文件… 目录
 或:mv [选项]… -t 目录 源文件…
将源文件重命名为目标文件,或将源文件移动至指定目录。

长选项必须使用的参数对于短选项时也是必需使用的。
–backup[=CONTROL] 为每个已存在的目标文件创建备份
-b 类似–backup 但不接受参数
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在文件
如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
–strip-trailing-slashes 去掉每个源文件参数尾部的斜线
-S, --suffix=SUFFIX 替换常用的备份文件后缀
-t, --target-directory=DIRECTORY 将所有参数指定的源文件或目录
移动至 指定目录
-T, --no-target-directory 将目标文件视作普通文件处理
-u, --update 只在源文件文件比目标文件新,或目标文件
不存在时才进行移动
-v, --verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 显示版本信息并退出

13.install命令详解

[root@localhost ~]# install --help

用法:install [选项]… [-T] 源文件 目标文件
 或:install [选项]… 源文件… 目录
 或:install [选项]… -t 目录 源文件…
 或:install [选项]… -d 目录…

此install 将文件(通常仅是编译后的文件)复制到您所选择的目的位置。
如果您希望在GNU/Linux 操作系统上下载并安装一个即时可用的软件包,
您应当使用诸如yum(1) 和apt-get(1) 的软件包管理器。

在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录
中同时设置其所有权和权限模式。在第四种形式中,创建给出目标目录中的所有组件。

长选项必须使用的参数对于短选项时也是必需使用的。
–backup[=CONTROL] 为每个已存在的文件创建备份
-b 类似–backup 但不接受参数
-c (忽略)
-C, --compare 比较每组源文件和目标文件,在一些情况下不修改目标文件
-d, --directory 将所有参数视为目录名称;为指定的目录创建所有组件
-D 创建目标目录的所有必要的父目录,然后将源文件复制至该目录
-g, --group=组 自行设置所属组,而不是进程目前的所属组
-m, --mode=模式 自行设置权限模式(像chmod),而不是rwxr-xr-x
-o, --owner=所有者 自行设置所有者(只适用于超级用户)
-p, --preserve-timestamps 修改源文件的访问/修改时间以与目标文件保持一致
-s, --strip 拆解符号表
–strip-program=程序 指定拆解二进制文件的程序
-S, --suffix=后缀 覆盖常用备份文件后缀
-t, --target-directory=目录 将源文件所有参数复制到指定目录
-T, --no-target-directory 将目标文件视为普通文件
-v, --verbose 创建目录时显示其名称
-P, --preserve-context (SELinux) preserve security context
-Z, --context=CONTEXT (SELinux) set security context of files and directories
–help 显示此帮助信息并退出
–version 显示版本信息并退出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值