权当开篇——Linux学习之路(一)

以第一篇博文大概总结一下通过预习第三期课程学到的Linux基本知识,但是都放在一块的话估计字数会太多,感觉差不多了就重开一篇。总结之前先来扯扯淡。作为一个资深的细桶假狗屎,不懂点基本的Linux操作似乎有点说不过去,开发完成以后不能独立操作服务器更新版本什么的简直naive。最重要的是,我还听说了一个有点玄乎的结论,那就是有博客并且坚持写博客的假狗屎||攻城狮||程序猿要比没有博客或者不能坚持写博客的工资水平要高出不少(多希望在这不不是博客而是微博,么么哒)。好了,淡也扯了,言归正传,走起~

1.系统分区一般规则:

/boot   200M

swap   实际内存的2倍,但不超过8G

/     剩余全部空间

当然,这只是最基本的一种分区策略,实际应用中可以分出/data,专门存放各种数据,或者给用户家目录单独分区存放用户数据,具体情况根据实际需求进行调整。

可以通过以下命令来查看分区情况:

[[email protected]~ ]# fdisk -l

2.链接文件--硬链接和软连接:

[[email protected] ~]# ln 被链接文件 链接文件     --> 硬链接

[[email protected] ~]# ln -s 被链接文件 链接文件   --> 软链接

注:如果链接文件不存在,自动生成;如果链接文件存在,提示链接失败,解决办法是使用 -f 参数,强制链接,覆盖可能存在的链接文件。

★两者区别:

(1)硬链接后链接文件和被链接文件的 inode 相同,软连接则不同。

(2)硬链接后,链接文件为普通文件(即通过 stat, file, ll 等命令查看链接文件时为regular file),而软链接后,链接文件为symbolic link类型,ll时也会指向其链接的文件。

(3)硬链接后,删除被链接文件,链接文件照常使用。软连接后,删除被链接文件,链接文件不能使用。

(4)硬链接只能用于链接普通文件,链接目录文件时报错:

