【金沙js333娱乐场】Linux养成安顿I&II

一、分区和文件系统

Linux基础介绍【第四篇】,linux基础第四篇

金沙js333娱乐场 1

Version(common):Red Hat +CentOS

  1. 磁盘驱动器分成分区

  2. 使用文件系统格式化分区以便用户存储数据

Linux文件和目录的属性及权限

命令:

第一列:inode(index
node)索引节点编号,文件或目录在磁盘里的唯一标识,linux读取文件首先要读取到这个文件的索引节点(类似书的目录)。

第二列:

第1个字符:文件类型,-普通文件,d目录。(windows扩展名.jpg,.avi)

第2—10个字符rw-r—r–:文件权限(r(read)读取权限、w(write)写权限,x(execute)执行权限,-无权限)

第11个字符.:SELINUX相关。

第三列:文件硬链接数。文件硬链接是文件的又一个入口。硬链接inode一样。

第四列:文件的属主或用户。

第五列:文件对应的属组或用户组(团体)。

权限对应关系图:

金沙js333娱乐场 2

第六列:文件或目录的大小。

第七八九列:文件最近修改时间。

第十列:文件或目录名。

开源软件(并不一定免费):Apache(Web服务器软件)、Nginx(轻量级Web服务器)、MySQL、php、python、ruby、Sphinx、samba、mongoDB

默认文件系统:ext3(rhel5)、ext4(rhel6)、xfs(rhel7)

索引节点inode

Linux应用于企业服务器,嵌入式应用

其他常见文件系统包括:ext2和msdos(通常用于软盘)、iso9660(通常用于CD)、GFS和GFS2(通常用于SAN)

inode概述

硬盘要分区,然后格式化,创建文件系统。

inode,索引节点(index
node)。在每个linux存储设备或存储设备的分区(存储设备可以是硬盘、软盘、U盘等)被格式化为ext4文件系统后,一般都有两部分:第一部分是inode(很多个),第二部分是block(很多个)。

block是用来存储实际数据用的,例如:照片、视频等普通文件数据。inode就是用来存储这些数据属性信息的(也就是ls
-l的结果),inode包含的属性信息包括文件大小、宿主、归属的用户组、读写权限、文件类型,修改时间,还包含指向文件实体的指针的功能(inode节点—block的对应关系等),但是,inode唯独不包含文件名。

inode除了记录文件属性的信息外,还会为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,即可通过inode的值最快的找到相对应的文件实体。文件,inode、block之间的关系见下图:

金沙js333娱乐场 3

查看inode大小:

查看inode大小:

查看挂载的磁盘inode使用情况:

查看挂载的磁盘block使用情况:

有关inode的小结:

1、磁盘分区格式化ext4文件系统后会生成一定数量的inode和block。

2、inode的索引节点,作用是存放文件的属性信息以及作为文件的索引(指向文件的实体)。

3、ext3/ext4文件系统的block存放的是文件的实际内容。

4、inode是一块存储空间,c6非启动分区inode默认大小256字节,c5是128字节。

5、inode是一串数字,不同的文件对应的inode(一串数字)在文件系统里是唯一的。

6、inode号相同的文件,互为硬链接文件(文件的又一个入口)。

7、一个文件被创建后至少要占用一个inode和一个block。

8、block的大小一般有1k、2k、4k几种,其中引导分区等为1k,其他普通分区为4k(c6)。

9、如果一个文件很大,可能占多个block。

10、如果文件很小,至少占一个,并且剩余空间不能被其它文件使用。

11、inode大小和总量查看。

12、查看inode的总量和使用量命令df -i。

13、生成及指定inode大小mkfs.ext4 -b 2048 -I 256 /dev/sdb1。

block的知识:

1、磁盘读取数据是按block为单位读取的。

2、一个文件可能占用多个block。每读取一个block就会消耗一次磁盘I/O。

3、如果要提升磁盘I/O性能,那么就要尽可能一次性读取数据尽量的多。

4、一个block只能存放一个文件的内容,无论内容有多小。如果block
4k,那么存放1k的文件,剩余3k就浪费了。

5、block并非越大越好。block太大对于小文件存放就会浪费磁盘空间。例如:1000k的文件,block为4k,占用250个block,block为1k,占用1000个block。消耗I/O分别为250次和1000次。

6、大文件(大于16k)一般设置block大一点,小文件(小于1k)一般设置block小一点。

7、block太大例如4k,文件都是0.1k的,大量浪费磁盘空间。

8、block的设置也是格式化分区的时候,mkfs.ext4 -b 2048 -l 256 /dev/sdb。

