linux的哲学思想:

一切皆文件:把几乎有多的资源都抽象为文件

由众多功能单一的程序组成,当完成复杂任务时组合单一的小程序:

每一个命令都避免和用户交互:易于以编程的方式完成自动化任务

使用纯文本文件保存程序的配置文件:

linux的文件系统和windows不同,linux的文件系统为单根文件系统所有文件都在其中!

linux文件管理(结构)_文件管理


                (照片来自互联网)

 

 

文件系统结构 

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录

/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

/lib64:专用于x86_64系统上的辅助共享库文件存放位置

/etc:配置文件目录

/home/USERNAME:普通用户家目录

/root:管理员的家目录

/media:便携式移动设备挂载点

/mnt:临时文件系统挂载点

/dev:设备文件及特殊文件存储位置

/opt:第三方应用程序的安装位置

/srv:系统上运行的服务用到的数据

/tmp:临时文件存储位置

/usr: universal shared, read-only data

bin: 保证系统拥有完整功能而提供的应用程序sbin:

lib32位使用

lib64:只存在64位系统

include: C程序的头文件(header files)

share:结构化独立的数据,例如doc, man

local:第三方应用程序的安装位置

/var: variable data files

/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linuxselinux相关的安全策略等信息的存储位置

 

linux,由于使用了ext系列文件系统,使得linux系统对文件名的大小写敏感,"."开头的文件为隐藏文件 ls命令可以查看当前目录下的文件当使用 



 

文件:文件分为元数据和数据两部分组成

    元数据:指文件的属性信息.比如访问时间.修改时间.文件大小.属主数组等信息.并不包含文件内容,只是文件的标签

     数据:存放数据内容

  注意:元数据和数据并不在一起存放,当磁盘格式化时.有专门的空间存放文件的元数据(inode)和数据,待续.

文件命名规则:...       #PS:no zuo no die

 

linux文件类型:

-:普通文件

d: 目录文件

b: 块设备

c: 字符设备

l: 符号链接文件

p: 管道文件pipe

s: 套接字文件socke

文件的三个时间:(查看命令为 "stat")

access time:访问时间,atime,读取文件内容

modify time: 修改时间, mtime,改变文件内容(数据)

change time: 改变时间, ctime,元数据发生改变

[root@pxe22 ~]# stat sum.sh 
  File: "sum.sh"
  Size: 110       Blocks: 8          IO Block: 4096   普通文件
Device: 803h/2051dInode: 9837        Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-12 20:59:31.106005988 +0800
Modify: 2016-06-12 20:59:28.552004840 +0800
Change: 2016-06-12 20:59:28.562004984 +0800

绝对和相对路径名:



cd命令:更改当前工作目录

[root@pxe22 /]# cd                  #返回当前用户的家目录
[root@pxe22 ~]# cd ..               #返回上级目录
[root@pxe22 /]# cd ~                #返回当前用户的家目录
[root@pxe22 ~]# cd -                #返回上一个目录

pwd命令:用于查看当前工作目录,同时$PWD也是一个shell的环境变量

[root@pxe22 ~]# echo $PWD            #查看变量值(调用echo查看shell的变量值)
/root
[root@pxe22 ~]# pwd                  #查看当前工作目录(命令)
/root
[root@pxe22 ~]# echo $OLDPWD         #查看上一次的工作目录  "cd -"
/root
[root@pxe22 ~]# set                  #查看当前shell的所有变量和其他 PS:好尼玛长,以后再说.orz


touch命令:touch命令有两个功能,一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件

 

-a   --time=atime--time=access--time=use  只更改存取时间。

-c   --no-create  不建立任何文档。

-d  使用指定的日期时间,而非现在的时间。

-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   --time=mtime--time=modify  只更改变动时间。

-r  使用指定文件的时间属性而非当前时间

-t  使用指定的日期时间,而非现在的时间。

例:

[root@pxe22 ~]# touch f1                   #创建touch空文件
[root@pxe22 ~]# ll f1                     #查看touch文件的详细信息
-rw-r--r--. 1 root root 0 6月12 20:02 touch        #注意看修改时间
[root@pxe22 ~]# touch f1                   #修改文件的时间标签为当前时间(默认操作),若果文件不存在则创建.
[root@pxe22 ~]# ll f1                     #再看
-rw-r--r--. 1 root root 0 6月12 20:04 touch        #改了
[root@pxe22 ~]# rm touch                   #删除文件
rm:是否删除普通文件"touch"?y
[root@pxe22 ~]# touch -c touch    #正常情况下文件存在touch文件会修改时间,不存在则创建.此参数指明及时文件不存在也不创建.多用于脚本中
[root@pxe22 ~]# ll touch                     #ll为ls命令的别名alias ll="ls -l --color"
[root@pxe22 ~]# ll f*                        #查看f看头的所有文件*为通配符,待续
-rw-r--r--. 1 root root 0 6月12 20:20 f1            #两个文件的修改时间
-rw-r--r--. 1 root root 0 6月12 20:24 f2
[root@pxe22 ~]# touch -r f1 f2                  #按照f1的时间戳来修改f2的时间戳
[root@pxe22 ~]# ll f*
-rw-r--r--. 1 root root 0 6月12 20:20 f1
-rw-r--r--. 1 root root 0 6月12 20:20 f2
[root@pxe22 ~]# touch -t 201211142234.50 f1           #修改f1的时间戳为... 
[root@pxe22 ~]# ll f1
-rw-r--r--. 1 root root 0 11月14 2012 f1

cp命令:

用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

-f:强行复制文件或目录,不论目标文件或目录是否已存在;

-i:覆盖既有文件之前先询问用户;

-l:对源文件建立硬连接,而非复制文件;

-p:保留源文件或目录的属性;

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;

-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; 

-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; 

-b:覆盖已存在的文件目标前将目标文件备份;

有时间机会在写!!!!!

 

 

linux文件管理(结构)_windows_02


命令别名:

linux系统允许用户定义命令的别名,可以把一条命令定义成其他名称执行.

[root@pxe22 ~]# alias                #查看当前用户所有定义的别名
alias cp='cp -i'            #定义cp命令 默认加 –i选项
[root@pxe22 ~]# alias rm=’rm  -i’

注意:在命令行中定义的别名只对当前shell有效,退出当前登录定义就失效了,如果要定义每次都有效必须写入文件中,编辑的文件不会立即成效,必须让shell进程重新读取配置文件:

仅对当前有效的文件:   ~/.bashrc

对所有用户都有效的文件: /etc/bashrc

重新读取配置文件:

Source|.  ~/.bashrc|/etc/bashrc

撤销别名命令unalias 原理同上,当前shell进程撤销用.或者删除配置文件中的代码

如果别名同原命令同名,如果要执行原命令,可以使用:

“\CMD”‘CMD’ 外部命令则指定绝对路径


移动和重命名文件:mv 

常用参数:  -i 交互式 -f强制    (交互式:删除之前先询问用户是否确认修改.强制则不询问)

[root@pxe22~]# ls 1
1
[root@pxe22~]# mv 1 2     #将文件1重命名为文件2
[root@pxe22~]# ls
2


删除命令:rm   !!!生产环境中请务必确认操作!!! 或使用mv命令移动到其他目录

常用参数:

-i:交互式

-f:强制删除

-r:递归删除 如果指定的是一个目录则删除目录下所有子目录和文件


目录操作

创建目录:mkdir

-p:存在于不报错,且可自动穿件所需的各目录

-v:显示详细信息

-m:MODE:创建目录时直接指定权限

删除空目录;rmdir (rm -r也可删除目录)

-p:递归删除父空目录

-v:显示详细过程