Linux Public Basics公共基础

备注:本文以倒叙方式编辑,各版块内容从下至上。比如先编写的“ Linux文件系统”,而后是“系统管理命令整理”,故在本文表现为后者位于前者的上面,以此类推。是为了不断更新内容而考虑。

20161108

备注1:20161108 15:54,系统学习过之后上述列出的内容就不再显得生疏。建议先了解目录树和 Linux文件系统层次化标准(Linux FileSystem Hierarchy Standard(FHS)),然后再系统学习相应系统操作命令(关于应用服务的搭建可以在学习基础操作命令后就开始)。(个人是先学习少数常用系统基础的操作命令,然后直接上手应用服务的搭建,在实践中练习并精进命令的使用,同时了解FHS&目录树,然后再系统全面地学习操作系统管理与维护、审计的命令以及应用服务如数据库的内部操作命令)

  2.本文开篇部分不够系统化,是初学之初零散的记录。重点部分在于系统操作命令的梳理和FHS!!!!!!

    ---------零散记录已删除,会在公共基础--中阶 博文中整理出来-------------------

20161021 08:39——11:21

  系统管理命令整理  

 一、Linux操作系统基础知识(系统管理常用命令)统筹总结

---Shell基本命令---                

------------1----------------------------------------

备注:1.登录操作系统之后,终端界面命令行的第一字符#代表是root用户登录;$代表是普通用户登录2.linux系统中“目录”就是windows中的文件夹

cd:change directory  改变目录即是换个工作场所

cd -   ------ 返回到上一目录

cd ~ 或者 cd [直接回车] ------进入当前用户的主目录、家目录

cd 指定目录路径 进入相应的目录中

备注:cd 自动识别目录,如“cd /etc/sysconfig”等效于“cd /etc/sysconfig/”(注意后者末尾添加了正斜杠,自动识别存在的目录的功能的还有mv、cp等,比如cp,将文件复制到另一路径下若目的路径下有同名子目录名则不能复制成功;比如mv用于移动并重命名时若目的路径下有与重命名同名的子目录则重命名失效而是将文件原样移动到目的路径的同名子目录中去)

ls [-l\a\F\d\h] 列出目录内容, 选项分别表示长信息显示、显示含隐藏文件的所有文件、以后缀形式显示文件类别、d:directory查看目录属性、以M字节显示文件大小

ls -l 简写是ll,同效命令是vdir

备注:ls不仅可以查看当前目录下的内容(文件或子目录),还可以指定路径目录下的内容,并且几乎所有命令都有类似“隔山打牛”的功能,如vim、more、source

du -sh /home/shixiu #查看目录全体文件所占空间大小,-s, --summarize,h,human,不使用-s选项的话将会显示一个目录下的所有分支子目录的信息。

pwd: print working directory  打印/查看当前所在路径或说目录

----------2-------------------------------------------

cp :copy ,复制文件或目录 支持复制并重命名(常用选项-r|R 、-a)

cp /etc/sysconfig/iptables /tmp/network #将指定路径下的文件复制到别处并重命名

cp -r /home/shixiu/ /tmp/sxiu #将指定路径下的目录复制并重命名到别处,需选项-r

选项-r或-R:recursive递归    copy directories recursively

选项 -a :能够复制文件及其属性(创建时建、属主)

mv:move,移动文件或目录支持移动并重命名

mv /home/shixiu/abc /tmp/cba #将指定路径下的文件移动并重命名到指定的别处(若不需要重命名则不需要在路径中后缀重命名名称)

mv /home/test/ /tmp/testdir #将指定路径下的目录一定并重命名到指定的别处(若不需要重命名则不需要在路径中后缀重命名名称),mv移动目录不需要额外选项

  备注:cp,将文件复制并重命名到另一路径下若目的路径下有同名子目录或文件则:同名子目录则不能复制成功(可见似乎目录的存在性强于文件),同名文件则可覆盖目的路径下原有文件而复制并重命名成功;将目录复制(-r)并重命名到另一路径下若目的路径下有与重命名名称同名的子目录或文件则:同名子目录则重命名失效而将被复制目录原样复制到目的路径的子目录中,同名文件则也是不能成功的,根据提示即是说文件和目录不能相互覆盖(进一步,其实在同一个目录中不存在文件与目录同名);比如mv用于移动文件并重命名时若目的路径下有与重命名同名的子目录或文件则:同名子目录则将文件原样移动到目的路径的同名子目录中去,同名文件则可将移动文件覆盖目的路径中原有文件移动成功;mv用于移动目录并重命名若目的路径下有与重命名同名的子目录或是文件则重命名失败:同名子目录则会移动其中做子子目录,同名文件则因不能覆盖提示失败。

--------------3----------------------------------------------------

cat 一望到底地查看N个文本文件,不支持逆序显示

cat -n file 查看文本文件并显示行号

-n number 该参数用于显示行号的方式浏览文件,类似浏览方式的还有head和tail

tac 一望到底地逆序查看N个文本文件,不支持显示行号和逆序浏览

head 用于显示N个文件的开头-n用于指定显示文件开头n行,默认则是10行

tail 用于显示N个文件的结尾,-n用于指定显示文件末尾n行,默认则是10行;同时另一种常见用法为“tail -f catalina.out”实时监视文件的增长,# -f:follow该参数用于监视File文件增长。

more 分页方式查看N个文本文件,不支持显示行号和逆序显示

浏览过程中,按下空格向下翻动一页,按Enter键向下滚动一行,按Q退出

/keyword #浏览过程中正斜杠+关键字的方式可以全文向下检索关键字,检索过程中按“n”来持续检索过程,但是more浏览的检索过程不高亮显示关键字;相反的向上检索more不支持!需要注意的是在检索之初输入关键字有误要删除时需要按组合键Ctrl+Backspace

less 分页方式查看文本文件,不支持显示行号,似乎不支持N个文本同时查看,支持逆序显示

浏览过程中,按下空格向下翻动一页,按Enter键向下滚动一行,按Q退出,此外通俗评价是“less的特性看起来更像是一个文本编辑器------只是去掉了文本编辑的功能”,它额外的特性有:(1)可以倒回去向上回顾;(2)支持方向键上下左右浏览以及主键盘字母键J向下K向上来控制浏览;(3)支持文本编辑的光标移动功能,比如按G跳转到文件末尾行,按gg跳转到文件第一行;(4)支持按照行号方式浏览文件(5)/keyword #浏览过程中正斜杠+关键字的方式可以全文向下检索关键字,与more浏览检索相同,额外的less浏览检索的关键字会被高亮显示,且less支持向上检索,通过“?keyword”。

grep 不打开浏览全部文件,只输出文件中检索部分的内容

grep keyword testfile  #testfile中查看keyword所在行的内容

grep通常的组合用法:ps -ef |grep mysql;netstat -anp|grep 8080,即是将前者查找的结果作为输入从中检索并只显示出要查找的内容

--------------4---------------------------------------------------------

find 文件查找,在文件系统中

find /etc/sysconfig -name iptables #在指定路径目录下查找名为iptables的文件

常用选项 :

-i ignore 忽略被查找文件名称大小写,结合-name选项使用(-iname)

-name 按照文件名称查找,常结合"-i ”选项,即-iname,表示匹配文件名查找,并忽略文件名的大小写

