Linux笔记
Linux笔记
最近春节,有时间再家里好好读读书,之前对linux的操作没有很系统地了解,都是半吊子,所以想把自己看的资料好好整理整理,跟大家分享,顺便帮助自己梳理思路
用户和用户管理篇
<!--[if !supportLists]-->1. <!--[endif]-->用户账号:根用户,虚拟用户,普通用户
<!--[if !supportLists]-->2. <!--[endif]-->用户UID:用户的UID为0,普通用户在500~60000之间;
<!--[if !supportLists]-->3. <!--[endif]-->用户组:具有相同特征的用户被分到一个用户组里,一个用户可以属于多个组;用户组里的成员有相同的权限,比如查看/修改/删除某个文件或者执行某个命令——通过把用户都定义到一个用户组,然后修改文件或者目录的权限,让用户组具有一定的操作权限。
<!--[if !supportLists]-->4. <!--[endif]-->passwd和shadow两个文件的作用:passwd文件:/etc/passwd;作用:存放着用户相关信息;shadow文件位置:/etc/passwd;作用:这个文件只能超级用户才能访问,将用户的密码加密后存放在此文件,因为passwd普通用户都可以访问,密码存放在此处有可能会被暴力破解;
<!--[if !supportLists]-->5. <!--[endif]-->用户组文件:group和gshadow,两个文件的作用与passwd和shadow相似,前者记录用户组信息,后者记录用户组口令
磁盘分区管理
<!--[if !supportLists]-->1. <!--[endif]-->所谓分区就是在磁盘上建立的用于存储数据和文件的单独区域部分;一个磁盘可以有四个主分区,如果算上扩展分区会有三个,一个主分区变成扩展分区,扩展分区可以细分,主分区不能再细分了
<!--[if !supportLists]-->2. <!--[endif]-->Swap分区:是一个非常特殊的分区,是整个操作系统的根目录:用于保存物理内存上暂时不用的数据,需要的时候才调入内存,也可以将其理解为和windows下虚拟内存一样的数据;关于大小:内存2G以下一般为内存的2到2.5倍,2G以上与内存大小一致即可。
<!--[if !supportLists]-->3. <!--[endif]-->Linux分区:在/dev目录下,格式为:hdxy,x为(a,b,c,d,……)代表磁盘,第一块为a,第二块为b,依次类推,y为数字,代表分区;
<!--[if !supportLists]-->4. <!--[endif]-->Fdisk进入交互模式管理分区:
<!--[if !supportLists]-->a) <!--[endif]-->首先输入fdisk –l
<!--[if !supportLists]-->b) <!--[endif]-->接着输入 fdisk /dev/sda1进入交互模式(如图)
<!--[endif]-->
<!--[if !supportLists]-->c) <!--[endif]-->进入交互模式后即可对分区进行增(n)删(d)改(t)查(p),q命令推出交互模式。
<!--[if !supportLists]-->5. <!--[endif]-->parted进入交互模式管理分区:
<!--[if !supportLists]-->a) <!--[endif]-->查看parted版本:parted -v
<!--[if !supportLists]-->b) <!--[endif]-->进入交互模式的方法跟fdisk类似:直接输入parted即可;
<!--[if !supportLists]-->c) <!--[endif]-->Parted也是一个分区软件,其大致功能和fdisk一样,用法稍微有点不同,具体用法可以输入help获得
<!--[if !supportLists]-->6. <!--[endif]-->LVM逻辑卷管理:
<!--[if !supportLists]-->a) <!--[endif]-->逻辑卷可以方便系统管理员调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名管理和分配。
<!--[if !supportLists]-->b) <!--[endif]-->物理卷:一个物理卷就是一个磁盘分区,或者在逻辑上与磁盘分区等价。
<!--[if !supportLists]-->c) <!--[endif]-->一个物理卷被划分成若干个PE(基本单元),具有的唯一编号是可以被寻址的最小单元。大小可以更改,但是默认是4MB。
<!--[if !supportLists]-->d) <!--[endif]-->卷组管理:系统管理员可以将多个物理卷组成一个卷组,在一个卷组上可以自由分配逻辑卷的大小。
<!--[if !supportLists]-->e) <!--[endif]-->在卷组上可以进行的操作大致分为:添加卷组/扩展卷组容量/查看卷组/从卷组中删除物理卷/删除卷组
<!--[if !supportLists]-->f) <!--[endif]-->逻辑卷:添加逻辑卷,更改逻辑卷大小,查看逻辑卷信息,删除逻辑卷
<!--[if !supportLists]-->g) <!--[endif]-->常见问题:如何添加一个磁盘;如何创建主分区;如何扩展分区;如何创建逻辑分区;误删Swap分区如何启动?
文件系统管理
<!--[endif]-->
<!--[if !supportLists]-->1. <!--[endif]-->Linux支持的文件系统很多,用户可以以加载的方式将windows的分区挂到linux的某个目录下进行访问;
<!--[if !supportLists]-->2. <!--[endif]-->各个目录中的说明:
<!--[if !supportLists]-->a) <!--[endif]-->/:最底层目录
<!--[if !supportLists]-->b) <!--[endif]-->/bin:存放可执行命令文件:cp/mv/rm等,和一些shell/bash程序
<!--[if !supportLists]-->c) <!--[endif]-->/boot:内核映像和引导系统程序
<!--[if !supportLists]-->d) <!--[endif]-->/dev:每个设备对应的设备文件,如分区设备文件
<!--[if !supportLists]-->e) <!--[endif]-->/etc:系统配置文件,如用户账号和密码配置文件
<!--[if !supportLists]-->f) <!--[endif]-->/home:普通用户主目录的默认存放位置
<!--[if !supportLists]-->g) <!--[endif]-->/lib:库文件存放目录
<!--[if !supportLists]-->h) <!--[endif]-->/lost+found:系统意外崩溃关机产生的文件碎片
<!--[if !supportLists]-->i) <!--[endif]-->/media:即插即用型设备会自动在此目录下创建挂载点:如USB接入计算机后,会在此目录下创建一个子目录
<!--[if !supportLists]-->j) <!--[endif]-->/mnt:挂载存储设备的挂载目录
<!--[if !supportLists]-->k) <!--[endif]-->/opt:存放较大型的第三方软件
<!--[if !supportLists]-->l) <!--[endif]-->/proc:特殊的目录,存放操作系统在运行时的进程信息和内核信息
<!--[if !supportLists]-->m) <!--[endif]-->/sbin:存放root用户有权限执行,普通用户无法执行的命令(系统命令)
<!--[if !supportLists]-->n) <!--[endif]-->/tmp:临时文件目录,存放运行程序时产生的临时文件
<!--[if !supportLists]-->o) <!--[endif]-->/usr:大多数应用软件安装在此目录(因此这个目录非常重要)
<!--[if !supportLists]-->p) <!--[endif]-->/usr/bin:存放普通用户可执行程序
<!--[if !supportLists]-->q) <!--[endif]-->/usr/sbin:存放root权限才能执行的程序
<!--[if !supportLists]-->r) <!--[endif]-->/usr/local:用户自编译安装软件存放的目录,一般安装源码包形式的软件
<!--[if !supportLists]-->s) <!--[endif]-->/usr/share:存放公共文件;
<!--[if !supportLists]-->t) <!--[endif]-->/usr/src:内核源码存放;
<!--[if !supportLists]-->u) <!--[endif]-->/var:存放系统运行时需要改变的数据,如系统日志存放在/var/log
<!--[if !supportLists]-->v) <!--[endif]-->/var/log:系统日志;
<!--[if !supportLists]-->w) <!--[endif]-->var/spool:假脱机文件
<!--[if !supportLists]-->7. <!--[endif]-->文件系统管理(此处不用深究):
<!--[if !supportLists]-->a) <!--[endif]-->创建文件系统;
<!--[if !supportLists]-->b) <!--[endif]-->查看已经挂载的文件系统
<!--[if !supportLists]-->c) <!--[endif]-->使用fstab文件自动挂载文件系统
<!--[if !supportLists]-->8. <!--[endif]-->文件和目录的管理:
<!--[if !supportLists]-->a) <!--[endif]-->Ls是基本查看文件目录的基本操作,ls的使用格式为:ls…[option]…[FILE],有几个操作需要熟悉:-a:查看指定目录下的所有文件和子目录;-c以文件最后一次的更新时间进行排序;-t以文件最后修改时间进行排序
<!--[if !supportLists]-->b) <!--[endif]-->查看文件内容的命令:cat,more,实时查看tail –f
<!--[if !supportLists]-->c) <!--[endif]-->删除:rm:prtion:-f(强制删除,无需用户确认),-r/-R:递归删除,-i:每一步删除都要用户确认;
<!--[if !supportLists]-->d) <!--[endif]-->复制和移动:复制——cp:-f:无需用户确认的复制;-i:每一步都要确认;-r\-R:递归复制该目录下的子目录和子文件;移动(剪切):-f和-i;格式 cp/mv [option] source dest
<!--[if !supportLists]-->e) <!--[endif]-->文件通配符:*:任意个数相匹配;?:只匹配一个;
<!--[if !supportLists]-->9. <!--[endif]-->文件和目录权限管理:
<!--[if !supportLists]-->a) <!--[endif]-->权限说明:r:可读;w:可写;x:可执行文件
<!--[if !supportLists]-->b) <!--[endif]-->规则说明:rwxr—:前三个代表所有者权限,中间代表所属组,其他用户的权限;
<!--[if !supportLists]-->c) <!--[endif]-->更改文件和目录所有者:chown:命令书写格式:chown –R(表示以递归的方式更改目录下各级子目录和文件);[owner]:[group](所有者和组) FILE(文件)
<!--[if !supportLists]-->d) <!--[endif]-->chmod:更改文件以及目录的权限: u,g,o,a分别代表所有者,属组,其他用户和所有用户;+表示增加权限,-表示减少权限,=表示覆盖权限,chmod g+w,o+w file1 file2为属组和其他用户添加文件file1,file2的更改权限;chmod a=rwx file1 设置所有用户对file1文件的权限为可读/可修改/可执行
<!--[if !supportLists]-->e) <!--[endif]-->数字表示方式:chmod nnn filename r=4,w=2,x=1,可读可写可修改的n=4+2+1=7,第一个数字为所有者,第二个为用户组,第三个为其他成员;
<!--[if !supportLists]-->f) <!--[endif]-->umask:设置默认权限,一个文件的默认权限为0666,目录为0777,如果我们设置umask值为0022,那么文件的默认权限就变成了0666-0022=0644,目录为:0755,文件属组的权限由可读可写被削弱为可读,目录被削为可读可执行
<!--[if !supportLists]-->g) <!--[endif]-->查看哪些进程正在访问该文件系统:lsof 或者fuser,终止访问文件系统的进程:umount
<!--[if !supportLists]-->h) <!--[endif]-->恢复受损文件系统(省略)
<!--[if !supportLists]-->i) <!--[endif]-->恢复文件系统超级块(省略)
软件包管理:
<!--[if !supportLists]-->10. <!--[endif]-->使用rpm安装:
<!--[if !supportLists]-->a) <!--[endif]-->rpm软件包有都是以.rpm结尾的,命名格式也比较统一:软件包名称-版本号-修订版.硬件平台.rpm
最基本的安装语句: rpm -i your-package.rpm (-q,-V,-i,-U,-e分别代表:查询,验证,安装,升级,删除),详细介绍rpm可参照:http://www.douban.com/note/10271967/
<!--[if !supportLists]-->b) <!--[endif]-->语句分析(安装rpm):rpm –ivh httpd-2.2.15-15.elf_2.1.i686.rpm:安装软件包分两个阶段:首先是安装准备阶段:检查磁盘空间,软件包是否已经安装,依赖软件包是否已经安装等等,准备阶段通过后才会进行软件包安装,我们可以使用—test进行模拟安装,以检查安装后是否会产生冲突:rpm –ivh --text httpd-2.2.15-15.elf_2.1.i686.rpm;
<!--[if !supportLists]-->c) <!--[endif]-->除了—text还有—force命令:覆盖已安装的软件包;--nodeps在不希望安装依赖的软件包的情况下进行安装(有可能会产生错误)
<!--[if !supportLists]-->d) <!--[endif]-->查看软件包的文件清单:rpm –ql 软件包名称;
<!--[if !supportLists]-->e) <!--[endif]-->查看软件包所依赖的其他软件rpm –qR 软件包名称
<!--[if !supportLists]-->f) <!--[endif]-->查看系统中已安装的所有装软件包清单:rpm –aq
<!--[if !supportLists]-->11. <!--[endif]-->升级软件包:rpm –Uvh 软件包名称
<!--[if !supportLists]-->12. <!--[endif]-->删除软件包
<!--[if !supportLists]-->a) <!--[endif]-->rpm –e httpd-2.2.15-15.elf_2.1.i686
<!--[if !supportLists]-->b) <!--[endif]-->rpm –e --test httpd-2.2.15-15.elf_2.1.i686:模拟删除
<!--[if !supportLists]-->13. <!--[endif]-->rpm –e –nodeps httpd-2.2.15-15.elf_2.1.i686:强制删除(不管依赖,有可能导致其他软件无法正常使用)
<!--[if !supportLists]-->14. <!--[endif]-->打包操作:(-c打包,-x解包)
<!--[if !supportLists]-->a) <!--[endif]-->tar现在的作用是磁盘上的文件备份和打包管理方面,打包成功后成为一个归档文件(.tar),便于文件的保存和传输
<!--[if !supportLists]-->b) <!--[endif]-->打包文件:tar –cvf files.tar files //把files目录打包成归档文件files.tar tar命令会列出该目录下的所有文件及子目录清单
<!--[if !supportLists]-->c) <!--[endif]-->查看归档文件内容:tar –tvf files.tar files
<!--[if !supportLists]-->d) <!--[endif]-->还原打包文件:tar –xvf files.tar files
<!--[if !supportLists]-->e) <!--[endif]-->追加新文件:tar rvf files.tar files(如果该文件已经存在,则覆盖)
<!--[if !supportLists]-->f) <!--[endif]-->追加新文件并防止追加的新文件比原版本旧:tar uvf files.tar files
<!--[if !supportLists]-->15. <!--[endif]-->压缩归档文档:
<!--[if !supportLists]-->a) <!--[endif]-->压缩(或者解压缩)方式选择在option操作中排第二位,如:tar –xzvf files.tar files 中的-czvf,c代表的是压缩,x代表的是解压缩,而第二位:-z:调用gzip命令进行压缩解压,-Z调用compess命令,-j调用bz2命令
<!--[if !supportLists]-->16. <!--[endif]-->解压和压缩
<!--[if !supportLists]-->a) <!--[endif]-->gzip和gunzip:一般配合tar使用,因为gzip只能逐个生成压缩文件,不能将多个文件或者目录压缩成一个文件。
<!--[if !supportLists]-->b) <!--[endif]-->zip和unzip:比较linux系统支持winzip压缩工具的压缩格式
<!--[if !supportLists]-->c) <!--[endif]-->bzip2和bunzip2:很强大的压缩工具,具有很高的压缩比
<!--[if !supportLists]-->d) <!--[endif]-->compress和uncompress进行压缩:现在已经比较少用,是一对相当古老的压缩命令,必须要使用tar打包后才能进行压缩
<!--[if !supportLists]-->17. <!--[endif]-->源代码安装:
<!--[if !supportLists]-->a) <!--[endif]-->源代码安装要经过gcc编译器编译后才能连接成可执行文件,所以首先要检查系统是否装有gcc:gcc –v
<!--[if !supportLists]-->b) <!--[endif]-->检查gcc和cc位置是否正确
<!--[if !supportLists]-->c) <!--[endif]-->一般情况下,源代码安装都是经过tar打包的,所以他们都是以.tar.gz和tar.Z、.tar.bz2、.tar.zip结尾,使用相应的解压工具进入安装包的解压目录,如果有README文件最好先阅读
<!--[if !supportLists]-->d) <!--[endif]-->在root权限下运行以下命令:
./configure
make
make install
<!--[if !supportLists]-->e) <!--[endif]-->三条指令详细解释:
<!--[if !supportLists]--> i. <!--[endif]-->configure:配置脚本,该脚本会检查需要安装的组件,配置相关的安装选项,完成编译器兼容性和所需要的库的检测
<!--[if !supportLists]--> ii. <!--[endif]-->make:对源代码进行编译
<!--[if !supportLists]--> iii. <!--[endif]-->make install:把经过make命令编译后的二进制代码安装到系统中
<!--[if !supportLists]-->18. <!--[endif]-->.bin安装,以.bin结尾的文件需要使用的安装方法:
<!--[if !supportLists]-->a) <!--[endif]-->首先为.bin文件添加可执行权限
<!--[if !supportLists]-->b) <!--[endif]-->./ 文件名
<!--[if !supportLists]-->c) <!--[endif]-->.src.rpm安装:rpm –I 文件名