9、文件较大时,block设置大一些会提升磁盘访问效率。

10、ext3/ext4文件一般设置为4k。

当前的生产环境一般设置为4k。特殊的业务,如视频可以加大block大小。

Linux和windows的不同:

二、索引节点

linux的文件类型和扩展名

1、严格区分大小写

2、Linux中所有内容以文件形式保存(一切皆文件),包括硬件。

3、Linux不靠扩展名区分文件类型(靠权限区分类型)

  1. 索引节点表含有ext2或ext3文件系统中全部文件的列表

  2. 索引节点(index
    node)是表格中的条目,含有文件信息(元数据),其中包括:

linux中的文件类型

在linux系统中,可以说一切皆文件。文件类型包含有普通文件、目录、字符设备文件、块设备文件、符号链接文件等。

普通文件(regular
file):第一个属性为”-“,按照文件内容,又大略可分为如下三种:

1、纯文本文件(ascii):文件内容可以直接读到数据,例如:字母、数字等。可以用cat命令读出文件内容。

2、二进制文件(binary):linux当中可执行文件(命令)就是属于这种格式。例如cat这个执行文件就是一个二进制文件。

3、数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件。例如:linux在用户登录时,都会将登录的数据记录在/var/log/wtmp那个文件内,该文件是一个数据文件。通过last命令读出来。cat命令会读出乱码。因为它属于一种特殊格式的文件。

文件类型小结:

1、- regular file普通文件

纯文本、二进制文件、数据文件。

2、d directory目录。

3、l link符号链接或者软链接文件。

快捷方式,指向文件的实体。

4、字符文件,块设备文件

c character串口设备、猫

b block硬盘、光驱。

5、.sock进程之间通信

s sock

6、管道文件

p

字符界面的优势:

文件类型(普通文件、目录)

linux下扩展名的作用

1、源码.tar、tar.gz、.tgz、.zip、.tar.bz表示压缩文件,创建命令tar、gzip、zip等。

2、.sh表示shell脚本文件,通过shell语言开发的程序。

3、.pl表示perl语言文件,通过perl语言开发的程序。

4、.py表示python语言文件,通过python语言开发的程序。

5、.html、.htm、.php、.jsp、.do表示网页语言的文件。

6、.conf表示系统服务的配置文件。

7、.rpm表示rpm安装包文件。

1、占用的系统资源更少

2、减少了出错,被攻击的可能性

文件权限

linux系统硬链接和软链接

在linux系统中,链接可分为两种,一种是硬链接(Hard
Link),另一种为软链接或符号链接(Symbolic Link or Soft link)。

创建硬链接:ln 源文件 目标文件

创建软链接:ln -s 源文件 目标文件(目标文件不能事先存在)

快捷键:

ctrl+L 清屏      ctrl+c 强制终止当前命令      ctrl+a
光标移动到命令行首 

ctrl+e 光标移动到命令行尾   ctrl+u 从光标所在位置删除到行首 

ctrl+z 把命令放入后台    ctrl+r 从历史命令中搜索

Tab键自动补全功能

链接数:与索引节点编号关联的文件名数

硬链接

硬链接是指通过索引节点(Inode)来进行链接。在linux(ex2、ex3、ex4)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(index
inode)简称inode,即在系统中文件的编号。

在linux文件系统中,多个文件名指向同一个索引节点(inode)是正常且允许的。这种情况的文件就称为硬链接。提示:硬链接文件就相当于文件的另外一个入口。硬链接的作用之一是允许一个文件拥有多个有效路径名(多个入口),这样用户存储中的快照功能就应用了这个原理,增加一个快照就多了一个硬链接。

为什么一个文件建立了硬链接就会防止数据误删呢?

因为文件系统(ex2)的原理是,只要文件的索引节点(inode
index)还有一个以上的硬链接。只删除其中一个硬链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其它的链接(即数据文件实体并未被删除),只有当文件的最后一个链接被删除后,此时如果有新数据要存储到硬盘上时或者系统通过类似fsck做磁盘检查的时候。被删除文件的数据块及目录的链接才会被释放,空间被新数据占用并覆盖。此时,数据就再也无法找回了。也就是说,在linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。

硬链接原理图:

金沙js333娱乐场 4

硬链接示意图:

金沙js333娱乐场 5

硬链接小结:

1、具有相同inode节点号的多个文件是互为硬链接文件。

2、删除硬链接文件或者删除源文件任意之一,文件实体并未被删除。

3、只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。

4、当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。

5、硬链接文件就是文件的又一个入口(相当于超市的前门、后门一样)。

6、可以通过给文件设置硬链接文件,来防止重要文件被误删。