-t type 按照文件类型查找(选项可用参数:f:file普通文件、d:directory目录文件、c:charactor字符设备文件、b:block块设备文件、p:pipe有名|命名管道、l:linnk符号链接)

-atime access time 按照被访问时间查找  -ctime change time 按照属性被修改时间查找

-mtime modified time 按照内容被修改时间查找(+n大于n天、-n小于n天)

-user 按照文件所有者来查找

-inode 按照文件i节点来查找

locate 查找文件,快速地,在自动建立的文件名数据库中(最小化安装的centos6.4中没找到该命令,安装mlocate软件包即可)

备注:1. 该命令由软件包mlocate提供,安装mlocate(安装方式:yum -y install mlocate)即可使用locate命令,

2.初装后,使用前需要更新文件名数据库,命令是updatedb。

3.locate查询的是自身的文件名数据库,要注意的是该库中不包含/tmp和/proc目录下的文件,即是说locate无法查询到该目录下的文件。

which 查找程序文件 提供该文件的二进制可执行文件所在位置 和 命令的别名

which excutive-file-name#查找excutive-file-name可执行文件所在路径

备注:若在它所查找的所有路径下没有发现要找的可执行程序则返回如下:

/usr/bin/which: no locate in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_72/bin:/root/bin)

whereis 查找程序文件 并提供该文件的二进制可执行文件、源代码文件和使用手册存放位置

whereis excutive-file-name #查找excutive-file-name可执行文件所在路径

备注:若在它所查找的所有路径下没有发现要找的可执行程序则返回“excufile:”

grep 查找文件内容 *******

grep multiuser /etc/inittab #显示"multiuser"所在行的内容

grep -i multiuser /etc/inittab #显示"multiuser"所在行的内容,不区分关键字的大小写

grep -v ^# /etc/inittab #不显示以“#”为首的行的内容(显示/etc/inittab文件中非注释内容,即只显示有效信息 )

grep -rn "8081" /home/gastest/  #查看/home/gastest/下包含字符串8081的所有文件

grep -rn "port" /home/gastest/ #查看/home/gastest/下包含字符串port的所有文件

grep在系统管理中常被结合使用的两条命令是:

ps -ef |grep mysql #查看相应的进程信息   和  netstat -anlp |grep8080 查看相应的端口信息

man 获取命令和配置文件帮助

备注:最小化安装的操作系统中没有该命令,需要自行安装,可执行如下命令来安装:yum -y install man

whatis 获取命令帮助| 命令简要说明

whatis uname #命令直接以想要查询命令名称为参数

apropos 获取配置文件帮助| 配置文件简要说明

apropos services

command --help|-h  获取命令的常用选项信息

”------4------"PART4 小结:

--------------------------
find\locate;找文件
which\whereis;找命令:可执行文件
grep;找文件内容
----------------------------
man;命令帮助&配置帮助
whatis\apropos;命令帮助\配置帮助
cmd --help;命令常用选项
----------------------------

---文件&目录管理---

touch 新建空文件|刷新文件时间属性

mkdir 新建目录(常用选项-p, --parents)

mkdir -p /tmp/abcparent/abc #欲新建一条全新的路径需要用到-p选项

rm  remove删除[指定路径]文件或目录(常用选项-r:recursive,-f:force)

rm -rf /tmp/testfile # -r recursive代表递归执行相应的命令、-f  force代表强制该操作

tar 打包|解包目录或文件(常用选项-czvf|-xzvf)

tar cvf documentname.tar /tmp #将tmp目录打包成名为documentname.tar的包文件

tar xvf documentname.tar #将包文件拆开解开,-c create、-x extract提取、-f file指定文件

tar czvf documentname.tar.gz /tmp  #将tmp目录打包成名为documentname.tar的包文件,并调用gzip将包文件压缩为documentname.tar.gz

tar xzvf documentname..tar.gz #调用gzip将压缩文件解开,再将包文件打开

tar cjvf documentname.tar.bz2 /tmp #将tmp目录打包成名为documentname.tar的包文件,并调用bzip2将包文件压缩为documentname.tar.bz2

tar xjvf documentname.tar.bz2 #调用bzip2将压缩文件解开,再将包文件打开

备注1:从tar命令说明一下linux系统管理中路径用法的特殊性和一般性。举例如下:

在/tmp路径下存在XYZ.tar.gz包文件,解压缩的命令可写作:tar xzvf XYZ.tar.gz 和 tar  xzvf /tmp/XYZ.tar.gz 。其中前者就是特殊写法,缺省了文件所在路径(表明压缩包文件在当前路径下)的tar命令,后者是一般写法,指明了压缩包文件所在的绝对路径。如果压缩包文件就在要解压到的当前路径下,一般会缺省其路径,命令和参数后直接跟压缩包名称即可,但是要明白这是一种缺省路径的特殊写法,要明白与之关联的一般写法,这样就可以思考下一个问题:压缩包文件位于/usr/local路径下,要在/tmp路径下执行解压缩,将其解压到/tmp路径下,命令如何书写?——首先进入到/tmp路径下,而后执行 tar xzvf /usr/local/XYZ.tar.gz #指定压缩包文件所在路径即可,默认解压到当前路径下

备注2:关于Linux中的压缩文件常见格式有:gzip(后缀为.gz)、bzip2(后缀为.bz2)、xz(后缀为.xz)、zip(后缀为.zip)等

前两者格式的文件通常通过tar命令即可以管理,见如上相应命令的使用。着重说明后两者,分别是各自使用对应的工具进行管理,其中unzip无法通过tar命令调用对应工具来间接管理,如下:

参考资料: tar.xz文件如何解压
    http://blog.csdn.net/rheostat/article/details/7614451
    Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压 
    http://www.cnblogs.com/yejianfei/p/3351626.html
    xz格式
    创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz
    解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。

或者借助tar工具来间接管理:

创建tar.xz压缩文件:tar cvJf vlc-2.2.4.tar.xz

解压缩tar.xz文件:tar xvJf vlc-2.2.4.tar.xz
    zip格式
    压缩: zip -r [目标文件名].zip [原文件/目录名]
    解压: unzip [原文件名].zip

chown、chgrp改变文件所有权

chown -R owner:[group] file #将指定路径下的文件所有者、所属组分别改为owner和

Group(该命令等效于chown -R [owner].[group] file)其中owner和group都是可选项只有owner时不需要间隔号但只有group时前面间隔号不可省略

chgrp -R group file #等效于chown -R .group file ,其中"-R ”为recursive,,表示递归,这里是递归地改变属性。

chmod 修改文件权限

常用命令格式为:

chmod 755 file #将指定路径下的file权限修改为三位八进制数755(r-4,w-2,x-1)三位权限值依次属于所有者、所属组、其他人

chmod u+x file #将指定路径下的file给其所有者附加可执行权限

chmod g-x file#将指定路径下的file所属组的可执行权限取消掉

chmod u+x,g-w file #将指定路径下的file的执行权限赋予所有者并同时去掉所属组对该文件的写权限。同时授权操作命令中要使用逗号分隔授权对象

chmod o=g file #将指定路径下的file其他人的权限设置为与所属组相同

chmod a-x file #将指定路径下的file所有人对其的可执行权限

 ln 建立链接(-s选项表示建立软连接 不加选项则表示建立硬链接)

