Linux
的目录结构 rootfs
:对于Linux
而言每一个文件系统都必须是根文件系统的某一个路径,也就是说必须通过根文件系统来进行访问,对于里面目录的命名采用的是FHS
(文件系统层级标准);/boot
:表示和启动相关的文件; vmlinux
:表示的含义是linux
内核文件,一般编译Linux
内核就会生成这个文件;initrd/initramfs
:表示的是一个小型的linux
系统;grub(bootloader)
:系统的启动相关的文件—>系统启动以后详细解释;/dev
:表示设备文件,device
,常见的设备类型包括以下: /etc
:大多数程序或者应用的配置文件的主要目录;/home
:表示用户的家目录,通常命名是/home/USERNAME
,root
用户的家目录就是/
;/lib
:用于存放库文件; (*.a)
,动态库(shared object)
,表示共享对象,库文件只能够被调用,不能够独立的执行;/lib/modules
:用于存放内核模块文件;/lost+found
:是为了放置某些没有属主,属组的文件或者在丢电后,没有被及时保存的文件;/media
:表示的是挂载点目录,通常用于挂载移动设备,将设备和当前根文件系统关联的过程;/mnt
:表示的的是挂载点目录,用于挂载临时文件系统,硬盘设备;/misc
:表示的是杂项文件;/opt
:表示可选的目录,用于第三方软件程序;/proc
:表示的是伪文件系统,显示的是内核映射文件,内核工作的统计文件,内核调优参数;这个目录在系统开机之前是不存在的;/sys/
:表示的也是伪文件系统,系统启动之后才存在,和硬件设备的相关属性的映射文件,用于实现硬盘设备管理;/tmp
:表示临时文件系统,会自动删除不用的文件,任何人都可以创建文件,但是只能够删除自己的文件;/var
:可变化的文件目录,进行运行时,需要存储额进程号码就在/var/run
里面;/bin
:binary
表示可执行文件,所有的用户命令;/sbin
:存放的是所有的管理命令;/usr
用户类命令 /usr/bin,/usr/sbin,/usr/lib
/usr/local
:这个用于表示第三方软件的安装目录;255
个字符;/
表示根以及路径的分隔符;mkdir
:用于创建目录,这里子目录和父目录是可以重名的,目录和文件在一个目录里面是不能够重名的; -p
:可以用于在父目录不存在的情况下创建目录;-v
:可以用于显示创建目录的详细过程;tree
:用于显示目录以及文件的组织结构;rmdir
:remove empty directory
-p
:选项也是支持的,但是前提是最后一个命令删除之后,父目录为空,就可以删除;touch
:change file timestamps
-c
:do not create any files
;-a
:change only the access time
;-m
:change only the modification time
;-t
:use [[CC]YY]MMDDhhmm[.ss] instead of current time
;atime
:表示access time
,也就是访问这个文件的时间,比如more less cat
等查看文件内容的命令;mtime
:表示modifity time
,表示的是文件的修改时间,这个修改表示的含义是文件内容的修改时间;ctime
:表示change time
,是在写入文件、更改所有者、权限或链接设置时随inode
节点的内容更改而更改的,是该文件的inode
节点最后一次被修改的时间;time
可以使用命令stat
来进行查看more或者less
查看文件,来查看那些时间会发生改变 cat
命令来查看,发现仍然只有atime
发生改变 atime
发生改变vim
打开文件,但是使用q
退出,查看那些时间属性会发生改变 vim
,里面添加了文件的内容 inode
信息发生改变;atime
发生改变;atime mtime
发生改变;atime mtime ctime
发生改变;atime
发生改变,如果在下一次使用文件查看类命令中,文件的时间属性没有发生改变,那么再次使用文件查看类型命令,atime
的时间属性是不会发生改变的;rm
: rm -f FILENAME
:文件的删除 -i
:表示交互式删除,rm
命令是rm -i
命令的别名,如果不需要执行别名,使用\rm
就可以执行原来的命令; -f
:表示删除;-r
:表示递归删除目录以及目录里面的所有文件;cp
: cpopy
:文件不能够多个文件复制为一个文件,也不能够把一个文件复制为多个文件,更不能够多个文件复制为多个文件,对于copy来说,只有最后一个文件是目标,其余的都是源文件,也就是说当源有多个文件时,目标必须是一个目录;-R -r
:copy directories recursively
默认情况下是不会复制目录的;-p
:对于文件的复制操作是谁复制的,那么这个文件的属主和属组就是谁的, same as --preserve=mode,ownership,timestamps
:保留文件的上述属性;-a
:--archive
, -d
:same as --no-dereference --preserve=links
, -L
: --dereference always follow symbolic links in SOURCE
cp
命令copy
一个连接文件,得到的是一个普通文件,复制的是连接执行的文件;-P
:--no-dereference never follow symbolic links in SOURCE
-a
: 选项通常用于实现备份机制move
:同样的用最后一个参数表示目标(文件以及目录); move SRC SRC SRC DEST
;DEST
不存在,就会移动并且重命名;DEST
存在就会重命名,如果DEST
是文件,就会出错;DEST
和 SRC
在同一个目录里面时,就会发生重命名;.move -t DEST SRC...SRC
使用-t
指定目标;install
:copy files and set attributes
-d
:可以用于创建空目录;-m
:对于复制的文件是可以指定权限的默认是rwxr-xr-x
,同样可以使用-t
执行目标;cat(tac)
:连接并且显示,显示的文本内容是全部的,可以使用Shift+PageUp
来翻页查看, -n
:用于指定显示行号,行号不是文件内容,只是显示的内容;-e
:显示每一行的行结束符号,对于Linux
来说每一行的行结束符号是$
符号,Windows
的行结束符号是$
回车符号;-T
:用于显示指标符号;-V
:用于显示不可打印字符;tac
:用于反向显示文本信息,最后一行是第一行more
:用于手动翻页显示文件内容,Space
向前翻屏,b
可以向前翻屏;less
:man
文档是使用less
打开并且支持查看的,less
支持满文档里面支持的所有操作,并且不会退出;head
:用于查看文件的前n行,并且默认是10
行;tail
:用于查看文件的后n
行,默认也是10
行; -n
:支持指定显示的行数;-f
:显示文件并且不立即退出,可以显示文件尾部更新内容;可以用于监控日志文件的生成;cut
:用于切割文件内容 -d
:用于指定字段分隔符号;-f
:用于指定要显示的字段,例如:-f1
表示显示第一个字段; -f1,3
:表示显示第一个,第三个字段;-f1-3
:表示显示第一个到第三个字段的内容;sed
和awk
后面会专门说明;sort
:对于文本内容或者显示的内容进行排序,默认是按照ASCII
字符升序进行的; -n
:表示按照数值的大小进行排序;-r
:表示反向进行排序;-t
:用于指定字段分隔符号;-k
:表示按照某个字段为基准进行排序,如果不进行字段的指定那么就会按照从左向右依次进行比较然后进行排序;-u
:排序后,表示相同的只显示一次;-f
:表示排序是忽略字符大小写;uniq
:report or omit repeated lines
,对于相邻并且完全重复的行,就会进行略掉 -d
:表示只用于显示重复的行,只显示一次;-D
:表示显示重复的行,并且都进行显示;-c
:显示文件里面行重复的次数;tr
:translate or delete characters
用于实现转换或者删除字符,用于逐个字符进行比较 -d
: 表示用于删除字符集合里面的所有字符 wc(Word Count)
:
-l
:统计并且只显示文本的行数;-w
:统计并且显示文本的单词数;-c
:表示只显示字节数;-m
:表示用于统计字符数;-L
:表示最长的一行包含多少个字符,用于统计文本内部的字符,将空格作为字符; 补充几个额外的命令
ls
:list directory contents
,用于列出指定路径下面的所有文件,通常来说目录也是文件,文件是按照名称进行升序排序的; -a
:all
,表示不忽略.
;-A
:--almost-all
:表示忽略.
以及..
,但是显示隐藏文件;--author
:通常使用来显示目录里面的文件的作者信息,但是使用并没有明显的不同,通常使用-l
选项用来显示额外的信息; -l
:用于显示目录里面内容的详细属性信息; -
:表示普通文件(f)
,包含纯文本文件,二进制文件,以及各种类型的压缩文件,这种文件的种类是最多的,因为在Linux
底下,一切皆文件;d
:表示的是目录文件,一般理解目录是一个容器,但是本质上仍然是一个包含inode
映射节点的一个文件;b
:表示的是块设备文件(block)
,块设备一般是支持随机访问的存储的设备,通常硬盘属于块设备c
:表示的是字符设备文件(character)
,通常只支持顺序访问,也就是串行接口的中断设备,例如,键盘和鼠标;l
:表示的是符号连接文件(sysbolic link file)
链接文件,通常包含软链接和硬链接;p
:表示的是管道文件(pipe)
;s
:表示的套接字文件(socket),通常在/tmp
目录里面;/dev
目录里面;9
位,每3
位一组,三组分别表示的是所有者,所有者所在的组,以及其他人的权限,(rwx)
分别用于表示读,写,执行,如果权限不存在就使用-
来表示,rwx()
可以使用数字来进行表示,分别是4,2,1
; 后面的数字表示是文件被链接的次数;-h
: -human-readable
-d
: -i
: inode
信息(index node)
;-r
: -R
: cd
:change the working directory
cd
:默认进入的是用户的家目录;cd ~USERNAM
:表示进入指定用户的家目录;cd -
:表示在当前用户的家目录和指定的目录之间进行切换;type
: (shell内置)
:表示内部,内建,这些命令是shell
本身提供的命令;printenv
:print all or part of environment
hash
:remember or report utility locations
-r
:选项用于清空里面的缓存信息; help COMMAND
COMMAND -h
COMMAND --help
man COMMAND
:对于外部命令和内部命令都可以使用man
来进行查看;man
手册whatis
可以用来查看命令所处于的章节; /bin,/usr/bin,/usr/local/bin
;read
;man 5 passwd
;/sbin,/usr/sbin/,/usr/local/sbin
,通常会修改硬件参数,以及硬件特性,系统级别的配置;man
文档对于命令的描述: date
:NAME
:表示命令的名称;SYNOPSIS
:表示用法说明,可用的选项 []
:表示可以省略的参数;|
:表示多选择一个;<>
:表示必须给出的内容;...
:表示可以使用多次的选项;{}
:表示分组;DESCRIPTION
:命令功能的详细说明,可能包括每一个选项的意义;OPEIONS
:用于说明每一个选项的意义;FILES
:表示次命令的配置文件;BUGS
:表示BUGS
文件;EXAMPLE
:表示使用示例;SEE ALSO
:表示可以参照;man
文档的操作: space
: 翻屏b
:向前翻一屏幕;ENTER
:向后翻一行;k
:向前翻一行;/KEYWORD
:表示向后进行搜索;?KEYWORD
:表示先前搜索;n
:表示下一个搜索关键字;N
:表示向前搜索的关键字;q
:退出;/usr/share/doc
目录里面;info COMMAND