7、通过执行命令”ln 源文件 硬链接文件”,即可完成创建硬链接。

8、硬链接文件可以用rm命令删除。

9、对于静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link),文件就被删除。i_link的查看方法(ls
-l结果的第三列)。

Linux常用命令:

管理员:root   主机名:localhost  
 ~:当前所在目录(家目录)  $、#:普通用户/超级用户提示符

命令格式    [选项]   [参数]

#命令1:ls [选项] [目录名]

-a 所有文件  -l 详细信息(ll) -d目录(pwd)-h易理解形式 -t
文件修改时间 -i 显示inode

列出文件类型 -F  递归目录和子目录中的文件 -R   大到小排序-S

-rw-r-xr–.  :(-文件类型,-文件、d目录、l软链接文件)

rw-:u所有者、r-x:g所属组、r–:o其他人    r读  w写  x执行

#命令2:【改变工作目录】cd [目录路径]  

cd ~ 进入当前用户的家目录  cd 进入当前用户的家目录  cd – 进入上次目录 
cd .. 进入上一级目录

【创建目录】mkdir [-p] 目录路径名   -p 递归创建,即创建多级目录

【删除目录】rmdir \[-p\] 目录路径名

mkdir -m 777                                               rm -rf /
 自杀命令(删除所有Linux文件

#命令3:【删除文件或目录】rm [参数选项] 文件名  或 目录名          
   rm -rf

-i 使系统在删除之前,显示删除确认询问

-f 直接删除文件或目录,不显示任何警告消息

-r 删除指定目录及其目录下的所有文件和子目录

与rmdir只删除空目录不同

在命令行中可包含一个或多个文件名(各文件间用空格分隔)以实现删除多个文件。

#命令4:【文件或目录的复制】cp [参数选项] 源文件 目标文件    -a
 相当于 -pdr

-i  :如果目标文件存在,覆盖目标文件时给出提示         -p:
连带文件属性复制

-r  :复制目录树                          
-d:若源文件是链接文件,则复制链接属性

#命令5:【移动或重命名目录或文件】mv [参数选项] 源目录或文件名   
目标目录或文件名

-i  当目标文件已存在时,显示提示信息

-b 
覆盖已存在的文件前,系统会自动创建原已存在文件的一个备份,备份文件名为原名称后附加一个~符号

Linux系统没有重命名命令,因此可利用该命令来间接实现

常见目录的作用:

1、根目录下的bin和sbin,usr目录下的bin和sbin,都是用来保存系统命令的。

(bin为普通用户命令)(sbin为超级用户使用的命令)

2、boot启动目录,启动相关文件。

3、dev设备文件保存目录。

4、etc配置文件保存目录。

5、home普通用户家目录、root 超级用户家目录。

6、lib系统库保存目录。

7、(三个空目录用于外接挂载):media(光盘)  
mnt(U盘、移动硬盘)   misc(磁带机)

8、proc和sys目录不能直接操作,这两个目录保存的是内存的挂载点,直接写入内存的。

9、tmp临时目录

10、var系统相关文档内容

#命令6:链接命令生成链接文件   ln  -s  [源文件]  [目标文件] 

-s  创建软链接

 硬链接特征: .hard

1、拥有相同的i节点和存储block块,可以看做是同一个文件。

2、可以通过i节点识别。

3、不能跨分区。

4、不能针对目录使用。

软链接特征: .soft

1、类似Windows快捷方式

2、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据

3、Irwxrwxrwx          I软链接

4、修改任意文件,另一个都改变

5、删除原文件,软链接不能使用

#命令7:locate  [文件名]          /var/lib/mlocate  
后台数据库中按文件名搜索,搜素速度更快

updatedb 更新数据库,需要root权限

/etc/updatedb.conf配置文件
 文件中四个配置:(locate、whereis和which遵循此规则)

1、PRUNE_BIND_MOUNTS = “yes”      #开启搜索限制

2、PRUNEFS =                                
 #搜索时,不搜索的文件系统

3、PRUNENAMES =                           #搜索时,不搜索的文件类型

4、PRUNEPATHS =                           #搜索时,不搜索的路径

#命令8:whereis [命令名] (只能查系统命令)  -b  只查找可执行文件  
   -m   只查找帮助文件

which  [文件名]  搜索命令所在路径及别名

*PATH环境变量:定义的是系统搜索命令的路径      # echo $PATH

#命令9:find 目录路径 搜索选项 动作选项(”XX*”)

-name:通过文件名查找文件             -iname:不区分大小写搜索文件名

-user:通过用户查找文件                  -nouser:查找没有所有者的文件

-type:类型选项

-size:通过文件大小查找文件   +20M、-20M(k小写,M大写) 

        -a   逻辑与       -o   逻辑或      

-inum:通过i节点查找文件

-atime:通过文件的最后访问日期查找文件        -ctime 改变文件属性
-mtime   修改文件内容

-mtime:通过文件的最后修改日期查找文件       +10 10 -10
//10天前,10天,10天内

-newer:查找比指定文件更新的文件

动作选项

-print:输入找到的每个文件路径名(默认)

-exec command {} \:对找到的文件执行command(如,-exec ls -lh {} \
)

-ok command {} \:执行command前确认

通配符:  *  匹配任意内容      ?  匹配任意一个字符        []
 匹配任意一个中括号内的字符

#find与grep命令的区别:内容匹配与包含匹配。

find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹
                  配。(搜索文件名称)

grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表
                达式是包含匹配。(搜索文件中的内容)

#命令10:grep [选项] 字符串 文件名 

-i   忽略大小写   -v   排除指定字符串(取反)

#命令11:帮助命令man。

#命令12:其他帮助命令

#命令13:压缩命令

常用压缩格式: .zip  .gz  .bz2  .tar.gz  .tar.bz2

zip格式压缩:zip 压缩文件名 源文件         zip -r 压缩文件名 源目录

zip格式解压缩:unzip 压缩文件

gz格式压缩:gzip 源文件 (不保留源文件)          gzip -c 源文件 >
压缩文件(源文件保留)

                   gzip -r  目录  
 (压缩目录下所有子文件,但是不能压缩目录)

bz2格式压缩:bzip2 源文件(不保留源文件)     bzip2 -k 源文件  
(保留源文件)

bz2格式解压缩:bzip2 -d 压缩文件 (-k保留源文件) bunzip2 压缩文件
(-k保留源文件)

#打包命令tar:tar -cvf 打包文件名 源文件  // -c:打包  -v:显示过程
 -f:指定打包后的文件名

解打包命令:tar -xvf 打包文件名       //-x:解打包

tar.gz压缩格式:tar -zcvf  压缩包名.tar.gz  源文件 

tar.gz解压缩格式:tar -zxvf  压缩包名.tar.gz        

tar.bz2压缩格式:tar -jcvf  压缩包名.tar.bz2
 源文件(多个源文件用空格隔开)

tar.bz2解压缩格式:tar -jxcf  压缩包名.tar.bz2 

tar -ztvf  压缩文件名   查看文件不解压

#命令14:shutdown [选项] 时间

-c:取消前一个关机命令     -h:关机     -r:重启                  
也可用reboot命令

cat  /etc/inittab        //修改系统默认运行级别             runlevel  
          //查询系统运行级别

退出登录:logout

#命令15:挂载命令 mount     //查看挂载状态

-a   依据配置文件/etc/fstab的内容,开机自动挂载

挂载命令格式:mount [-t 文件系统]  [-o 特殊选项]  设备文件名
 挂载点

卸载命令:umount 设备文件名  挂载点

//-t 文件系统:加入文件系统类型来指定挂载的类型,ext3、ext4、iso9660

//-o 特殊选项:可以指定挂载的额外选项

U盘挂载:fdisk -l          //查看U盘文件名

mount -t vfat /dev/sdb1 /mnt/usb/     (Linux默认不支持NTFS文件系统)
 
 挂载移动硬盘

#命令16:用户登录查看命令   w ; who

last:查询当前登录和过去登录的用户信息

lastlog:查询所有用户的最后一次登录时间

#命令17:alias 查看系统中生效的别名   //alias 别名=’原命令’
  如:alias vi=’vim’

vi ~/.bashrc  //写入环境变量配置文件       unalias 别名  //删除别名

命令生效顺序:

第一顺位执行用绝对路径或相对路径执行的命令。

第二顺位执行别名。

第三顺位执行Bsah的内部命令。

第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

#命令18:历史命令 history [选项] [历史命令保存文件]

-c:清空历史命令    
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history

使用上、下箭头调用以前的命令                  
 使用!!重复执行上一条命令

使用!n重复执行第n条历史命令                   使用!字串
重复执行最后一条以该字串开头的命令

#Bash的基本功能:输出重定向 (其实并没有卵用)

命令  > 文件  2>&1  //覆盖的方式     命令  >> 文件
 2>&1  //追加的方式    都放到同一个文件

命令 &> 文件  //覆盖的方式          命令 &>> 文件     
//追加的方式          都放到同一个文件

命令>>文件1 2>>文件2            
 //正确的追加在文件1中,错误的追加到文件2中

输入重定向:  wc [选项] [文件名]               (不常用)

-c:统计字节数           -w:统计单词数         -l:统计行数

命令<文件 把文件作为命令的输入

命令<<标识符

#管道符:

1、 命令1;命令2           //多个命令顺序执行

      命令1&&命令2        
//命令1正确执行,命令2才会执行;命令1执行不正确,命令2不会执行

      命令1||命令2        
 //当命令1执行不正确,命令2才会执行;命令1正确执行,命令2不会执行

      [命令] && echo yes || echo no

2、管道符:命令1 | 命令2              
//命令1的正确输出结果作为命令2的操作对象

  #小技巧:netstat -an | grep ESTABLISHED | wc -l          
 //查看服务器多少个人连接

  # ll -a /etc/ | less

 #通配符:      [^]:逻辑非           [-]:范围                  
   

?:匹配任意一个字符             *匹配任意多个字符               []
匹配括号中任意一个字符

Bash中其他特殊符号:

‘ ‘ :在单引号中的所有的特殊符号,都没有特殊含义。

” “:在双引号中特殊符号都没有特殊含义,”$”,”`”,”\”
分别代表“调用变量的值”、“引用命令”、“转义符”的特殊含义

“:反引号括起来的内容是系统命令,在Bash中会先执行,和$()的作用一样,推荐使用$()。

$():同反引号作用,推荐使用。反引号易看错。

#:在shell脚本中,#开头的行代表注释。

$:用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。

\:转义符,跟在\之后的特殊符号将失去含义,变为普通字符。

文件所有者的用户ID,以及相关联组的组ID号

软链接

软链接(Soft Link)也称为符号链接(Symbolic
Link)。linux里的软链接文件就类似于windows系统中的快捷方式。linux里的软链接文件实际上是一个特殊的文件,文件类型是i。软链接文件实际上可以理解为一个文本文件,这个文件中包含有软链接指向另一个源文件的位置信息内容,因此,通过访问这个”快捷方式”就可以迅速定位到软链接所指向的源文件实体。

软链接原理图:

金沙js333娱乐场 6

注意:创建软链接文件是需要存在的,要创建的软链接文件是不能存在的,要用ln命令创建。

软链接小结:

1、软链接类似windows的快捷方式(可以通过readlink查看其指向)。

2、软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。

3、删除源文件,软链接文件依然存在,但是无法访问指向的源文件路径内容了。

4、失效的时候一般是白字红底闪烁提示。

5、执行命令”ln -s 源文件
软链接文件”,即可完成创建软链接(目标不能存在)。

6、软链接和源文件是不同类型的文件,也是不同的文件,inode号不同。

7、删除软链接文件可以用rm命令。

目录创建软链接:

总结:当删除原始文件oldboyfile后,其硬链接文件oldboyfile_hard_link不受影响,对应的数据依然存在,但是其对应的软链接文件oldboyfile_soft_link失效了,找不到源文件了,此时,可以删除软链接文件重建,或者创建一个oldboyfile_hard_link的硬链接文件oldboyfile。

企业生产软链接作用:

1、编译软件时指定版本号(/application/apache2.2.23),访问时希望去掉版本号(/application/apache),可以设置软链接到编译的路径。所有程序都访问软链接文件(/application/apache),当软件升级高版本后,只需删除链接文件重建到高版本路径的软链接即可(/application/apache)。

2、企业代码发布时(php程序),需要把所有代码传到一个新发布的临时目录或者新的站点目录。发布时要么使用mv,也可以重建软链接指向到这个新的临时目录或者新的站点目录。

3、不方便目录移动,使用ln -s。

有关文件的链接小结

1、删除软链接oldboyfile_soft_link,对oldboyfile、oldboyfile_hard_link无影响;

全局结论:删除软链接文件对源文件及硬链接文件无任何影响。

2、删除硬链接oldboyfile_hard_link,对oldboyfile、oldboyfile_soft_link都无影响;

全局结论:删除硬链接文件对源文件及软链接文件无任何影响。

3、删除源文件oldboyfile,对硬链接oldboyfile_hard_link没有影响,但是会导致软链接oldboyfile_soft_link失效;

全局结论:删除源文件,对硬链接文件没有影响,但是会导致软链接文件失效,呈现红底白字闪烁。

4、同时删除源文件oldboyfile,硬链接文件oldboyfile_hard_link,整个文件会真正的被删除。

5、很多硬件设备中的快照功能,就是利用了硬链接的原理。

6、源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件的多个入口。

7、源文件和软链接文件的索引节点号不同,是不同的文件,软链接相当于源文件的快捷方式,含有源文件的位置指向。

有关目录链接小结:

1、对于目录,不可以创建硬链接,但可以创建软链接。

2、对于目录的软链接是生产场景运维中常用的技巧。

3、目录的硬链接不能跨文件系统(从硬链接原理可以理解)。

4、每个目录下面都有一个硬链接”.”号,和对应上级目录的硬链接”..”。

5、在父目录里创建一个子目录,父目录的连接数加1(子目录里都有..来指向父目录)。但是在父目录里创建文件,父目录的链接数不会增加。

养成计划II

VI编辑器→VIM

支持多级撤销          可以跨平台运行           支持语法高亮          
支持图形界面

三种模式:命令模式,输入模式,底行模式。

vim的命令格式:vim + abc     //定位光标到最后一行       vim +3 abc  
 //定位光标到第三行

vim +/XXX abc      //XXX为一个字符串,定位到第一个出现的行

底行模式常用指令: -w:保存    -q:退出   -:ls  
列出当前编辑器打开的所有文件

-:n 下一个文件   -:N  前一个文件     -/xxx  向后搜索  
 -?xxx向前搜索

– h j k l  光标上下左右       – ctrl+ f b d u 翻页(半页)

命令模式常用指令: -dd 删除光标所在的行  -o
在光标所在的行的下方插入一行并切换到输入模式

 – yy 复制光标所在的行      – p 在光标所在行下方粘贴   – P(大写)
在光标所在行上方粘贴

金沙js333娱乐场 7

vim指令图

#磁盘管理

df:查看磁盘分区的使用状况

-l:仅显示本地磁盘(默认)              
-a:显示所有文件系统的磁盘使用情况,包含比如/proc/

-h:以1024进制计算最合适的单位显示磁盘容量       -H:以1000进制计算

-T:显示磁盘分区类型            
-t:显示指定类型文件系统的磁盘分区(后接文件类型0)

-x:不显示指定类型文件系统的磁盘分区

du:统计磁盘上文件的大小

-b:以byte为单位  -k:以kb为单位  -m:以mb为单位   (-h -H同上)
 -s:指定统计目标

fdisk -l:查看分区状态       fdisk
/dev/sdb:sdb进入分区模式,按照提示选择

硬盘分区要点:

第一:主分区和扩展分区总数不能超过4个

第二:扩展分区最多只能有一个

第三:扩展分区不能直接存储数据,必须在其中建立逻辑分区再存储数据

MBR分区模式:主分区不超4个,单个分区容量最大2TB

GPT分区模式:主分区个数(128),单个分区最大容量(18EB),“几乎”没有限制。

1EB=1024PB;1PB=1024TB;1TB=1024GB;

mkfs  格式化文件系统

mkfs.ext3 /dev/sda  或mkfs -t ext3 /dev/sda

swap交换分区:swapon /dev/sdb  //启用    swapoff /dev/sdb //停止
free:查看加载状态    

1、先建立一个普通的Linux分区。2、修改分区类型的16进制编码。

3、格式化交换分区。   4、启用交换分区。 

用户和用户组:

用户:使用操作系统的人。

用户组:具有相同系统权限的一组用户。

/etc/group:存储当前系统中所有用户组的信息

group :        X         :123   :abc,def,xyz

组名称:组密码占位符:组编号:组中用户名列表

/etc/gshadow:存储当前系统中用户组的密码信息

group:    *    :             :abc,def,xyz

组名称:组密码:组管理者:组中用户名列表

/etc/passwd:存储当前系统中所有用户的信息

user   :      x        :   123   :     456     :     xxxxx  
 :/home/user:/bin/bash

用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型

/etc/shadow :存储当前系统中所有用户的密码信息

user  :vf;Zu8sdf….(单向加密):::::

用户名:密码   :::::

用户组基本命令:

创建用户组:groupadd  -g [组编号] [组名]         更改组名:
groupmod  -n   [新组名]  [原组名]

更改组编号:groupmod -g [编号] [组名]          
删除用户组:groupdel [组名称] (要先删用户)

向组中添加用户:useradd -g [用户组] [用户]     
//系统默认在/home下创建与用户名相同的目录

指定用户目录:useradd -d /home/xxx [用户名]
//系统默认创建与用户名相同的用户组

修改用户备注:usermod -c [备注内容] [用户名]  修改用户名:usermod
-l [新用户名] [原用户名]

更改用户组:usermod -g [新用户组] [用户名]  
 删除用户名及个人文件:userdel -r [用户名]  

禁止除了root用户以外的用户登录:touch /etc/nologin    //空文件即可

用户组进阶命令:

锁定账户:passwd -l [用户名]       解锁账户:passwd -u [用户名]

清除账户密码:passwd -d [用户名]

一个用户可以属于多个用户组,一个主要组,其余附属组。

添加一个附属组:gpasswd -a [用户名] [附属组名称]          
 //添加多个附属组,用逗号隔开。

切换到附属组:newgrp [附属组名称]   //想哪个账号切换,登录哪个账号。

删除附属组:gpasswd -d  [用户名] [附属组名称]

同时添加多个组useradd -g [主要组名称] -G
[附属组名称1],[附属组名称2]….

添加用户组密码:gpasswd [用户组]

切换用户:su username

查看系统版本信息:

cat /etc/issue

Linux分区

主分区:最多只能有4个

扩展分区:对一块硬盘最多只能有一个

                 主分区加上扩展分区最多有4个

                 不能写入数据,只能包含逻辑分区

逻辑分区

格式化:写入文件系统。(更好地放入数据)

时间戳,其中包括上次访问时间、上次修改时间、以及上次索引节点更改时间

linux下文件删除原理

硬盘上的数据位置

删除原理描述

linux的文件名是存在父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件,实际上并不是清楚inode节点和block的数据。只是在这个文件的父目录里面的block中,删除这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的inode节点,当没有文件名指向这个inode节点的时候,会同时释放inode节点和存放这个文件的数据块,并更新inode
MAP和block MAP今后让这些位置可以用于放置其他文件数据。

金沙js333娱乐场 ,有关文件的其他元数据

linux下文件删除的原理

金沙js333娱乐场 8

文件删除控制的变量:

i_link:文件硬链接数量

i_count:引用计数(有一个程序使用i_count加1)

文件删除的条件:

i_link=0 and i_count=0

说明:以上图形i_link=2和i_count=1。

linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器i_link和i_count。

i_count的意义是当前文件使用者(或被调用)的数量,i_link是磁盘的引用计数器。当一个文件被某一个进程引用时,对应i_count数就会增加;当创建文件的硬链接的时候,对应i_link数就会增加。

对于删除命令rm而言,实际就是减少磁盘引用计数i_link。这里就会有一个问题,如果一个文件正在被某个进程调用,而用户却执行rm操作把文件删除了,那么会出现什么结果呢?

当用户执行rm操作删除文件后,再执行ls或者其他文件管理命令,无法再找到这个文件了,但是调用这个删除的文件的进程却在继续正常执行,依然能够从文件中正确的读取及写入内容。这又是为什么呢?
这是因为rm操作只是将文件的i_link减少了,如果没有其它的链接i_link就为0了;但由于该文件依然被进程引用。因此,此文件对应的i_count并不为0,所以即使执行rm操作,但系统并没有真正删除这个文件,当只有i_link和i_count都为0的时候,这个文件才会真正被删除。也就是说,还需要解除该进程对该文件的调用才行。

i_link及i_count是文件删除的真实条件,但是当文件没有被调用时,执行了rm操作删除文件后是否还可以找回被删除的文件呢?

rm操作只是将文件的i_link减少了,或者说置0了,实际就是将文件名到inode的链接删除了,此时,并没有删除文件的实体即(block数据块),此时,如果及时停止机器工作,数据是可以找回的,如果此时继续写入数据,那么新数据就可能被分配到被删除的数据的block数据块,此时,文件就会真正的回收了。

实验:inode耗尽。

查看新增的磁盘:

格式化:

取消自动检查:

挂载:

查看inode:

创建26220个文件:

上述可以看出inode耗尽,不能继续创建文件。

磁盘空间未满:

inode耗尽:

删除:

查看inode:

总结:ln命令不能对目录创建硬链接,但可以对目录创建软链接,对于目录的软链接也是生产场景运维中常用的功能。

三、目录

linux系统用户和用户组

linux用户划分:

1、超级用户

root uid=0 gid=0。

2、虚拟用户

存在linux中没有实际意义,满足文件或者程序运行的需要而创建的。不能登录,不能使用,UID、GID范围1——499
。在/etc/passwd中末尾以nologin结尾。

3、普通用户

管理员root创建的用户,UID、GID从500开始。

linux系统下的账户文件主要有/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件

passwd文件中一行的各个字段简述

账号名称:账号密码:账号UID:账号组GID:用户说明:用户家目录:shell解释器

shadow文件中一行的各个字段详细说明

字段名称

注释说明

账号名称

用户的账号名称

账号密码

用户密码,这是加密过的口令

最近更改密码的时间

从1970年1月1日起,到用户最近一次更改口令的天数

禁止修改密码的天数

从1970年1月1日起,到用户可以更改密码的天数

用户必须更改口令的天数

从1970年1月1日起,到用户必须更改密码的天数

警告更改密码的期限

在用户密码过期前多少天提醒用户更改密码

不活动时间

在用户密码过期之后到禁用账号的天数

失效时间

从1970年1月1日起,到用户被禁用的天数(useradd -f)

标志

保留

 

ls -l:显示的时间是修改时间。

文件的时间:

Access: 2016-12-11 20:05:12.647999994 +0800(访问时间)find -atime

Modify: 2016-12-10 16:02:10.162999297
+0800(修改时间,内容发生变化)find -mtime

Change: 2016-12-10 16:02:10.162999297
+0800(变化时间,包含Modify、权限、属主、用户组)find -ctime

stat命令查看时间等的属性

  1. 计算机对文件的引用就是 索引节点编号

  2. 人工引用文件的方式是通过文件名

linux正则表达式

使用正则表达式注意事项:

1、linux正则一般以行为单位匹配处理的。

2、注意字符集,export LC_ALL=C。

基础正则表达式:元字符意义BRE(basic regular expression)。

1、^word搜索以word开头的。vi ^一行的开头。

2、word$搜索以word结尾的。vi $一行的结尾。

3、^$表示空行。

4、.代表且只能代表任意一个字符。

5、\例如\.只代表点本身,转义符号,让有着特殊身份意义的字符脱掉马甲还原原型。

6、*例如o*重复0个或多个前面的一个字符。

7、.*匹配所有字符。^.*以任意多个字符开头。

8、[abc]匹配字符集合内的任意一个字符[a-zA-Z],[0-9]。

9、[^abc]匹配不包含^后的任意一个字符。

10、a\{n,m\}重复n到m次前面一个重复的字符。如果用egrep、grep -E或sed
-r可以去掉斜线。

\{n,\}重复至少n次前面一个重复的字符。

\{,m\}无效

\{n\}重复n次前面一个重复的字符。

扩展的正则表达式:

1、+重复一个或一个以上前面的字符。

2、?重复0或一个0前面的字符。

3、|用或的方式查找多个符合的字符串。

4、()找出”用户组”字符串。

设置别名过滤的内容显示颜色:

过滤以m开头

过滤以m结尾

过滤空行显示

过滤空行显示行号

匹配以.结尾

精确匹配-o

grep一般常用参数:

-a:在二进制文件中以文本文件的方式搜索数据。

-c:计算找到”搜索字符串”的次数。

-o:仅显示出匹配regexp的内容(用于统计出现在文中的次数)。

-i:忽略大小写的不同,所有大小写视为相同。

-n:在行首显示行号。

-v:反向选择,即显示没有”搜索字符串”的内容的那一行。

-E:扩展的grep,及egrep。

–color=auto:以特定颜色高亮显示匹配关键字。

-A:After的意思,显示匹配字符串及其后n行的数据。

-B:Before的意思,显示匹配字符串及其前n行的数据。

-C:显示匹配字符串及其前后各num行。

取出ip地址:

方法一:

方法二:

取出HWaddr:

方法一:

方法二:

stat /etc/hosts中取出0644:

Linux文件和目录的属性及权限 命令: 第一列:inode(index
node)索引节点编号,文件或目录在磁盘…

3.
目录是人们用于引用文件的文件名filename和计算机用于引用文件的索引节点编号index
node number间的映射

ls -i命令可以显示索引节点编号

[root@desktop24 ~]# ls -li

62453 -rw——-. 1 root root    4250 Jul  5 01:29 anaconda-ks.cfg

62887 -rw-r–r–. 1 root root 9908224 Jul  5 01:32 boot.iso

四、cp和索引节点

  1. cp命令将:

分配未使用的索引节点编号,在索引节点表中添加一条新目录

在目录中创建一条目录项,将某一名称与此索引节点编号相关联

将数据复制到新文件

五、mv与索引节点

  1. 如果mv命令的目标是与来源位于相同的文件系统,那么mv命令将:

以新文件名创建新目录条目

删除使用旧文件名的旧目录条目

2.
不会影响索引节点表(时间戳除外)或磁盘上的数据位置:不会移动任何数据!

  1. 如果目标是其他文件系统,mv的作用是复制并删除

六、rm和索引节点

  1. rm命令将:

减少链接数,以此释放可重复使用的索引节点编号

把数据块标识在空闲列表中

删除目录条目

发表评论

电子邮件地址不会被公开。 必填项已用*标注