ln -s /var/log/secure safe#未指定路径下的文件建立名为safe的符号软链接

输出重定向:>或>>   将程序的输出转移到另一个地方去

lastb > /home/shixiu/lastblog #将lastb的输出重定向到指定路径下的文件中,若指定路径中有同名文件则“>”会删除原文件内容用输出内容替换之。

lastb >> /home/shixiu/lastblog #将lastb的输出重定向到指定路径下的文件中,若指定路径中有同名文件则“>>”会将输出内容追加到原有文件内容的后面。

 管道:|  将一条命令的输出连接到另一条命令输入

常见用法

ps -ef | grep mysql

……

---磁盘管理---

mount /dev/sda3 /mnt/sdadir #将分区挂载到指定的目录中

mount -r /dev/sda3 /mnt/sdadir #将分区以只读方式挂载到指定的目录中

df  #查看磁盘使用情况(更善于查看磁盘剩余空间真实大小)

常用选项 -h 以人类常用单位M、G标示、显示文件大小

du  #查看文件系统信息(更善于查看文件系统所占空间真实大小)

常用选项 -h 以人类常用单位M、G标示、显示文件大小

dd if=/dev/cdrom of=CD.iso #将一张CD完整的转出未iso镜像文件

if选项指定输入端的文件系统 of选项用于指定其输出端

---用户管理---

useradd、passwd、usermod、id、

gpasswd -a shixiu sharinggrp #将用户shixiu加入到用户组sharinggrp,非修改默认组!

……

---权限管理---

20161101 14:13——

特殊权限(ACL、SetUID&SetGID&StickyBIT、chattr、sudo)

1.getfacl  #后跟目录名称查看目录的设定的acl权限

setfacl  #用于设定目录的acl权限,解决所有者|所属组|其他人三项权限项不足的问题。注意-m后的“u”或“g”字符前没有短划线!!(不确定是否只针对目录设定)

setfacl -m u:shixiu:rx /home/samba #赋予普通用户shixiu对该目录的浏览进入权限

setfacl -m g:shuihu:rwx /home/samba #赋予所有者所属组之外的shuihu用户组的非其他人权限,即使shuihu用户组不是/home/samba目录的所属组,也能通过赋予的权限,正常使用该目录

getfacl samba #查看指定目录acl权限设定的详情,直接写目录名,不加绝对路径,但是加了绝对路径也无妨。不同路径下的同名目录都设定各自的acl权限,查询效果何如??待检验。

ACL最大权限:“getfacl directory”中mask是用来指定用户的最大有效权限的

setfacl -m m:rx /home/samba #对指定目录设定其mask参数值即最大有效权限,该权限不影响所有者权限只限制所属组和acl权限用户[组](需验证是否是只修改了该目录的mask值(而不影响其他目录的mask),并且该mask值的修改生效的时限)

setfacl -x u:shixiu /home/samba #删除指定用户的acl权限,注意相比添加acl权限,这里删除时不用注明权限项

setfacl -x g:shuihu /home/samba

setfacl -b /home/samba #删除指定目录所设定的所有acl权限