ln: `link/‘: hard link not allowed for directory

软连接没有这种限制,可以用来链接目录。这里还要特别说明一点,将目录做软连接后,删除时需要注意,比如:

[[email protected] learn]# ln -s ./link/ test   //这里不能是test/这种目录形式

[[email protected] learn]# rm -rf test       //这里不能是test/这种目录形式

如果将以上的test写为test/这种形式会报错。原因大概是因为链接文件test的文件类型是symbolic link,而不是directory。

(5)硬链接不能跨分区链接,比如想要将/boot分区下的文件链接到/根分区下,会报错:

ln: creating hard link `/test‘ => `/boot/test‘: Invalid cross-device link

软连接无此限制,可以跨分区链接。

注:可以简单的将硬链接理解为一种cp,只是该cp会将inode的值一并cp过来。同时使用这种cp会增加链接文件和被链接文件的节点数(即通过 ll 命令查看时的第二列数值)。

3.Linux系统分层及RAID:

用户

文件系统

RAID

物理硬盘1 物理硬盘2 ……

其中,RAID分为以下几种,作用不同;

RAID 0 -- 增加写入速度

RAID 1 -- 镜像,为了安全

RAID 3 -- 最少需要三块物理硬盘,是RAID 5的过度版本

RAID 5 -- 最少需要三块物理硬盘

在做完RAID后,几块物理硬盘看起来就是一块硬盘一样

RAID 0 假如有两块100G的物理硬盘做成,则该RAID 0可使用空间为200G

RAID 1 假如有两块100G的物理硬盘做成,则该RAID 1可使用空间为100G(镜像)

RAID 5 假如有三块100G的物理硬盘做成,则该RAID 5可使用空间为200G(一块物理硬盘拿出去做奇偶校验)

注:这里说的RAID是物理RAID,而非系统在分区时的逻辑RAID。逻辑RAID不推荐使用,物理RAID一般由硬件提供商做好,这一块知识了解一下就行。

4.Linux系统添加硬盘及使用硬盘:

为Linux虚拟机添加新硬盘时:

(1)硬盘类型选择IDE,则Linux中路径为/dev/hda(hdb, hdc...顺序排列)

(2)硬盘类型选择SCSI,则Linux中路径为/dev/sda(sdb, sdc...顺序排列)

注:经过实验发现,CentOS 6.6中不管是IDE硬盘还是SSCI硬盘,在Linux中都是/dev/sd*这种形式,而非视频中所说的IDE为/dev/hd*,可能是因为在CentOS6.6或者更早的版本中已经取消了SSCI和IDE在命名上的区别。在为虚拟机添加新的硬盘后,SSCI排在IDE前面,如,开始时有两块IDE硬盘,分别为/dev/sda和/dev/sdb,之后添加一块SSCI硬盘,此时三块硬盘为/dev/sda(SSCI),/dev/sdb(IDE), /dev/sdc(IDE)。

使用新添加的硬盘(又称裸设备)需要三步:分区 --> 格式化 --> 挂载

(1)分区:

[[email protected] ~]# fdisk /dev/sdb

根据提示信息进行分区, n --> 新建

p --> 主分区   83 Linux

e --> 扩展分区  5 Extended

p + e 个数 <= 4, 编号从1-4

扩展分区可以再分区,分为l --> 逻辑分区 83 Linux,逻辑分区编号从5-more。分区完成后,在Command中,p查看该硬盘分区情况,q不保存退出,w保存退出。

(2)格式化:

[[email protected] ~]# mkfs.ext4 /dev/sdb1 //将/dev/sdb硬盘下的/sdb1分区格式化为ext4文件系统,文件系统有ext1,ext2,ext3,ext4版本,版本越高越稳定,现在一般使用的文件系统都为ext4。

(3)挂载:

[[email protected] ~]# mkdir /data

[[email protected] ~]# mount /dev/sdb1 /data

即可完成挂载,通过

[[email protected] ~]# df -hT

命令可以看到分区的挂载信息和使用情况,此时/dev/sdb1分区已挂载在/data目录下。注意,这样挂载只是暂时的,系统重启后会失效。解决方法有两种。第一种:

[[email protected] ~]# vim /etc/fstab

修改该文件,添加新的一行:

/dev/sdb1  /data  ext4  defaults  0 0

保存退出即可。第二种:

[[email protected] ~]# vim /etc/rc.d/rc.local  //或者 vim /etc/rc.local,这两个文件为软连接,/etc/rc.local为链接文件,/etc/rc.d/rc.local为被链接文件。添加新的一行:

mount /dev/sdb1 /data

保存退出即可。补充一点,/etc/rc.local文件是系统启动时最后执行的文件,想让系统启动后帮你做的事都可以写到该文件中。另外,

[[email protected] ~]# fdisk -l

[[email protected] ~]# df -Th

两条命令都可以查看分区,其中,fdisk -l查看的主要是分区表信息,而df -Th侧重的是已经格式化并挂载后的文件系统,包括容量大小、使用情况、挂载点及文件系统类型等。(df -Th查看不到swap交换分区,查看交换分区需要使用fdisk -l,如下:

Device     Boot   Start  End   Blocks   ID  System

/dev/sda2        26    287   2097152  82  Linux swap / Solaris

5.强大的find命令:

   在介绍 find 命令之前先来看一看 stat 命令:

[[email protected] ~]# stat /tmp/learn/test.log

该命令用来查看文件的详细信息(不特别说明的话,Linux中的文件都是指广义上的文件,既包括普通文件,又包括目录文件),包括文件类型、inode值、权限、所属用户、Uid、所属用户组、Gid、文件大小、最后访问时间atime,最后修改时间mtime,最后改变时间ctime等 ,这三个时间经常配合find命令对文件进行操作,那么什么是atime,mtime和ctime,又有什么命令会影响他们呢?

atime --> 访问时间  vi vim cat head tail more less

mtime --> 修改时间  echo vi、vim(保存退出操作,即便没有修改任何内容)

ctime --> 改变时间  echo vi、vim(同上) chmod chown chgrp

这里注意,使用echo进行输出重定向或者追加内容时,并没有访问文件,所以不会改变atime。你是否想到,ls -l 命令查看文件详情时也有一个时间,那里所列出的时间是mtime。

说完了stat 命令和三个时间,该find 命令登场了,不用过多介绍,来看几个例子先:

(1)请查找/目录下文件名为test.log的文件:

[[email protected] ~]# find / -name test.log

(2)请查找/tmp目录下inode号为261132的文件,并将其删除:

[[email protected] ~]# find /tmp -inum 261132 -exec rm -rf {} \;

(3)请查找/root目录下三天前修改的所有文件,且文件名为test的文件:

[[email protected] ~]# find /root -mtime +3 -name test   //或者,更宽泛一点

[[email protected] ~]# find /root -mtime +3 | grep test

(4)请查找/var目录下10分钟内被访问过的文件:

[[email protected] ~]# find /var -amin -10

(5)请查找/dev目录下文件类型为块设备的文件:

[[email protected] ~]# find /dev -type b  //f,d,b,s,c,p,l,D <-- 文件类型

上面几个例子列出来find命令比较常用的一些查询条件,比如文件名称,inode值,atime,amin,ctime,cmin,mtime,mmin,文件类型,这些条件能够组合使用,对查询结果进行操作使用-exec,格式为-exec 操作命令 {} \; 。

第一篇写了不少了,不过也只总结了一小部分,下一遍咱们继续总结,see you~~~

时间: 2024-12-17 15:06:06

权当开篇——Linux学习之路(一)的相关文章

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

linux学习之路之LVM的快照功能

我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照. 所谓系统快照就是将某一时刻文件系统中的信息记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里.而其他没有改变的数据,快照区和文件系统共享.所以刚建立快照时快照区内容和文件系统的内容一样. 由于我们知道只有改变的数据才会移动到快照区,因此快照区中保存的内容比较少. 快照区的原理图如下: 那么如何建立快照区呢? 使用lvcreate -s命令来创建快

linux学习之路之磁盘管理和文件系统三

ext3文件系统和ext2文件系统的区别? 在某些时候,某个用户在linux系统上写入数据,这时系统正好断电或者系统核心出现错误,写入的数据仅有inode table和datablock而已,可能会导致之前写过的数据没有保存在磁盘上.而当系统重启后,系统可能会对没有保存的数据进行数据恢复.但是,由于系统并不知道是哪个文件不完整,因此会遍历整个文件系统中inode,来查看block是否完整.不过,当某个文件的数据太大时,数据的恢复时间可能会比较长,而这对于服务器来说是不利的.所以在这种情况下,也就

linux学习之路之vim编辑器的使用

本章将介绍vim编辑器的使用 vim编辑器是vi编辑器的增强版 vim是一种全屏的编辑器,是一种模式化的编辑器,之所以称为模式化的编辑器,因为vim有多种模式. 接下来将介绍vim主要的三种模式: 编辑模式(也叫命令模式):在该模式下你可以完成字符串跳转,字符串删除,翻屏操作等操作 输入模式:在该模式下输入的任何字符都会保存在该文件中,作为文件的一部分 末行模式:在该模式下,可以实现字符串搜索,字符串替换等操作 vim编辑器的三种模式之间的相互转换 模式转换: 编辑模式-->输入模式 i:在当前

linux学习之路之文本的查找---find命令的使用

文本的查找可以使用两种方式来实现,即使用locate命令来查找和find命令来查找 那么这两种方式有什么区别呢? locate:是一种非实时查找,所谓非实时查找就是查找的不够实际,不够精确.因为locate查找是在 系统文件数据库中进行的,而数据库默认是一天更新一次,也就是说你查找的文件再数据库 更新之前查找的话,有可能找不到文件,因为那时数据库还没有去读取硬盘上的文件,所以 有些文件没有写入到数据库中. 可以收到更新数据库,使用命令updatedb 因为不上在硬盘上读取,因此速度快 locat

linux学习之路之sed命令使用

本章主要介绍sed的命令使用 sed(Stream Editor)是一种流编辑器,或者叫做行编辑器,以行为单位进行编辑处理,而后续会介绍的vi编辑器是一种全屏编辑器. sed的工作原理: 逐行读取文件中的每一行,并将其放在内存空间中,在对内存空间中的数据进行处理,将处理后的结果打印到屏幕上.而这种内存空间也叫做模式空间. 所谓模式空间:就是将放在内存空间的数据根据模式来匹配,匹配成功的数据进行相应的编辑处理,将处理后的数据打印到屏幕上去. 说明:sed命令默认将文件中所有的行打印到屏幕上去. s

linux学习之路之目录管理和文件管理

我们知道linux文件系统是一个树型结构,在最上层是'/'目录,根目录的下面就是其他目录,而这些目录下面又可以有多个子目录,这样一层一层的就形成一个树型结构图.那是不是我们查找某一个文件必须要从根目录开始往下查找的呢?当然不是,在这里我将会介绍两种路径方式:相对路径和绝对路径. 什么是相对路径和绝对路径? 绝对路径:就是从'/'根目录开始往下一级一级的查找,直到目的所经过的线路. 相对路径:就是相对当前位置而言来找到目的地所经过的线路. 目录的创建 mkdir:用于创建目录 语法格式:mkdir

linux学习之路及文本查看和文本处理命令

这一篇主要介绍几个常用的文本查看命令和文本处理命令. 首先介绍文本查看命令 cat:用于连接文件并显示 说明:当只有一个文件时,则用于查看文件内容:当有多个文件时,cat命令会将这些文件连接起来,在一起显示出来 语法格式:cat [option] FILE... -n:显示内容的时候把行号显示出来 -E:显示每一行的结束符$符(默认不显示) tac:也是用于显示文件内容,只不过他是将文件的内容倒过来显示,与cat相反 -n:显示行号 -E:显示每一行结尾的结束符$ 分屏操作命令 more与les

linux学习之路之创建私钥CA及使用CA为客户端颁发证书

创建CA(Certificate Authority) CA的储存格式主要有2种:x509和pkcs12 x509是目前最主流的CA储存格式,在x509格式的证书中,储存的内容主要有: 证书的公钥和使用期限 证书的合法拥有着 证书该如何被使用 CA的信息 CA签名的校验码 默认情况下,TCP/IP模型和OSI模型,并没有实现数据的加密,而要实现数据的加密需要使用TLS/SSL协议,TLS和SSL在有些Linux版本上实现的机制是相同的,因此在这里我们之介绍SSL协议 SSL(Secure Soc