默认ACL权限和递归ACL权限(这两项都只针对目录

setfacl -m u:shixiu:rx -R /home/samba #递归acl权限设定,针对当前的现有目录以及子文件。要注意“-R”只能在当前位置。 #将指定目录及其子文件的acl权限赋予用户shixiu

setfacl -m d:u:shixiu:rx -R /home/samba #默认acl权限设定,针对未来的新建子目录和子文件。如果给父目录设定了acl权限那么该目录下新加的文件也将自动具有acl权限特征。该命令中的“-R”作用是针对子目录的递归。

2.SetUID&SetGID&StickyBIT

Setuid ,只针对可执行程序文件,并且执行|运行该可执行文件的用户具备对该文件的执行权限。如此,当具备上述条件的普通用户执行该文件时(过程中)将临时以该文件的所有者的身份来执行该可执行文件|程序。(具有setuid属性的可执行程序的特征是所有者权限项中x被s(小写)代替即“rwsr-xr--”,如熟悉的passwd命令,但是普通用户执行该可执行程序|命令的时候(虽临时升级为了root)却只能修改自己的密码,值得研究)

SUID的设定——4代表SUID(认为,因二进制100,即22=4)

chmod u+s 文件名 #添加文件的SUID权限

chmod 4755 文件名

chmod u-s 文件名 #去掉文件的SUID权限

chmod 755 文件名 #去掉SUID权限,直接指回来

Setgid,针对可执行程序文件以及目录。(1)针对文件的时候相应要求和效果|作用同SetUID(熟悉的有SGID特征的是locate程序);(2)针对目录的时候,该作用生效的要求|前提是普通用户对目录至少具备“r-x”权限,当普通用户在该目录中的时候它的有效组则变成该目录的所属组,(若目录所属组具备w权限或该普通用户对目录有w权限)该用户写入|新建文件的时候,新建文件的属性为所有者为该用户,所属组为该目录的所属组。——这点,其实用于samba文件共享中会有一点用处,比如,不是sharingfiles目录所属组的用户(通过acl)对目录具备了“rwx”权限,那么sharingfiles的所属组sharinggrp中的成员也能对他新建的文件有一定的权限。

SGID的设定——2代表SGID(认为,因二进制010,即21=2)

chmod g+s 文件名 #添加文件的SGID权限

chmod 2755 文件名

chmod g-s 文件名 #去掉文件的SGID权限

chmod 755 文件名 #去掉SGID权限,直接指回来

Sticky BIT,只针对目录生效。

Sticky BIT的设定——1代表Sticky BIT(认为,因二进制001,即20=1)

3.chattr与lsattr命令

参考资料:http://www.ha97.com/5172.html

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

chattr +i /etc/resolv.conf  #用chattr命令防止系统中某个关键文件被修改

chattr -i /etc/resolv.conf #要想修改此文件就要把i属性去掉

chattr +a /var/log/messages # 让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

……

---软件包管理---

20161104   10:16——11:30;11:50——12:30;13:13——17:33

软件包主要有rpm包和XYZ.tar.gz或XYZ.tar.bz2这样的压缩包(二进制包或者源码包),其中RPM,即Redhat Package Manager。

1.  RPM包文件的命名规则:

httpd-2.2.15-29.el6.centos.i686.rpm  #包名、版本号、软件发布次数、适用平台、硬件、包扩展名

hunspell-bn-0.04-2.el6.noarch.rpm  #noarch表示对硬件平台无要求

备注:对于未安装的rpm包执行操作需要使用包全名,如安装和升级。对于已安装的rpm包执行操作使用包名即可,如查询、卸载。

2.  RPM包管理-- RPM命令管理(安装、卸载、查询、校验和文件提取命令)

备注:安装rpm包需要进入到Packages目录中,一般是镜像文件中的目录。

rpm -ivh httpd-2.2.15-29.el6.centos.i686.rpm #安装rpm包 需全名

rpm -Uvh httpd-2.2.15-29.el6.centos.i686.rpm #-Uvh安装过程中更新包文件

备注:XYZ.so.number  #库依赖文件so,share object(1)可在www.rpmfind.net中查找该共享模块所在的软件包 (2)更推荐在系统中使用“yum whatprovides */XYZ.so”命令查找该共享模块包含在哪个软件包中(相比前者的优势不言而喻:自动解除依赖,全自动安装)

rpm -e 软件文件包名  #卸载方式安装的软件,e,erase。

yum -y install 软件包名 #yum自动给解决rpm包依赖并安装

---------=-=====-------------===========-----------------------------------

--  查询命令(qa、qi[p]、ql[p]、qf、qRp)

rpm -q 包名  #查询指定的软件包是否安装,q,query,查询。

rpm -qa  #不加参数,添加选项a,查询全部已安装的软件包,a,all。

rpm -qa |grep httpd  #查询所有与httpd相关的包,通过管道符的作用

rpm -qi 包名  #查询已安装软件包的信息,i,information。

rpm -qip   #查询未安装软件包的信息,补充加追选项p,package。

rpm -ql 包名 #查询已安装的包中文件的安装位置,l,list。

rpm -qlp  #查询未安装的包中文件将会安装的位置,p,package。

rpm -qf 系统文件名 #查询系统文件所属于的RPM包,由哪个RPM包产生的,f,file。

rpm -qR 包名 #查询已安装的软件包的依赖性,R,reqiures。

rpm -qRp  #查询未安装的软件包的依赖性,p,package。

rpm -q --whatrequires 包名 #查询已安装的软件包的被哪些软件所依赖

--  RPM包的校验 和 RPM包中文件提取

rpm -V 已安装的包名 #V,verify,比如可以通过输出结果校验包中文件内容是否有改动。

rpm2cpio [绝对路径]包全名| cpio -idv . 文件所在绝对完整路径  

    #其中一般需要从镜像文件中指定包全名的绝对路径;其中的-idv和“.”均可认为是选项,“.”指定提取出的文件放置位置

#明白了管道符的功能这条命令就好理解了--从管道符将整条命令分割开分别理解。

#rpm2cpio,用于将rpm包转换为cpio格式。

#cpio是一个标准工具,用于创建软件档案文件(将文件写入档案包中)和从档案中提取文件。常用选项:i,copy-in模式,还原;d,directory还原时自动创建目录;v,verbose显示还原过程

#解构之后再综合理解:cpio将从rpm转化过来的文档包中读取数据并从中提取出指定文件(指定的文件通过他所在的绝对路径+文件名的完整路径表示,被转换为cpio格式的rpm包也需要如此描述)放置到指定位置

小结:Rpm包的管理之rpm命令

1.Rpm查询包的常用命令

rpm -q/a/i/p/l/f/R

分别是查询/所有/information/未安装包package/list包所含文件/file所属包/查询包依赖Reqiures

2.手动rpm包安装过程中遇到模块依赖即库文件依赖时可以将该模块名复制到www.rpmfind.com去search该文件所属包文件或者使用命令yum provides */ABC.so直接查到包含指定模块的安装包文件,相比来说通过yum方式来处理依赖模块更方便。

.rpm包文件的提取的命令

rpm2cpio 包所在绝对路径及包全名 |  cpio -idv . 文件绝对路径

#将rpm包文件转换为cpio文件 提取该包中的某绝对路径下的文件 到 当前目录中(.)

3.  RPM包管理 --  Yum命令管理

.repo,repository资源储藏室。Yum源配置文件在/etc/yum.repos.d目录下,默认使用在线yum源容器 |配置文件*base*。

常用yum命令(yum中没有包全名的事儿 使用包名即可查询、安装、卸载、升级)

yum list  #查询所有可用软件包列表,因为使用的是在线yum源,所以在任何地方执行该命令都可以

yum search 包名 #查询与软件包相关的文件——查询与关键字香关的软件包及软件包简要功能说明

yum -y install 包名 #安装rpm软件包,自行解决依赖问题,y,yes,自动确认。

yum -y update 包名 #更新指定的软件;不指定软件包名称时会将系统包含内核在内所有软件彻底更新一遍。内核更新后需要作一定的配置,系统才能正常使用。

yum -y update   #升级所有包,改变软件设置和系统设置,系统版本内核都升级
yum -y upgrade  #升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变

yum -y remove 包名 #卸载指定的软件,一般不采用,会连带卸载。

yum grouplist #查看所有可用软件组

yum groupinstall 软件包[英文]组名 #软件包组安装,可以配合-y选项自动确认安装;需要注意的是,若软件包组名中间有空格 则需要使用双引号将其标记起来!!

yum groupremove 软件包组名 #组件形式卸载

yum whatprovides来反查指定工具名在哪个安装包里 或者是 反向查询指定的共享模块“.so”文件包含在那个软件包里。

yum whatprovides */nslookup #反查nslookup在哪个安装包里。该命令现在简化为  yumprovides */nslookup ,二者等效,均可用。

yum deplist 包名 # List a package's dependencies

-- 光盘yum源搭建

(1)挂载光盘

mount /dev/sr0|iso9660 /mnt/cdrom

(2)让网络yum源失效

将原所有base等容器|网络yum源配置文件(CentOSCentOS-Base.repo  CentOS-Debuginfo.repo    CentOS-Vault.repo)重命名备份起来,除了CentOS-Media.repo配置文件。

(3)修改光盘yum源配置文件(*Media*)使其生效

添加或修改效果为“enable=1”#生效开关开启

baseurl=file:///mnt/cdrom  #地址为光盘的挂载地址|自己的光盘所挂载到的绝对路径

备注: 配置文件中其他地方尽量不要改动!或严格遵守配置文件的注释等规则。

4.  源码包与RPM包的区别

(1)包文件本质的区别

前者可查看源代码数据需编译安装耗时;后者不能查看但安装快捷

(2)包文件安装位置的区别(前者可以自定义;后者包中各文件遵守默认安装位置)

源码包安装位置一般是在/usr/local目录下(包含配置文件等全部位于该目录下)。

源码方式安装中源码目录中的INSTALL为安装说明,README为使用说明。

5.  软件包的脚本安装方式

一般为特殊软件厂商为推广产品而编辑的建议安装脚本,后缀名为“.sh”,如webmin工具的安装软件包。

备注:基于如上关于软件包的描述,现在简要总结(1)RHEL/CentOS/Fedora系统中软件包的格式最为常见的主要有:.rpm格式、.tar.gz|.tar.bz2两种 (2)RHEL/CentOS/Fedora系统中软件的安装方式主要有:<1>rpm格式软件包的安装、<2>.tar.gz|.tar.bz2格式软件包的安装,其中前者进一步细分为 <1.1>rpm方式安装rpm格式的软件包及手动安装其依赖、<1.2>yum方式方式安装rpm软件包并全自动分析安装及其依赖;后者进一步细分为<2.1>[二进制压缩包]解压即安装、<2.2[源代码包]编译安装。  需要注意的是,如上的软件包格式的描述与软件包的安装是混杂了的,先前一直在介绍软件包格式,而后在“5”中出现“软件包的脚本安装方式”,所以才在这里作简要总结,作为前面只讲格式而未讲其安装方式的补充,而具体格式软件包的安装则参考如上各个格式软件包介绍中关于软件包安装的命令。

6.epel,yum的EPEL软件源

EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包),是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。RHEL/CentOS系统有许多第三方源,比较流行的比如RpmForge,RpmFusion,EPEL,Remi等等。如果系统添加了多个第三方源,可能会因此产生冲突.已知的就有Rpmforge与EPEL会产生冲突。

备注:可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件。比如要在CentOS上安装pptpd服务,但是默认的是不能通过yum方式直接安装的,除非,安装配置了epel软件源。epel软件源是对yum软件包资源的一个扩展或补充。使用EPEL软件源需要先安装,安装完毕后该资源的使用同样通过yum实现,和其他rpm软件包的yum管理方式一致。
      EPEL软件源的安装和使用

首先要下载EPEL的rpm安装包。

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm      #下载CentOS 版本所对应的EPEL 的版本,这里是CentOS6对应的epel的rpm包

而后安装该rpm软件包 ,先安装其他rpm包一样

rpm -ivh epel-release-6-8.noarch.rpm

最后,检查repolist,查看安装效果

安装好EPEL 源后,用yum 命令来检查是否添加到源列表:yum repolist,EPEL已经在repo 列出,并且显示提供的软件包数量,证明EPEL已经安装到CentOS了。  EPEL源的配置安装到了 /etc/yum.repos.d/下,即文件名为epel.repo 的文件。

EPEL软件源的使用同CentOS-Base.repo源的使用是一致的,只是提供了一般yum源中没有的软件资源而已,如epel安装成功后,可以直接使用yum方式安装pptpd软件包了: yum -y install pptpd

参考资料:

如何在CentOS 5/6上安装EPEL源
      http://os.51cto.com/art/201312/420725.htm
      http://www.binarytides.com/setup-epel-repository-centos/

SwitchingToUbuntu/FromLinux/RedHatEnterpriseLinuxAndFedora
      http://blog.sina.com.cn/s/blog_49b1f7210102vepr.html
      https://help.ubuntu.com/community/SwitchingToUbuntu/FromLinux/%20RedHatEnterpriseLinuxAndFedora

---进程管理---

pkill

……

---系统功能管理---

参考:Linux常用命令大全http://www.php100.com/html/webkaifa/Linux/2009/1106/3485.html

date 显示系统日期

cal 2007 显示2007年的日历表

date 041217002007.00 设置日期和时间 -月日时分年.秒

date -s 17:45 设置系统时间

clock -w 将时间修改保存到 BIOS

shutdown -h hours:minutes & 按预定时间关闭系统

---应用服务管理---

源码方式安装应用服务基本操作:

./configure  #预编译,详细选项使用“./configure --help”查询

make #编译 ;make install #安装 或合二为一make && make install

make clean #清除make编译产生的文件或影响

make mrproper #删除所有的编译生成文件,还有内核配置文件,再加上各种备份文件

make distclean #mrproper删除的文件,加上编辑备份文件和一些补丁文件。

环境变量

……

---网络管理---

20161107 p.m.

十进制、二进制转换;IPv4(32位标志);IP &子网掩码;子网划分、网络地址、广播地址(默认IP位段:网络地址、网关、广播地址、子网掩码);ARP

20161108  09:18——11:30

0. 纯粹网络管理命令

http://blog.163.com/liangtianfeng@126/blog/static/21597421200832573836931/

arp -a #查看arp缓存表  #参考上链接所述 绑定mac&IP有效阻止ARP攻击

arp -d #清除arp缓存

arp -s #用来手动绑定网络地址(IP)对应的物理地址(MAC)

你可以用arp -s来手动绑定.举例..你网关的IP是192.168.0.1,网关的MAC地址是00-11-22-aa-bb-cc那么你可以使用"arp -s 192.168.0.1 00-11-22-aa-bb-cc"然后你用arp -a就可以看到

Internet Address Physical Address Type

192.168.0.1 00-11-22-aa-bb-cc static

注意,手动绑定的类型是static自动学习到的是dynamic

1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth

ifconfig ethX up 或 ifup ethX #启用指定网卡

ifconfig ethX down 或 ifdown ethX #禁用指定网卡

ifconfig eth0:0 192.168.17.17 #为一块网卡配置多个IP地址

主机名配置文件 /etc/sysconfig/network   主机&域名配置文件/etc/hosts

hostname Urhostname  #命令行配置主机名,临时生效

hostname  #命令行查看主机名

备注:建议根据服务器主机的实际用途来命名主机名。如tomcat、dns、memcache、

mysqlbackup、iptables|firewall、vpn、fileshare等。

DNS配置文件 /etc/resolv.conf

防火墙配置文件 /etc/sysconfig/iptables

netstat -nlp #查看所有存在监听进程的端口

netstat -rn #查看路由表,可以查看到网关,等同于route命令的“route -n”。

宠用选项(可研究其他可用选项以开发更多功能)

-t 列出 TCP协议的连接

-u 列出 UDP协议的连接

-n, --numeric              don't resolve names

-l, --listening            display listening server sockets

-a, --all, --listening     display all sockets (default: connected)

-p, --programs             display PID/Program name for sockets

Netstat连接数统计|压力测试

netstat -an |grep ESTABLISHED |wc -l #将连接列出来并进一步统计出数字

nslookup www.baidu.com #可以逆向查到该域名对应的IP地址

nslookup #直接回车然后在“>”提示符后输入“server”可以查看本机配置所配置的DNS

ping 域名或IP -c 4 #ping指定的域名或IP,选项设定ping次数

telnet 域名或IP 端口  #远程管理与远程主机端口探测命令

traceroute 选项 IP或域名#路由跟踪命令;-n,使用IP,不使用域名 速度更快,在链路中的路由主机不禁ping的情况下很有用(对应在windows是tracert命令)

wget url/file  #下载命令

tcpdump -i eth0 -nnX  #linux系统中的抓包[工具]命令,选项nn,用IP地址方式监听;X用于拆解数据包

2.虚拟机Vmware网络配置

2.1.ONBOOT=yes

2.2. service network restart

2.3.vm主机网络类型选取(保证vm主机的网卡设备状态为“已连接”)

2.3.1桥接:直接连接到物理网络(B) ------对应宿主主机的实际有线|无线网卡

2.3.2.NAT:使用已共享的主机IP地址(N) ------对应宿主主机的Vmnet8

2.3.3.Host-only:与主机共享一个私有网络(H) ------对应宿主主机的Vmnet1

备注:1.VMnetX是宿主主机的虚拟网卡,不是VMware主机的。

2.NAT方式下,依据VMnet8的网段设定Vm主机的IP同段即可实现互通。

2.4.如果选择桥接方式联网,需要根据宿主主机是有线|无线联网相应调整要桥接到哪一个网卡,设定路径如下:

编辑------虚拟网络编辑器------VMnet信息------桥接(B)“已桥接到”------下拉项选定

备注:如果VMnet信息选项卡部分是灰色不可用,一般是虚拟机出错,设“恢复默认”选项来修复。若修复失败,需要将VMware彻底|完完整整卸载重装,卸载不彻底重装也会失败,试百度vm卸载清理工具。

2.5.克隆主机联网设定(链接克隆&完整克隆,前者节省空间)

克隆主机的联网初始化

克隆机中删除网卡配置文件中的mac地址行HWADDR;删除对应的rules配置文件;重新启动克隆机操作系统

2.5.1 vim /etc/sysconfig/network-scripts/ifcfg-ethX #编辑配置文件删除MAC行

2.5.2 rm -rf /etc/udev/rules.d/70-persistent-net.rules  #删除网卡和MAC地址绑定文件

2.5.3 shutdown -r now #重启系统,UUID会重新计算一个新的参数值

3.网络应用(SSH、DHCP、VSFTP、SAMBA)

SSH相比telnet、ftp、http[相比安全协议是https]等是将数据进行加密传输。

SSH加密方式、配置文件[禁止root用户登录]……

SSH常用命令:

ssh 用户名@主机名或IP

scp 用户名@主机名或IP/指定文件位置+文件.#将远程主机指定位置中的文件复制到本机当前位置

scp -r /root/123 用户名@主机名或IP/指定文件位置

sftp 用户名@主机名或IP

……

---安全管理---

防火墙iptables、selinux

……

20161021 16:40——17:49

二、Linux操作系统管理维护常用命令高阶整合

------- Linux系统一般常用管理命令-------

yum list |grep redis #查看可用软件包以及软件包所属软件源

yum search redis #查看软件包名称及该软件包的简要功能说明

ps -ef |grep mysql #查看mysql进程信息(含PID),查看[检索]进程

netstat -anp |grep 8080 #查看端口8080的值守监听进程

ss -anp |grep 8080 #查看端口8080的值守监听进程

netstat -nlp #查看所有存在监听进程的端口

宠用选项(可研究其他可用选项以开发更多功能)

-a, --all, --listening     display all sockets (default: connected)

-l, --listening            display listening server sockets

-n, --numeric              don't resolve names

-p, --programs             display PID/Program name for sockets

-t 列出 TCP协议的连接

iptables -L -n #查看默认防火墙(filter)配置状态信息

chkconfig --list #查看可用于开机启动的服务项——chkconfig,类似Windowsservices.msc

chkconfig XYZ on #将XYZ服务进程设定为开机启动,反之为off

source /etc/profile #使得刚修改的全局环境变量即可生效

tail -f /usr/java/apache_tomcat6/logs/catalina.out #实时监视文件的增长,-f:follow

sudo -u shixiu -H command line #root用户执行该命令,但该命令行实际执行身份是普通用户shixiu,比如执行cp,执行完毕后新拷贝文件的属主为shixiu。

df  #查看磁盘使用情况(更善于查看磁盘剩余空间真实大小

常用选项 -h 以人类常用单位M、G标示、显示文件大小

du  #查看文件系统信息(更善于查看文件系统所占空间真实大小,如目录大小

常用选项 -h 以人类常用单位M、G标示、显示文件大小

du -h /path/to/directoryname #将目录下的子目录详细列出分别统计各自大小,如在查看tomcat下垃圾日志大文件所在的子目录时很方便!

du -sh/path/to/directoryname #将目录各子目录|文件汇总统计得出该目录所包含文件大小的总和

查看selinux机制的状态:  getenforce 或者 sestatus

临时禁用selinux机制:   setenforce 0

whoami # 查看究竟使用哪一個身份登錄的

who #有哪些使用者登錄了﹐和他們從哪裡登錄進來的﹐還有登錄時間、IP等信息

w #相比who能看到更多的信息如所有登录者正在执行什么命令

top #看到系統的資源使用情況

lastb #查看非法远程访问记录

last #查看登录成功历史记录

cat /var/log/messages #查看系统日志

less /var/log/secure #查看系统安全相关日志

pkill -9 -t tty1  #将从本机终端tty1登录的用户从系统踢出(远程终端为pts/N)

pkill -9 nginx  (pkill约等于killall命令)

备注:(1)一般的需要知道进程的PID才能使用kill将其终止,但是使用pkill的话只需要知道进程的名称就可知将其终结。(2)pkill -9 -t tty1 可根据登录终端将用户踢出系统登录状态

jobs #查看到有哪些程式在非前景中執行﹑以及他們的狀態。

dmesg #將您目前所使用的硬體資料顯示出來

cat /proc/cpuinfo #查看CPU信息

cat /etc/issue #查看操作系统所属版本

————系统级别常用配置文件——————

  /etc/resolv.conf  #Linux主机配置在线DNS,格式为“nameserver 59.108.61.61”,区别下面的"本地",这里称之为“在线DNS”配置文件(实践中常用于设定DNS)

/etc/hosts  #Linux主机配置本地DNS|本地内网主机解析服务的配置(这里在自定义主机名之后最好配置回环网卡IP与新主机名的对应关系,使主机能自我解析,很重要!)

/etc/sysconfig/network  #RHEL操作系统主机名的配置,似乎在Debian系统中该配置文件为“/etc/hostname”(实践中常用于设定主机名,似乎也可以设定GATEWAY)

/etc/sysconfig/network-scripts/ifcfg-eth0 或者 /etc/network/interfaces  #操作系统网卡信息配置(前者是RHEL系统后者是Debian系统)(实践中常包含IP、GATEWAY的配置)

另,更多信息可参考:Linux常用配置文件保存位置大全

http://www.jb51.net/LINUXjishu/343120.html

shutdown -h now #标准的科学的关机命令

其他关机命令:init 0、poweroff

shutdown -r now #标准的科学的重启命令

其他重启命令:reboot

logout #退出系统登录

usermod -d /home/sanlang -l xiuxiu -s /sbin/nologin shixiu

#修改用户的家目录、用户名、所用shell

-c<备注> 修改用户帐号的备注文字。

-d登入目录> 修改用户登入时的目录。

-e<有效期限> 修改帐号的有效期限。

-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。

-g<群组> 修改用户所属的群组。

-G<群组> 修改用户所属的附加群组。

-l<帐号名称> 修改用户帐号名称。

-L  锁定用户密码,使密码无效。

-s<shell>  修改用户登入后所使用的shell。

-u<uid>  修改用户ID。

-U  解除密码锁定。

 ----------操作系统信息查看命令---------

yum repolist  #查看当前yum工具可用的yum源信息列表

du -sh 目录名称  #用于查看该目录的占空间大小(善于查看文件系统真实大小)

du -h /path/to/directoryname #将目录下的子目录详细列出分别统计各自大小,便于准确定位大文件所在路径|子目录

du -sh/path/to/directoryname #将目录各子目录|文件汇总统计得出该目录所包含文件大小的总和

df -h  #用于查看磁盘空间的使用情况(善于查看系统实时剩余空间)

cat /etc/passwd  #查看本机所注册的所有用户的方法

查看操作系统位数的命令:

getconf LONG_BIT

查看selinux当前状态(启用与否):

getenforce 或者 sestatus

查看操作系统发行版本信息:

cat /etc/issue

cat /etc/redhat-release或者system-release或者centos-release

lsb_release -a  #查看系统发行版本(据说需要安装lsb)

查看内核版本信息:

uname -r | -a

cat /proc/version

查看cpu信息:

cat /proc/cpuinfo  (相比下者显示cpu信息更详细)

dmesg | grep CPU

查看处理器内核核数:

nproc  或者  cat  /proc/ cpuinfo |grep "processor"|sort -u|wc -l
  查看linux系统内存的命令:

cat /proc/meminfo

free -m

修饰操作系统登录和登录后的信息提示:

实现登录消息的功能,可以修改3个文件。

1、/etc/issue本地登陆显示的信息,本地登录前

2、/etc/issue.net网络登陆显示的信息,登录后显示,需要由sshd配置

3、/etc/motd常用于通告信息,如计划关机时间的警告等,登陆后的提示信息

motd是message of the day的缩写,意思是“当天的提示信息”,通常在用户成功登录到Linux Shell(非交互登录)时出现,该信息可以从/etc/motd文本文件中找到。UNIX/Linux系统管理员也通常会把一些重要的信息写到这个文件里面,以方便其他人或自己下次成功登录时需要注意什么和做什么,非常方便。

LINUX文件系统

Linux文件系统层次化标准(Linux FileSystem Hierarchy Standard(FHS))|目录详解

心得:其实学习Linux系统之初就应该对文件系统有一个全体层次化结构的认识。不致于认为Linux系统就是乌漆嘛黑一团抽象的迷雾。有了FHS的概念和感知,其他的理论就有了栖息的场所。个人当初后2015时光中只有局部目录的认识,对linux的感觉抽象了好久。

20161103  15:36——

fdisk查看硬盘分区表

df:查看分区使用情况

du: 查看文件占用空间情况

详细资料参考:

Linux文件系统详解

http://www.2cto.com/os/201109/104498.html

Linux目录详解

   http://www.cnblogs.com/itcui/p/5632311.html(初级阶段时的参考详细)

   http://www.360doc.com/content/14/0607/16/203871_384577619.shtml(reading)

linux FHS 与 目录树 (详尽)

   http://www.cnblogs.com/kzloser/articles/2673771.html(reading)

由于linux是开放源代码,各大公司和团体根据linux的核心代码做各自的操作,编程。这样就造成在根下的目录的不同。这样就造成个人不能使用他人的linux系统的PC。因为你根本不知道一些基本的配置,文件在哪里……这就造成了混乱。这就是FHS(FilesystemHierarchyStandard)机构诞生的原因。

事实上,FHS针对目录树架构仅定义出三类目录底下应该放置什么数据而已,分别是底下这三个目录的定义:

/ (root, 根目录):与开机系统有关;

/usr (unix software resource):与软件安装/执行有关;

/var (variable):与系统运作过程有关。

FHS定义的目录元素:

/bin /boot /dev /etc /home/lib /media /mnt /opt /root/sbin /srv /tmp

备注:标红的目录为不可与根目录分开的目录(与开机过程有关)

除上 FHS 中定义的目录说明外,底下是几个在Linux当中非常重要的目录:

/lost+found /proc /sys

目录 功能|作用|用途 描述:

/     根目录

/bin    做为基础系统所需要的最基础的命令就是放在这里。比如 ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。

/boot Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;启动装载文件存放位置,如kernels,initrd,grub。一般是一个独立的分区。

/dev 一些必要的设备,声卡、磁盘等。还有如/dev/null. /dev/console /dev/zero /dev/full等。

/dev/tty: teletypewriters,虚拟控制台设备文件;

/dev/pty:pseudo-tty,虚拟终端,提供远程虚拟控制台设备文件;(pts (pseudo-terminal

slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。)

/dev/null:所谓"黑洞",所有写入该设备的信息都将消失,如当想要将屏幕上的输出信息隐藏起来时,只要将输出信息输入到/dev/null中即可;

/etc     系统的配置文件存放地.一些服务器的配置文件也在这里;比如用户帐号及密码配置文件;

/etc/rc.d 启动的配置文件和脚本

/etc/opt:/opt对应的配置文件

/etc/selinux:selinux是一个很新的安全性方案,它是一种针对各种文件、目录、设备或daemon等在linux所需使用到的安全性机制,而且其安全性的数据时直接记录在文件系统中;

/etc/audit:这个目录所代表的是一种和目录名称一致的audit安全机制,主要以服务的方式协助管理员持续监控各文件被存取的情况;目录下的audit.rules文件主要是定义一些必要的监控规则;

/etc/snmp:简单网络管理软件的配置文件目录,存在snmpd.conf主配置文件;

/etc/setuptool.d:这个目录是"setup"系统配置工具的主要配置目录;

/etc/skel:用于初始化用户宿主目录的配置目录,当建立一个用户时,会把此目

录下的所有文件复制一份到用户的宿主目录,作为用户的初始化配置;

/etc/sysconfig:非常重要的系统配置文件的存放目录,里面放置了大量系统启动

及运行相关的配置文件;

/etc/services文件是记录网络服务名和它们对应使用的端口号及协议。

/etc/xinetd.d:xinetd是一个管理多个服务的daemon,这个目录下列出的服务都是

由xinetd进程管理的,其主配置文件是/etc/xinetd.conf;

/etc/logrotate.d:此目录对系统管理员来说,是十分重要的一个目录,因为目录中的文件,记录了如何定期备份系统所需要备份的系统或软件日志文件及备份方式,目录是由logrotate组件所提供的,而里面所有文件是由各软件各自产生的;其主要配置文件是/etc/logrotate.conf;

/etc/logwatch:logrotate主要是实现如何备份日志文件,这个目录就是记载如何分析日志文件并告诉用户的软件logwatch的配置目录;

……

/home   用户工作目录,和个人配置文件,如个人环境变量等,所有的账号分配一个工作目录。一般是一个独立的分区。

/home/~/.bashrc:提供bash环境中所需使用的别名;

/home/~/.bash_profile:提供bash环境所需的变量;一般先执行.bashrc后,才会再

执行.bash_profile;

/home/~/.bash_history:用户历史命令文件,记录用户曾经输入过的所有命令;(默认为1000条,可以通过HISTSIZE变量更改)

/home/~/.bash_logout:当用户注销的同时,系统会自动执行.bash_logout文件,如果管理员需要记录用户注销的一些额外记录、动作或其他信息,就可以利用这个机制去完成;

/lib     库文件存放地。bin和sbin需要的库文件。类似windows的DLL。

/media   可拆卸的媒介挂载点,如CD-ROMs、移动硬盘、U盘,系统默认会挂载到这里来。

/mnt     临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。

/opt      可选的应用程序包。

/root     Root用户的工作目录

/sbin     和bin类似,是一些可执行文件,不过不是所有用户都需要的,一般是系统管理所需要使用得到的。

/srv     该目录存放一些服务启动之后需要提取的数据

/tmp     系统的临时文件,一般系统重启不会被保存。

/usr      包含了系统用户工具和程序

 /usr/bin: 非必须的普通用户可执行命令

/usr/include:linux下开发和编译应用程序所需要的标准头文件

/usr/lib:/usr/bin/ 和 /usr/sbin/的动态链接库文件和软件包的配置文件

 /usr/sbin:非必须的可执行文件

/usr/etc:自行安装或非系统主要的配置文件目录;

/usr/src:内核源码,linux内核的源代码就放在/usr/src/linux里

/usr/X11R6:X Window System, Version 11, Release 6.

/usr/doc linux文档

/usr/man 帮助文档

/usr/local:linux系统中安装的共享软件程序最好的方式是安装在/usr/local下,按照linux标准目录结构,新建立的软件都应该放在/usr/local下;

/usr/local/bin:存放软件执行文件的目录|本地增加的命令

/usr/local/sbin:同样存放软件执行文件的目录,但此目录专门针对系统所使用的文件;

/usr/local/lib:软件相关的函数库|本地增加的库根文件系统

/usr/local/share:当文件性质不好归属时就会放在此,man手册就放在这个目录下;

/usr/local/src:所安装软件的源代码放置在此;

/usr/share:此目录都是一些共享信息,最常被用到的就是/usr/share/man这个目录,

/usr/share里的信息是跨平台的;

/usr/share/doc:放置一些系统帮助文件的地方;

/var 各式各样的(Variable)文件,一些随着系统常规操作而持续改变的文件就放在这里,比如日志文件,脱机文件,还有临时的电子邮件文件

/var/cache 应用程序缓存数据. 这些数据是由耗时的I/O(输入/输出)的或者是运算本地生成的结果。这些应用程序是可以重新生成或者恢复数据的。当没有数据丢失的时候,可以删除缓存文件

/var/lib 状态信息。这些信息随着程序的运行而不停地改变,比如,数据库,软件包系统的元数据等等

/var/lock 锁文件。这些文件用于跟踪正在使用的资源

/var/log  日志文件。包含各种日志,如/var/log/messages。

/var/mail 内含用户邮箱的相关文件

/var/opt 来自附加包的各种数据都会存储在 /var/opt/.

/var/run  存放当前系统上次启动以来的相关信息,例如当前登入的用户以及当前运行的daemons(守护进程).

/var/spool 该spool主要用于存放将要被处理的任务,比如打印队列以及邮件外发队列

/var/mail 过时的位置,用于放置用户邮箱文件

/var/tmp 存放重启后保留的临时文件

/proc     操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见/etc/fstab。

/lost+found  一般存在于独立的分区中,如home目录下就有。

/sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息.包括目前已加载的核心模块与核心侦测到的硬件装置信息等等.这个目录同样不占硬盘容量喔!

备注: /home /var /usr/local经常是单独分区,因为经常会操作,容易产生碎片.

=========防火墙---------=================

认为 iptables 默认策略是ACCEPT,不给INPUT添加精准细致的端口匹配策略也是可以的,如80端口 在默认策略是ACCEPT 不添加端口匹配策略也应该能访问服务。

所以既然要在INPUT链中匹配端口策略就应该让该链的默认策略设置为DROP!

http://www.jb51.net/os/RedHat/161919.html

iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

#blockmostcommonnetworkattacks(reconpacketsandsyn-floodattack)

iptables -A INPUT -p icmp--icmp-type8-mlimit--limit1/second -j ACCEPT  #defaultpolicies

iptables -A INPUT -p tcp --tcp-flags ALLNONE -j DROP#NONE包(所有标识bit都没有设置)主要是扫描类的数据包

iptables -A INPUT -p tcp !--syn -m state --state NEW -j DROP#防止sync-flood攻击

iptables -A INPUT -p tcp --tcp-flags ALLALL -j DROP  #open ports for different services

iptables -A INPUT -p tcp --tcp-flags ALLALL -j DROP  #ALL包(所有的标注bit都被设置了)也是网络扫描的数据包

linux公共基础-初阶相关推荐

  1. linux公共基础-中阶

    20161215 09:36 操作备注:新开本博文,意在进一步整理记录linux系统管理中高一级别的技能和命令的使用.比如visudo实现分权等等. 20170522 11:56 关于新装CentOS ...

  2. Linux基本指令初阶

    本篇博客写的是Linux中20个指令最简单的部分,接下来会有一篇初阶的博客,将会详解几个重要且易错的指令. 1.几个重要的热键 [Tab]:显示想要搜索的指令,输入pw,按下Tab或会显示所有包含pw ...

  3. 学习笔记:C++初阶【C++入门、类和对象、C/C++内存管理、模板初阶、STL简介、string、vector、list、stack、queueu、模板进阶、C++的IO流】

    文章目录 前言 一.C++入门 1. C++关键字 2.命名空间 2.1 C语言缺点之一,没办法很好地解决命名冲突问题 2.2 C++提出了一个新语法--命名空间 2.2.1 命名空间概念 2.2.2 ...

  4. JavaEE初阶系列 -开头篇:计算机是如何工作的(为下一篇的线程做铺垫)

    文章目录 前言 计算机的发展史 冯诺依曼体系 CPU 中央处理器: 进行算术运算和逻辑判断. CPU 基本工作流程 逻辑门 门电路(Gate Circuit) - 模电数电知识 1.与门:可以针对两个 ...

  5. C语言初阶_初识C语言(1)

    凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...

  6. 前端三剑客之 HTML - JavaEE初阶 - 细节狂魔

    文章目录 前言 后端 && 前端的部分历史 - java 关于网站搭建 正文开始! HTML 怎么编写一个HTML的代码? 小拓展: 快速编写 HTML 代码的小技巧 浏览器的开发者工 ...

  7. Linux 网络基础学习

    Linux 网络基础知识 网络的基础知识包括: TCP/IP , Network IP, Netmask IP , Broadcast IP,Gateway, DNS IP等等 OSI的网络七层协议 ...

  8. 权限认证php,2016年Linux认证基础知识:php做权限管理

    2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...

  9. s1 Linux 硬件基础

    s1 Linux硬件基础 服务器特点 1.稳定 2.方便拆卸-模块化 运维职责:运行和维护服务器 1.数据不能丢---大片不能没 2.保证网站7*24小时运行--一直要运行 3.用户体验要好----打 ...

最新文章

  1. 超详干货!Linux 环境变量配置全攻略
  2. 知其然,知其所以然:基于多任务学习的可解释推荐系统
  3. parentViewController
  4. Java中的几种引用类型_Java中的几种引用类型(转载)
  5. 密码技术--消息认证码及go语言应用
  6. SAP附件UI里选择的文件是如何传到ABAP服务器的
  7. 删除弹框提示_如何关闭Mac的Microsoft AutoUpdate弹框提示
  8. 论文笔记 Aggregated Residual Transformations for Deep Neural Networks
  9. Linux 创建网页服务,Linux使用Node.js建立访问静态网页的服务实例详解
  10. 编译程序和解释程序有哪些区别?
  11. VirtualBox安装Mac OS引导盘启动不了原因
  12. 【CODEVS1191】数轴染色
  13. 如何关闭JxBrowser,正确退出JxBrowser的方法
  14. 基本农田卫星地图查询_水经注万能地图下载器软件主界面功能说明
  15. 单片机控制12864显示多行汉字(含PROTEUS仿真文件、程序和字模提取软件)
  16. 项目实战之电子商城数据库源码
  17. html表格数据按公式自动计算,Word表格怎么自动填充和计算数据
  18. 【工程光学】理想光学系统
  19. 英特尔第11代处理器(Intel Tiger Lake) 疑难解答 - 安装Windows 10时找不到驱动器
  20. Js实现购物车加减,价格计算等功能

热门文章

  1. 表格的计算机在哪个文件夹,如何查看当前打开的Excel表格文件在电脑中的保存位置...
  2. C语言sfr指令,51单片机的指令和sfr汇总.pdf
  3. 实体商家如何通过小魔推同城拓客,在短视频平台提升曝光量
  4. css inherit
  5. stop slave mysql_mysql执行stop slave一直卡在Killing slave的状态
  6. 前端终端组件xterm.js的使用(转)
  7. 某些年自己做的毕业设计代码和分析过程记录
  8. uniapp——轮播图(官方)、卡片轮播图
  9. 相关系数 Correlation Coefficient 的理解
  10. 全部40个博客网站排名